Repository navigation
What's Changed
- Fix two real keyboard-accessibility gaps: DatePicker focus ring, Combobox clear button by @escape-llc in #505
- Form: validation error messages slide open/closed instead of slamming (issue #503) by @escape-llc in #506
- e2e: fix flaky webkit bubbled-animationend test in datatable-load-transition by @escape-llc in #508
- Popup: add anchor mode so DatePicker's calendar popup positions against the whole field by @escape-llc in #509
- Bump @clack/prompts from 1.8.0 to 1.8.1 in /cli in the minor-and-patch group by @dependabot[bot] in #496
- Bump @testing-library/dom from 10.4.1 to 10.4.2 in the minor-and-patch group by @dependabot[bot] in #497
- Bump codecov/codecov-action from 7.0.0 to 7.1.0 in the minor-and-patch group by @dependabot[bot] in #498
- Bump zod from 4.6.2 to 4.6.5 in /mcp in the minor-and-patch group by @dependabot[bot] in #495
- FormField/FormError: keep validation text rendered through the collapse by @escape-llc in #511
- Demo: manually dragging the splitter open now uncollapses the event log by @escape-llc in #514
- observer: extend GlobalObserverManager to centralize MutationObserver too by @escape-llc in #516
- DataTable: cross-fade the row set on density changes instead of slamming by @escape-llc in #518
- DataTable: cross-fade the row set on pagination changes too, restoring focus on remount by @escape-llc in #519
- FileUpload.test.tsx: fix flaky 'emits a fresh fileupload:changed' test by @escape-llc in #520
- DatePicker: fix Enter/Space not opening the calendar popup (#501) by @escape-llc in #521
- Bump toolcrib CLI to v0.8.0 by @escape-llc in #523
- Demo: derive event-log collapsed state from Splitter's real split by @escape-llc in #525
- CORE.md: note get_theme_system is reference-only by @escape-llc in #528
- ai-docs/examples: add a generated-file banner by @escape-llc in #530
- Split "Cutting a release" out of AGENTS.md into RELEASING.md by @escape-llc in #532
- WORKFLOW.md: add an "Expected tools" prerequisites section by @escape-llc in #534
- Fix stale .plans path, orphaned CONTRIBUTING.md, version ambiguity by @escape-llc in #537
- DataTable: fix column visibility menu, resize jump, and add auto/fixed column redistribution by @escape-llc in #540
- DataTable: fix auto-page-size overflow at compact density, resize indicator misalignment by @escape-llc in #543
- Bump eslint from 10.10.0 to 10.11.0 in /scripts in the minor-and-patch group by @dependabot[bot] in #546
- Bump vitest from 5.0.0 to 5.0.1 in /mcp in the vitest group by @dependabot[bot] in #547
- Bump vitest from 5.0.0 to 5.0.1 in /cli in the vitest group by @dependabot[bot] in #548
- Bump @vitest/coverage-v8 from 5.0.0 to 5.0.1 in /mcp in the minor-and-patch group by @dependabot[bot] in #549
- Bump @vitest/coverage-v8 from 5.0.0 to 5.0.1 in /cli in the minor-and-patch group by @dependabot[bot] in #550
- Bump the minor-and-patch group with 2 updates by @dependabot[bot] in #552
- DataTable: row-edit mode foundation (edit co-grid, hook, types) -- Part of #545 by @escape-llc in #554
- DataTable: wire editable into the demo, fix real layout bugs it surfaced -- Part of #545 by @escape-llc in #556
- DataTable: fold Edit into rowCommands, glyph Save/Cancel, fix infinite resize loop by @escape-llc in #558
- DataTable: edit co-grid visual/interaction polish by @escape-llc in #560
- e2e: fix csp-nonce Podman timeout, root-cause a webkit round-trip race by @escape-llc in #561
- DataTable: fix edit co-grid focus-ring clipping, vertical shift, dead space by @escape-llc in #562
- DataTable: fix edit co-grid vertical alignment, group Save/Reset/Cancel by @escape-llc in #566
- DataTable/Stepper: fix buttons losing contrast on hover by @escape-llc in #568
- DataTable: co-grid collapse toggle + bulk edit -- Closes #545 by @escape-llc in #571
- demo: add Calendar min-date cutoff, init date pickers to today -- Closes #377 by @escape-llc in #573
- demo: link the two live GitHub Pages consumer-app demos from the Overview tab -- Closes #380 by @escape-llc in #574
- Add treeshaking-review skill -- Part of #577 by @escape-llc in #578
- demo: event log panel -- millisecond timestamps, elide long payloads, expand UI -- Closes #579 by @escape-llc in #580
- theme: move slice editor controls out of *Slice.tsx into one consolidated file -- Closes #577 by @escape-llc in #582
- e2e: wait for a real aria-expanded signal before re-clicking Accordion's faq-1 trigger by @escape-llc in #585
- fix(DataTable): stop the co-grid toggle's Badge from changing the toolbar row's height by @escape-llc in #586
- DataTable: icon-only co-grid toggle with an always-visible count badge by @escape-llc in #590
- DataTable: icon-only density selector, Export CSV, and Columns buttons by @escape-llc in #592
- DataTable: adopt lucide-react for real SVG toolbar icons by @escape-llc in #596
- demo: upgrade Button glyphs to lucide-react, elide labels on real toolbar controls by @escape-llc in #599
- build: bump jsdom pin to 30.1.1, root-causing the 30.1.0 Radix menu failures -- Closes #493, #553 by @escape-llc in #601
- Combobox: per-chip color via chipColor(value) -- Closes #426 by @escape-llc in #602
- Input: leading/trailing sections + password reveal toggle -- Closes #606 by @escape-llc in #615
- fix: standalone Input/Textarea/Checkbox/Switch accept user input -- Closes #614 by @escape-llc in #616
- ci: pin the per-PR Gemini review to gemini-3-flash-preview -- Closes #541 by @escape-llc in #619
- RangeSlider: two-thumb range control (part 1 of #607) by @escape-llc in #618
- Visible model attribution: PR/summary footers +
- fix: CSP nonce for Radix Viewport styles (ScrollArea/Select) and react-aria's injected style -- Closes #625 by @escape-llc in #626
- perf: useToastActions() -- stable toast actions without the live list -- Closes #632 by @escape-llc in #633
- demo: one Encyclopedia page for every component (shadow board, catalog cards, Systems), plus Kits -- Closes #624 by @escape-llc in #627
- fix: DeferredContent reports the initial visibility state (#634) by @escape-llc in #637
- demo: each Encyclopedia demo's source code, generated from App.tsx (#638) by @escape-llc in #640
- feat: DateRangePicker and RangeCalendar (#607) by @escape-llc in #642
- demo: TabStrip page panels no longer draw over the Source section (#643) by @escape-llc in #646
- fix: Block takes no style/className, like every toolcrib component (#647) by @escape-llc in #648
- feat: Alert inline callout (#608) by @escape-llc in #653
- feat: Text primitive + demo sweep (#644) by @escape-llc in #656
- feat: stay-in-theme lint rules -- prefer-toolcrib-component, no-literal-style-values (#649, #650) by @escape-llc in #658
- chore: remove warnIfLegacyStyleProps; type-level style contract (#652) by @escape-llc in #660
- feat: Kbd keyboard key / shortcut hint (#609) by @escape-llc in #662
- feat: NumberField with steppers, clamping and locale formatting (#610) by @escape-llc in #664
- feat: CheckboxGroup, array-valued with maxSelected (#611) by @escape-llc in #666
- feat: OTPField one-time code / PIN input (#612) by @escape-llc in #669
- feat: toast promise helper, one toast from loading to done (#613) by @escape-llc in #672
- fix: typed Form seeds and defaults for the older controls (#667) by @escape-llc in #673
- demo: two-line shadow-board tiles, comment-free snippets, Blueprint (#678) by @escape-llc in #679
- demo: Fixtures board, last-visited marker, spec sheet with slots, spec-then-demo layout (#680, #681) by @escape-llc in #682
- demo: rewrite the Overview in the crib's vocabulary (#683) by @escape-llc in #685
- demo: spec sheet shows slots as a table; manifest gains slot props/descriptions (#686) by @escape-llc in #687
- feat: Base UI groundwork, switch-over 1/8 (#692) by @escape-llc in #693
- chore: filter generated files out of Gemini review and audit input (#694) by @escape-llc in #695
- feat: Modal, Popup, AlertDialog and Drawer on Base UI, switch-over 2/8 (#696) by @escape-llc in #706
- feat: Combobox and Select on Base UI Popover, switch-over 3/8 (#697) by @escape-llc in #710
- feat: Toast on Base UI, switch-over 4/8 (#698) by @escape-llc in #712
- feat: menus, Tooltip and HoverCard on Base UI, switch-over 5/8 (#700) by @escape-llc in #714
- feat: form controls on Base UI, switch-over 6/8 (#701) by @escape-llc in #716
- feat: structural components on Base UI, switch-over 7/8 (#702) by @escape-llc in #718
- feat: drop Radix, switch-over 8/8 (#703) by @escape-llc in #721
- feat: CommandPalette on react-aria Autocomplete, drop cmdk (#720) by @escape-llc in #723
- fix: overlays call onOpenChange once per open/close (#705) by @escape-llc in #725
- build(deps): Bump github/codeql-action/upload-sarif from 4.38.1 to 4.38.2 in the minor-and-patch group by @dependabot[bot] in #733
- build(deps): Bump typescript-eslint from 8.70.0 to 8.70.1 in /scripts in the minor-and-patch group by @dependabot[bot] in #728
- build(deps-dev): Bump the minor-and-patch group across 1 directory with 6 updates by @dependabot[bot] in #732
- build(deps-dev): Bump vitest from 5.0.1 to 5.0.2 in /cli in the vitest group by @dependabot[bot] in #727
- build(deps-dev): Bump vitest from 5.0.1 to 5.0.2 in /mcp in the vitest group by @dependabot[bot] in #729
- build(deps-dev): Bump @vitest/coverage-v8 from 5.0.1 to 5.0.2 in /cli in the minor-and-patch group by @dependabot[bot] in #730
- build(deps): Bump the minor-and-patch group in /mcp with 2 updates by @dependabot[bot] in #731
- feat: sliding tab indicator, popups from their trigger, lists fit the viewport (#734, #735, #736) by @escape-llc in #742
- fix(deps): refresh mcp/ and scripts/ lockfiles for OSV advisories (#753) by @escape-llc in #754
- chore: remove dead scripts/generate-storyboard.js (#756) by @escape-llc in #757
- fix: add the six untagged Form components to the manifest (#617, #741) by @escape-llc in #758
- ci: link-check accepts 429/503, which never mean a dead link (#763) by @escape-llc in #764
- demo: Encyclopedia entries for the six newly manifested Form components (#761) by @escape-llc in #762
- feat(demo): Encyclopedia becomes the Catalog, demo before docs, last-visited eye (#704) by @escape-llc in #766
- feat: Form controls take a ref; Checkbox onChange gets a boolean (#759) by @escape-llc in #769
- demo(catalog): tint the documentation under each demo (#770) by @escape-llc in #771
- test(e2e): pause every row's animation in the bubbled-animationend check (#775) by @escape-llc in #776
- fix(layout): Grid 'use client', Content squareCorners override, Content.Grow child shrink (#690) by @escape-llc in #774
- demo: remove the remaining Radix mentions the demo and Catalog show by @escape-llc in #781
- feat: Meter, a gauge for a value within a known range (#743) by @escape-llc in #779
- fix(demo): going back from a fixture no longer shoves the splitter up (#782) by @escape-llc in #783
- demo(catalog): a Spec Sheet card per tool; Props and Slots collapsers; placard by @escape-llc in #784
- fix(manifest): list props with quoted names, aria-label first (#780) by @escape-llc in #789
- chore: sweep the remaining Radix mentions out of the repo by @escape-llc in #790
- build(deps): Bump hono from 4.13.5 to 4.13.12 in /mcp by @dependabot[bot] in #765
- feat: Fieldset, a labelled group of form fields; disabled reaches every control (#744) by @escape-llc in #793
- fix(DataTable): a fast column drag no longer locks the neighbour at a stale width (#709) by @escape-llc in #796
- test(e2e): the sweep no longer lets one stuck menu cost a page ~45s (#722) by @escape-llc in #797
- fix(Form): disabled controls look disabled; a States taxonomy in the Catalog by @escape-llc in #798
- feat(TabStrip): Panel is content-sized by default; fill is opt-in (#643) by @escape-llc in #801
- test: cover DataTable's entrance-animation guard in jsdom, not a racy WebKit e2e (#802) by @escape-llc in #803
- ci(e2e): write the HTML report so a failed run's traces are kept by @escape-llc in #805
- ci(e2e): shard each browser into 3 so a WebKit run isn't 9-15 minutes by @escape-llc in #806
- fix(DatePicker): the focus ring hugs the field, and calendar day cells get one by @escape-llc in #807
- feat(demo): invalid examples in States for every control that has one by @escape-llc in #809
- ci: cancel superseded runs, skip jobs a PR can't affect, codecov on main only by @escape-llc in #810
- feat: Stat, a KPI tile with value, change and trend (#748) by @escape-llc in #808
- build(deps-dev): Bump source-map-js from 1.2.1 to 1.2.2 in /cli by @dependabot[bot] in #813
- build(deps-dev): Bump source-map-js from 1.2.1 to 1.2.2 by @dependabot[bot] in #814
- build(deps-dev): Bump source-map-js from 1.2.1 to 1.2.2 in /mcp by @dependabot[bot] in #815
- build(deps): Bump proxy-addr from 2.0.7 to 2.0.8 in /mcp by @dependabot[bot] in #816
- build(deps): Bump @modelcontextprotocol/sdk from 1.30.1 to 1.31.0 in /mcp by @dependabot[bot] in #817
- build(deps-dev): Bump vitest from 5.0.2 to 5.0.3 in /cli in the vitest group by @dependabot[bot] in #818
- build(deps-dev): Bump vitest from 5.0.2 to 5.0.3 in the vitest group by @dependabot[bot] in #819
- build(deps-dev): Bump vitest from 5.0.2 to 5.0.3 in /mcp in the vitest group by @dependabot[bot] in #820
- build(deps-dev): Bump @vitest/coverage-v8 from 5.0.2 to 5.0.3 in /cli in the minor-and-patch group by @dependabot[bot] in #821
- build(deps): Bump the minor-and-patch group in /scripts with 3 updates by @dependabot[bot] in #822
- build(deps): Bump the minor-and-patch group in /mcp with 2 updates by @dependabot[bot] in #823
- build(deps): Bump the minor-and-patch group across 1 directory with 11 updates by @dependabot[bot] in #827
- fix: weekly Gemini audit findings (#826, #804) by @escape-llc in #828
- feat: aria-label everywhere; accessible names for RadioGroup and FileUpload (#811, #812) by @escape-llc in #829
- chore: release v0.16.0 by @escape-llc in #832
- fix: no Base UI mixed-animation warning on Accordion/Collapsible (#833) by @escape-llc in #834
- fix(cli): merge stages new peerDependencies (#835) by @escape-llc in #836
- Bump toolcrib CLI to v0.9.0 by @escape-llc in #837
Full Changelog: v0.15.0...v0.16.0