Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion architecture/modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,16 @@
],
"responsibility": "선택·이동·취소 등 입력 독립 조작 의미와 수명",
"entrypoint": "packages/json-document-affordance/src/index.ts",
"subpaths": [],
"subpaths": [
{
"packageName": "@interactive-os/json-document-affordance/axis-resize",
"entrypoint": "packages/json-document-affordance/src/axis-resize.ts"
},
{
"packageName": "@interactive-os/json-document-affordance/grid-fill",
"entrypoint": "packages/json-document-affordance/src/grid-fill.ts"
}
],
"referencePath": "packages/json-document-affordance/docs/api-reference.md"
},
{
Expand Down Expand Up @@ -410,5 +419,16 @@
"entrypoint": "packages/contenteditable-collaboration/src/index.ts",
"subpaths": [],
"referencePath": "packages/contenteditable-collaboration/docs/api-reference.md"
},
{
"packageName": "@interactive-os/json-document-sheet",
"sourceDirectory": "packages/json-document-sheet",
"positions": [
"Hands"
],
"responsibility": "Sheet와 Markdown 표의 셀 선택·편집·구조 조작 UI 조합",
"entrypoint": "packages/json-document-sheet/src/index.ts",
"subpaths": [],
"referencePath": "packages/json-document-sheet/docs/api-reference.md"
}
]
1 change: 1 addition & 0 deletions docs/public/hands-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Hands는 장르의 문서·편집·입력·UI를 조합한 편집 경험입니
## 현재 근거

- [Calendar](../../packages/json-document-calendar/docs/api-reference.md): 공개 Hand 계약과 [Calendar 예제](hands.md#calendar-editor)를 확인할 수 있습니다.
- [Sheet](../../packages/json-document-sheet/docs/api-reference.md): [표 편집 예제](/demo/sheet)와 [Bear](/applications/bear)가 셀 이동·편집·행/열 조작 UI를 공유합니다.
- [Annotation](../../packages/json-document-annotation/docs/api-reference.md): 공개 Hand 계약과 [Annotation 예제](hands.md#annotation-editor)를 확인할 수 있습니다.
- [Rich Text](/editing/rich-text): 문서·편집·Web·React를 연결한 대표 편집 조합입니다.
- 다른 장르는 [Hands](hands.md)의 예제와 모듈 API에서 각각 지원 범위를 확인합니다.
Expand Down
30 changes: 30 additions & 0 deletions integrations/dogfooding-sheet/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# 기존 Sheet 연결분

이 패치는 `developer-1px/dogfooding-sheet`의 로컬 `spredsheet` 작업 상태에 적용한 변경만 담습니다. 시작 HEAD는 `fb31a2e`였지만 411개 미커밋 변경 항목이 있었으므로 HEAD와의 diff가 아니라 작업 시작 시 파일 내용과의 diff입니다. 기존 작업을 별도 커밋하거나 다른 브랜치로 덮어쓰지 않았습니다.

정본 연결:

- `rangeTabTarget` / `rangeEnterTarget` → Selection `traverseGrid`
- `useSheetGrid` 선택 드래그 상태 → Selection `reducePressInteraction`
- `fillTargetForCell` → Affordance `/grid-fill`의 `extendGridFill`
- `resizeRules` → Affordance `/axis-resize`의 크기 제한·키보드·접기/복원

A1 좌표, 보이는 축의 희소 투영, 수식·수열 채우기와 제품 기본 크기는 기존 Sheet에 유지합니다. 의존성 가드는 임의 runtime을 허용하도록 제거하지 않고, 위 정본 package/subpath만 허용합니다.

```sh
node scripts/apply-sheet-sibling-migration.mjs /path/to/spredsheet
# 아직 적용 전이고 모든 baseline SHA가 맞을 때에만:
node scripts/apply-sheet-sibling-migration.mjs /path/to/spredsheet --apply
```

`migration.json`은 변경 전후 SHA-256을 기록합니다. 다른 작업이 겹치거나 일부만 적용된 상태에서는 아무 파일도 변경하지 않습니다. 이 패치를 현재 Git HEAD에 바로 적용하는 것은 지원하지 않습니다. 해당 미커밋 작업을 먼저 포함한 뒤 적용하거나, 그 작업이 정리된 시점에 다시 대조해야 합니다.

이번 json-document revision을 빌드한 Selection/Affordance package가 필요합니다. 로컬 검증에서는 형제 앱의 기존 설치를 보존하고 두 package만 `node_modules/@interactive-os/`에서 이 작업의 빌드로 연결했습니다. 재현 환경은 이 revision의 `npm pack` 결과를 설치하면 됩니다. package manifest의 버전 범위만으로 아직 배포되지 않은 새 export가 설치된다고 가정하지 않습니다. 레거시 의존 경로를 대량 갱신하거나 형제 lockfile 전체를 재생성하지 않았습니다.

검증 명령은 형제 repo root에서 실행합니다:

```sh
./node_modules/.bin/vitest run src/app/previews/keyboard-anchor-preview.test.ts src/widgets/sheet-grid/hooks/useSheetGrid.react.test.ts src/widgets/sheet-grid/model/resizeRules.test.ts src/widgets/sheet-grid/ui/GridHeader.test.ts src/widgets/sheet-grid/ui/RowHeader.test.ts src/features/fill/model/fillDown.test.ts src/features/fill/hooks/useAutoFill.test.ts --maxWorkers=1
```

Grid package 검증은 `packages/grid`를 cwd로 하여 `../../node_modules/.bin/vitest run --config vitest.config.ts`를 실행합니다. root에서 이 config만 지정하면 include 경로가 root에 적용돼 의도치 않게 전체 앱 테스트를 실행하므로 cwd를 구분해야 합니다.
52 changes: 52 additions & 0 deletions integrations/dogfooding-sheet/migration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"repository": "developer-1px/dogfooding-sheet",
"baselineHead": "fb31a2e",
"baselineIncludesUncommittedWork": true,
"files": [
{
"path": "package.json",
"before": "4cbe6f212a21a5dcb63cdf5e5611cc3aa7902f58664fd56784df824595aec24c",
"after": "86f09f367d7cc2b80da51fef8deae55a4d71d93f7ea6dc285ad0d7d40ce9443f"
},
{
"path": "packages/editable-grid/package.json",
"before": "74ccb063439140488299c3c54c21251b51ee312cd8cc1729a41f3b5147d7db12",
"after": "be1e339c439b0decb9516288a2d277a35084b6b35cf4007803075a2b89f94302"
},
{
"path": "packages/editable-grid/src/resizeRules.ts",
"before": "89205de231f79cc3962fd40d04480d68a8f2b3c438e3d61a69e36e878c69df93",
"after": "d2891d1791904701ce44f2c3306e33e62db41bfbd9162a06407eb38e5da644bb"
},
{
"path": "packages/grid/README.md",
"before": "9ef54a610c0393a78e6ddd6d71bd05bbd917d408b77d90240a339c753272486f",
"after": "1c9bb082fe919796b4184339c620036d17cedf8f87f4607be0335a5e5429c498"
},
{
"path": "packages/grid/package.json",
"before": "3cd9ec2880f2b9b59f5dfe3651a3c8c1424e4100a8dc04d3f37b24eefb540e0c",
"after": "3e227c7a7db92af8a10b1597b490fe2700d2079e56de0d8f259ae7a8e0dabb11"
},
{
"path": "packages/grid/src/editing/fillHandle.ts",
"before": "0769548387ced0f291877d72e6f6e647ba2fe564b7f0d7f8f3bfbcab32b19243",
"after": "a5aa724890cd4a1b7715a7d5a44432549366dbd5dab3e932db5b70f8d6511ef4"
},
{
"path": "packages/grid/src/purity.test.ts",
"before": "0871b6158d8808017a05a56e66ab1b67db06f750209ea971170073795a4847f1",
"after": "338cc3e59e7a75332fbe156a6168ace4dd4f621dc1eafca75ea759665e549bc7"
},
{
"path": "packages/grid/src/selection/navigation.ts",
"before": "edda5dbc96e44437bbd3166df5231b9d3f12d61d0675673fa745a03a915eec03",
"after": "80b82858fa95e17588863283adb9096a1eaeedfec5661f0ead434a620f790eed"
},
{
"path": "src/widgets/sheet-grid/hooks/useSheetGrid.ts",
"before": "570bec27f6ac627a992c7183abc8216280c513b2a4df8f88bf734fcea8cc5fdd",
"after": "1488a1faa27295846ab30ffd54885c03c90e95f4feda100745a8b6291d668f6e"
}
]
}
Loading