docs/plans/2026-05-27-slate-v2-example-controls-url-state-with-nuqs.md
Status: done
Objective: install nuqs in .tmp/slate-v2 and make shareable example controls read from and write to the URL query string.
Source of truth:
/Users/zbeyens/git/plate-2/.tmp/slate-v2Decision:
NuqsAdapter in site/pages/_app.tsx.useQueryState / useQueryStates directly in examples instead of another app state abstraction.Migrated examples:
android-tests: selected test case via ?test=...; removed hash state.decorations-async: decoration source via ?source=prop|hook; removed manual URLSearchParams.dom-coverage-boundaries: hidden boundary toggles via ?outer_hidden=false style params.hidden-content-blocks: accordion/collapsible/tab/policy controls via query params.huge-document: performance controls via the existing query key shape, now nuqs-owned.pagination: preset, margins, DOM strategy, row count/height, media split/height, page layout, debug via query params.search-highlighting: search text via ?q=....Scanned and intentionally skipped:
document-state, embeds, check-lists, code-highlighting, tables, and multi-root-document: their controls mutate the editor model or state-field demo itself.mentions, linting, and comment-mode: local counters, popup search, or diagnostics are not shareable setup controls.Verification:
bun typecheck:sitebunx tsc --noEmit --project tsconfig.json --pretty falsebun lint:fixPLAYWRIGHT_BASE_URL=http://localhost:3100 PLAYWRIGHT_RETRIES=0 bunx playwright test playwright/integration/examples/query-controls.test.ts playwright/integration/examples/decorations-async.test.ts playwright/integration/examples/huge-document.test.ts --project=chromiumResult:
site/examples/ts.