docs/plans/2026-05-27-pagination-fast-scroll-virtualization.md
Status: done
Objective:
/examples/pagination with strategy=virtualized.Source:
Root cause:
PagedEditable page-surface overscan used a broad implicit viewport buffer.240 rows / 720 cells and produced a local worst frame around 200ms.Fix:
page_overscan control and route state from the prior slice.Changed:
packages/slate-layout/src/react.tsx
playwright/integration/examples/pagination.test.ts
.changeset/paged-editable-virtualized-overscan.md
slate-layout.Performance proof:
200ms, with 240 rows / 720 cells / 3360 elements.page_overscan=1 fast-jump sweep over 81 scroll positions:
24ms99ms341026788Verification:
PLAYWRIGHT_BASE_URL=http://localhost:3100 PLAYWRIGHT_RETRIES=0 bunx playwright test playwright/integration/examples/pagination.test.ts --project=chromium --grep "1000-page"
PLAYWRIGHT_BASE_URL=http://localhost:3100 PLAYWRIGHT_RETRIES=0 bunx playwright test playwright/integration/examples/pagination.test.ts playwright/integration/examples/query-controls.test.ts --project=chromium
bun --filter slate-layout typecheck
bun typecheck:site
bunx tsc --noEmit --project tsconfig.json --pretty false
bun lint:fix
bun lint
perl -e 'alarm 60; exec @ARGV' /Users/zbeyens/git/plate-2/.agents/skills/autoreview/scripts/autoreview --mode local
Browser note:
http://localhost:3100/examples/pagination.Performance lane:
Completion: