Skip to content

어포던스: Focus·Caret·Rename과 다중 클릭을 닫는다 - #469

Open
developer-1px wants to merge 2 commits into
issue-458-hands-typeahead-canvasfrom
issue-468-affordance-focus-caret-rename
Open

어포던스: Focus·Caret·Rename과 다중 클릭을 닫는다#469
developer-1px wants to merge 2 commits into
issue-458-hands-typeahead-canvasfrom
issue-468-affordance-focus-caret-rename

Conversation

@developer-1px

@developer-1px developer-1px commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Closes #468

기반: #459

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로 가져오지 않는다.

구현

  • focusAffordance로 Order의 roving focus를 selection과 분리했다.
  • renameAffordanceitem.rename으로 F2·느린 double-click begin, Enter commit, Escape cancel을 연결했다.
  • Order에서 수정 키 chord를 typeahead보다 먼저 keyboard adapter로 보내고 native copy/cut/paste를 Web Clipboard binding에 연결했다.
  • caretAffordance·caretCursor를 Document textarea에 붙이고 DOM이 계산한 범위를 Editing selection으로 전달했다.
  • clickCountAffordance의 2회·3회 입력을 Document 제품 경로에서 사용했다.
  • 다섯 문서 예제를 실제 AffordancePreview/applyAffordance 계약으로 고치고 메인 카탈로그의 닫힌 손으로 이동했다.

검증

  • npm run verify -w @interactive-os/json-document-affordance (21 tests)
  • npm run verify -w @interactive-os/json-document-editing (55 tests)
  • npm run typecheck -w @interactive-os/json-document-site
  • npm test -w @interactive-os/json-document-site (32 tests)
  • npm run docs:evaluate
  • npx playwright test --config site/playwright.config.ts site/tests/browser/editor-slice-demos.spec.ts --workers=2 --reporter=line (14 passed; ⌘/Ctrl+C·V·Z 포함)
  • pre-push npm run build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant