docs/plans/2026-03-29-table-arrow-navigation.md
Make plain ArrowUp / ArrowDown table navigation stable.
moveLine path.ArrowUp / ArrowDown through table-owned moveLine.solutions/.ArrowUp / ArrowDown goes through the shared moveLine seam before browser default caret movement.editor.api.toDOMRange(...) plus caret/block rect comparison is enough to detect whether the caret is already on the visual first or last line.SlateReactExtensionPlugin -> withApplyTable -> overrideSelectionFromCell -> moveSelectionFromCell.withTable.moveLine override so table owns collapsed ArrowUp / ArrowDown movement before browser default caret motion.bun test packages/table/src/lib/transforms/tableSelectionAndSizing.spec.tsx packages/table/src/lib/withApplyTable.spec.ts packages/table/src/lib/transforms/overrideSelectionFromCell.spec.tsx packages/table/src/lib/transforms/moveSelectionFromCell.spec.tsxbun test packages/table/src/lib/withTable.spec.tsxpnpm install failed in prepare because bun x skiller@latest apply blocks on legacy Claude plugin migration.pnpm install --ignore-scriptspnpm turbo build --filter=./packages/tablepnpm turbo typecheck --filter=./packages/tablepnpm lint:fix