배경
Affordance 메인 카탈로그에는 Focus, Caret, Rename, Double-click, Triple-click 다섯 손이 TBD로 남아 있다. 문서의 사용 예시와 실제 package export·반환 계약을 맞추고, 적합한 기존 제품 화면에서 직접 사용해 닫힘 증거를 남긴다.
Goal Anchor
- Outcome: Affordance 메인 카탈로그의 Focus, Caret, Rename, Double-click, Triple-click이 실제로 사용할 수 있는 닫힌 손이 된다.
- Done: 메인 카탈로그의 TBD 5개가 모두
이미 닫힌 손으로 이동한다. 문서의 사용 예시와 실제 package export·반환 계약이 일치한다. 각 손이 적합한 기존 제품 화면에서 직접 사용된다. package 단위 테스트와 제품 경로 브라우저 테스트로 사용 증거가 남는다.
- Don't: Drag·Fold·Scroll·History·Select 내부의 세부 TBD 13개는 이번 범위에 넣지 않는다. 전체 사이트를 재디자인하거나 새로운 제품 shell을 만들지 않는다. Focus와 selection, Caret과 항목 selection의 기존 경계를 합치지 않는다. 호스트가 소유하는 글자·단어·줄·문단 기하를 package로 가져오지 않는다.
Behavior Contract
- Focus: Tab / Shift+Tab은 컴포넌트 사이 이동 의도다. Arrow / Home / End / PageUp / PageDown은 컴포넌트 내부 이동 의도다. focus와 selection은 별도 상태다.
- Caret: 클릭은 호스트가 계산한 글 삽입점, drag는 호스트가 계산한 글 범위다.
text / vertical-text cursor를 제공한다.
- Rename: F2 또는 느린 double-click은 begin, Enter는 commit, Escape는 cancel이다. 편집 draft는 호스트 상태이며 commit만 문서 변경이다.
- Double-click:
detail === 2는 click count 2다. 구체적 activate·단어 선택 의미는 장르와 호스트가 결정한다.
- Triple-click:
detail === 3은 click count 3이다. 줄·문단 범위 기하는 호스트가 결정한다.
Success Evidence
- 다섯 문서에 더 이상 전체-page
TBD.가 없다.
docs/public/affordance.md의 TBD 표에 다섯 항목이 없다.
- 공개 API를 문서 예제 그대로 typecheck할 수 있다.
- 적어도 하나의 제품 경로에서 Focus·Caret·Rename을 실제로 수행할 수 있다.
- Double/Triple-click의 횟수 계약과 제품 연결이 자동 검증된다.
- 기존 제품 화면의 공통 모양과 UI-language guard가 유지된다.
Work Topology
배경
Affordance 메인 카탈로그에는 Focus, Caret, Rename, Double-click, Triple-click 다섯 손이 TBD로 남아 있다. 문서의 사용 예시와 실제 package export·반환 계약을 맞추고, 적합한 기존 제품 화면에서 직접 사용해 닫힘 증거를 남긴다.
Goal Anchor
이미 닫힌 손으로 이동한다. 문서의 사용 예시와 실제 package export·반환 계약이 일치한다. 각 손이 적합한 기존 제품 화면에서 직접 사용된다. package 단위 테스트와 제품 경로 브라우저 테스트로 사용 증거가 남는다.Behavior Contract
text/vertical-textcursor를 제공한다.detail === 2는 click count 2다. 구체적 activate·단어 선택 의미는 장르와 호스트가 결정한다.detail === 3은 click count 3이다. 줄·문단 범위 기하는 호스트가 결정한다.Success Evidence
TBD.가 없다.docs/public/affordance.md의 TBD 표에 다섯 항목이 없다.Work Topology