FilterPanel
Sidebar filter rail: grouped checkbox options with count badges and a Clear header.
Add responsive and at and below drawerBreakpoint (default sm = 640) the docked panel collapses to a "Filters (n)" outline button that opens the same panel inside a start-edge drawer, so a phone keeps its width for the results; open / defaultOpen / onOpenChange drive the drawer for controlled use.
On iOS an option row marks a chosen filter the way an iOS list does: the label leads, the count follows, and a trailing check closes the row. The web and Android lead each row with the platform's selection checkbox.
Filters
1
Status
Active
128
Pending
12
Archived
2
Schema
Default
96
Custom
46
iOS
Filters
1
Status
128
12
2
Schema
96
46
Android
Filters
1
Status
128
12
2
Schema
96
46
Web
tsx
Default
Responsive drawer
Props
Do & Don’t
Group by facet
Don’t
Pour every option into one group; statuses and regions run together, and nothing says which choices narrow the same field.
Do
Filters
1
Status
128
14
Region
86
56
Give each facet its own titled group, so a reader sees which options narrow the same field.