어포던스: Typeahead와 Canvas 부가손을 Hands에 붙인다 - #459
Open
developer-1px wants to merge 8 commits into
Open
Conversation
added 2 commits
August 21, 2026 03:10
Listbox·Canvas 위젯과 같은 applyAffordance 호출을 장르 데모로 옮긴다.
added 6 commits
August 21, 2026 10:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #458
기반: #455
Order에서 글쇠 prefix로 항목이 점프하고, Canvas에서 마키·팬·스냅·넛지·Escape가 살아 있다.
Goal Anchor
/demo/order와/demo/canvas가 위젯과 같은applyAffordance호출로 그 손을 쓴다. Typeahead·Escape·Marquee·Pan·Snap·Nudge가이미 닫힌 손으로 올라간다. 패키지에 새 export가 없고, editor Intent가 늘지 않는다.useAffordance를 만들지 않는다. Hands의 클립보드·채우기를 빼지 않는다.Canonical Mapping
ListboxWidgetRoute의typeaheadAffordance+ 버퍼용escapeAffordance+selection.set{ itemId, mode: "replace" }CanvasWidgetRoute의marqueeAffordance·panAffordance·snapAffordance·nudgeAffordance·escapeAffordance(forbiddenCursor제외)selection.set/object.translate/ 호스트 뷰포트·마키 상태검증
npm run typecheck -w @interactive-os/json-document-sitenpm run docs:evaluatenpm test -w @interactive-os/json-document-site(32 passed)npx playwright test --config site/playwright.config.ts site/tests/browser/editor-slice-demos.spec.ts(8 passed)npx playwright test --config site/playwright.config.ts site/tests/browser/widgets.spec.ts site/tests/browser/editing-demos.spec.ts site/tests/browser/site-shell.spec.ts(passed)