Skip to content

사이트: 제품 화면에 Document·Canvas·Tree·Board를 채우고 모든 데모가 위젯 바인딩을 쓴다 - #455

Open
developer-1px wants to merge 16 commits into
mainfrom
issue-454-widget-bindings
Open

사이트: 제품 화면에 Document·Canvas·Tree·Board를 채우고 모든 데모가 위젯 바인딩을 쓴다#455
developer-1px wants to merge 16 commits into
mainfrom
issue-454-widget-bindings

Conversation

@developer-1px

Copy link
Copy Markdown
Owner

Closes #454

빠진 네 장르가 제품 화면에 정해진 위젯으로 있고, 그 바인딩을 모든 데모가 수정 없이 쓴다.

Goal Anchor

  • Outcome: 빠진 네 장르가 제품 화면에 정해진 위젯으로 있고, 그 바인딩을 모든 데모가 수정 없이 쓴다.
  • Done: 카탈로그에 Document / Canvas / Tree / Board가 있다. Toolbar / Listbox / Grid는 유지한다. Database 위젯 페이지는 없다. useEditing이 붙은 데모가 해당 위젯 바인딩을 위젯 코드 변경 없이 사용한다. 위젯은 편집 값만 읽고 그린다.
  • Don't: Database를 Grid와 따로 만들지 않는다. Button/Card를 위젯으로 두지 않는다. 위젯을 완성 편집기로 키우지 않는다. Hands를 대체하지 않는다. 데모별로 위젯을 포크하지 않는다. 새 위젯 역할을 발명하지 않는다.

Canonical Mapping

  • Toolbar = canUndo / canRedo
  • Listbox = selected keys / focus
  • Grid = topology / selected cells (Sheet와 Database)
  • Document = 블록 줄 + text offset
  • Canvas = 평면 위 객체 선택
  • Tree = 보이는 계층 topology
  • Board = 열 × 카드
  • Database Hand = Grid (페이지 추가 없음)

검증

  • npm test -w @interactive-os/json-document-site
  • npm run typecheck -w @interactive-os/json-document-site
  • npm run docs:evaluate
  • npx playwright test --config site/playwright.config.ts (68 passed)

Toolbar/Listbox/Grid 바인딩을 장르 editor 타입에서 분리하고, 빠진 네 장르
위젯을 카탈로그에 연다. Database는 Grid를 그대로 쓴다.
키보드·마우스 손의 정본을 패키지로 두고, 사이트 입구를 고르기·접기·드래그·되돌리기
사용법으로 바꾼다. 위젯 화면은 증명으로만 남긴다.
유용태 and others added 14 commits August 20, 2026 21:24
공개 문서의 .md 링크를 사이트 경로로 잇고, Grid·Document가 호스트
keymap이 아니라 pointerSelect와 resolveAffordanceKey를 쓰게 한다.
CSS UI 커서 집합, Pointer Events, APG 키보드 관례로 손을 닫고,
구현 없는 손은 사용법 페이지로만 남긴다.
APG·CSS UI·Pointer Events가 쓰는 말을 그대로 쓰고, URL 슬러그는 유지한다.
패키지 구현은 아직 없다. 호스트가 넘긴 사실만 받아 손을 닫는 API를
페이지마다 가상 usage로 고정한다.
함수 반환값만 보이지 않게, 손은 문서 작업이거나 커서·접힘·뷰포트 같은
호스트 화면 상태가 된다.
모든 손은 AffordanceResult를 돌리고 applyAffordance로 잇는다.
Listbox typeahead와 Canvas drag/marquee/nudge가 그 usage로 동작한다.
호스트는 시점을 고르고, 패키지는 applyAffordance로만 읽는다.
없는 손은 유니온에서 빼고, 위젯 증명은 result.commit을 보지 않는다.
손 함수는 Preview만 돌린다. 제품 데모는 applyAffordance로만 읽는다.
Order·Object·Tree·Document·Sheet·Database와 History·Topology가
pointerSelect를 같은 한 줄로 읽는다.
파이프라인은 Document에서 Affordance까지다. 증명 카피에서 Widget을 뺀다.
어포던스: 제품 최전선을 API와 사용법으로 연다
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.

사이트: 제품 화면에 Document·Canvas·Tree·Board를 채우고 모든 데모가 위젯 바인딩을 쓴다

1 participant