Repository navigation
Conversation
Promotes the `demo/filter-rail` prototype into packages/core as a public component. It writes the same CollectionControl a DataTable reads, so there is no second filter engine. - Config sections (checkbox, radio, boolean, text, numberRange, date, dateRange, custom) + optional compound parts: Root, Header, ClearAll, Settings, SavedViews, Sections, Trigger, Sheet. - Hooks: useFilterRailCounts, useFilterRailLayout, useSavedViews, useFilterRailCompact. - Showcase page /showcase/filter-rail with three variants, docs outline, decision record and changeset. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ponent-da0c71 # Conflicts: # docs-manifest.json
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…veView) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ects - Narrow screens follow the Sidebar pattern: below lg the rail turns itself into a left sheet behind a "Filters" button. New FilterRail.Provider lets FilterRail.Trigger sit anywhere (e.g. a table toolbar); with no Trigger, Root renders a fallback button. Removes FilterRail.Sheet and the public useFilterRailCompact hook (breakpoint check is internal, like useIsMobile). - Move saved views out to a follow-up (branch feat/filter-rail-saved-views). - Fix CodeQL prototype pollution: null-prototype count maps, and countOf() reads only own keys so an option value like "constructor" counts as 0. - Replace useEffect prop mirroring in the text and number-range controls with render-time reconciliation; debounce text in the change handler, keeping keys typed after the input's own commit. - Number range ignores invalid input and swaps ends typed the wrong way round. - Value search appears whenever a checkbox list is long enough to truncate. - Layout hook re-hydrates on key change during render, not in an effect. - Add type tests for field typing and Root/Provider config. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`<Layout fill>` bounded its rows at every width, so below the breakpoint where columns stack (lg for two, xl for three) every column but the last got zero height and the next column painted over it. The fill docs already say a stacked layout scrolls as usual; this makes the code match. The fill bound now applies only from the breakpoint where columns sit side by side, and `data-layout-fill` carries that breakpoint (always | lg | xl) so the AppShell content area clips only while the page is actually bounded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ponent-da0c71 # Conflicts: # docs-manifest.json # examples/vite-app/src/App.tsx
# Conflicts: # docs-manifest.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft / spike, not for merge. Split out of #585, where counts were removed by team agreement (2026-10-13).
Goal: find out whether FilterRail can show "how many rows would this option return" on real TailorDB data.
Questions to answer:
What's here: the client-side prototype from #585:
countsprop,useFilterRailCounts(in-memory faceting), zero-count disabling, the empty-result hint, and count-based sort.Outcome: a recommendation (feasible as-is / needs cache tables / not worth it) before counts come back to FilterRail as an optional prop.
🤖 Generated with Claude Code