Releases
v0.11.0
Compare
Sorry, something went wrong.
No results found
ibrmad
released this
31 Mar 12:33
Comprehensive UI quality pass
Hardening
Fix URL encoding bug in filter-utils (relative date values with colons)
Fix hsl() wrapping OKLCH in sidebar outline variant
Fix duplicate @layer base in globals.css
Add prefers-reduced-motion global rule
Add keyboard accessibility to DataTable clickable rows
Standardize focus rings on Dialog/Sheet close buttons
Add aria-labels to FilterBuilder, FilterMenu, FilterChip controls
Fix calendar overflow in FilterMenu popover
Add date value editing to FilterChip (was empty dropdown)
Auto-close DateRangePicker when both dates selected
Add searchable prop to Combobox
Replace span role=button with native button in Combobox badges
Replace hand-rolled spinners with Spinner component in dialogs
Add entityLabel prop to DeleteConfirmationDialog
Expand CopyButton touch target
Fix useIsMobile SSR hydration flash
Throttle useWindowSize via requestAnimationFrame
Alias use-sync-external-store/shim to React 19 native export (fixes Vite 8 / Rolldown require() error)
Normalization
Convert Tabs from forwardRef to function declarations + data-slot
Convert Descriptions from forwardRef to function components + CSS variable grid
Remove "use client" from all library files
Standardize icon sizing to size-N across 30+ instances
Use Button size="icon-sm" in DataTablePagination
Align StatusBadge border-radius with design system (rounded-md)
Replace transition-all with specific properties on Button, Switch, Tabs, InputOTP, Sidebar
Color & design
Brand-green hover/active states on sidebar items with left-edge indicator
Brand-tinted active Tabs trigger, selected table rows, Combobox items
Brand-green operator pill on FilterChip
Brand-tinted ::selection, thin scrollbars, smooth focus ring transitions
More tactile button active state
Responsive
Fix useIsMobile breakpoint 768→640 to match Tailwind sm:
Responsive grid utility for Descriptions (single column on mobile)
DateRangePicker: single month + stacked presets on mobile
Touch target expansion on FilterBuilder, FilterMenu, FilterChip, Pagination
Responsive padding on menu items, search inputs, SelectItem
Popover max-width viewport guard
Dialog responsive padding + close button min size
DetailRow stacks vertically on mobile
Copy & clarity
CopyButton: specific toast messages
ConfirmationDialog: default variant changed to non-destructive
DeleteConfirmationDialog: fix uppercase ambiguity, clearer label
FilterMenu: "Filter..." → "Search...", "Pick a date..." → "Custom date"
Sidebar: dynamic aria-label based on open/closed state
Simplification
Delete icons.tsx (dead Ant Design migration shim)
Remove StatusType danger/purple/cyan/pink
Remove FieldTitle (zero usages, data-slot collision)
Remove DataTable __chevron__ special-case
Rename Loader fullScreen → centered (deprecated alias kept)
Build
Upgrade Vite 7 → 8
Add use-sync-external-store ESM shim (fixes Rolldown CJS require() error)
Move react-hook-form from dependencies to peerDependencies
Docs
Add .impeccable.md design context
Update CLAUDE.md with design context reference
Breaking changes
StatusType removed: danger, purple, cyan, pink — use error or pass className
FieldTitle removed — use FieldLabel
icons.tsx deleted — import icons from lucide-react directly
react-hook-form moved to peerDependencies
DetailRow colon removed by default — pass showColon to restore
You can’t perform that action at this time.