gladvn 0.2.22 → 0.2.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +70 -58
- package/bin/cli.js +352 -150
- package/llms.txt +7 -5
- package/package.json +14 -26
- package/src/blocks/auth-card.tsx +104 -0
- package/src/blocks/auth-dialog.tsx +116 -0
- package/src/blocks/auth-recovery.tsx +61 -0
- package/src/blocks/auth-split.tsx +132 -0
- package/src/blocks/dashboard.tsx +182 -0
- package/src/blocks/settings.tsx +104 -0
- package/src/components/macro/accordion-preset.tsx +2 -1
- package/src/components/macro/alert-dialog-preset.tsx +3 -2
- package/src/components/macro/alert-preset.tsx +2 -1
- package/src/components/macro/avatar-preset.tsx +2 -1
- package/src/components/macro/breadcrumb-preset.tsx +2 -1
- package/src/components/macro/card-preset.tsx +2 -1
- package/src/components/macro/carousel-preset.tsx +2 -1
- package/src/components/macro/checkbox-preset.tsx +2 -1
- package/src/components/macro/combobox-preset.tsx +5 -3
- package/src/components/macro/command-preset.tsx +7 -4
- package/src/components/macro/date-picker.tsx +3 -2
- package/src/components/macro/dialog-preset.tsx +3 -2
- package/src/components/macro/empty-preset.tsx +2 -1
- package/src/components/macro/field-preset.tsx +2 -1
- package/src/components/macro/input-otp-preset.tsx +2 -1
- package/src/components/macro/input-preset.tsx +2 -1
- package/src/components/macro/pagination-preset.tsx +2 -1
- package/src/components/macro/progress-preset.tsx +2 -1
- package/src/components/macro/select-preset.tsx +3 -2
- package/src/components/macro/slider-preset.tsx +2 -1
- package/src/components/macro/switch-preset.tsx +2 -1
- package/src/components/macro/tabs-preset.tsx +2 -1
- package/src/components/micro/accordion.test.tsx +96 -0
- package/src/components/micro/alert-dialog.tsx +1 -1
- package/src/components/micro/alert.test.tsx +77 -0
- package/src/components/micro/avatar.tsx +1 -1
- package/src/components/micro/badge.test.tsx +57 -0
- package/src/components/micro/breadcrumb.tsx +1 -1
- package/src/components/micro/button.test.tsx +101 -4
- package/src/components/micro/card.test.tsx +54 -0
- package/src/components/micro/card.tsx +1 -1
- package/src/components/micro/carousel.tsx +1 -1
- package/src/components/micro/chart.tsx +1 -1
- package/src/components/micro/checkbox.test.tsx +92 -0
- package/src/components/micro/combobox.tsx +1 -1
- package/src/components/micro/command.tsx +1 -1
- package/src/components/micro/context-menu.tsx +1 -1
- package/src/components/micro/dialog.test.tsx +127 -0
- package/src/components/micro/dialog.tsx +1 -1
- package/src/components/micro/direction.tsx +1 -1
- package/src/components/micro/drawer.tsx +2 -2
- package/src/components/micro/dropdown-menu.test.tsx +132 -0
- package/src/components/micro/dropdown-menu.tsx +1 -1
- package/src/components/micro/empty.tsx +1 -1
- package/src/components/micro/field.tsx +1 -1
- package/src/components/micro/input-group.tsx +1 -1
- package/src/components/micro/input.test.tsx +95 -0
- package/src/components/micro/item.tsx +1 -1
- package/src/components/micro/menubar.tsx +1 -1
- package/src/components/micro/navigation-menu.tsx +1 -1
- package/src/components/micro/pagination.tsx +1 -1
- package/src/components/micro/popover.test.tsx +83 -0
- package/src/components/micro/popover.tsx +1 -1
- package/src/components/micro/progress.tsx +1 -1
- package/src/components/micro/select.test.tsx +122 -0
- package/src/components/micro/select.tsx +1 -1
- package/src/components/micro/sheet.test.tsx +122 -0
- package/src/components/micro/sheet.tsx +1 -1
- package/src/components/micro/sidebar.tsx +1 -1
- package/src/components/micro/switch.test.tsx +108 -0
- package/src/components/micro/table.tsx +1 -1
- package/src/components/micro/tabs.test.tsx +90 -0
- package/src/components/micro/tooltip.test.tsx +107 -0
- package/src/components/micro/tooltip.tsx +1 -1
- package/src/dev/data.ts +8 -0
- package/src/dev/main.tsx +4 -0
- package/src/dev/showcase/accordion.tsx +4 -2
- package/src/dev/showcase/alert-dialog.tsx +7 -4
- package/src/dev/showcase/alert.tsx +6 -3
- package/src/dev/showcase/aspect-ratio.tsx +2 -1
- package/src/dev/showcase/avatar.tsx +6 -3
- package/src/dev/showcase/badge.tsx +2 -1
- package/src/dev/showcase/breadcrumb.tsx +7 -4
- package/src/dev/showcase/button.tsx +2 -1
- package/src/dev/showcase/calendar.tsx +2 -1
- package/src/dev/showcase/card.tsx +4 -2
- package/src/dev/showcase/carousel.tsx +4 -2
- package/src/dev/showcase/chart.tsx +4 -2
- package/src/dev/showcase/checkbox.tsx +4 -2
- package/src/dev/showcase/collapsible.tsx +4 -2
- package/src/dev/showcase/combobox.tsx +9 -5
- package/src/dev/showcase/command.tsx +6 -3
- package/src/dev/showcase/context-menu.tsx +5 -3
- package/src/dev/showcase/dialog.tsx +5 -3
- package/src/dev/showcase/drawer.tsx +5 -3
- package/src/dev/showcase/dropdown-menu.tsx +7 -4
- package/src/dev/showcase/empty.tsx +6 -3
- package/src/dev/showcase/hover-card.tsx +7 -4
- package/src/dev/showcase/input-group.tsx +6 -3
- package/src/dev/showcase/input-otp.tsx +6 -3
- package/src/dev/showcase/input.tsx +6 -3
- package/src/dev/showcase/item.tsx +4 -2
- package/src/dev/showcase/kbd.tsx +10 -6
- package/src/dev/showcase/label.tsx +2 -1
- package/src/dev/showcase/menubar.tsx +5 -3
- package/src/dev/showcase/navigation-menu.tsx +5 -3
- package/src/dev/showcase/overview.tsx +9 -5
- package/src/dev/showcase/pagination.tsx +4 -2
- package/src/dev/showcase/popover.tsx +5 -3
- package/src/dev/showcase/progress.tsx +4 -2
- package/src/dev/showcase/radio-group.tsx +2 -1
- package/src/dev/showcase/resizable.tsx +4 -2
- package/src/dev/showcase/scroll-area.tsx +2 -1
- package/src/dev/showcase/select.tsx +7 -4
- package/src/dev/showcase/separator.tsx +2 -1
- package/src/dev/showcase/sheet.tsx +5 -3
- package/src/dev/showcase/sidebar.tsx +4 -2
- package/src/dev/showcase/skeleton.tsx +2 -1
- package/src/dev/showcase/slider.tsx +6 -3
- package/src/dev/showcase/sonner.tsx +2 -1
- package/src/dev/showcase/spinner.tsx +2 -1
- package/src/dev/showcase/switch.tsx +2 -1
- package/src/dev/showcase/table.tsx +4 -2
- package/src/dev/showcase/tabs.tsx +4 -2
- package/src/dev/showcase/textarea.tsx +6 -3
- package/src/dev/showcase/toast.tsx +2 -1
- package/src/dev/showcase/toggle-group.tsx +6 -3
- package/src/dev/showcase/toggle.tsx +2 -1
- package/src/dev/showcase/tooltip.tsx +5 -3
- package/src/dev/showcase/why.tsx +271 -0
- package/src/hooks/use-mobile.test.ts +72 -0
- package/src/lib/utils.test.ts +26 -10
- package/src/styles/gladvn.css +0 -1
- package/src/styles/tokens.css +4 -0
- package/dist/components/macro/accordion-preset.d.ts +0 -14
- package/dist/components/macro/accordion-preset.d.ts.map +0 -1
- package/dist/components/macro/alert-dialog-preset.d.ts +0 -26
- package/dist/components/macro/alert-dialog-preset.d.ts.map +0 -1
- package/dist/components/macro/alert-preset.d.ts +0 -14
- package/dist/components/macro/alert-preset.d.ts.map +0 -1
- package/dist/components/macro/avatar-preset.d.ts +0 -11
- package/dist/components/macro/avatar-preset.d.ts.map +0 -1
- package/dist/components/macro/breadcrumb-preset.d.ts +0 -12
- package/dist/components/macro/breadcrumb-preset.d.ts.map +0 -1
- package/dist/components/macro/card-preset.d.ts +0 -10
- package/dist/components/macro/card-preset.d.ts.map +0 -1
- package/dist/components/macro/carousel-preset.d.ts +0 -18
- package/dist/components/macro/carousel-preset.d.ts.map +0 -1
- package/dist/components/macro/checkbox-preset.d.ts +0 -14
- package/dist/components/macro/checkbox-preset.d.ts.map +0 -1
- package/dist/components/macro/combobox-preset.d.ts +0 -27
- package/dist/components/macro/combobox-preset.d.ts.map +0 -1
- package/dist/components/macro/command-preset.d.ts +0 -16
- package/dist/components/macro/command-preset.d.ts.map +0 -1
- package/dist/components/macro/date-picker.d.ts +0 -62
- package/dist/components/macro/date-picker.d.ts.map +0 -1
- package/dist/components/macro/dialog-preset.d.ts +0 -24
- package/dist/components/macro/dialog-preset.d.ts.map +0 -1
- package/dist/components/macro/empty-preset.d.ts +0 -15
- package/dist/components/macro/empty-preset.d.ts.map +0 -1
- package/dist/components/macro/field-preset.d.ts +0 -15
- package/dist/components/macro/field-preset.d.ts.map +0 -1
- package/dist/components/macro/index.d.ts +0 -22
- package/dist/components/macro/index.d.ts.map +0 -1
- package/dist/components/macro/input-otp-preset.d.ts +0 -19
- package/dist/components/macro/input-otp-preset.d.ts.map +0 -1
- package/dist/components/macro/input-preset.d.ts +0 -21
- package/dist/components/macro/input-preset.d.ts.map +0 -1
- package/dist/components/macro/pagination-preset.d.ts +0 -13
- package/dist/components/macro/pagination-preset.d.ts.map +0 -1
- package/dist/components/macro/progress-preset.d.ts +0 -10
- package/dist/components/macro/progress-preset.d.ts.map +0 -1
- package/dist/components/macro/radio-group-preset.d.ts +0 -22
- package/dist/components/macro/radio-group-preset.d.ts.map +0 -1
- package/dist/components/macro/select-preset.d.ts +0 -42
- package/dist/components/macro/select-preset.d.ts.map +0 -1
- package/dist/components/macro/slider-preset.d.ts +0 -12
- package/dist/components/macro/slider-preset.d.ts.map +0 -1
- package/dist/components/macro/switch-preset.d.ts +0 -12
- package/dist/components/macro/switch-preset.d.ts.map +0 -1
- package/dist/components/macro/tabs-preset.d.ts +0 -17
- package/dist/components/macro/tabs-preset.d.ts.map +0 -1
- package/dist/components/macro/textarea-preset.d.ts +0 -17
- package/dist/components/macro/textarea-preset.d.ts.map +0 -1
- package/dist/components/micro/accordion.d.ts +0 -15
- package/dist/components/micro/accordion.d.ts.map +0 -1
- package/dist/components/micro/alert-dialog.d.ts +0 -33
- package/dist/components/micro/alert-dialog.d.ts.map +0 -1
- package/dist/components/micro/alert.d.ts +0 -35
- package/dist/components/micro/alert.d.ts.map +0 -1
- package/dist/components/micro/aspect-ratio.d.ts +0 -20
- package/dist/components/micro/aspect-ratio.d.ts.map +0 -1
- package/dist/components/micro/avatar.d.ts +0 -23
- package/dist/components/micro/avatar.d.ts.map +0 -1
- package/dist/components/micro/badge.d.ts +0 -23
- package/dist/components/micro/badge.d.ts.map +0 -1
- package/dist/components/micro/breadcrumb.d.ts +0 -31
- package/dist/components/micro/breadcrumb.d.ts.map +0 -1
- package/dist/components/micro/button.d.ts +0 -46
- package/dist/components/micro/button.d.ts.map +0 -1
- package/dist/components/micro/calendar.d.ts +0 -28
- package/dist/components/micro/calendar.d.ts.map +0 -1
- package/dist/components/micro/card.d.ts +0 -28
- package/dist/components/micro/card.d.ts.map +0 -1
- package/dist/components/micro/carousel.d.ts +0 -29
- package/dist/components/micro/carousel.d.ts.map +0 -1
- package/dist/components/micro/chart.d.ts +0 -49
- package/dist/components/micro/chart.d.ts.map +0 -1
- package/dist/components/micro/checkbox.d.ts +0 -17
- package/dist/components/micro/checkbox.d.ts.map +0 -1
- package/dist/components/micro/collapsible.d.ts +0 -15
- package/dist/components/micro/collapsible.d.ts.map +0 -1
- package/dist/components/micro/combobox.d.ts +0 -34
- package/dist/components/micro/combobox.d.ts.map +0 -1
- package/dist/components/micro/command.d.ts +0 -79
- package/dist/components/micro/command.d.ts.map +0 -1
- package/dist/components/micro/context-menu.d.ts +0 -58
- package/dist/components/micro/context-menu.d.ts.map +0 -1
- package/dist/components/micro/dialog.d.ts +0 -15
- package/dist/components/micro/dialog.d.ts.map +0 -1
- package/dist/components/micro/direction.d.ts +0 -2
- package/dist/components/micro/direction.d.ts.map +0 -1
- package/dist/components/micro/drawer.d.ts +0 -18
- package/dist/components/micro/drawer.d.ts.map +0 -1
- package/dist/components/micro/dropdown-menu.d.ts +0 -40
- package/dist/components/micro/dropdown-menu.d.ts.map +0 -1
- package/dist/components/micro/empty.d.ts +0 -30
- package/dist/components/micro/empty.d.ts.map +0 -1
- package/dist/components/micro/field.d.ts +0 -29
- package/dist/components/micro/field.d.ts.map +0 -1
- package/dist/components/micro/hover-card.d.ts +0 -18
- package/dist/components/micro/hover-card.d.ts.map +0 -1
- package/dist/components/micro/input-group.d.ts +0 -17
- package/dist/components/micro/input-group.d.ts.map +0 -1
- package/dist/components/micro/input-otp.d.ts +0 -44
- package/dist/components/micro/input-otp.d.ts.map +0 -1
- package/dist/components/micro/input.d.ts +0 -29
- package/dist/components/micro/input.d.ts.map +0 -1
- package/dist/components/micro/item.d.ts +0 -31
- package/dist/components/micro/item.d.ts.map +0 -1
- package/dist/components/micro/kbd.d.ts +0 -9
- package/dist/components/micro/kbd.d.ts.map +0 -1
- package/dist/components/micro/label.d.ts +0 -15
- package/dist/components/micro/label.d.ts.map +0 -1
- package/dist/components/micro/menubar.d.ts +0 -40
- package/dist/components/micro/menubar.d.ts.map +0 -1
- package/dist/components/micro/navigation-menu.d.ts +0 -26
- package/dist/components/micro/navigation-menu.d.ts.map +0 -1
- package/dist/components/micro/pagination.d.ts +0 -33
- package/dist/components/micro/pagination.d.ts.map +0 -1
- package/dist/components/micro/popover.d.ts +0 -24
- package/dist/components/micro/popover.d.ts.map +0 -1
- package/dist/components/micro/progress.d.ts +0 -19
- package/dist/components/micro/progress.d.ts.map +0 -1
- package/dist/components/micro/radio-group.d.ts +0 -13
- package/dist/components/micro/radio-group.d.ts.map +0 -1
- package/dist/components/micro/resizable.d.ts +0 -12
- package/dist/components/micro/resizable.d.ts.map +0 -1
- package/dist/components/micro/scroll-area.d.ts +0 -12
- package/dist/components/micro/scroll-area.d.ts.map +0 -1
- package/dist/components/micro/select.d.ts +0 -22
- package/dist/components/micro/select.d.ts.map +0 -1
- package/dist/components/micro/separator.d.ts +0 -9
- package/dist/components/micro/separator.d.ts.map +0 -1
- package/dist/components/micro/sheet.d.ts +0 -17
- package/dist/components/micro/sheet.d.ts.map +0 -1
- package/dist/components/micro/sidebar.d.ts +0 -28
- package/dist/components/micro/sidebar.d.ts.map +0 -1
- package/dist/components/micro/skeleton.d.ts +0 -16
- package/dist/components/micro/skeleton.d.ts.map +0 -1
- package/dist/components/micro/slider.d.ts +0 -21
- package/dist/components/micro/slider.d.ts.map +0 -1
- package/dist/components/micro/sonner.d.ts +0 -5
- package/dist/components/micro/sonner.d.ts.map +0 -1
- package/dist/components/micro/spinner.d.ts +0 -21
- package/dist/components/micro/spinner.d.ts.map +0 -1
- package/dist/components/micro/switch.d.ts +0 -13
- package/dist/components/micro/switch.d.ts.map +0 -1
- package/dist/components/micro/table.d.ts +0 -17
- package/dist/components/micro/table.d.ts.map +0 -1
- package/dist/components/micro/tabs.d.ts +0 -13
- package/dist/components/micro/tabs.d.ts.map +0 -1
- package/dist/components/micro/textarea.d.ts +0 -24
- package/dist/components/micro/textarea.d.ts.map +0 -1
- package/dist/components/micro/theme-provider.d.ts +0 -76
- package/dist/components/micro/theme-provider.d.ts.map +0 -1
- package/dist/components/micro/toggle-group.d.ts +0 -22
- package/dist/components/micro/toggle-group.d.ts.map +0 -1
- package/dist/components/micro/toggle.d.ts +0 -16
- package/dist/components/micro/toggle.d.ts.map +0 -1
- package/dist/components/micro/tooltip.d.ts +0 -21
- package/dist/components/micro/tooltip.d.ts.map +0 -1
- package/dist/dev/App.d.ts +0 -3
- package/dist/dev/App.d.ts.map +0 -1
- package/dist/dev/components/GladvnLogo.d.ts +0 -10
- package/dist/dev/components/GladvnLogo.d.ts.map +0 -1
- package/dist/dev/components/code-highlighter.d.ts +0 -5
- package/dist/dev/components/code-highlighter.d.ts.map +0 -1
- package/dist/dev/components/dev-context.d.ts +0 -12
- package/dist/dev/components/dev-context.d.ts.map +0 -1
- package/dist/dev/components/showcase.d.ts +0 -72
- package/dist/dev/components/showcase.d.ts.map +0 -1
- package/dist/dev/data.d.ts +0 -68
- package/dist/dev/data.d.ts.map +0 -1
- package/dist/dev/main.d.ts +0 -1
- package/dist/dev/main.d.ts.map +0 -1
- package/dist/dev/sections/buttons.d.ts +0 -2
- package/dist/dev/sections/buttons.d.ts.map +0 -1
- package/dist/dev/sections/display.d.ts +0 -2
- package/dist/dev/sections/display.d.ts.map +0 -1
- package/dist/dev/sections/feedback.d.ts +0 -2
- package/dist/dev/sections/feedback.d.ts.map +0 -1
- package/dist/dev/sections/forms.d.ts +0 -2
- package/dist/dev/sections/forms.d.ts.map +0 -1
- package/dist/dev/sections/interactive.d.ts +0 -2
- package/dist/dev/sections/interactive.d.ts.map +0 -1
- package/dist/dev/sections/overview.d.ts +0 -2
- package/dist/dev/sections/overview.d.ts.map +0 -1
- package/dist/dev/showcase/accordion.d.ts +0 -2
- package/dist/dev/showcase/accordion.d.ts.map +0 -1
- package/dist/dev/showcase/alert-dialog.d.ts +0 -2
- package/dist/dev/showcase/alert-dialog.d.ts.map +0 -1
- package/dist/dev/showcase/alert.d.ts +0 -2
- package/dist/dev/showcase/alert.d.ts.map +0 -1
- package/dist/dev/showcase/aspect-ratio.d.ts +0 -2
- package/dist/dev/showcase/aspect-ratio.d.ts.map +0 -1
- package/dist/dev/showcase/avatar.d.ts +0 -2
- package/dist/dev/showcase/avatar.d.ts.map +0 -1
- package/dist/dev/showcase/badge.d.ts +0 -2
- package/dist/dev/showcase/badge.d.ts.map +0 -1
- package/dist/dev/showcase/breadcrumb.d.ts +0 -2
- package/dist/dev/showcase/breadcrumb.d.ts.map +0 -1
- package/dist/dev/showcase/button.d.ts +0 -2
- package/dist/dev/showcase/button.d.ts.map +0 -1
- package/dist/dev/showcase/calendar.d.ts +0 -2
- package/dist/dev/showcase/calendar.d.ts.map +0 -1
- package/dist/dev/showcase/card.d.ts +0 -2
- package/dist/dev/showcase/card.d.ts.map +0 -1
- package/dist/dev/showcase/carousel.d.ts +0 -2
- package/dist/dev/showcase/carousel.d.ts.map +0 -1
- package/dist/dev/showcase/chart.d.ts +0 -2
- package/dist/dev/showcase/chart.d.ts.map +0 -1
- package/dist/dev/showcase/checkbox.d.ts +0 -2
- package/dist/dev/showcase/checkbox.d.ts.map +0 -1
- package/dist/dev/showcase/collapsible.d.ts +0 -3
- package/dist/dev/showcase/collapsible.d.ts.map +0 -1
- package/dist/dev/showcase/combobox.d.ts +0 -2
- package/dist/dev/showcase/combobox.d.ts.map +0 -1
- package/dist/dev/showcase/command.d.ts +0 -2
- package/dist/dev/showcase/command.d.ts.map +0 -1
- package/dist/dev/showcase/context-menu.d.ts +0 -2
- package/dist/dev/showcase/context-menu.d.ts.map +0 -1
- package/dist/dev/showcase/dialog.d.ts +0 -2
- package/dist/dev/showcase/dialog.d.ts.map +0 -1
- package/dist/dev/showcase/drawer.d.ts +0 -2
- package/dist/dev/showcase/drawer.d.ts.map +0 -1
- package/dist/dev/showcase/dropdown-menu.d.ts +0 -2
- package/dist/dev/showcase/dropdown-menu.d.ts.map +0 -1
- package/dist/dev/showcase/empty.d.ts +0 -2
- package/dist/dev/showcase/empty.d.ts.map +0 -1
- package/dist/dev/showcase/hover-card.d.ts +0 -2
- package/dist/dev/showcase/hover-card.d.ts.map +0 -1
- package/dist/dev/showcase/input-group.d.ts +0 -2
- package/dist/dev/showcase/input-group.d.ts.map +0 -1
- package/dist/dev/showcase/input-otp.d.ts +0 -2
- package/dist/dev/showcase/input-otp.d.ts.map +0 -1
- package/dist/dev/showcase/input.d.ts +0 -2
- package/dist/dev/showcase/input.d.ts.map +0 -1
- package/dist/dev/showcase/item.d.ts +0 -2
- package/dist/dev/showcase/item.d.ts.map +0 -1
- package/dist/dev/showcase/kbd.d.ts +0 -2
- package/dist/dev/showcase/kbd.d.ts.map +0 -1
- package/dist/dev/showcase/label.d.ts +0 -2
- package/dist/dev/showcase/label.d.ts.map +0 -1
- package/dist/dev/showcase/menubar.d.ts +0 -2
- package/dist/dev/showcase/menubar.d.ts.map +0 -1
- package/dist/dev/showcase/navigation-menu.d.ts +0 -3
- package/dist/dev/showcase/navigation-menu.d.ts.map +0 -1
- package/dist/dev/showcase/overview.d.ts +0 -2
- package/dist/dev/showcase/overview.d.ts.map +0 -1
- package/dist/dev/showcase/pagination.d.ts +0 -2
- package/dist/dev/showcase/pagination.d.ts.map +0 -1
- package/dist/dev/showcase/popover.d.ts +0 -2
- package/dist/dev/showcase/popover.d.ts.map +0 -1
- package/dist/dev/showcase/progress.d.ts +0 -2
- package/dist/dev/showcase/progress.d.ts.map +0 -1
- package/dist/dev/showcase/radio-group.d.ts +0 -2
- package/dist/dev/showcase/radio-group.d.ts.map +0 -1
- package/dist/dev/showcase/resizable.d.ts +0 -2
- package/dist/dev/showcase/resizable.d.ts.map +0 -1
- package/dist/dev/showcase/scroll-area.d.ts +0 -2
- package/dist/dev/showcase/scroll-area.d.ts.map +0 -1
- package/dist/dev/showcase/select.d.ts +0 -2
- package/dist/dev/showcase/select.d.ts.map +0 -1
- package/dist/dev/showcase/separator.d.ts +0 -2
- package/dist/dev/showcase/separator.d.ts.map +0 -1
- package/dist/dev/showcase/sheet.d.ts +0 -2
- package/dist/dev/showcase/sheet.d.ts.map +0 -1
- package/dist/dev/showcase/sidebar.d.ts +0 -2
- package/dist/dev/showcase/sidebar.d.ts.map +0 -1
- package/dist/dev/showcase/skeleton.d.ts +0 -2
- package/dist/dev/showcase/skeleton.d.ts.map +0 -1
- package/dist/dev/showcase/slider.d.ts +0 -2
- package/dist/dev/showcase/slider.d.ts.map +0 -1
- package/dist/dev/showcase/sonner.d.ts +0 -2
- package/dist/dev/showcase/sonner.d.ts.map +0 -1
- package/dist/dev/showcase/spinner.d.ts +0 -2
- package/dist/dev/showcase/spinner.d.ts.map +0 -1
- package/dist/dev/showcase/switch.d.ts +0 -2
- package/dist/dev/showcase/switch.d.ts.map +0 -1
- package/dist/dev/showcase/table.d.ts +0 -2
- package/dist/dev/showcase/table.d.ts.map +0 -1
- package/dist/dev/showcase/tabs.d.ts +0 -2
- package/dist/dev/showcase/tabs.d.ts.map +0 -1
- package/dist/dev/showcase/textarea.d.ts +0 -2
- package/dist/dev/showcase/textarea.d.ts.map +0 -1
- package/dist/dev/showcase/toast.d.ts +0 -2
- package/dist/dev/showcase/toast.d.ts.map +0 -1
- package/dist/dev/showcase/toggle-group.d.ts +0 -2
- package/dist/dev/showcase/toggle-group.d.ts.map +0 -1
- package/dist/dev/showcase/toggle.d.ts +0 -2
- package/dist/dev/showcase/toggle.d.ts.map +0 -1
- package/dist/dev/showcase/tooltip.d.ts +0 -2
- package/dist/dev/showcase/tooltip.d.ts.map +0 -1
- package/dist/hooks/use-controllable-state.d.ts +0 -14
- package/dist/hooks/use-controllable-state.d.ts.map +0 -1
- package/dist/hooks/use-mobile.d.ts +0 -2
- package/dist/hooks/use-mobile.d.ts.map +0 -1
- package/dist/index.cjs +0 -5099
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -58
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4753
- package/dist/index.js.map +0 -1
- package/dist/lib/types.d.ts +0 -4
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/utils.d.ts +0 -3
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/preset.d.ts +0 -18
- package/dist/preset.d.ts.map +0 -1
- package/dist/test/setup.d.ts +0 -1
- package/dist/test/setup.d.ts.map +0 -1
- package/scripts/add-icononly-prop.ts +0 -84
- package/scripts/audit-best-practices.ts +0 -114
- package/scripts/audit-showcase.ts +0 -262
- package/scripts/audit-showcases.ts +0 -83
- package/scripts/clean-imports.ts +0 -21
- package/scripts/count_missing.ts +0 -24
- package/scripts/find-css-vars.ts +0 -62
- package/scripts/fix-portals.ts +0 -90
- package/scripts/format-codestrings.ts +0 -87
- package/scripts/full-audit.ts +0 -89
- package/scripts/merge-components.cjs +0 -65
- package/scripts/merge-components.js +0 -64
- package/scripts/optimize-barrel.ts +0 -116
- package/scripts/organize-imports.ts +0 -21
- package/scripts/refactor_divs.ts +0 -39
- package/scripts/regex-format.cjs +0 -67
- package/scripts/remove_div_wrappers.ts +0 -17
- package/scripts/tmp.tsx +0 -25
- package/scripts/update-gaps.ts +0 -83
- package/scripts/update_showcase_codestrings.ts +0 -87
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/lib/utils.ts","../src/hooks/use-mobile.ts","../src/components/micro/accordion.tsx","../src/components/micro/alert.tsx","../src/components/micro/button.tsx","../src/components/micro/theme-provider.tsx","../src/components/micro/alert-dialog.tsx","../src/components/micro/aspect-ratio.tsx","../src/components/micro/avatar.tsx","../src/components/micro/badge.tsx","../src/components/micro/breadcrumb.tsx","../src/components/micro/select.tsx","../src/components/micro/calendar.tsx","../src/components/micro/card.tsx","../src/components/micro/carousel.tsx","../src/components/micro/chart.tsx","../src/components/micro/checkbox.tsx","../src/components/micro/collapsible.tsx","../src/components/micro/input-group.tsx","../src/components/micro/combobox.tsx","../src/components/micro/command.tsx","../src/components/micro/context-menu.tsx","../src/components/micro/dialog.tsx","../src/components/micro/direction.tsx","../src/components/micro/drawer.tsx","../src/components/micro/dropdown-menu.tsx","../src/components/micro/empty.tsx","../src/components/micro/label.tsx","../src/components/micro/separator.tsx","../src/components/micro/field.tsx","../src/components/micro/hover-card.tsx","../src/components/micro/input.tsx","../src/components/micro/input-otp.tsx","../src/components/micro/item.tsx","../src/components/micro/kbd.tsx","../src/components/micro/menubar.tsx","../src/components/micro/navigation-menu.tsx","../src/components/micro/pagination.tsx","../src/components/micro/popover.tsx","../src/components/micro/progress.tsx","../src/components/micro/radio-group.tsx","../src/components/micro/resizable.tsx","../src/components/micro/scroll-area.tsx","../src/components/micro/sheet.tsx","../src/components/micro/sidebar.tsx","../src/components/micro/skeleton.tsx","../src/components/micro/slider.tsx","../src/components/micro/spinner.tsx","../src/components/micro/sonner.tsx","../src/components/micro/switch.tsx","../src/components/micro/table.tsx","../src/components/micro/tabs.tsx","../src/components/micro/textarea.tsx","../src/components/micro/toggle.tsx","../src/components/micro/toggle-group.tsx","../src/components/micro/tooltip.tsx"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Accordion = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Root>,\n AccordionPrimitive.Root.Props\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Root\n ref={ref}\n data-slot=\"accordion\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n));\nAccordion.displayName = \"Accordion\";\n\nconst AccordionItem = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Item>,\n AccordionPrimitive.Item.Props\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b not-last:border-border\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Trigger>,\n AccordionPrimitive.Trigger.Props\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className={cn(\"flex\", className)}>\n <AccordionPrimitive.Trigger\n ref={ref}\n data-slot=\"accordion-trigger\"\n className=\"group/accordion-trigger relative flex flex-1 items-start justify-between gap-4 rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-colors outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50\"\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"size-4 text-muted-foreground pointer-events-none shrink-0 transition-[rotate] duration-200 group-data-panel-open/accordion-trigger:rotate-180\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nconst AccordionContent = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Panel>,\n AccordionPrimitive.Panel.Props\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Panel\n ref={ref}\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm h-(--accordion-panel-height) transition-[height] duration-200 ease-out data-starting-style:h-0 data-ending-style:h-0\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Panel>\n));\nAccordionContent.displayName = \"AccordionContent\";\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\n// CSS Delegated Logic:\n// - KHÔNG CÒN MAGIC CSS: Mọi logic layout (như khoảng cách icon, padding action) đều được uỷ quyền cho Macro xử lý.\nconst alertVariants = cva(\n \"group/alert relative rounded-lg border border-border text-left bg-card text-card-foreground\",\n {\n variants: {\n color: {\n info: \"border-info/15 bg-info/5 text-info\",\n destructive: \"border-destructive/15 bg-destructive/5 text-destructive\",\n success: \"border-success/15 bg-success/5 text-success\",\n warning: \"border-warning/15 bg-warning/5 text-warning\",\n },\n size: {\n sm: \"px-2 py-1.5 text-xs gap-x-1.5\",\n md: \"px-2.5 py-2 text-sm gap-x-2\",\n lg: \"px-3 py-2.5 text-base gap-x-2.5\",\n },\n },\n },\n);\n\n/**\n * @description Displays a callout for user attention.\n * @requires AlertTitle, AlertDescription\n * @example\n * <Alert variant=\"destructive\">\n * <AlertTitle>Error</AlertTitle>\n * <AlertDescription>Something went wrong.</AlertDescription>\n * </Alert>\n */\nexport type AlertProps = Omit<React.ComponentProps<\"div\">, \"color\"> &\n VariantProps<typeof alertVariants>;\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(\n { className, color = \"info\", size = \"md\", ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n data-slot=\"alert\"\n data-size={size}\n data-color={color}\n role=\"alert\"\n className={cn(alertVariants({ color, size }), className)}\n {...props}\n />\n );\n});\nAlert.displayName = \"Alert\";\n\nexport type AlertTitleProps = React.ComponentProps<\"div\">;\n\nconst AlertTitle = React.forwardRef<HTMLDivElement, AlertTitleProps>(\n function AlertTitle({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n );\n },\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nexport type AlertDescriptionProps = React.ComponentProps<\"div\">;\n\nconst AlertDescription = React.forwardRef<\n HTMLDivElement,\n AlertDescriptionProps\n>(function AlertDescription({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-description\"\n className={cn(\n \"text-balance text-muted-foreground md:text-pretty leading-relaxed\",\n \"group-data-[color=info]/alert:text-info/90\",\n \"group-data-[color=destructive]/alert:text-destructive/90\",\n \"group-data-[color=success]/alert:text-success/90\",\n \"group-data-[color=warning]/alert:text-warning/90\",\n className,\n )}\n {...props}\n />\n );\n});\nAlertDescription.displayName = \"AlertDescription\";\n\nexport type AlertActionProps = React.ComponentProps<\"div\">;\n\nconst AlertAction = React.forwardRef<HTMLDivElement, AlertActionProps>(\n function AlertAction({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-action\"\n className={cn(className)}\n {...props}\n />\n );\n },\n);\nAlertAction.displayName = \"AlertAction\";\n\nexport type AlertIconProps = useRender.ComponentProps<\"div\">;\n\nconst AlertIcon = React.forwardRef<HTMLDivElement, AlertIconProps>(\n function AlertIcon({ className, render, ...props }, ref) {\n return useRender({\n render,\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n ref,\n className: cn(\n \"text-current\",\n \"size-4 group-data-[size=sm]/alert:size-3.5 group-data-[size=lg]/alert:size-5\",\n className,\n ),\n \"data-slot\": \"alert-icon\",\n } as React.ComponentProps<\"div\">,\n props,\n ),\n });\n },\n);\nAlertIcon.displayName = \"AlertIcon\";\n\nexport { Alert, AlertAction, AlertDescription, AlertIcon, AlertTitle };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * variant = visual style (HOW it looks)\n * solid → filled background (opaque)\n * outline → border only, transparent bg\n * ghost → no border, transparent bg\n * soft → low-opacity tinted background\n * link → looks like a hyperlink\n *\n * color = semantic color token (WHAT it means)\n * primary → primary action\n * secondary → alternative / neutral\n * destructive → danger / delete\n * warning → caution\n * success → confirm / done\n * info → information\n * tertiary → extra / beta\n */\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-border text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-3 focus-visible:ring-offset-1 focus-visible:ring-offset-background active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50 data-[icon=true]:aspect-square data-[icon=true]:px-0\",\n {\n variants: {\n // ── Visual style ─────────────────────────────────────────────\n variant: {\n solid: \"border-transparent\",\n outline: \"bg-transparent\",\n ghost: \"border-transparent bg-transparent\",\n soft: \"border-transparent\",\n link: \"border-transparent bg-transparent underline-offset-4 hover:underline\",\n },\n\n // ── Semantic color ───────────────────────────────────────────\n // Left empty — actual classes are injected via compoundVariants below\n color: {\n primary: \"\",\n secondary: \"\",\n destructive: \"\",\n warning: \"\",\n success: \"\",\n info: \"\",\n tertiary: \"\",\n muted: \"\",\n accent: \"\",\n },\n\n // ── Size ─────────────────────────────────────────────────────\n size: {\n sm: \"h-7 gap-1 px-3 text-xs\",\n md: \"h-8 gap-1.5 px-3.5\",\n lg: \"h-9 gap-2 px-4\",\n },\n },\n\n // ── variant × color combinations ─────────────────────────────\n compoundVariants: [\n // solid — filled background, foreground text\n {\n variant: \"solid\",\n color: \"primary\",\n className:\n \"bg-primary text-primary-foreground hover:bg-primary/85\",\n },\n {\n variant: \"solid\",\n color: \"secondary\",\n className:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/85\",\n },\n {\n variant: \"solid\",\n color: \"destructive\",\n className:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/85\",\n },\n {\n variant: \"solid\",\n color: \"warning\",\n className:\n \"bg-warning text-warning-foreground hover:bg-warning/85\",\n },\n {\n variant: \"solid\",\n color: \"success\",\n className:\n \"bg-success text-success-foreground hover:bg-success/85\",\n },\n {\n variant: \"solid\",\n color: \"info\",\n className:\n \"bg-info text-info-foreground hover:bg-info/85\",\n },\n {\n variant: \"solid\",\n color: \"tertiary\",\n className:\n \"bg-tertiary text-tertiary-foreground hover:bg-tertiary/85\",\n },\n {\n variant: \"solid\",\n color: \"muted\",\n className:\n \"bg-muted text-muted-foreground hover:bg-muted/85\",\n },\n {\n variant: \"solid\",\n color: \"accent\",\n className:\n \"bg-accent text-accent-foreground hover:bg-accent/85\",\n },\n\n // outline — border + semantic text, tinted hover\n {\n variant: \"outline\",\n color: \"primary\",\n className: \"border-primary text-primary hover:bg-primary/10\",\n },\n {\n variant: \"outline\",\n color: \"secondary\",\n className: \"border-secondary text-secondary hover:bg-secondary/10\",\n },\n {\n variant: \"outline\",\n color: \"destructive\",\n className:\n \"border-destructive text-destructive hover:bg-destructive/10\",\n },\n {\n variant: \"outline\",\n color: \"warning\",\n className: \"border-warning text-warning hover:bg-warning/10\",\n },\n {\n variant: \"outline\",\n color: \"success\",\n className: \"border-success text-success hover:bg-success/10\",\n },\n {\n variant: \"outline\",\n color: \"info\",\n className: \"border-info text-info hover:bg-info/10\",\n },\n {\n variant: \"outline\",\n color: \"tertiary\",\n className: \"border-tertiary text-tertiary hover:bg-tertiary/10\",\n },\n {\n variant: \"outline\",\n color: \"muted\",\n className: \"border-muted text-muted-foreground hover:bg-muted/10\",\n },\n {\n variant: \"outline\",\n color: \"accent\",\n className:\n \"border-accent text-accent-foreground hover:bg-accent/10\",\n },\n\n // soft — tinted background, semantic text\n {\n variant: \"soft\",\n color: \"primary\",\n className: \"bg-primary/15 text-primary hover:bg-primary/25\",\n },\n {\n variant: \"soft\",\n color: \"secondary\",\n className: \"bg-secondary/15 text-secondary hover:bg-secondary/25\",\n },\n {\n variant: \"soft\",\n color: \"destructive\",\n className: \"bg-destructive/15 text-destructive hover:bg-destructive/25\",\n },\n {\n variant: \"soft\",\n color: \"warning\",\n className: \"bg-warning/15 text-warning hover:bg-warning/25\",\n },\n {\n variant: \"soft\",\n color: \"success\",\n className: \"bg-success/15 text-success hover:bg-success/25\",\n },\n {\n variant: \"soft\",\n color: \"info\",\n className: \"bg-info/15 text-info hover:bg-info/25\",\n },\n {\n variant: \"soft\",\n color: \"tertiary\",\n className: \"bg-tertiary/15 text-tertiary hover:bg-tertiary/25\",\n },\n {\n variant: \"soft\",\n color: \"muted\",\n className: \"bg-muted/50 text-muted-foreground hover:bg-muted/80\",\n },\n {\n variant: \"soft\",\n color: \"accent\",\n className:\n \"bg-accent/50 text-accent-foreground hover:bg-accent/80\",\n },\n\n // ghost — transparent, semantic text, tinted hover\n {\n variant: \"ghost\",\n color: \"primary\",\n className: \"text-primary hover:bg-primary/10\",\n },\n {\n variant: \"ghost\",\n color: \"secondary\",\n className: \"text-secondary hover:bg-secondary/10\",\n },\n {\n variant: \"ghost\",\n color: \"destructive\",\n className: \"text-destructive hover:bg-destructive/10\",\n },\n {\n variant: \"ghost\",\n color: \"warning\",\n className: \"text-warning hover:bg-warning/10\",\n },\n {\n variant: \"ghost\",\n color: \"success\",\n className: \"text-success hover:bg-success/10\",\n },\n {\n variant: \"ghost\",\n color: \"info\",\n className: \"text-info hover:bg-info/10\",\n },\n {\n variant: \"ghost\",\n color: \"tertiary\",\n className: \"text-tertiary hover:bg-tertiary/10\",\n },\n {\n variant: \"ghost\",\n color: \"muted\",\n className: \"text-muted-foreground hover:bg-muted/10\",\n },\n {\n variant: \"ghost\",\n color: \"accent\",\n className: \"text-accent-foreground hover:bg-accent/10\",\n },\n\n // link — just semantic text + underline on hover\n { variant: \"link\", color: \"primary\", className: \"text-primary\" },\n { variant: \"link\", color: \"secondary\", className: \"text-secondary\" },\n { variant: \"link\", color: \"destructive\", className: \"text-destructive\" },\n { variant: \"link\", color: \"warning\", className: \"text-warning\" },\n { variant: \"link\", color: \"success\", className: \"text-success\" },\n { variant: \"link\", color: \"info\", className: \"text-info\" },\n { variant: \"link\", color: \"tertiary\", className: \"text-tertiary\" },\n { variant: \"link\", color: \"muted\", className: \"text-muted-foreground\" },\n { variant: \"link\", color: \"accent\", className: \"text-accent-foreground\" },\n // focus ring — semantic color at /15 opacity with offset\n { color: \"primary\", className: \"focus-visible:ring-primary/50\" },\n { color: \"secondary\", className: \"focus-visible:ring-secondary/50\" },\n { color: \"destructive\", className: \"focus-visible:ring-destructive/50\" },\n { color: \"warning\", className: \"focus-visible:ring-warning/50\" },\n { color: \"success\", className: \"focus-visible:ring-success/50\" },\n { color: \"info\", className: \"focus-visible:ring-info/50\" },\n { color: \"tertiary\", className: \"focus-visible:ring-tertiary/50\" },\n { color: \"muted\", className: \"focus-visible:ring-muted/50\" },\n { color: \"accent\", className: \"focus-visible:ring-accent/50\" },\n ],\n },\n);\n\n/**\n * @description Displays a button or a component that looks like a button.\n * @example\n * <Button variant=\"solid\" color=\"primary\">Click me</Button>\n */\nexport interface ButtonProps\n extends ButtonPrimitive.Props, VariantProps<typeof buttonVariants> {\n iconOnly?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = \"solid\",\n color = \"primary\",\n size = \"md\",\n iconOnly,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <ButtonPrimitive\n ref={ref}\n data-slot=\"button\"\n data-color={color}\n data-variant={variant}\n {...(iconOnly && { \"data-icon\": \"true\" })}\n className={cn(buttonVariants({ variant, color, size, className }))}\n {...props}\n >\n {children}\n </ButtonPrimitive>\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport type ButtonIconProps = useRender.ComponentProps<\"span\">;\n\nconst ButtonIcon = React.forwardRef<HTMLSpanElement, ButtonIconProps>(\n function ButtonIcon({ className, render, ...props }, ref) {\n return useRender({\n render,\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n ref,\n className: cn(\n \"inline-flex items-center justify-center shrink-0 transition-transform\",\n \"size-4 group-data-[size=sm]/button:size-3.5 group-data-[size=lg]/button:size-5\",\n \"[&>svg]:size-full [&>svg]:pointer-events-none\",\n className,\n ),\n \"data-slot\": \"button-icon\",\n } as React.ComponentProps<\"span\">,\n props,\n ),\n });\n },\n);\nButtonIcon.displayName = \"ButtonIcon\";\n\nexport { Button, ButtonIcon, buttonVariants };\n","/**\n * ThemeProvider — Micro primitive.\n *\n * Supports both **uncontrolled** and **controlled** modes:\n *\n * - **Uncontrolled**: pass `defaultMode` (optional). Internal state manages\n * the current mode. Children call `setMode()` via `useTheme()`.\n * - **Controlled**: pass `mode` + `onModeChange`. The caller owns the state;\n * `setMode()` inside the context delegates to `onModeChange`.\n *\n * Does NOT read localStorage, system preference, or sync to <html>.\n * All of that belongs to Macro layer (e.g. a ThemeManager preset).\n */\n\"use client\";\n\nimport * as React from \"react\";\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\ntype ThemeMode = \"light\" | \"dark\";\n\ntype ThemeContextValue = {\n /** The currently active mode. */\n mode: ThemeMode;\n /** Change the mode. In controlled usage this calls `onModeChange`. */\n setMode: (mode: ThemeMode) => void;\n};\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(\n undefined,\n);\n\n// ─── useTheme ─────────────────────────────────────────────────────────────────\n\n/**\n * Read and control the nearest ThemeProvider.\n * Returns `undefined` when no provider is found in the tree.\n *\n * @example\n * ```tsx\n * const theme = useTheme();\n * theme?.setMode(\"dark\");\n * console.log(theme?.mode); // \"light\" | \"dark\"\n * ```\n */\nfunction useTheme(): ThemeContextValue | undefined {\n return React.useContext(ThemeContext);\n}\n\n// ─── ThemeProvider ────────────────────────────────────────────────────────────\n\ntype ThemeProviderProps = {\n children: React.ReactNode;\n} & (\n | {\n /** Uncontrolled: starting mode. Defaults to \"light\". */\n defaultMode?: ThemeMode;\n mode?: never;\n onModeChange?: never;\n }\n | {\n /** Controlled: current mode owned by the caller. */\n mode: ThemeMode;\n /** Called when children request a mode change via `setMode()`. */\n onModeChange: (mode: ThemeMode) => void;\n defaultMode?: never;\n }\n);\n\n/**\n * ThemeProvider — wraps children in a `display: contents` div with the\n * `.dark` or `.light` class applied, enabling CSS variable cascade without\n * affecting layout.\n *\n * @example Uncontrolled\n * ```tsx\n * <ThemeProvider defaultMode=\"dark\">\n * <App />\n * </ThemeProvider>\n * ```\n *\n * @example Controlled\n * ```tsx\n * const [mode, setMode] = useState<ThemeMode>(\"light\");\n *\n * <ThemeProvider mode={mode} onModeChange={setMode}>\n * <App />\n * </ThemeProvider>\n * ```\n */\nfunction ThemeProvider({\n children,\n defaultMode,\n mode: controlledMode,\n onModeChange,\n}: ThemeProviderProps) {\n const isControlled = controlledMode !== undefined;\n\n const [internalMode, setInternalMode] = React.useState<ThemeMode>(\n defaultMode ?? \"light\",\n );\n\n const mode = isControlled ? controlledMode : internalMode;\n\n const setMode = React.useCallback(\n (next: ThemeMode) => {\n if (isControlled) {\n onModeChange!(next);\n } else {\n setInternalMode(next);\n }\n },\n [isControlled, onModeChange],\n );\n\n const value = React.useMemo<ThemeContextValue>(\n () => ({ mode, setMode }),\n [mode, setMode],\n );\n\n return (\n <ThemeContext.Provider value={value}>\n <div className={mode} style={{ display: \"contents\" }}>\n {children}\n </div>\n </ThemeContext.Provider>\n );\n}\n\nThemeProvider.displayName = \"ThemeProvider\";\n\n// ─── ThemeWrapper ─────────────────────────────────────────────────────────────\n\n/**\n * ThemeWrapper — re-applies the current theme class inside a Portal.\n * Used internally by Dialog, Tooltip, Popover, etc. to tunnel the theme\n * across the Portal boundary.\n *\n * Falls back gracefully (renders children as-is) when no ThemeProvider\n * is found in the tree.\n */\nfunction ThemeWrapper({ children }: { children: React.ReactNode }) {\n const theme = useTheme();\n\n if (!theme) {\n return <>{children}</>;\n }\n\n return (\n <div className={theme.mode} style={{ display: \"contents\" }}>\n {children}\n </div>\n );\n}\n\nThemeWrapper.displayName = \"ThemeWrapper\";\n\n// ─── Exports ──────────────────────────────────────────────────────────────────\n\nexport { ThemeProvider, ThemeWrapper, useTheme };\nexport type { ThemeMode };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\";\n\nimport { Button } from \"../../components/micro/button\";\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\n/**\n * @description A modal dialog that interrupts the user with important content and expects a response.\n * @requires AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter\n * @example\n * <AlertDialog>\n * <AlertDialogTrigger>Open</AlertDialogTrigger>\n * <AlertDialogContent>\n * <AlertDialogHeader><AlertDialogTitle>Are you sure?</AlertDialogTitle></AlertDialogHeader>\n * <AlertDialogFooter><AlertDialogCancel>Cancel</AlertDialogCancel><AlertDialogAction>Continue</AlertDialogAction></AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n */\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogClose({ ...props }: AlertDialogPrimitive.Close.Props) {\n return (\n <AlertDialogPrimitive.Close data-slot=\"alert-dialog-close\" {...props} />\n );\n}\n\n\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst AlertDialogContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Popup> & {\n container?: React.ComponentProps<typeof AlertDialogPrimitive.Portal>[\"container\"];\n size?: Size;\n }\n>(({ className, container, size = \"md\", ...props }, ref) => (\n <AlertDialogPrimitive.Portal container={container}>\n <ThemeWrapper>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n ref={ref}\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none\",\n \"data-[size=sm]:max-w-xs\",\n \"data-[size=md]:max-w-xs data-[size=md]:sm:max-w-sm\",\n \"data-[size=lg]:max-w-sm data-[size=lg]:sm:max-w-md\",\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n />\n </ThemeWrapper>\n </AlertDialogPrimitive.Portal>\n));\nAlertDialogContent.displayName = \"AlertDialogContent\";\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t border-t-border bg-muted/50 p-4 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"inline-flex size-10 items-center justify-center [&>svg:not([class*='size-'])]:size-6\",\n \"group-data-[size=lg]/alert-dialog-content:size-12\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"font-heading text-base font-medium\",\n \"group-data-[size=lg]/alert-dialog-content:text-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty [&_p]:leading-relaxed\",\n \"group-data-[size=lg]/alert-dialog-content:text-base\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant,\n color,\n size = \"md\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"color\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n render={<Button variant={variant} color={color} size={size} />}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n color,\n size = \"md\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"color\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} color={color} size={size} />}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogClose,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Displays content within a desired ratio.\n * @example\n * <AspectRatio ratio={16 / 9}>\n * <img src=\"...\" alt=\"...\" />\n * </AspectRatio>\n */\nconst AspectRatio = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { ratio: number }\n>(({ ratio, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"aspect-ratio\"\n style={\n {\n \"--ratio\": ratio,\n } as React.CSSProperties\n }\n className={cn(\"relative aspect-(--ratio)\", className)}\n {...props}\n />\n );\n});\nAspectRatio.displayName = \"AspectRatio\";\n\nexport { AspectRatio };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\";\n\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description An image element with a fallback for representing the user.\n * @requires AvatarImage, AvatarFallback\n * @example\n * <Avatar>\n * <AvatarImage src=\"https://github.com/shadcn.png\" />\n * <AvatarFallback>CN</AvatarFallback>\n * </Avatar>\n */\nconst Avatar = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Root>,\n AvatarPrimitive.Root.Props & { size?: Size }\n>(({ className, size = \"md\", ...props }, ref) => {\n return (\n <AvatarPrimitive.Root\n ref={ref}\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten\",\n \"group-data-[slot=avatar-group]/avatar-group:ring-2 group-data-[slot=avatar-group]/avatar-group:ring-background\",\n className,\n )}\n {...props}\n />\n );\n});\nAvatar.displayName = \"Avatar\";\n\nconst AvatarImage = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Image>,\n AvatarPrimitive.Image.Props\n>(({ className, ...props }, ref) => {\n return (\n <AvatarPrimitive.Image\n ref={ref}\n data-slot=\"avatar-image\"\n className={cn(\n \"aspect-square size-full rounded-full object-cover\",\n className,\n )}\n {...props}\n />\n );\n});\nAvatarImage.displayName = \"AvatarImage\";\n\nconst AvatarFallback = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Fallback>,\n AvatarPrimitive.Fallback.Props\n>(({ className, ...props }, ref) => {\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs group-data-[size=lg]/avatar:text-base\",\n className,\n )}\n {...props}\n />\n );\n});\nAvatarFallback.displayName = \"AvatarFallback\";\n\nconst AvatarBadge = React.forwardRef<\n HTMLSpanElement,\n React.ComponentProps<\"span\">\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n data-slot=\"avatar-badge\"\n className={cn(\n \"rounded-full bg-primary ring-2 ring-background\",\n \"group-data-[size=sm]/avatar:size-2\",\n \"group-data-[size=md]/avatar:size-2.5\",\n \"group-data-[size=lg]/avatar:size-3\",\n className,\n )}\n {...props}\n />\n );\n});\nAvatarBadge.displayName = \"AvatarBadge\";\n\nconst AvatarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"avatar-group\"\n className={cn(\"group/avatar-group flex -space-x-2\", className)}\n {...props}\n />\n );\n});\nAvatarGroup.displayName = \"AvatarGroup\";\n\nconst AvatarGroupCount = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { size?: Size }\n>(({ className, size = \"md\", ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"avatar-group-count\"\n data-size={size}\n className={cn(\n \"relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background data-[size=lg]:size-10 data-[size=sm]:size-6\",\n className,\n )}\n {...props}\n />\n );\n});\nAvatarGroupCount.displayName = \"AvatarGroupCount\";\n\nexport {\n Avatar,\n AvatarBadge,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarImage,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"group/badge inline-flex h-6 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2.5 py-0.5 text-xs font-medium whitespace-nowrap transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n {\n variants: {\n variant: {\n solid: \"border-transparent\",\n outline: \"bg-transparent\",\n soft: \"border-transparent\",\n },\n color: {\n primary: \"\",\n secondary: \"\",\n destructive: \"\",\n warning: \"\",\n success: \"\",\n info: \"\",\n tertiary: \"\",\n muted: \"\",\n accent: \"\",\n },\n },\n compoundVariants: [\n // Solid\n {\n variant: \"solid\",\n color: \"primary\",\n className: \"bg-primary text-primary-foreground\",\n },\n {\n variant: \"solid\",\n color: \"secondary\",\n className: \"bg-secondary text-secondary-foreground\",\n },\n {\n variant: \"solid\",\n color: \"destructive\",\n className: \"bg-destructive text-destructive-foreground\",\n },\n {\n variant: \"solid\",\n color: \"warning\",\n className: \"bg-warning text-warning-foreground\",\n },\n {\n variant: \"solid\",\n color: \"success\",\n className: \"bg-success text-success-foreground\",\n },\n {\n variant: \"solid\",\n color: \"info\",\n className: \"bg-info text-info-foreground\",\n },\n {\n variant: \"solid\",\n color: \"tertiary\",\n className: \"bg-tertiary text-tertiary-foreground\",\n },\n {\n variant: \"solid\",\n color: \"muted\",\n className: \"bg-muted text-muted-foreground\",\n },\n {\n variant: \"solid\",\n color: \"accent\",\n className: \"bg-accent text-accent-foreground\",\n },\n\n // Outline\n {\n variant: \"outline\",\n color: \"primary\",\n className: \"border-primary text-primary\",\n },\n {\n variant: \"outline\",\n color: \"secondary\",\n className: \"border-secondary text-secondary\",\n },\n {\n variant: \"outline\",\n color: \"destructive\",\n className: \"border-destructive text-destructive\",\n },\n {\n variant: \"outline\",\n color: \"warning\",\n className: \"border-warning text-warning\",\n },\n {\n variant: \"outline\",\n color: \"success\",\n className: \"border-success text-success\",\n },\n { variant: \"outline\", color: \"info\", className: \"border-info text-info\" },\n {\n variant: \"outline\",\n color: \"tertiary\",\n className: \"border-tertiary text-tertiary\",\n },\n {\n variant: \"outline\",\n color: \"muted\",\n className: \"border-muted text-muted-foreground\",\n },\n {\n variant: \"outline\",\n color: \"accent\",\n className: \"border-accent text-accent-foreground\",\n },\n\n // Soft\n {\n variant: \"soft\",\n color: \"primary\",\n className: \"bg-primary/15 text-primary\",\n },\n {\n variant: \"soft\",\n color: \"secondary\",\n className: \"bg-secondary/15 text-secondary\",\n },\n {\n variant: \"soft\",\n color: \"destructive\",\n className: \"bg-destructive/15 text-destructive\",\n },\n {\n variant: \"soft\",\n color: \"warning\",\n className: \"bg-warning/15 text-warning\",\n },\n {\n variant: \"soft\",\n color: \"success\",\n className: \"bg-success/15 text-success\",\n },\n { variant: \"soft\", color: \"info\", className: \"bg-info/15 text-info\" },\n {\n variant: \"soft\",\n color: \"tertiary\",\n className: \"bg-tertiary/15 text-tertiary\",\n },\n {\n variant: \"soft\",\n color: \"muted\",\n className: \"bg-muted/50 text-muted-foreground\",\n },\n {\n variant: \"soft\",\n color: \"accent\",\n className: \"bg-accent/50 text-accent-foreground\",\n },\n ],\n },\n);\n\n/**\n * @description Displays a badge or a component that looks like a badge.\n * @example\n * <Badge variant=\"outline\">Badge</Badge>\n */\nexport type BadgeProps = useRender.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants>;\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n (\n { className, variant = \"solid\", color = \"primary\", render, ...props },\n ref,\n ) => {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n ref,\n className: cn(badgeVariants({ variant, color }), className),\n },\n props,\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n color,\n },\n });\n },\n);\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Displays the path to the current resource using a hierarchy of links.\n * @requires BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage\n * @example\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem><BreadcrumbLink href=\"/\">Home</BreadcrumbLink></BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem><BreadcrumbPage>Current</BreadcrumbPage></BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n */\nconst Breadcrumb = React.forwardRef<HTMLElement, React.ComponentProps<\"nav\">>(\n ({ className, ...props }, ref) => {\n return (\n <nav\n ref={ref}\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n );\n },\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentProps<\"ol\">\n>(({ className, ...props }, ref) => {\n return (\n <ol\n ref={ref}\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n});\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n );\n});\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nexport type BreadcrumbLinkProps = useRender.ComponentProps<\"a\">;\n\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n ({ className, render, ...props }, ref) => {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n ref,\n className: cn(\"transition-colors hover:text-foreground\", className),\n },\n props,\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\n },\n });\n },\n);\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentProps<\"span\">\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ children, className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(className)}\n {...props}\n >\n {children ?? <ChevronRightIcon className=\"size-3.5\" />}\n </li>\n );\n});\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = React.forwardRef<\n HTMLSpanElement,\n React.ComponentProps<\"span\">\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-5 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n});\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Group\n ref={ref}\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1\", className)}\n {...props}\n />\n));\nSelectGroup.displayName = \"SelectGroup\";\n\nconst SelectValue = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Value>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Value>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Value\n ref={ref}\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n));\nSelectValue.displayName = \"SelectValue\";\n\n\n\nconst selectTriggerVariants = cva(\n \"inline-flex items-center justify-between rounded-lg border border-input bg-transparent text-foreground text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 data-placeholder:text-muted-foreground [&_[data-slot=select-value]]:line-clamp-1 [&_[data-slot=select-value]]:flex [&_[data-slot=select-value]]:items-center [&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50\",\n {\n variants: {\n size: {\n sm: \"h-7 gap-1 px-2 py-0.5 text-xs [&_[data-slot=select-value]]:gap-1\",\n md: \"h-8 gap-1.5 px-2.5 py-1 text-sm [&_[data-slot=select-value]]:gap-1.5\",\n lg: \"h-9 gap-2 px-3 py-1.5 [&_[data-slot=select-value]]:gap-2\",\n },\n },\n },\n);\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> &\n VariantProps<typeof selectTriggerVariants>\n>(({ className, size = \"md\", children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n className={cn(selectTriggerVariants({ size, className }))}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n }\n />\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = \"SelectTrigger\";\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Popup>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Popup> &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n > & {\n container?: React.ComponentProps<typeof SelectPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = false,\n container,\n ...props\n },\n ref,\n ) => (\n <SelectPrimitive.Portal container={container}>\n <ThemeWrapper>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n ref={ref}\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n \"relative isolate z-50 max-h-(--available-height) w-[calc(var(--anchor-width)+8px)] overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n alignItemWithTrigger\n ? \"origin-(--transform-origin) data-[align-trigger=true]:animate-none\"\n : \"\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </ThemeWrapper>\n </SelectPrimitive.Portal>\n ),\n);\nSelectContent.displayName = \"SelectContent\";\n\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.GroupLabel>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.GroupLabel>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.GroupLabel\n ref={ref}\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = \"SelectLabel\";\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4 [&>[data-slot=select-item-indicator]]:flex [&>[data-slot=select-item-indicator]]:items-center [&>[data-slot=select-item-indicator]]:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = \"SelectItem\";\n\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = \"SelectSeparator\";\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollUpArrow>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpArrow>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpArrow\n ref={ref}\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n));\nSelectScrollUpButton.displayName = \"SelectScrollUpButton\";\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollDownArrow>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownArrow>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownArrow\n ref={ref}\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n));\nSelectScrollDownButton.displayName = \"SelectScrollDownButton\";\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n selectTriggerVariants,\n};\n","/**\n * ✅ AUDITED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport {\n type DayButton,\n DayPicker,\n type Locale,\n getDefaultClassNames,\n} from \"react-day-picker\";\n\nimport { buttonVariants } from \"../../components/micro/button\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n} from \"../../components/micro/select\";\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nfunction getDropdownLabel(\n options: Array<{ value: number | string; label: string }> | undefined,\n value: number | string | readonly string[] | undefined,\n locale?: Partial<Locale>,\n): string {\n const valueStr = Array.isArray(value)\n ? (value as string[])[0]\n : value?.toString();\n const selected = options?.find((o) => o.value.toString() === valueStr);\n if (!selected) return \"\";\n const isMonth = options?.length === 12;\n if (isMonth && selected.value !== undefined) {\n return new Date(2000, Number(selected.value), 1).toLocaleString(\n locale?.code ?? \"en-US\",\n { month: \"short\" },\n );\n }\n return selected.label;\n}\n\nconst calendarVariants = cva(\n \"group/calendar bg-background p-2 in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent\",\n {\n variants: {\n size: {\n sm: \"calendar-sm\",\n md: \"calendar-md\",\n lg: \"calendar-lg\",\n },\n },\n },\n);\n\n/**\n * @description A date field component that allows users to enter and edit date.\n * @example\n * <Calendar mode=\"single\" selected={date} onSelect={setDate} />\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n locale,\n formatters,\n components,\n size = \"md\",\n ...props\n}: React.ComponentProps<typeof DayPicker> &\n Omit<VariantProps<typeof calendarVariants>, \"size\"> & {\n size?: Size;\n buttonVariant?: VariantProps<typeof buttonVariants>[\"variant\"];\n }) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(calendarVariants({ size }), className)}\n captionLayout={captionLayout}\n locale={locale}\n formatters={{\n formatMonthDropdown: (month) =>\n month.toLocaleString(locale?.code ?? \"en-US\", { month: \"long\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months,\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex items-center justify-between pointer-events-none\",\n \"h-8 group-[.calendar-sm]/calendar:h-7 group-[.calendar-lg]/calendar:h-9\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant, color: \"secondary\", size }),\n \"p-0 aspect-square select-none pointer-events-auto aria-disabled:opacity-50\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant, color: \"secondary\", size }),\n \"p-0 aspect-square select-none pointer-events-auto aria-disabled:opacity-50\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex w-full items-center justify-center\",\n \"h-8 px-8 group-[.calendar-sm]/calendar:h-7 group-[.calendar-sm]/calendar:px-7 group-[.calendar-lg]/calendar:h-9 group-[.calendar-lg]/calendar:px-9\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"flex h-7 group-[.calendar-sm]/calendar:h-6 group-[.calendar-lg]/calendar:h-8 items-center justify-center gap-0\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative flex items-center justify-center\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(defaultClassNames.dropdown),\n caption_label: cn(\n \"px-2 font-bold select-none\",\n {\n \"text-sm group-[.calendar-sm]/calendar:text-xs group-[.calendar-lg]/calendar:text-base\":\n captionLayout === \"label\",\n \"flex items-center gap-1 rounded-md text-sm group-[.calendar-sm]/calendar:text-xs group-[.calendar-lg]/calendar:text-base [&>svg]:size-3.5 [&>svg]:text-muted-foreground\":\n captionLayout !== \"label\",\n },\n defaultClassNames.caption_label,\n ),\n month_grid: cn(\"w-full border-collapse\", defaultClassNames.month_grid),\n weekdays: cn(\"flex gap-1\", defaultClassNames.weekdays),\n weekday: cn(\n \"flex-1 rounded-md text-xs font-medium text-muted-foreground select-none group-[.calendar-sm]/calendar:text-[10px] group-[.calendar-lg]/calendar:text-sm\",\n defaultClassNames.weekday,\n ),\n week: cn(\"mt-2 flex w-full gap-1\", defaultClassNames.week),\n week_number_header: cn(\n \"w-7 group-[.calendar-sm]/calendar:w-6 group-[.calendar-lg]/calendar:w-8 select-none\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-xs text-muted-foreground select-none group-[.calendar-sm]/calendar:text-[10px] group-[.calendar-lg]/calendar:text-sm\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"group/day relative aspect-square h-full w-full rounded-md p-0 text-center select-none\",\n defaultClassNames.day,\n ),\n day_button: cn(defaultClassNames.day_button),\n range_start: cn(\n \"relative isolate z-0 rounded-md bg-muted\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-md bg-muted\", defaultClassNames.range_middle),\n range_end: cn(\n \"relative isolate z-0 rounded-md bg-muted\",\n defaultClassNames.range_end,\n ),\n today: cn(\n \"rounded-md bg-muted text-foreground\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Dropdown: ({\n value,\n onChange,\n options,\n disabled,\n \"aria-label\": ariaLabel,\n name,\n }) => {\n return (\n <Select\n value={value?.toString()}\n disabled={disabled}\n onValueChange={(newVal) => {\n const event = {\n target: { value: newVal, name },\n } as React.ChangeEvent<HTMLSelectElement>;\n onChange?.(event);\n }}\n >\n <SelectTrigger\n size={size}\n aria-label={ariaLabel}\n className=\"w-fit min-w-0 px-1 border-none bg-transparent font-medium shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 [&_[data-slot=select-value]]:w-auto\"\n >\n <span\n data-slot=\"select-value\"\n className=\"flex flex-1 text-left\"\n >\n {getDropdownLabel(options, value, locale)}\n </span>\n </SelectTrigger>\n <SelectContent>\n {options?.map((option) => {\n const isMonth = options?.length === 12;\n let shortLabel = option.label;\n if (isMonth && option.value !== undefined) {\n const monthDate = new Date(2000, Number(option.value), 1);\n shortLabel = monthDate.toLocaleString(\n locale?.code ?? \"en-US\",\n {\n month: \"short\",\n },\n );\n }\n return (\n <SelectItem\n key={option.value}\n value={option.value.toString()}\n disabled={option.disabled}\n >\n {shortLabel}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n const sizeClasses =\n \"size-4 group-[.calendar-sm]/calendar:size-3.5 group-[.calendar-lg]/calendar:size-5\";\n\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon\n className={cn(\n \"size-5 group-[.calendar-sm]/calendar:size-4 group-[.calendar-lg]/calendar:size-6 rtl:rotate-180\",\n className,\n )}\n strokeWidth={3}\n {...props}\n />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\n \"size-5 group-[.calendar-sm]/calendar:size-4 group-[.calendar-lg]/calendar:size-6 rtl:rotate-180\",\n className,\n )}\n strokeWidth={3}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon\n className={cn(sizeClasses, className)}\n strokeWidth={2.5}\n {...props}\n />\n );\n },\n DayButton: ({ ...props }) => (\n <CalendarDayButton locale={locale} {...props} />\n ),\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-7 group-[.calendar-sm]/calendar:size-6 group-[.calendar-lg]/calendar:size-8 items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n locale,\n ...props\n}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"calendar-day-button\"\n data-day={day.date.toLocaleDateString(locale?.code)}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n // Base layout — size driven by parent group\n \"relative isolate z-10 flex aspect-square size-7 flex-col items-center justify-center gap-1 rounded-md font-normal leading-none transition-colors outline-none select-none\",\n \"group-[.calendar-sm]/calendar:size-6 group-[.calendar-lg]/calendar:size-8\",\n // Text size — responsive via parent group\n \"text-sm group-[.calendar-sm]/calendar:text-xs\",\n // Hover\n \"hover:bg-accent hover:text-accent-foreground\",\n // Focus ring (standard)\n \"focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n // Press feedback\n \"active:translate-y-px\",\n // Disabled\n \"disabled:pointer-events-none disabled:opacity-50\",\n // Keyboard focus from react-day-picker\n \"group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-3 group-data-[focused=true]/day:ring-ring/50\",\n // Selected single\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[selected-single=true]:hover:bg-primary/90\",\n // Range start\n \"data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground\",\n // Range end\n \"data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground\",\n // Range middle\n \"data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground\",\n // Content spans (event dots etc.) — consumer should use data-slot on spans\n // Dark mode\n \"dark:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nCalendar.displayName = \"Calendar\";\nCalendarDayButton.displayName = \"CalendarDayButton\";\n\nexport { Calendar, CalendarDayButton };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Displays a card with header, content, and footer.\n * @requires CardHeader, CardTitle, CardDescription, CardContent, CardFooter\n * @example\n * <Card>\n * <CardHeader><CardTitle>Title</CardTitle></CardHeader>\n * <CardContent>Content here</CardContent>\n * </Card>\n */\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { size?: Size }\n>(({ className, size = \"md\", ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card\"\n data-size={size}\n className={cn(\n \"group/card flex flex-col overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10\",\n \"p-6 gap-5 data-[size=sm]:p-4 data-[size=sm]:gap-4 data-[size=lg]:p-8 data-[size=lg]:gap-6\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-header\"\n className={cn(\"flex flex-col gap-1.5\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-title\"\n className={cn(\n \"font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm group-data-[size=lg]/card:text-lg\",\n className,\n )}\n {...props}\n />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-description\"\n className={cn(\n \"text-sm text-muted-foreground group-data-[size=sm]/card:text-xs group-data-[size=lg]/card:text-base\",\n className,\n )}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} data-slot=\"card-content\" className={className} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-footer\"\n className={cn(\"flex items-center\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (orientation === \"horizontal\") {\n switch (event.key) {\n case \"ArrowLeft\":\n event.preventDefault();\n scrollPrev();\n break;\n case \"ArrowRight\":\n event.preventDefault();\n scrollNext();\n break;\n }\n } else {\n switch (event.key) {\n case \"ArrowUp\":\n event.preventDefault();\n scrollPrev();\n break;\n case \"ArrowDown\":\n event.preventDefault();\n scrollNext();\n break;\n }\n }\n },\n [scrollPrev, scrollNext, orientation],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"reInit\", onSelect);\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api,\n opts,\n orientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"group/carousel relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n data-orientation={orientation}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n const { carouselRef } = useCarousel();\n\n // Combine forwarded ref and internal embla ref\n const setRefs = React.useCallback(\n (node: HTMLDivElement) => {\n carouselRef(node);\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [carouselRef, ref],\n );\n\n return (\n <div ref={setRefs} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div\n className={cn(\n \"flex group-data-[orientation=vertical]/carousel:flex-col\",\n className,\n )}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\"min-w-0 shrink-0 grow-0 basis-full\", className)}\n {...props}\n />\n );\n});\nCarouselItem.displayName = \"CarouselItem\";\n\nconst carouselButtonClasses =\n \"inline-flex size-8 shrink-0 items-center justify-center rounded-full border border-border bg-background touch-manipulation transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\";\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"carousel-previous\"\n className={cn(carouselButtonClasses, className)}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon className=\"size-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </button>\n );\n});\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { scrollNext, canScrollNext } = useCarousel();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"carousel-next\"\n className={cn(carouselButtonClasses, className)}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon className=\"size-4\" />\n <span className=\"sr-only\">Next slide</span>\n </button>\n );\n});\nCarouselNext.displayName = \"CarouselNext\";\n\nconst CarouselDots = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n const { api } = useCarousel();\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [scrollSnaps, setScrollSnaps] = React.useState<number[]>([]);\n\n const onInit = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setScrollSnaps(api.scrollSnapList());\n }, []);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setSelectedIndex(api.selectedScrollSnap());\n }, []);\n\n React.useEffect(() => {\n if (!api) return;\n\n onInit(api);\n onSelect(api);\n\n api.on(\"reInit\", onInit);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api.off(\"reInit\", onInit);\n api.off(\"reInit\", onSelect);\n api.off(\"select\", onSelect);\n };\n }, [api, onInit, onSelect]);\n\n if (scrollSnaps.length === 0) return null;\n\n return (\n <div\n ref={ref}\n data-slot=\"carousel-dots\"\n className={cn(\"flex items-center justify-center gap-2\", className)}\n {...props}\n >\n {scrollSnaps.map((_, index) => (\n <button\n key={index}\n type=\"button\"\n data-slot=\"carousel-dot\"\n data-active={index === selectedIndex ? \"\" : undefined}\n aria-label={`Go to slide ${index + 1}`}\n aria-current={index === selectedIndex ? \"true\" : \"false\"}\n className={cn(\n \"size-2 rounded-full transition-all duration-300\",\n \"bg-primary/20 hover:bg-primary/40 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"data-active:w-6 data-active:bg-primary\",\n )}\n onClick={() => api?.scrollTo(index)}\n />\n ))}\n </div>\n );\n});\nCarouselDots.displayName = \"CarouselDots\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselDots,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n useCarousel,\n type CarouselApi,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport type { TooltipValueType } from \"recharts\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"../../lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nconst INITIAL_DIMENSION = { width: 320, height: 200 } as const;\ntype TooltipNameType = number | string;\n\nexport type ChartConfig = Record<\n string,\n {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n>;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\n/**\n * @description Recharts wrapper for theming and tooltips.\n * @requires ChartTooltip, ChartTooltipContent\n */\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n initialDimension?: {\n width: number;\n height: number;\n };\n }\n>(function ChartContainer(\n {\n id,\n className,\n children,\n config,\n initialDimension = INITIAL_DIMENSION,\n ...props\n },\n ref,\n) {\n const uniqueId = React.useId();\n const chartId = `chart-${id ?? uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n ref={ref}\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"group/chart flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer\n initialDimension={initialDimension}\n >\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = \"ChartContainer\";\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme ?? config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ??\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n } & Omit<\n RechartsPrimitive.DefaultTooltipContentProps<\n TooltipValueType,\n TooltipNameType\n >,\n \"accessibilityLayer\"\n >) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey ?? item?.dataKey ?? item?.name ?? \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? (config[label]?.label ?? label)\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey ?? item.name ?? item.dataKey ?? \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color ?? item.payload?.fill ?? item.color;\n\n return (\n <div\n key={index}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n { \"items-end\": nestLabel, \"items-center\": !nestLabel },\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label ?? item.name}\n </span>\n </div>\n {item.value != null && (\n <span className=\"font-mono font-medium text-foreground tabular-nums\">\n {typeof item.value === \"number\"\n ? item.value.toLocaleString()\n : String(item.value)}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> & {\n hideIcon?: boolean;\n nameKey?: string;\n} & RechartsPrimitive.DefaultLegendContentProps) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n { \"pb-3\": verticalAlign === \"top\", \"pt-3\": verticalAlign !== \"top\" },\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey ?? item.dataKey ?? \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={index}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key];\n}\n\nexport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n ChartTooltip,\n ChartTooltipContent,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst checkboxVariants = cva(\n \"group/checkbox peer relative flex shrink-0 items-center justify-center rounded-sm border border-input after:absolute after:content-[''] transition-colors outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 aria-invalid:data-checked:border-destructive aria-invalid:data-checked:bg-destructive aria-invalid:data-checked:text-destructive-foreground dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n {\n variants: {\n size: {\n sm: \"size-3.5 after:-inset-x-2.5 after:-inset-y-2.5\",\n md: \"size-4 after:-inset-x-3 after:-inset-y-2\",\n lg: \"size-5 after:-inset-x-4 after:-inset-y-3\",\n },\n },\n },\n);\n\n/**\n * @description A control that allows the user to toggle between checked and not checked.\n * @example\n * <Checkbox id=\"terms\" />\n * <label htmlFor=\"terms\">Accept terms</label>\n */\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> &\n Omit<VariantProps<typeof checkboxVariants>, \"size\"> & {\n size?: Size;\n }\n>(function Checkbox({ className, size = \"md\", ...props }, ref) {\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n data-slot=\"checkbox\"\n data-size={size}\n className={cn(checkboxVariants({ size }), className)}\n {...props}\n />\n );\n});\nCheckbox.displayName = \"Checkbox\";\n\nconst CheckboxIndicator = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Indicator>,\n React.ComponentProps<typeof CheckboxPrimitive.Indicator>\n>(function CheckboxIndicator({ className, ...props }, ref) {\n return (\n <CheckboxPrimitive.Indicator\n ref={ref}\n data-slot=\"checkbox-indicator\"\n className={cn(\n \"grid place-content-center text-current transition-none [&>svg]:size-3.5 group-data-[size=sm]/checkbox:[&>svg]:size-3 group-data-[size=lg]/checkbox:[&>svg]:size-4\",\n className,\n )}\n {...props}\n />\n );\n});\nCheckboxIndicator.displayName = \"CheckboxIndicator\";\n\nexport { Checkbox, CheckboxIndicator };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description An interactive component which expands/collapses a panel.\n * @requires CollapsibleTrigger, CollapsibleContent\n * @example\n * <Collapsible>\n * <CollapsibleTrigger>Toggle</CollapsibleTrigger>\n * <CollapsibleContent>Content</CollapsibleContent>\n * </Collapsible>\n */\nconst Collapsible = React.forwardRef<\n React.ComponentRef<typeof CollapsiblePrimitive.Root>,\n React.ComponentProps<typeof CollapsiblePrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitive.Root\n ref={ref}\n data-slot=\"collapsible\"\n className={className}\n {...props}\n />\n));\nCollapsible.displayName = \"Collapsible\";\n\nconst CollapsibleTrigger = React.forwardRef<\n React.ComponentRef<typeof CollapsiblePrimitive.Trigger>,\n React.ComponentProps<typeof CollapsiblePrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitive.Trigger\n ref={ref}\n data-slot=\"collapsible-trigger\"\n className={className}\n {...props}\n />\n));\nCollapsibleTrigger.displayName = \"CollapsibleTrigger\";\n\nconst CollapsibleContent = React.forwardRef<\n React.ComponentRef<typeof CollapsiblePrimitive.Panel>,\n React.ComponentProps<typeof CollapsiblePrimitive.Panel>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitive.Panel\n ref={ref}\n data-slot=\"collapsible-content\"\n className={cn(\n \"flex flex-col justify-end overflow-hidden h-(--collapsible-panel-height) transition-[height] duration-200 ease-out data-starting-style:h-0 data-ending-style:h-0 [&[hidden]:not([hidden='until-found'])]:hidden\",\n className,\n )}\n {...props}\n />\n));\nCollapsibleContent.displayName = \"CollapsibleContent\";\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Self-contained: no imports from @/components/micro/*\n * - InputGroupButton, InputGroupInput, InputGroupTextarea render native HTML\n * - Size is always inherited from InputGroup wrapper via CSS group modifiers\n * - InputGroupButton placed directly in InputGroup (not inside InputGroupAddon)\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\n/* ── InputGroup ─────────────────────────────────────────────────\n Wrapper that groups inputs, addons, and action buttons.\n `size` is set once here and propagated to all children via\n CSS group modifiers: group-data-[size=sm|md|lg]/input-group:*\n ─────────────────────────────────────────────────────────────── */\nconst inputGroupVariants = cva(\n [\n \"group/input-group relative flex min-w-0 items-center overflow-hidden rounded-lg border border-input transition-colors outline-none\",\n // Disabled state delegated from inner elements\n \"has-disabled:bg-input/50 has-disabled:opacity-50 has-disabled:cursor-not-allowed dark:has-disabled:bg-input/80\",\n // Focus ring delegated from [data-slot=input-group-control]\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring\",\n \"has-[[data-slot=input-group-control]:focus-visible]:ring-3\",\n \"has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50\",\n \"has-[[data-slot=input-group-control]:focus-visible]:ring-offset-1\",\n \"has-[[data-slot=input-group-control]:focus-visible]:ring-offset-background\",\n // Error state delegated from aria-invalid on inner control\n \"has-[[data-slot][aria-invalid=true]]:border-destructive\",\n \"has-[[data-slot][aria-invalid=true]:focus-visible]:ring-3\",\n \"has-[[data-slot][aria-invalid=true]:focus-visible]:ring-destructive/50\",\n \"has-[[data-slot][aria-invalid=true]:focus-visible]:border-destructive\",\n // Dark mode base\n \"dark:bg-input/30\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-7 text-xs\",\n md: \"min-h-8 text-sm\",\n lg: \"min-h-9 text-sm\",\n },\n },\n },\n);\n\nconst InputGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\"> &\n VariantProps<typeof inputGroupVariants>\n>(function InputGroup({ className, size = \"md\", ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"input-group\"\n data-size={size}\n role=\"group\"\n className={cn(inputGroupVariants({ size }), className)}\n {...props}\n />\n );\n});\nInputGroup.displayName = \"InputGroup\";\n\n/* ── InputGroupAddon ─────────────────────────────────────────────\n Decorative slot for text/icon labels only (non-interactive).\n Clicking the addon area focuses the nearest input/textarea.\n Use `align=\"start\"` (default) or `align=\"end\"`.\n ─────────────────────────────────────────────────────────────── */\nconst inputGroupAddonVariants = cva(\n [\n \"flex h-auto cursor-text items-center justify-center gap-2 font-medium text-muted-foreground select-none\",\n \"group-has-[[data-slot][aria-invalid=true]]/input-group:text-destructive\",\n \"group-data-[size=sm]/input-group:py-0.5\",\n \"group-data-[size=md]/input-group:py-1.5\",\n \"group-data-[size=lg]/input-group:py-1.5\",\n \"[&>svg:not([class*='size-'])]:size-4\",\n \"group-data-[size=sm]/input-group:[&>svg:not([class*='size-'])]:size-3.5\",\n ],\n {\n variants: {\n align: {\n start: \"order-first pl-2 pr-1\",\n end: \"order-last pl-1 pr-2\",\n },\n },\n },\n);\n\nconst InputGroupAddon = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\"> &\n VariantProps<typeof inputGroupAddonVariants>\n>(function InputGroupAddon({ className, align = \"start\", ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) return;\n e.currentTarget.parentElement\n ?.querySelector<HTMLElement>(\"input, textarea\")\n ?.focus();\n }}\n {...props}\n />\n );\n});\nInputGroupAddon.displayName = \"InputGroupAddon\";\n\n/* ── InputGroupText ──────────────────────────────────────────────\n Inline label text or icon+text combo inside an InputGroupAddon.\n @note Decorative icons placed here should include `aria-hidden=\"true\"`\n to prevent screen readers from announcing them, e.g.:\n <InputGroupText><SearchIcon aria-hidden=\"true\" /></InputGroupText>\n ─────────────────────────────────────────────────────────────── */\nconst InputGroupText = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(function InputGroupText({ className, ...props }, ref) {\n return (\n <span\n ref={ref}\n className={cn(\n \"flex items-center gap-2 text-muted-foreground\",\n \"[&>svg]:pointer-events-none [&>svg:not([class*='size-'])]:size-4\",\n \"group-data-[size=sm]/input-group:[&>svg:not([class*='size-'])]:size-3.5\",\n className,\n )}\n {...props}\n />\n );\n});\nInputGroupText.displayName = \"InputGroupText\";\n\n/* ── InputGroupButton ────────────────────────────────────────────\n Self-contained native <button>. Place directly inside InputGroup\n (not inside InputGroupAddon). Size is always inherited from the\n parent InputGroup via CSS group modifiers — no `size` prop.\n\n Separator borders (border-l / border-r) are applied automatically\n based on DOM position within the flex container.\n\n icon={true} → square icon-only button (width = row height)\n icon={false} → text button with horizontal padding (default)\n ─────────────────────────────────────────────────────────────── */\nconst inputGroupButtonVariants = cva(\n [\n \"inline-flex shrink-0 self-stretch cursor-pointer items-center justify-center gap-1.5 font-medium whitespace-nowrap transition-colors duration-150 select-none\",\n // Self-managed focus ring (separate from wrapper delegation)\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n // Auto separator borders based on sibling position\n \"[&:not(:first-child)]:border-l [&:not(:last-child)]:border-r border-border\",\n // Icon sizing — base (md/lg), overridden for sm. Shared by both icon and text modes.\n \"[&>svg:not([class*='size-'])]:size-4\",\n \"group-data-[size=sm]/input-group:[&>svg:not([class*='size-'])]:size-3.5\",\n ],\n {\n variants: {\n variant: {\n ghost:\n \"bg-transparent text-muted-foreground hover:bg-muted hover:text-foreground\",\n solid: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n soft: \"bg-muted text-foreground hover:bg-muted/80\",\n outline:\n \"border border-input bg-transparent text-foreground hover:bg-muted/50\",\n },\n icon: {\n true: [\n // Square: width = min-h of wrapper\n \"group-data-[size=sm]/input-group:w-7\",\n \"group-data-[size=md]/input-group:w-8\",\n \"group-data-[size=lg]/input-group:w-9\",\n ],\n false: [\n // Text button: horizontal padding + font size from group\n \"group-data-[size=sm]/input-group:px-2 group-data-[size=sm]/input-group:text-xs\",\n \"group-data-[size=md]/input-group:px-2.5 group-data-[size=md]/input-group:text-sm\",\n \"group-data-[size=lg]/input-group:px-3 group-data-[size=lg]/input-group:text-sm\",\n ],\n },\n },\n },\n);\n\ntype InputGroupButtonProps = React.ComponentPropsWithoutRef<\"button\"> &\n VariantProps<typeof inputGroupButtonVariants>;\n\nconst InputGroupButton = React.forwardRef<\n HTMLButtonElement,\n InputGroupButtonProps\n>(function InputGroupButton(\n { className, type = \"button\", variant = \"ghost\", icon = false, ...props },\n ref,\n) {\n return (\n <button\n ref={ref}\n type={type}\n data-slot=\"input-group-button\"\n className={cn(inputGroupButtonVariants({ variant, icon }), className)}\n {...props}\n />\n );\n});\nInputGroupButton.displayName = \"InputGroupButton\";\n\n/* ── InputGroupInput ─────────────────────────────────────────────\n Self-contained native <input>. Size inherited from InputGroup.\n ─────────────────────────────────────────────────────────────── */\nconst InputGroupInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentPropsWithoutRef<\"input\">\n>(function InputGroupInput({ className, ...props }, ref) {\n return (\n <input\n ref={ref}\n data-slot=\"input-group-control\"\n className={cn(\n \"min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed\",\n \"group-data-[size=sm]/input-group:px-2 group-data-[size=sm]/input-group:py-0.5 group-data-[size=sm]/input-group:text-xs\",\n \"group-data-[size=md]/input-group:px-2.5 group-data-[size=md]/input-group:py-1 group-data-[size=md]/input-group:text-sm\",\n \"group-data-[size=lg]/input-group:px-3 group-data-[size=lg]/input-group:py-1.5 group-data-[size=lg]/input-group:text-sm\",\n className,\n )}\n {...props}\n />\n );\n});\nInputGroupInput.displayName = \"InputGroupInput\";\n\n/* ── InputGroupTextarea ──────────────────────────────────────────\n Self-contained native <textarea>. Size inherited from InputGroup.\n ─────────────────────────────────────────────────────────────── */\nconst InputGroupTextarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentPropsWithoutRef<\"textarea\">\n>(function InputGroupTextarea({ className, ...props }, ref) {\n return (\n <textarea\n ref={ref}\n data-slot=\"input-group-control\"\n className={cn(\n \"min-w-0 flex-1 resize-none bg-transparent py-2 outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed\",\n \"group-data-[size=sm]/input-group:px-2 group-data-[size=sm]/input-group:text-xs\",\n \"group-data-[size=md]/input-group:px-2.5 group-data-[size=md]/input-group:text-sm\",\n \"group-data-[size=lg]/input-group:px-3 group-data-[size=lg]/input-group:text-sm\",\n className,\n )}\n {...props}\n />\n );\n});\nInputGroupTextarea.displayName = \"InputGroupTextarea\";\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n *\n * 🚨 CRITICAL RULE FOR AI:\n * When using <Combobox>, YOU MUST pass the `items` prop (an array of data).\n * Headless UI libraries rely on this prop to build a stable internal item registry.\n * If omitted, the library is forced to scan the DOM on every render to discover items,\n * which causes full list re-renders, layout recalculations, and severe \"content jumping\" bugs.\n * DO NOT rely purely on static children mapping for Base UI collection components.\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { CheckIcon, ChevronDownIcon, XIcon } from \"lucide-react\";\n\nimport { InputGroupButton } from \"../../components/micro/input-group\";\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\nconst ComboboxContext = React.createContext<{\n anchor: Element | null;\n setAnchor: (el: Element | null) => void;\n}>({ anchor: null, setAnchor: () => {} });\n\nfunction Combobox<Value = any, Multiple extends boolean | undefined = false>(\n props: ComboboxPrimitive.Root.Props<Value, Multiple>,\n) {\n const [anchor, setAnchor] = React.useState<Element | null>(null);\n return (\n <ComboboxContext.Provider value={{ anchor, setAnchor }}>\n <ComboboxPrimitive.Root {...props} />\n </ComboboxContext.Provider>\n );\n}\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />;\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&>svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n );\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" icon />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n );\n}\n\nfunction ComboboxInput({ className, ...props }: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-input\"\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n // Clear standalone styles when inside InputGroup\n \"group-data-[slot=input-group]/input-group:border-0\",\n \"group-data-[slot=input-group]/input-group:shadow-none\",\n \"group-data-[slot=input-group]/input-group:h-auto\",\n \"group-data-[slot=input-group]/input-group:rounded-none\",\n \"group-data-[slot=input-group]/input-group:focus-visible:ring-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst ComboboxContent = React.forwardRef<\n HTMLDivElement,\n ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n > & {\n container?: React.ComponentProps<typeof ComboboxPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"start\",\n alignOffset = 0,\n anchor,\n container,\n ...props\n },\n ref,\n ) => {\n const { anchor: contextAnchor } = React.useContext(ComboboxContext);\n return (\n <ComboboxPrimitive.Portal container={container}>\n <ThemeWrapper>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor || contextAnchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n ref={ref}\n data-slot=\"combobox-content\"\n className={cn(\n \"group/combobox-content relative max-h-(--available-height) min-w-(--anchor-width) max-w-(--available-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 p-1 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 [&_[data-slot=input-group]]:mb-1 [&_[data-slot=input-group]]:w-full [&_[data-slot=input-group]]:border-input/30 [&_[data-slot=input-group]]:bg-input/30 [&_[data-slot=input-group]]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ThemeWrapper>\n </ComboboxPrimitive.Portal>\n );\n },\n);\nComboboxContent.displayName = \"ComboboxContent\";\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain data-empty:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:[&>svg]:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n );\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-xs text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return (\n <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n );\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n\n\n\nconst comboboxChipsVariants = cva(\n \"group/combobox-chips flex flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:focus-within:ring-3 has-aria-invalid:focus-within:ring-destructive/20 has-[[data-slot=combobox-chip]]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:focus-within:ring-destructive/40 has-disabled:opacity-50 has-disabled:cursor-not-allowed has-disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"chips-sm min-h-7 px-2 py-0.5 text-xs\",\n md: \"chips-md min-h-8 px-2.5 py-1 text-sm\",\n lg: \"chips-lg min-h-9 px-3 py-1.5 text-sm\",\n },\n },\n },\n);\n\nfunction ComboboxChips({\n className,\n size = \"md\",\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> &\n ComboboxPrimitive.Chips.Props &\n VariantProps<typeof comboboxChipsVariants>) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(comboboxChipsVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxChip<T = any>({\n className,\n children,\n showRemove = true,\n ...props\n}: Omit<ComboboxPrimitive.Chip.Props, \"value\"> & {\n value: T;\n showRemove?: boolean;\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0\",\n \"h-5 text-xs\",\n \"group-[.chips-sm]/combobox-chips:h-4 group-[.chips-sm]/combobox-chips:text-[10px]\",\n \"group-[.chips-lg]/combobox-chips:h-6 group-[.chips-lg]/combobox-chips:text-sm\",\n className,\n )}\n {...(props as ComboboxPrimitive.Chip.Props & { value: any })}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n className=\"-ml-1 flex size-4 items-center justify-center rounded-sm opacity-50 transition-opacity outline-none hover:opacity-100 hover:bg-foreground/10 focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none size-3\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n );\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\n \"min-w-16 flex-1 outline-none bg-transparent disabled:opacity-100 disabled:cursor-not-allowed disabled:pointer-events-none\",\n \"h-5\",\n \"group-[.chips-sm]/combobox-chips:h-4\",\n \"group-[.chips-lg]/combobox-chips:h-6\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction useComboboxContext() {\n const context = React.useContext(ComboboxContext);\n if (!context) {\n throw new Error(\"useComboboxContext must be used within a Combobox\");\n }\n return context;\n}\n\nconst ComboboxAnchor = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n const { setAnchor } = useComboboxContext();\n return (\n <div\n ref={(node) => {\n setAnchor(node);\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n data-slot=\"combobox-anchor\"\n className={className}\n {...props}\n />\n );\n});\nComboboxAnchor.displayName = \"ComboboxAnchor\";\n\nexport {\n Combobox,\n ComboboxAnchor,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxClear,\n ComboboxCollection,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxInput,\n ComboboxItem,\n ComboboxLabel,\n ComboboxList,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxContext,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { SearchIcon } from \"lucide-react\";\n\nimport {\n InputGroup,\n InputGroupAddon,\n} from \"../../components/micro/input-group\";\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst CommandContext = React.createContext<{ size: Size }>({ size: \"md\" });\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive> & {\n size?: Size;\n }\n>(({ className, size = \"md\", ...props }, ref) => (\n <CommandContext.Provider value={{ size }}>\n <CommandPrimitive\n ref={ref}\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-xl bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n </CommandContext.Provider>\n));\nCommand.displayName = \"Command\";\n\nconst commandInputVariants = cva(\n \"w-full outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: {\n sm: \"text-sm\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => {\n const { size } = React.useContext(CommandContext);\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className={cn(\n \"pb-0\",\n size === \"sm\" && \"p-1\",\n size === \"md\" && \"p-2\",\n size === \"lg\" && \"p-3\",\n )}\n >\n <InputGroup\n className={cn(\n \"rounded-lg border-input/30 bg-input/30 shadow-none\",\n size === \"sm\" && \"h-8\",\n size === \"md\" && \"h-10\",\n size === \"lg\" && \"h-11\",\n )}\n >\n <CommandPrimitive.Input\n ref={ref}\n data-slot=\"command-input\"\n className={cn(commandInputVariants({ size }), className)}\n {...props}\n />\n <InputGroupAddon\n className={cn(\"shrink-0\", size === \"lg\" ? \"pl-3\" : \"pl-2\")}\n >\n <SearchIcon\n className={cn(\"opacity-50\", size === \"lg\" ? \"size-5\" : \"size-4\")}\n />\n </InputGroupAddon>\n </InputGroup>\n </div>\n );\n});\nCommandInput.displayName = \"CommandInput\";\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n className={cn(\n \"no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none\",\n className,\n )}\n {...props}\n />\n));\nCommandList.displayName = \"CommandList\";\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>(({ className, ...props }, ref) => {\n const { size } = React.useContext(CommandContext);\n return (\n <CommandPrimitive.Empty\n ref={ref}\n data-slot=\"command-empty\"\n className={cn(\n \"text-center\",\n size === \"sm\" && \"py-4 text-xs\",\n size === \"md\" && \"py-6 text-sm\",\n size === \"lg\" && \"py-8 text-base\",\n className,\n )}\n {...props}\n />\n );\n});\nCommandEmpty.displayName = \"CommandEmpty\";\n\nconst commandGroupVariants = cva(\n \"overflow-hidden text-foreground **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-items]]:flex **:[[cmdk-group-items]]:flex-col\",\n {\n variants: {\n size: {\n sm: \"p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-items]]:gap-0.5\",\n md: \"p-2 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-items]]:gap-1\",\n lg: \"p-3 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-2 **:[[cmdk-group-heading]]:text-sm **:[[cmdk-group-items]]:gap-1\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => {\n const { size } = React.useContext(CommandContext);\n return (\n <CommandPrimitive.Group\n ref={ref}\n data-slot=\"command-group\"\n className={cn(commandGroupVariants({ size }), className)}\n {...props}\n />\n );\n});\nCommandGroup.displayName = \"CommandGroup\";\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = \"CommandSeparator\";\n\nconst commandItemVariants = cva(\n \"group/command-item relative flex cursor-default items-center outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:bg-accent hover:text-accent-foreground data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground aria-selected:bg-accent aria-selected:text-accent-foreground *:pointer-events-none *:shrink-0 hover:*:text-accent-foreground data-[selected=true]:*:text-accent-foreground aria-selected:*:text-accent-foreground\",\n {\n variants: {\n size: {\n sm: \"gap-2 rounded-sm px-2 py-1 text-xs **:[svg:not([class*='size-'])]:size-3.5\",\n md: \"gap-2 rounded-sm px-2 py-1.5 text-sm **:[svg:not([class*='size-'])]:size-4\",\n lg: \"gap-3 rounded-md px-3 py-2.5 text-base **:[svg:not([class*='size-'])]:size-5\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, children, ...props }, ref) => {\n const { size } = React.useContext(CommandContext);\n return (\n <CommandPrimitive.Item\n ref={ref}\n data-slot=\"command-item\"\n className={cn(commandItemVariants({ size }), className)}\n {...props}\n >\n {children}\n </CommandPrimitive.Item>\n );\n});\nCommandItem.displayName = \"CommandItem\";\n\nconst CommandShortcut = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n data-slot=\"command-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\ntype ContextMenuVariant = \"destructive\";\n\n/**\n * @description Displays a menu to the user — triggered by a right-click.\n * @requires ContextMenuTrigger, ContextMenuContent, ContextMenuItem\n * @example\n * <ContextMenu>\n * <ContextMenuTrigger>Right click here</ContextMenuTrigger>\n * <ContextMenuContent>\n * <ContextMenuItem>Profile</ContextMenuItem>\n * </ContextMenuContent>\n * </ContextMenu>\n */\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />;\n}\nContextMenu.displayName = \"ContextMenu\";\n\n\n\nconst ContextMenuTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n));\nContextMenuTrigger.displayName = \"ContextMenuTrigger\";\n\nconst ContextMenuContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Popup> &\n Pick<\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Positioner>,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n > & {\n container?: React.ComponentProps<typeof ContextMenuPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n align = \"start\",\n alignOffset = 0,\n side = \"right\",\n sideOffset = 4,\n container,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <ContextMenuPrimitive.Portal container={container}>\n <ThemeWrapper>\n <ContextMenuPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50 outline-none\"\n >\n <ContextMenuPrimitive.Popup\n ref={ref}\n data-slot=\"context-menu-content\"\n className={cn(\n \"z-50 min-w-[8rem] origin-(--transform-origin) overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-md duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {children}\n </ContextMenuPrimitive.Popup>\n </ContextMenuPrimitive.Positioner>\n </ThemeWrapper>\n </ContextMenuPrimitive.Portal>\n );\n },\n);\nContextMenuContent.displayName = \"ContextMenuContent\";\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n );\n}\nContextMenuGroup.displayName = \"ContextMenuGroup\";\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.GroupLabel>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.GroupLabel> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.GroupLabel\n ref={ref}\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className,\n )}\n {...props}\n />\n));\nContextMenuLabel.displayName = \"ContextMenuLabel\";\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: ContextMenuVariant;\n }\n>(({ className, inset, variant, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 *:pointer-events-none *:shrink-0 **:[svg:not([class*='size-'])]:size-4 focus:*:text-accent-foreground data-[variant=destructive]:*:text-destructive\",\n className,\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = \"ContextMenuItem\";\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return (\n <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n );\n}\nContextMenuSub.displayName = \"ContextMenuSub\";\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubmenuTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubmenuTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubmenuTrigger\n ref={ref}\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4 shrink-0\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n));\nContextMenuSubTrigger.displayName = \"ContextMenuSubTrigger\";\n\nfunction ContextMenuSubContent({\n ...props\n}: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n className=\"shadow-lg\"\n side=\"right\"\n {...props}\n />\n );\n}\nContextMenuSubContent.displayName = \"ContextMenuSubContent\";\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem> & {\n inset?: boolean;\n }\n>(({ className, children, checked, inset, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon className=\"size-4\" />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName = \"ContextMenuCheckboxItem\";\n\nfunction ContextMenuRadioGroup({\n ...props\n}: ContextMenuPrimitive.RadioGroup.Props) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n );\n}\nContextMenuRadioGroup.displayName = \"ContextMenuRadioGroup\";\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem> & {\n inset?: boolean;\n }\n>(({ className, children, inset, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = \"ContextMenuRadioItem\";\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = \"ContextMenuSeparator\";\n\nconst ContextMenuShortcut = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n));\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nconst DialogTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>\n>(({ ...props }, ref) => (\n <DialogPrimitive.Trigger ref={ref} data-slot=\"dialog-trigger\" {...props} />\n));\nDialogTrigger.displayName = \"DialogTrigger\";\n\n\n\nconst DialogClose = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Close>\n>(({ ...props }, ref) => (\n <DialogPrimitive.Close ref={ref} data-slot=\"dialog-close\" {...props} />\n));\nDialogClose.displayName = \"DialogClose\";\n\nconst DialogOverlay = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Backdrop>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = \"DialogOverlay\";\n\nconst DialogContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Popup> & {\n container?: React.ComponentProps<typeof DialogPrimitive.Portal>[\"container\"];\n }\n>(({ className, children, container, ...props }, ref) => (\n <DialogPrimitive.Portal container={container}>\n <ThemeWrapper>\n <DialogOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n \"group/dialog-content fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-y-auto\",\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {children}\n </DialogPrimitive.Popup>\n </ThemeWrapper>\n </DialogPrimitive.Portal>\n));\nDialogContent.displayName = \"DialogContent\";\n\nconst DialogHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n));\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n));\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n data-slot=\"dialog-title\"\n className={cn(\"font-heading text-base leading-none font-medium\", className)}\n {...props}\n />\n));\nDialogTitle.displayName = \"DialogTitle\";\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n data-slot=\"dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = \"DialogDescription\";\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogTitle,\n DialogTrigger,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nexport {\n DirectionProvider,\n useDirection,\n} from \"@base-ui/react/direction-provider\";\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\n// Fix TS2883: The inferred type cannot be named without a reference to @radix-ui/react-dialog\nimport type {} from \"@radix-ui/react-dialog\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\nfunction Drawer({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Trigger ref={ref} data-slot=\"drawer-trigger\" {...props} />\n));\nDrawerTrigger.displayName = \"DrawerTrigger\";\n\n\n\nconst DrawerClose = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Close>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Close>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Close ref={ref} data-slot=\"drawer-close\" {...props} />\n));\nDrawerClose.displayName = \"DrawerClose\";\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n data-slot=\"drawer-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className,\n )}\n {...props}\n />\n));\nDrawerOverlay.displayName = \"DrawerOverlay\";\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {\n container?: React.ComponentProps<typeof DrawerPrimitive.Portal>[\"container\"];\n }\n>(({ className, children, container, ...props }, ref) => (\n <DrawerPrimitive.Portal container={container}>\n <ThemeWrapper>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content fixed z-50 flex h-auto flex-col bg-popover text-sm text-popover-foreground data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </ThemeWrapper>\n </DrawerPrimitive.Portal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left\",\n className,\n )}\n {...props}\n />\n));\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n));\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n data-slot=\"drawer-title\"\n className={cn(\n \"font-heading text-base font-medium text-foreground\",\n className,\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = \"DrawerTitle\";\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n data-slot=\"drawer-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = \"DrawerDescription\";\n\nexport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerOverlay,\n DrawerTitle,\n DrawerTrigger,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\nexport type DropdownMenuVariant = \"destructive\";\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\nDropdownMenu.displayName = \"DropdownMenu\";\n\n\n\nconst DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n MenuPrimitive.Trigger.Props\n>(({ ...props }, ref) => (\n <MenuPrimitive.Trigger\n ref={ref}\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n));\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\";\n\nconst DropdownMenuContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup> &\n Pick<\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.Positioner>,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n > & {\n container?: React.ComponentProps<typeof MenuPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n sideOffset = 4,\n side = \"bottom\",\n align = \"start\",\n alignOffset = 0,\n container,\n children,\n ...props\n },\n ref,\n ) => (\n <MenuPrimitive.Portal container={container}>\n <ThemeWrapper>\n <MenuPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50 outline-none\"\n >\n <MenuPrimitive.Popup\n ref={ref}\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {children}\n </MenuPrimitive.Popup>\n </MenuPrimitive.Positioner>\n </ThemeWrapper>\n </MenuPrimitive.Portal>\n ),\n);\nDropdownMenuContent.displayName = \"DropdownMenuContent\";\n\nconst DropdownMenuGroup = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Group>,\n MenuPrimitive.Group.Props\n>(({ ...props }, ref) => (\n <MenuPrimitive.Group ref={ref} data-slot=\"dropdown-menu-group\" {...props} />\n));\nDropdownMenuGroup.displayName = \"DropdownMenuGroup\";\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.GroupLabel>,\n MenuPrimitive.GroupLabel.Props & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <MenuPrimitive.GroupLabel\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = \"DropdownMenuLabel\";\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Item>,\n MenuPrimitive.Item.Props & {\n inset?: boolean;\n variant?: DropdownMenuVariant;\n }\n>(({ className, inset, variant, ...props }, ref) => (\n <MenuPrimitive.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:*:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 *:pointer-events-none *:shrink-0 **:[svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:text-destructive\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\nDropdownMenuSub.displayName = \"DropdownMenuSub\";\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.SubmenuTrigger>,\n MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <MenuPrimitive.SubmenuTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:*:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground *:pointer-events-none *:shrink-0 **:[svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n));\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\";\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuContent>\n>(\n (\n {\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n },\n ref,\n ) => (\n <DropdownMenuContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n ),\n);\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\";\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.CheckboxItem>,\n MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean;\n }\n>(({ className, children, checked, inset, ...props }, ref) => (\n <MenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:*:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 *:pointer-events-none *:shrink-0 **:[svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = \"DropdownMenuCheckboxItem\";\n\nconst DropdownMenuRadioGroup = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.RadioGroup>,\n MenuPrimitive.RadioGroup.Props\n>(({ ...props }, ref) => (\n <MenuPrimitive.RadioGroup\n ref={ref}\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n));\nDropdownMenuRadioGroup.displayName = \"DropdownMenuRadioGroup\";\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.RadioItem>,\n MenuPrimitive.RadioItem.Props & {\n inset?: boolean;\n }\n>(({ className, children, inset, ...props }, ref) => (\n <MenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:*:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 *:pointer-events-none *:shrink-0 **:[svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = \"DropdownMenuRadioItem\";\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Separator>,\n MenuPrimitive.Separator.Props\n>(({ className, ...props }, ref) => (\n <MenuPrimitive.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = \"DropdownMenuSeparator\";\n\nconst DropdownMenuShortcut = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description A placeholder state component for empty data.\n * @requires EmptyHeader, EmptyTitle, EmptyDescription, EmptyMedia, EmptyContent, EmptyAction\n * @example\n * <Empty>\n * <EmptyHeader>\n * <EmptyTitle>No data</EmptyTitle>\n * </EmptyHeader>\n * </Empty>\n */\nconst Empty = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty\"\n className={cn(\n \"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance\",\n className,\n )}\n {...props}\n />\n));\nEmpty.displayName = \"Empty\";\n\nconst EmptyHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-header\"\n className={cn(\"flex max-w-sm flex-col items-center gap-2\", className)}\n {...props}\n />\n));\nEmptyHeader.displayName = \"EmptyHeader\";\n\nconst emptyMediaVariants = cva(\n \"flex shrink-0 items-center justify-center *:pointer-events-none *:shrink-0\",\n {\n variants: {\n variant: {\n icon: \"flex size-8 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground **:[svg:not([class*='size-'])]:size-4\",\n },\n },\n },\n);\n\nconst EmptyMedia = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\"> &\n VariantProps<typeof emptyMediaVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n));\nEmptyMedia.displayName = \"EmptyMedia\";\n\nconst EmptyTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentPropsWithoutRef<\"h3\">\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n data-slot=\"empty-title\"\n className={cn(\"font-heading text-sm font-medium tracking-tight\", className)}\n {...props}\n />\n));\nEmptyTitle.displayName = \"EmptyTitle\";\n\nconst EmptyDescription = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentPropsWithoutRef<\"p\">\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&_a]:underline [&_a]:underline-offset-4 [&_a:hover]:text-primary\",\n className,\n )}\n {...props}\n />\n));\nEmptyDescription.displayName = \"EmptyDescription\";\n\nconst EmptyContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance\",\n className,\n )}\n {...props}\n />\n));\nEmptyContent.displayName = \"EmptyContent\";\n\nconst EmptyAction = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-action\"\n className={cn(\"flex flex-col items-center gap-2\", className)}\n {...props}\n />\n));\nEmptyAction.displayName = \"EmptyAction\";\n\nexport {\n Empty,\n EmptyAction,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst labelVariants = cva(\n \"flex items-center gap-2 leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[invalid=true]:text-destructive\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-sm\",\n },\n },\n },\n);\n\n/**\n * @description Renders an accessible label associated with controls.\n * @example\n * <Label htmlFor=\"email\">Email</Label>\n */\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.ComponentProps<\"label\"> & VariantProps<typeof labelVariants>\n>(({ className, size = \"md\", ...props }, ref) => {\n return (\n <label\n ref={ref}\n data-slot=\"label\"\n className={cn(labelVariants({ size, className }))}\n {...props}\n />\n );\n});\nLabel.displayName = \"Label\";\n\nexport { Label, labelVariants };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Visually or semantically separates content.\n * @example\n * <Separator orientation=\"vertical\" />\n */\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { AlertCircleIcon } from \"lucide-react\";\n\nimport { Label } from \"../../components/micro/label\";\nimport { Separator } from \"../../components/micro/separator\";\nimport { cn } from \"../../lib/utils\";\n\nconst FieldSet = React.forwardRef<\n HTMLFieldSetElement,\n React.ComponentProps<\"fieldset\">\n>(({ className, ...props }, ref) => {\n return (\n <fieldset\n ref={ref}\n data-slot=\"field-set\"\n className={cn(\"flex flex-col gap-4\", className)}\n {...props}\n />\n );\n});\nFieldSet.displayName = \"FieldSet\";\n\nconst FieldLegend = React.forwardRef<\n HTMLLegendElement,\n React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }\n>(({ className, variant = \"legend\", ...props }, ref) => {\n return (\n <legend\n ref={ref}\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className,\n )}\n {...props}\n />\n );\n});\nFieldLegend.displayName = \"FieldLegend\";\n\nconst FieldGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group flex flex-col gap-5 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className,\n )}\n {...props}\n />\n );\n});\nFieldGroup.displayName = \"FieldGroup\";\n\nconst fieldVariants = cva(\"group/field flex min-w-fit\", {\n variants: {\n orientation: {\n vertical: \"flex-col [&>.sr-only]:w-auto\",\n horizontal: \"flex-row items-center [&>[data-slot=field-label]]:flex-auto\",\n // Responsive: vertical on mobile, horizontal on @md breakpoint.\n responsive:\n \"flex-col @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>[data-slot=field-label]]:flex-auto [&>.sr-only]:w-auto\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { orientation: \"vertical\", size: \"sm\", className: \"gap-0.5\" },\n { orientation: \"vertical\", size: \"md\", className: \"gap-0.5\" },\n { orientation: \"vertical\", size: \"lg\", className: \"gap-0.5\" },\n\n { orientation: \"horizontal\", size: \"sm\", className: \"gap-1\" },\n { orientation: \"horizontal\", size: \"md\", className: \"gap-1.5\" },\n { orientation: \"horizontal\", size: \"lg\", className: \"gap-2\" },\n\n {\n orientation: \"responsive\",\n size: \"sm\",\n className: \"gap-0.5 @md/field-group:gap-1\",\n },\n {\n orientation: \"responsive\",\n size: \"md\",\n className: \"gap-0.5 @md/field-group:gap-1.5\",\n },\n {\n orientation: \"responsive\",\n size: \"lg\",\n className: \"gap-0.5 @md/field-group:gap-2\",\n },\n ],\n});\n\nconst Field = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> &\n VariantProps<typeof fieldVariants> & { error?: boolean | string }\n>(\n (\n { className, orientation = \"vertical\", size = \"md\", error, ...props },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n data-size={size}\n data-invalid={!!error}\n className={cn(fieldVariants({ orientation, size }), className)}\n {...props}\n />\n );\n },\n);\nField.displayName = \"Field\";\n\nconst FieldContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-0.5 leading-snug\",\n className,\n )}\n {...props}\n />\n );\n});\nFieldContent.displayName = \"FieldContent\";\n\nconst FieldLabel = React.forwardRef<\n React.ElementRef<typeof Label>,\n React.ComponentProps<typeof Label>\n>(({ className, ...props }, ref) => {\n return (\n <Label\n ref={ref}\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"text-sm group-data-[size=sm]/field:text-xs\",\n className,\n )}\n {...props}\n />\n );\n});\nFieldLabel.displayName = \"FieldLabel\";\n\nconst FieldTitle = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"field-title\"\n className={cn(\n \"flex w-fit items-center gap-2 font-medium group-data-[disabled=true]/field:opacity-50\",\n \"text-sm group-data-[size=sm]/field:text-xs\",\n className,\n )}\n {...props}\n />\n );\n});\nFieldTitle.displayName = \"FieldTitle\";\n\nconst FieldDescription = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<\"p\">\n>(({ className, ...props }, ref) => {\n return (\n <p\n ref={ref}\n data-slot=\"field-description\"\n className={cn(\n // Pull up when after a legend variant; balance text when inside horizontal Field\n \"text-left leading-normal font-normal text-muted-foreground group-data-[orientation=horizontal]/field:text-balance [[data-variant=legend]+&]:-mt-1.5\",\n // Tighten gap: no margin when last child, pull up when second-to-last (before FieldError)\n \"last:mt-0 nth-last-2:-mt-1\",\n \"[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n \"text-sm group-data-[size=sm]/field:text-xs\",\n className,\n )}\n {...props}\n />\n );\n});\nFieldDescription.displayName = \"FieldDescription\";\n\nconst FieldSeparator = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { children?: React.ReactNode }\n>(({ children, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n});\nFieldSeparator.displayName = \"FieldSeparator\";\n\nconst FieldError = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>;\n }\n>(({ className, children, errors, ...props }, ref) => {\n const content = React.useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ];\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>,\n )}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\n \"text-sm font-medium text-destructive flex items-start gap-1.5 animate-in fade-in-0 slide-in-from-top-1\",\n className,\n )}\n {...props}\n >\n <AlertCircleIcon className=\"size-4 shrink-0 mt-0.5\" />\n <div className=\"flex-1\">{content}</div>\n </div>\n );\n});\nFieldError.displayName = \"FieldError\";\n\nexport {\n Field,\n FieldContent,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldTitle,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\n/**\n * @description For sighted users to preview content available behind a link.\n * @requires HoverCardTrigger, HoverCardContent\n * @example\n * <HoverCard>\n * <HoverCardTrigger>Hover me</HoverCardTrigger>\n * <HoverCardContent>Details</HoverCardContent>\n * </HoverCard>\n */\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nconst HoverCardTrigger = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<typeof PreviewCardPrimitive.Trigger>\n>(({ ...props }, ref) => (\n <PreviewCardPrimitive.Trigger\n ref={ref}\n data-slot=\"hover-card-trigger\"\n {...props}\n />\n));\nHoverCardTrigger.displayName = \"HoverCardTrigger\";\n\n\n\nconst HoverCardContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof PreviewCardPrimitive.Popup> &\n Pick<\n React.ComponentPropsWithoutRef<typeof PreviewCardPrimitive.Positioner>,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n > & {\n container?: React.ComponentProps<typeof PreviewCardPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n container,\n ...props\n },\n ref,\n ) => {\n return (\n <PreviewCardPrimitive.Portal container={container}>\n <ThemeWrapper>\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate\"\n >\n <PreviewCardPrimitive.Popup\n ref={ref}\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 origin-(--transform-origin) rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </ThemeWrapper>\n </PreviewCardPrimitive.Portal>\n );\n },\n);\nHoverCardContent.displayName = \"HoverCardContent\";\n\nexport { HoverCard, HoverCardContent, HoverCardTrigger };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst inputVariants = cva(\n \"min-w-0 rounded-lg border border-input bg-transparent text-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50\",\n {\n variants: {\n size: {\n sm: \"h-7 px-2 py-0.5 text-xs\",\n md: \"h-8 px-2.5 py-1 text-sm\",\n lg: \"h-9 px-3 py-1.5 text-sm\",\n },\n },\n },\n);\n\nexport type InputProps = Omit<\n React.ComponentPropsWithoutRef<typeof InputPrimitive>,\n \"size\"\n> &\n Omit<VariantProps<typeof inputVariants>, \"size\"> & {\n size?: Size;\n };\n\n/**\n * @description Displays a form input field or a component that looks like an input field.\n * @example\n * <Input type=\"email\" placeholder=\"Email\" />\n */\nconst Input = React.forwardRef<\n React.ComponentRef<typeof InputPrimitive>,\n InputProps\n>(function Input({ className, size = \"md\", ...props }, ref) {\n return (\n <InputPrimitive\n ref={ref}\n data-slot=\"input\"\n className={cn(inputVariants({ size, className }))}\n {...props}\n />\n );\n});\nInput.displayName = \"Input\";\n\nexport { Input };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (20 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst inputOTPVariants = cva(\n \"cn-input-otp group/otp inline-flex items-center has-disabled:opacity-50 has-disabled:cursor-not-allowed has-disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"min-h-7 text-xs\",\n md: \"min-h-8 text-sm\",\n lg: \"min-h-9 text-sm\",\n },\n },\n },\n);\n\ntype DistributiveOmit<T, K extends keyof any> = T extends any\n ? Omit<T, K>\n : never;\n\nconst InputOTP = React.forwardRef<\n React.ComponentRef<typeof OTPInput>,\n DistributiveOmit<React.ComponentProps<typeof OTPInput>, \"size\"> &\n VariantProps<typeof inputOTPVariants> & {\n containerClassName?: string;\n }\n>(({ className, containerClassName, size = \"md\", ...props }, ref) => {\n return (\n <div\n data-slot=\"input-otp\"\n data-size={size}\n className={cn(inputOTPVariants({ size }))}\n >\n <OTPInput\n {...(ref ? { ref } : {})}\n containerClassName={cn(\"flex items-center\", containerClassName)}\n spellCheck={false}\n className={cn(\n \"disabled:cursor-not-allowed disabled:opacity-100\",\n className,\n )}\n {...(props as React.ComponentProps<typeof OTPInput>)}\n />\n </div>\n );\n});\nInputOTP.displayName = \"InputOTP\";\n\nconst InputOTPGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"input-otp-group\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n );\n});\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nconst InputOTPSlot = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n ref={ref}\n data-slot=\"input-otp-slot\"\n data-active={isActive ? \"\" : undefined}\n className={cn(\n \"relative flex size-8 group-data-[size=sm]/otp:size-7 group-data-[size=lg]/otp:size-9 items-center justify-center border border-input rounded-lg bg-transparent transition-colors outline-none\",\n \"aria-invalid:border-destructive dark:aria-invalid:border-destructive/50\",\n \"data-active:z-10 data-active:border-ring data-active:ring-3 data-active:ring-ring/50 data-active:ring-offset-1 data-active:ring-offset-background\",\n \"data-active:aria-invalid:border-destructive data-active:aria-invalid:ring-3 data-active:aria-invalid:ring-destructive/50\",\n \"dark:bg-input/30 dark:data-active:aria-invalid:ring-destructive/50\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\nconst InputOTPSeparator = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"input-otp-separator\"\n className={cn(\n \"flex items-center text-muted-foreground [&>svg:not([class*='size-'])]:size-4 group-data-[size=sm]/otp:[&>svg:not([class*='size-'])]:size-3.5\",\n className,\n )}\n role=\"separator\"\n {...props}\n >\n {children}\n </div>\n );\n});\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cva } from \"class-variance-authority\";\n\nimport { Separator } from \"../../components/micro/separator\";\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Base flex container for listing items consistently.\n */\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\n \"group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-2\", className)}\n {...props}\n />\n );\n}\n\nconst itemVariants = cva(\n \"group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background [&_a]:transition-colors [&_a]:hover:bg-muted border-transparent\",\n {\n variants: {\n variant: {\n outline: \"border-border\",\n muted: \"border-transparent bg-muted/50\",\n },\n size: {\n sm: \"gap-1 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0\",\n md: \"gap-1.5 px-3 py-2.5\",\n lg: \"gap-2 px-3.5 py-2.5\",\n },\n },\n },\n);\n\nfunction Item({\n className,\n variant,\n size = \"md\",\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & {\n variant?: \"outline\" | \"muted\";\n size?: Size;\n}) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(itemVariants({ variant, size, className })),\n },\n props,\n ),\n render,\n state: {\n slot: \"item\",\n variant,\n size,\n },\n });\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&>svg]:pointer-events-none bg-transparent\",\n {\n variants: {\n variant: {\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&>img]:size-full [&>img]:object-cover\",\n },\n },\n },\n);\n\nfunction ItemMedia({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & { variant?: \"icon\" | \"image\" }) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"line-clamp-2 text-left text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Displays a keyboard shortcut.\n * @example\n * <Kbd>⌘K</Kbd>\n */\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 [&>svg:not([class*='size-'])]:size-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nexport { Kbd, KbdGroup };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\";\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuRadioGroup,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../../components/micro/dropdown-menu\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description A visually persistent menu common in desktop applications.\n * @requires MenubarMenu, MenubarTrigger, MenubarContent, MenubarItem\n * @example\n * <Menubar>\n * <MenubarMenu>\n * <MenubarTrigger>File</MenubarTrigger>\n * <MenubarContent><MenubarItem>New</MenubarItem></MenubarContent>\n * </MenubarMenu>\n * </Menubar>\n */\nfunction Menubar({ className, ...props }: MenubarPrimitive.Props) {\n return (\n <MenubarPrimitive\n data-slot=\"menubar\"\n className={cn(\n \"flex h-8 items-center gap-0.5 rounded-lg border border-border p-[3px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {\n return <DropdownMenu data-slot=\"menubar-menu\" {...props} />;\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuGroup>) {\n return <DropdownMenuGroup data-slot=\"menubar-group\" {...props} />;\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuTrigger>) {\n return (\n <DropdownMenuTrigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-sm px-1.5 py-[2px] text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"min-w-36 rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant,\n ...props\n}: React.ComponentProps<typeof DropdownMenuItem>) {\n return (\n <DropdownMenuItem\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/menubar-item gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:[&>svg]:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&>svg:not([class*='size-'])]:size-4 data-[variant=destructive]:[&>svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:[&>svg]:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:pointer-events-none [&>svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon aria-hidden=\"true\" />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuRadioGroup>) {\n return <DropdownMenuRadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:[&>svg]:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon aria-hidden=\"true\" />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuLabel> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuLabel\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-sm font-medium data-inset:pl-7\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSeparator>) {\n return (\n <DropdownMenuSeparator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuShortcut>) {\n return (\n <DropdownMenuShortcut\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuSub>) {\n return <DropdownMenuSub data-slot=\"menubar-sub\" {...props} />;\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuSubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubContent>) {\n return (\n <DropdownMenuSubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"min-w-32 rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarGroup,\n MenubarItem,\n MenubarLabel,\n MenubarMenu,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { NavigationMenu as NavigationMenuPrimitive } from \"@base-ui/react/navigation-menu\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\n/**\n * @description A collection of links for navigating websites.\n * @requires NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuContent\n */\nconst NavigationMenu = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => {\n return (\n <NavigationMenuPrimitive.Root\n ref={ref}\n data-slot=\"navigation-menu\"\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n </NavigationMenuPrimitive.Root>\n );\n});\nNavigationMenu.displayName = \"NavigationMenu\";\n\nconst NavigationMenuList = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => {\n return (\n <NavigationMenuPrimitive.List\n ref={ref}\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center gap-0\",\n className,\n )}\n {...props}\n />\n );\n});\nNavigationMenuList.displayName = \"NavigationMenuList\";\n\nconst NavigationMenuItem = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <NavigationMenuPrimitive.Item\n ref={ref}\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n});\nNavigationMenuItem.displayName = \"NavigationMenuItem\";\n\nfunction navigationMenuTriggerStyle(className?: string) {\n return cn(\n \"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted\",\n className,\n );\n}\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => {\n return (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(\"group\"), className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n});\nNavigationMenuTrigger.displayName = \"NavigationMenuTrigger\";\n\nconst NavigationMenuContent = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => {\n return (\n <NavigationMenuPrimitive.Content\n ref={ref}\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n />\n );\n});\nNavigationMenuContent.displayName = \"NavigationMenuContent\";\n\nconst NavigationMenuPositioner = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Positioner>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Positioner> & {\n container?: React.ComponentProps<typeof NavigationMenuPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n container,\n ...props\n },\n ref,\n ) => {\n return (\n <NavigationMenuPrimitive.Portal container={container}>\n <ThemeWrapper>\n <NavigationMenuPrimitive.Positioner\n ref={ref}\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n \"isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0\",\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-ending-style:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </ThemeWrapper>\n </NavigationMenuPrimitive.Portal>\n );\n },\n);\nNavigationMenuPositioner.displayName = \"NavigationMenuPositioner\";\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Viewport\n ref={ref}\n className={cn(\"relative size-full overflow-hidden\", className)}\n {...props}\n />\n));\nNavigationMenuViewport.displayName = \"NavigationMenuViewport\";\n\nconst NavigationMenuLink = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Link>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Link>\n>(({ className, ...props }, ref) => {\n return (\n <NavigationMenuPrimitive.Link\n ref={ref}\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background in-data-[slot=navigation-menu-content]:rounded-md in-data-[slot=navigation-menu-content]:focus:ring-0 in-data-[slot=navigation-menu-content]:focus:outline-none data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&>svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n});\nNavigationMenuLink.displayName = \"NavigationMenuLink\";\n\n\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuPositioner,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuViewport,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\";\n\nimport { Button } from \"../../components/micro/button\";\nimport type { Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst ellipsisSizeMap: Record<Size, { container: string; icon: string }> = {\n sm: { container: \"size-7\", icon: \"[&>svg:not([class*='size-'])]:size-3\" },\n md: { container: \"size-9\", icon: \"[&>svg:not([class*='size-'])]:size-4\" },\n lg: { container: \"size-11\", icon: \"[&>svg:not([class*='size-'])]:size-5\" },\n};\n\n/**\n * @description Pagination with page navigation, next and previous links.\n * @requires PaginationContent, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious\n */\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\n \"group/pagination mx-auto flex w-full justify-center\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex items-center gap-0.5\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">;\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"md\",\n ...props\n}: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? \"outline\" : \"ghost\"}\n size={size}\n className={className}\n nativeButton={false}\n render={\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive ? \"\" : undefined}\n {...props}\n />\n }\n />\n );\n}\n\nfunction PaginationPrevious({\n className,\n text = \"Previous\",\n size = \"md\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size={size}\n className={cn(\"pl-2.5\", className)}\n {...props}\n >\n <ChevronLeftIcon aria-hidden=\"true\" data-icon=\"inline-start\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({\n className,\n text = \"Next\",\n size = \"md\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size={size}\n className={cn(\"pr-2.5\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon aria-hidden=\"true\" data-icon=\"inline-end\" />\n </PaginationLink>\n );\n}\n\ntype PaginationEllipsisProps = React.ComponentProps<\"span\"> & { size?: Size };\n\nfunction PaginationEllipsis({\n className,\n size = \"md\",\n ...props\n}: PaginationEllipsisProps) {\n const { container, icon } = ellipsisSizeMap[size];\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"flex items-center justify-center\",\n container,\n icon,\n className,\n )}\n {...props}\n >\n <MoreHorizontalIcon aria-hidden=\"true\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n * - No Hardcoded Dimensions\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\nfunction Popover(props: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root {...props} />;\n}\n\nconst PopoverTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>\n>((props, ref) => {\n return (\n <PopoverPrimitive.Trigger\n ref={ref}\n data-slot=\"popover-trigger\"\n {...props}\n />\n );\n});\nPopoverTrigger.displayName = \"PopoverTrigger\";\n\nconst PopoverContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Popup> &\n Pick<\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Positioner>,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n > & {\n container?: React.ComponentProps<typeof PopoverPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n align = \"center\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n container,\n children,\n ...props\n },\n ref,\n ) => (\n <PopoverPrimitive.Portal container={container}>\n <ThemeWrapper>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n ref={ref}\n data-slot=\"popover-content\"\n className={cn(\n \"flex origin-(--transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {children}\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </ThemeWrapper>\n </PopoverPrimitive.Portal>\n ),\n);\nPopoverContent.displayName = \"PopoverContent\";\n\nconst PopoverHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-0.5 text-sm\", className)}\n {...props}\n />\n );\n});\nPopoverHeader.displayName = \"PopoverHeader\";\n\nconst PopoverTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Title>\n>(({ className, ...props }, ref) => {\n return (\n <PopoverPrimitive.Title\n ref={ref}\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n );\n});\nPopoverTitle.displayName = \"PopoverTitle\";\n\nconst PopoverDescription = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Description>\n>(({ className, ...props }, ref) => {\n return (\n <PopoverPrimitive.Description\n ref={ref}\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nPopoverDescription.displayName = \"PopoverDescription\";\n\nexport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\";\n\nimport { type Color, type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst ProgressContext = React.createContext<{ size: Size; color: Color }>({\n size: \"md\",\n color: \"primary\",\n});\n\nexport interface ProgressProps extends ProgressPrimitive.Root.Props {\n size?: Size;\n color?: Color;\n}\n\n/**\n * @description Displays an indicator showing the completion progress of a task.\n * @example\n * <Progress value={33} />\n */\nfunction Progress({\n className,\n children,\n size = \"md\",\n color = \"primary\",\n ...props\n}: ProgressProps) {\n return (\n <ProgressContext.Provider value={{ size, color }}>\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-x-3 gap-y-1.5\", className)}\n {...props}\n >\n {children}\n </ProgressPrimitive.Root>\n </ProgressContext.Provider>\n );\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n const { size } = React.useContext(ProgressContext);\n\n const sizeClasses: Partial<Record<Size, string>> = {\n sm: \"h-1\",\n md: \"h-1.5\",\n lg: \"h-2\",\n };\n\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"relative flex w-full items-center overflow-x-hidden rounded-full bg-muted\",\n size ? sizeClasses[size] : \"\",\n className,\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n );\n}\n\nfunction ProgressIndicator({\n className,\n ...props\n}: ProgressPrimitive.Indicator.Props) {\n const { color } = React.useContext(ProgressContext);\n\n const bgColors: Record<Color, string> = {\n primary: \"bg-primary\",\n secondary: \"bg-secondary\",\n destructive: \"bg-destructive\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n info: \"bg-info\",\n tertiary: \"bg-tertiary\",\n muted: \"bg-muted\",\n accent: \"bg-accent\",\n };\n\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"h-full transition-all\", bgColors[color], className)}\n {...props}\n />\n );\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n const { size } = React.useContext(ProgressContext);\n const textSizes = {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n };\n\n return (\n <ProgressPrimitive.Label\n className={cn(textSizes[size], \"font-medium\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n );\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n const { size } = React.useContext(ProgressContext);\n const textSizes = {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n };\n\n return (\n <ProgressPrimitive.Value\n className={cn(\n \"ml-auto text-muted-foreground tabular-nums\",\n textSizes[size],\n className,\n )}\n data-slot=\"progress-value\"\n {...props}\n />\n );\n}\n\nexport {\n Progress,\n ProgressIndicator,\n ProgressLabel,\n ProgressTrack,\n ProgressValue,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\";\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst RadioGroup = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive>\n>(function RadioGroup({ className, ...props }, ref) {\n return (\n <RadioGroupPrimitive\n ref={ref}\n data-slot=\"radio-group\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n );\n});\nRadioGroup.displayName = \"RadioGroup\";\n\nconst radioGroupItemVariants = cva(\n \"group/radio peer relative flex aspect-square shrink-0 rounded-full border border-input after:absolute after:content-[''] outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n {\n variants: {\n size: {\n sm: \"size-3.5 after:-inset-x-2.5 after:-inset-y-2.5\",\n md: \"size-4 after:-inset-x-3 after:-inset-y-2\",\n lg: \"size-5 after:-inset-x-4 after:-inset-y-3\",\n },\n },\n },\n);\n\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioPrimitive.Root> &\n Omit<VariantProps<typeof radioGroupItemVariants>, \"size\"> & {\n size?: Size;\n }\n>(function RadioGroupItem({ className, size = \"md\", ...props }, ref) {\n return (\n <RadioPrimitive.Root\n ref={ref}\n data-slot=\"radio-group-item\"\n data-size={size}\n className={cn(radioGroupItemVariants({ size, className }))}\n {...props}\n >\n <RadioPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex items-center justify-center size-4 group-data-[size=sm]/radio:size-3.5 group-data-[size=lg]/radio:size-5\"\n >\n <span className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground size-2 group-data-[size=sm]/radio:size-1.5 group-data-[size=lg]/radio:size-2.5\" />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n );\n});\nRadioGroupItem.displayName = \"RadioGroupItem\";\n\nexport { RadioGroup, RadioGroupItem };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Accessible resizable panel groups and layouts.\n * @requires ResizablePanel, ResizableHandle\n */\nfunction ResizablePanelGroup({\n className,\n ...props\n}: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full aria-[orientation=vertical]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: ResizablePrimitive.SeparatorProps & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]_[data-slot=resizable-handle-bar]]:rotate-90\",\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div\n data-slot=\"resizable-handle-bar\"\n className=\"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\"\n />\n )}\n </ResizablePrimitive.Separator>\n );\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Augments native scroll functionality for custom, cross-browser styling.\n * @example\n * <ScrollArea className=\"h-[200px] w-[350px]\">\n * Jokester began sneaking into the castle in the middle of the night.\n * </ScrollArea>\n */\nfunction ScrollArea({\n className,\n children,\n ...props\n}: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-border data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-border data-vertical:border-l-transparent\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { Button } from \"../../components/micro/button\";\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\n\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n container,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n showCloseButton?: boolean;\n container?: React.ComponentProps<typeof SheetPrimitive.Portal>[\"container\"];\n}) {\n return (\n <SheetPrimitive.Portal container={container}>\n <ThemeWrapper>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-4 right-4\"\n size=\"sm\"\n iconOnly\n />\n }\n >\n <XIcon aria-hidden=\"true\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </ThemeWrapper>\n </SheetPrimitive.Portal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-0.5 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\n \"font-heading text-base font-medium text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetOverlay,\n SheetTitle,\n SheetTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// 1. Sidebar (Wrapper)\n// ─────────────────────────────────────────────────────────────────────────────\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultState?: \"expanded\" | \"collapsed\";\n /** Width in pixels when expanded. Default: 256 (= w-64) */\n expandedWidth?: number;\n /** Width in pixels when collapsed. Default: 56 (= w-14) */\n collapsedWidth?: number;\n }\n>(\n (\n {\n className,\n defaultState = \"expanded\",\n expandedWidth = 256,\n collapsedWidth = 72,\n ...props\n },\n ref,\n ) => {\n // will-change only during animation, not always-on\n const handleTransitionStart = (\n e: React.TransitionEvent<HTMLDivElement>,\n ) => {\n if (e.propertyName === \"width\")\n e.currentTarget.style.willChange = \"width\";\n };\n const handleTransitionEnd = (e: React.TransitionEvent<HTMLDivElement>) => {\n if (e.propertyName === \"width\") e.currentTarget.style.willChange = \"auto\";\n };\n\n return (\n // Outer: only this div animates width. No layout children to reflow.\n <div\n ref={ref}\n role=\"navigation\"\n aria-expanded={defaultState === \"expanded\"}\n style={\n {\n \"--sb-expanded\": `${expandedWidth}px`,\n \"--sb-collapsed\": `${collapsedWidth}px`,\n } as React.CSSProperties\n }\n className={cn(\n \"group shrink-0 h-full overflow-hidden border-r border-r-border bg-sidebar text-sidebar-foreground\",\n \"transition-[width,border-width] duration-[400ms]\",\n \"data-[state=expanded]:w-[var(--sb-expanded)]\",\n \"data-[state=collapsed]:w-[var(--sb-collapsed)]\",\n collapsedWidth === 0 && \"data-[state=collapsed]:border-r-0\",\n className,\n )}\n data-state={defaultState}\n onTransitionStart={handleTransitionStart}\n onTransitionEnd={handleTransitionEnd}\n >\n {/* Inner: ALWAYS expandedWidth. Never relayouts. Clipped by outer overflow-hidden. */}\n <div\n className=\"flex h-full flex-col p-2\"\n style={{ width: `${expandedWidth}px` }}\n {...props}\n />\n </div>\n );\n },\n);\nSidebar.displayName = \"Sidebar\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// 2. SidebarLogo\n// ─────────────────────────────────────────────────────────────────────────────\nconst SidebarLogo = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n icon: React.ReactNode;\n text: React.ReactNode;\n }\n>(({ className, icon, text, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"flex h-12 items-center overflow-hidden text-sidebar-foreground\",\n className,\n )}\n {...props}\n >\n {/* Icon container width matches collapsed sidebar width — reads CSS var from parent */}\n <div\n className=\"flex shrink-0 items-center justify-center\"\n style={{ width: \"calc(var(--sb-collapsed) - 16px)\" }}\n >\n {icon}\n </div>\n <span className=\"whitespace-nowrap font-semibold transition-opacity group-data-[state=collapsed]:opacity-0 group-data-[state=collapsed]:duration-[80ms] group-data-[state=expanded]:duration-[200ms] group-data-[state=expanded]:delay-[300ms]\">\n {text}\n </span>\n </div>\n );\n});\nSidebarLogo.displayName = \"SidebarLogo\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// 3. SidebarLabel\n// ─────────────────────────────────────────────────────────────────────────────\nconst SidebarLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n icon: React.ReactNode;\n text: React.ReactNode;\n }\n>(({ className, icon, text, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"flex h-10 items-center overflow-hidden text-sm text-sidebar-foreground\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground cursor-pointer rounded-md\",\n className,\n )}\n {...props}\n >\n {/* Icon container width matches collapsed sidebar width — reads CSS var from parent */}\n <div\n className=\"flex shrink-0 items-center justify-center [&>svg]:size-4\"\n style={{ width: \"calc(var(--sb-collapsed) - 16px)\" }}\n >\n {icon}\n </div>\n <span className=\"whitespace-nowrap transition-opacity group-data-[state=collapsed]:opacity-0 group-data-[state=collapsed]:duration-[80ms] group-data-[state=expanded]:duration-[200ms] group-data-[state=expanded]:delay-[300ms]\">\n {text}\n </span>\n </div>\n );\n});\nSidebarLabel.displayName = \"SidebarLabel\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// 4. SidebarMenuItemList\n// ─────────────────────────────────────────────────────────────────────────────\nconst SidebarMenuItemList = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col gap-1\", className)}\n {...props}\n />\n );\n});\nSidebarMenuItemList.displayName = \"SidebarMenuItemList\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// 5. SidebarMenuItem\n// ─────────────────────────────────────────────────────────────────────────────\nconst SidebarMenuItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n text: React.ReactNode;\n }\n>(({ className, text, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"flex h-8 items-center pr-4 text-sm text-sidebar-foreground/70\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground cursor-pointer rounded-md\",\n className,\n )}\n // Indent aligns with label text, which starts after the icon column (--sb-collapsed wide)\n style={{ paddingLeft: \"calc(var(--sb-collapsed) - 16px)\" }}\n {...props}\n >\n <span className=\"whitespace-nowrap transition-opacity group-data-[state=collapsed]:opacity-0 group-data-[state=collapsed]:duration-[80ms] group-data-[state=expanded]:duration-[200ms] group-data-[state=expanded]:delay-[300ms]\">\n {text}\n </span>\n </div>\n );\n});\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\n// ─────────────────────────────────────────────────────────────────────────────\n// 6. Imperative Toggle Hook\n// ─────────────────────────────────────────────────────────────────────────────\nexport function useSidebarToggle(\n initialState: \"expanded\" | \"collapsed\" = \"expanded\",\n onStateChange?: (state: \"expanded\" | \"collapsed\") => void,\n) {\n const sidebarRef = React.useRef<HTMLDivElement>(null);\n // Stable ref so setSidebarState callback never goes stale even if caller's onStateChange changes\n const onStateChangeRef = React.useRef(onStateChange);\n React.useEffect(() => {\n onStateChangeRef.current = onStateChange;\n }, [onStateChange]);\n\n const setSidebarState = React.useCallback(\n (state: \"expanded\" | \"collapsed\") => {\n if (sidebarRef.current) {\n sidebarRef.current.setAttribute(\"data-state\", state);\n sidebarRef.current.setAttribute(\n \"aria-expanded\",\n String(state === \"expanded\"),\n );\n onStateChangeRef.current?.(state);\n }\n },\n [],\n );\n\n const toggleSidebar = React.useCallback(() => {\n if (sidebarRef.current) {\n const current = sidebarRef.current.getAttribute(\"data-state\");\n setSidebarState(current === \"expanded\" ? \"collapsed\" : \"expanded\");\n }\n }, [setSidebarState]);\n\n return {\n sidebarRef,\n toggleSidebar,\n setSidebarState,\n defaultState: initialState,\n };\n}\n\nexport {\n Sidebar,\n SidebarLabel,\n SidebarLogo,\n SidebarMenuItem,\n SidebarMenuItemList,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * @description Use to show a placeholder while content is loading.\n * @example\n * <Skeleton className=\"w-[100px] h-[20px] rounded-full\" />\n */\nconst Skeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-lg bg-muted\", className)}\n {...props}\n />\n));\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton };\n","\"use client\";\n\n/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { Slider as SliderPrimitive } from \"@base-ui/react/slider\";\nimport { cva } from \"class-variance-authority\";\n\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst sliderVariants = cva(\n \"peer group/slider data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\",\n);\n\nconst trackVariants = cva(\n \"relative grow overflow-hidden rounded-full bg-muted select-none data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full\",\n {\n variants: {\n size: {\n sm: \"data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1\",\n md: \"data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5\",\n lg: \"data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2\",\n },\n },\n },\n);\n\nconst thumbVariants = cva(\n \"relative block shrink-0 rounded-full border border-ring bg-background ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 focus-visible:ring-3 focus-visible:ring-offset-1 focus-visible:ring-offset-background has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-offset-1 has-[:focus-visible]:ring-offset-background focus-visible:outline-none has-[:focus-visible]:outline-none disabled:pointer-events-none group-aria-invalid/slider:border-destructive group-aria-invalid/slider:focus-visible:border-destructive group-aria-invalid/slider:has-[:focus-visible]:border-destructive group-aria-invalid/slider:focus-visible:ring-destructive/50 group-aria-invalid/slider:has-[:focus-visible]:ring-destructive/50 dark:group-aria-invalid/slider:focus-visible:ring-destructive/50 dark:group-aria-invalid/slider:has-[:focus-visible]:ring-destructive/50\",\n {\n variants: {\n size: {\n sm: \"size-3\",\n md: \"size-4\",\n lg: \"size-5\",\n },\n },\n },\n);\n\nconst SliderContext = React.createContext<{ size: Size }>({\n size: \"md\",\n});\n\nconst Slider = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> & { size?: Size }\n>(function Slider({ className, size = \"md\", ...props }, ref) {\n return (\n <SliderContext.Provider value={{ size }}>\n <SliderPrimitive.Root\n ref={ref}\n className={cn(sliderVariants({ className }))}\n data-slot=\"slider\"\n thumbAlignment=\"edge\"\n {...props}\n />\n </SliderContext.Provider>\n );\n});\nSlider.displayName = \"Slider\";\n\nconst SliderControl = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Control>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Control>\n>(function SliderControl({ className, ...props }, ref) {\n return (\n <SliderPrimitive.Control\n ref={ref}\n data-slot=\"slider-control\"\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-disabled:cursor-not-allowed data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-40 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n});\nSliderControl.displayName = \"SliderControl\";\n\nconst SliderTrack = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Track>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Track>\n>(function SliderTrack({ className, ...props }, ref) {\n const { size } = React.useContext(SliderContext);\n return (\n <SliderPrimitive.Track\n ref={ref}\n data-slot=\"slider-track\"\n className={cn(trackVariants({ size }), className)}\n {...props}\n />\n );\n});\nSliderTrack.displayName = \"SliderTrack\";\n\nconst SliderIndicator = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Indicator>\n>(function SliderIndicator({ className, ...props }, ref) {\n return (\n <SliderPrimitive.Indicator\n ref={ref}\n data-slot=\"slider-indicator\"\n className={cn(\n \"group-aria-invalid/slider:bg-destructive bg-primary select-none data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\n className,\n )}\n {...props}\n />\n );\n});\nSliderIndicator.displayName = \"SliderIndicator\";\n\nconst SliderThumb = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Thumb>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Thumb>\n>(function SliderThumb({ className, ...props }, ref) {\n const { size } = React.useContext(SliderContext);\n return (\n <SliderPrimitive.Thumb\n ref={ref}\n data-slot=\"slider-thumb\"\n className={cn(thumbVariants({ size }), className)}\n {...props}\n />\n );\n});\nSliderThumb.displayName = \"SliderThumb\";\n\nexport { Slider, SliderControl, SliderIndicator, SliderThumb, SliderTrack };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { Loader2Icon } from \"lucide-react\";\n\nconst spinnerVariants = cva(\"animate-spin motion-reduce:animate-none\", {\n variants: {\n size: {\n sm: \"size-3.5\",\n md: \"size-4\",\n lg: \"size-5\",\n },\n },\n});\n\nexport type SpinnerProps = React.ComponentProps<\"svg\"> &\n VariantProps<typeof spinnerVariants>;\n\n/**\n * @description A loading indicator component.\n * @example\n * <Spinner size=\"md\" />\n */\nfunction Spinner({ className, size = \"md\", ...props }: SpinnerProps) {\n return (\n <Loader2Icon\n data-slot=\"spinner\"\n role=\"status\"\n aria-label=\"Loading\"\n className={spinnerVariants({ size, className })}\n {...props}\n />\n );\n}\n\nexport { Spinner };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n CircleCheckIcon,\n InfoIcon,\n OctagonXIcon,\n TriangleAlertIcon,\n} from \"lucide-react\";\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\";\n\nimport { Spinner } from \"../../components/micro/spinner\";\nimport { useTheme } from \"../../components/micro/theme-provider\";\n\nfunction Toaster({ ...props }: ToasterProps) {\n const themeContext = useTheme();\n const theme = themeContext?.mode;\n\n return (\n <Sonner\n theme={theme}\n className=\"toaster group\"\n icons={{\n success: <CircleCheckIcon aria-hidden=\"true\" className=\"size-4\" />,\n info: <InfoIcon aria-hidden=\"true\" className=\"size-4\" />,\n warning: <TriangleAlertIcon aria-hidden=\"true\" className=\"size-4\" />,\n error: <OctagonXIcon aria-hidden=\"true\" className=\"size-4\" />,\n loading: <Spinner size=\"md\" />,\n }}\n richColors\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n\n /* Map Sonner's internal variables to our design system variables */\n \"--success-bg\":\n \"color-mix(in srgb, var(--success) 10%, var(--popover))\",\n \"--success-text\": \"var(--success)\",\n \"--success-border\":\n \"color-mix(in srgb, var(--success) 20%, var(--popover))\",\n\n \"--error-bg\":\n \"color-mix(in srgb, var(--destructive) 10%, var(--popover))\",\n \"--error-text\": \"var(--destructive)\",\n \"--error-border\":\n \"color-mix(in srgb, var(--destructive) 20%, var(--popover))\",\n\n \"--warning-bg\":\n \"color-mix(in srgb, var(--warning) 10%, var(--popover))\",\n \"--warning-text\": \"var(--warning)\",\n \"--warning-border\":\n \"color-mix(in srgb, var(--warning) 20%, var(--popover))\",\n\n \"--info-bg\": \"color-mix(in srgb, var(--info) 10%, var(--popover))\",\n \"--info-text\": \"var(--info)\",\n \"--info-border\":\n \"color-mix(in srgb, var(--info) 20%, var(--popover))\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"group toast\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n },\n }}\n {...props}\n />\n );\n}\n\nexport { Toaster };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Switch as SwitchPrimitive } from \"@base-ui/react/switch\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst switchVariants = cva(\n \"group/switch peer relative inline-flex shrink-0 items-center rounded-full border border-transparent p-px after:absolute after:content-[''] transition-all outline-none focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background aria-invalid:focus-visible:ring-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-secondary data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n {\n variants: {\n size: {\n sm: \"switch-sm h-4 w-7 after:-inset-x-2.5 after:-inset-y-2.5\",\n md: \"switch-md h-5 w-9 after:-inset-x-3 after:-inset-y-2\",\n lg: \"switch-lg h-6 w-11 after:-inset-x-4 after:-inset-y-3\",\n },\n },\n },\n);\n\n/**\n * @description A control that allows the user to toggle between checked and not checked.\n * @example\n * <Switch id=\"airplane-mode\" />\n */\nconst Switch = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> &\n VariantProps<typeof switchVariants>\n>(function Switch({ className, size = \"md\", ...props }, ref) {\n return (\n <SwitchPrimitive.Root\n ref={ref}\n data-slot=\"switch\"\n /* Expand touch target area (Hit Area) minimally to 44x44px via pseudo-element (after:-inset-*) */\n className={cn(switchVariants({ size, className }))}\n {...props}\n />\n );\n});\nSwitch.displayName = \"Switch\";\n\nconst SwitchThumb = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitive.Thumb>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Thumb>\n>(function SwitchThumb({ className, ...props }, ref) {\n return (\n <SwitchPrimitive.Thumb\n ref={ref}\n data-slot=\"switch-thumb\"\n className={cn(\n \"pointer-events-none block rounded-full bg-background shadow-sm shadow-black/10 ring-0 transition-transform data-unchecked:translate-x-0 dark:data-checked:bg-primary-foreground dark:data-unchecked:bg-foreground size-4 data-checked:translate-x-4 group-[.switch-sm]/switch:size-3 group-[.switch-sm]/switch:data-checked:translate-x-3 group-[.switch-lg]/switch:size-5 group-[.switch-lg]/switch:data-checked:translate-x-5\",\n className,\n )}\n {...props}\n />\n );\n});\nSwitchThumb.displayName = \"SwitchThumb\";\n\nexport { Switch, SwitchThumb };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Table = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"table-container\"\n className={cn(\"group/table relative w-full overflow-auto\", className)}\n {...props}\n >\n <table data-slot=\"table\" className=\"w-full caption-bottom text-sm\">\n {children}\n </table>\n </div>\n );\n },\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.ComponentProps<\"thead\">\n>(({ className, ...props }, ref) => {\n return (\n <thead\n ref={ref}\n data-slot=\"table-header\"\n className={cn(\"[&>tr]:border-b\", className)}\n {...props}\n />\n );\n});\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.ComponentProps<\"tbody\">\n>(({ className, ...props }, ref) => {\n return (\n <tbody\n ref={ref}\n data-slot=\"table-body\"\n className={cn(\"[&>tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n});\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.ComponentProps<\"tfoot\">\n>(({ className, ...props }, ref) => {\n return (\n <tfoot\n ref={ref}\n data-slot=\"table-footer\"\n className={cn(\n \"border-t border-t-border bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n});\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.ComponentProps<\"tr\">\n>(({ className, ...props }, ref) => {\n return (\n <tr\n ref={ref}\n data-slot=\"table-row\"\n className={cn(\n \"border-b border-b-border transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n );\n});\nTableRow.displayName = \"TableRow\";\n\ntype SortDirection = \"asc\" | \"desc\" | \"none\";\n\ninterface TableHeadProps extends React.ComponentProps<\"th\"> {\n sortDirection?: SortDirection;\n sortOptions?: SortDirection[];\n onSort?: (nextDirection: SortDirection) => void;\n}\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n (\n {\n className,\n sortDirection,\n sortOptions = [\"asc\", \"desc\", \"none\"],\n onSort,\n children,\n ...props\n },\n ref,\n ) => {\n const handleSortClick = () => {\n if (!onSort || !sortDirection || sortOptions.length === 0) return;\n\n const currentIndex = sortOptions.indexOf(sortDirection);\n const nextIndex =\n currentIndex === -1 ? 0 : (currentIndex + 1) % sortOptions.length;\n\n onSort(sortOptions[nextIndex]!);\n };\n\n return (\n <th\n ref={ref}\n data-slot=\"table-head\"\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground has-[[role=checkbox]]:pr-0\",\n className,\n )}\n {...props}\n >\n {onSort && sortDirection ? (\n <button\n type=\"button\"\n onClick={handleSortClick}\n className=\"-ml-1 flex items-center gap-1.5 rounded-sm px-1 py-0.5 text-inherit hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n {children}\n <div className=\"flex flex-col\">\n <ChevronUp\n className={cn(\"size-[14px] -mb-1.5 opacity-30\", {\n \"opacity-100\": sortDirection === \"asc\",\n })}\n />\n <ChevronDown\n className={cn(\"size-[14px] opacity-30\", {\n \"opacity-100\": sortDirection === \"desc\",\n })}\n />\n </div>\n </button>\n ) : (\n children\n )}\n </th>\n );\n },\n);\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.ComponentProps<\"td\">\n>(({ className, ...props }, ref) => {\n return (\n <td\n ref={ref}\n data-slot=\"table-cell\"\n className={cn(\n \"p-2 align-middle whitespace-nowrap has-[[role=checkbox]]:pr-0\",\n className,\n )}\n {...props}\n />\n );\n});\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.ComponentProps<\"caption\">\n>(({ className, ...props }, ref) => {\n return (\n <caption\n ref={ref}\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Tabs = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Root>,\n TabsPrimitive.Root.Props\n>(({ className, orientation = \"horizontal\", ...props }, ref) => {\n return (\n <TabsPrimitive.Root\n ref={ref}\n data-slot=\"tabs\"\n data-orientation={orientation}\n data-horizontal={orientation === \"horizontal\" ? \"\" : undefined}\n data-vertical={orientation === \"vertical\" ? \"\" : undefined}\n className={cn(\n \"group/tabs flex gap-2 data-horizontal:flex-col\",\n className,\n )}\n {...props}\n />\n );\n});\nTabs.displayName = \"Tabs\";\n\nconst tabsListVariants = cva(\n \"group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none bg-muted\",\n {\n variants: {\n variant: {\n line: \"gap-1 bg-transparent\",\n },\n },\n },\n);\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <TabsPrimitive.List\n ref={ref}\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n );\n});\nTabsList.displayName = \"TabsList\";\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Tab>,\n TabsPrimitive.Tab.Props\n>(({ className, ...props }, ref) => {\n return (\n <TabsPrimitive.Tab\n ref={ref}\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2.5 py-1.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 has-[[data-icon=inline-end]]:pr-1 has-[[data-icon=inline-start]]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className,\n )}\n {...props}\n />\n );\n});\nTabsTrigger.displayName = \"TabsTrigger\";\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Panel>,\n TabsPrimitive.Panel.Props\n>(({ className, ...props }, ref) => {\n return (\n <TabsPrimitive.Panel\n ref={ref}\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 text-sm outline-none\", className)}\n {...props}\n />\n );\n});\nTabsContent.displayName = \"TabsContent\";\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\nimport * as React from \"react\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { type Size } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils\";\n\nconst textareaVariants = cva(\n \"flex field-sizing-content min-h-16 min-w-0 rounded-lg border border-input bg-transparent text-sm transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50\",\n {\n variants: {\n size: {\n sm: \"px-2 py-1.5 text-xs\",\n md: \"px-2.5 py-2\",\n lg: \"px-3 py-2.5\",\n },\n },\n },\n);\n\nexport interface TextareaProps\n extends\n React.ComponentPropsWithoutRef<\"textarea\">,\n Omit<VariantProps<typeof textareaVariants>, \"size\"> {\n size?: Size;\n}\n\n/**\n * @description Displays a form textarea.\n * @example\n * <Textarea placeholder=\"Type your message here.\" />\n */\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n function Textarea({ className, size = \"md\", ...props }, ref) {\n return (\n <textarea\n ref={ref}\n data-slot=\"textarea\"\n className={cn(textareaVariants({ size, className }))}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus-visible:border-destructive aria-invalid:focus-visible:ring-3 aria-invalid:focus-visible:ring-destructive/50 dark:aria-invalid:focus-visible:ring-destructive/50 aria-pressed:bg-muted aria-pressed:text-foreground data-[state=on]:bg-muted data-[state=on]:text-foreground [&>svg]:pointer-events-none [&>svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4 bg-transparent\",\n {\n variants: {\n variant: {\n default: \"\",\n outline:\n \"border border-input bg-transparent hover:bg-muted hover:text-foreground\",\n },\n size: {\n sm: \"h-7 min-w-7 gap-1 px-2.5 text-xs [&>svg:not([class*='size-'])]:size-3.5\",\n md: \"h-8 min-w-8 gap-1.5 px-3 text-sm\",\n lg: \"h-9 min-w-9 gap-2 px-3.5 text-sm\",\n },\n },\n },\n);\n\n/**\n * @description A two-state button that can be either on or off.\n * @example\n * <Toggle aria-label=\"Toggle italic\">\n * <ItalicIcon />\n * </Toggle>\n */\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"md\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={toggleVariants({ variant, size, className })}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\";\nimport { type VariantProps } from \"class-variance-authority\";\n\nimport { toggleVariants } from \"../../components/micro/toggle\";\nimport { cn } from \"../../lib/utils\";\n\n// ──────────────────────────────────────────────────────────\n// Context\n// ──────────────────────────────────────────────────────────\ntype ToggleGroupContextValue = VariantProps<typeof toggleVariants> & {\n spacing?: number;\n orientation?: \"horizontal\" | \"vertical\";\n};\n\nconst ToggleGroupContext = React.createContext<ToggleGroupContextValue>({\n variant: \"default\",\n size: \"md\",\n spacing: 2,\n orientation: \"horizontal\",\n});\n\n// ──────────────────────────────────────────────────────────\n// Types\n// ──────────────────────────────────────────────────────────\ntype ToggleGroupProps = ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n orientation?: \"horizontal\" | \"vertical\";\n };\n\ntype ToggleGroupItemProps = TogglePrimitive.Props &\n VariantProps<typeof toggleVariants>;\n\n// ──────────────────────────────────────────────────────────\n// Components\n// ──────────────────────────────────────────────────────────\n\n/**\n * @description A set of two-state buttons that can be toggled on or off.\n * @requires ToggleGroupItem\n * @example\n * <ToggleGroup>\n * <ToggleGroupItem value=\"a\">A</ToggleGroupItem>\n * </ToggleGroup>\n */\nfunction ToggleGroup({\n className,\n variant,\n size,\n // spacing is a dynamic numeric value — CSS variable is the only viable approach\n // since Tailwind cannot generate arbitrary gap-{n} utilities at runtime.\n spacing = 2,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupProps) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit items-center rounded-lg data-[size=sm]:rounded-md data-vertical:flex-col data-vertical:items-stretch\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n );\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size = \"md\",\n ...props\n}: ToggleGroupItemProps) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant ?? variant}\n data-size={context.size ?? size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant ?? variant,\n size: context.size ?? size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n","/**\n * ✅ AUDITED & REFACTORED\n * - Design System Compliant (22 Commandments)\n * - WCAG AAA/AA\n * - Form Control Parity\n * - CSS Delegated Logic\n */\n\"use client\";\n\nimport * as React from \"react\";\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\";\n\nimport { cn } from \"../../lib/utils\";\nimport { ThemeWrapper } from \"./theme-provider\";\n\n/**\n * @description A popup that displays information related to an element.\n * @requires TooltipTrigger, TooltipContent, TooltipProvider\n * @example\n * <TooltipProvider>\n * <Tooltip>\n * <TooltipTrigger>Hover</TooltipTrigger>\n * <TooltipContent>Add to library</TooltipContent>\n * </Tooltip>\n * </TooltipProvider>\n */\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nconst TooltipTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Trigger>\n>((props, ref) => {\n return (\n <TooltipPrimitive.Trigger\n ref={ref}\n data-slot=\"tooltip-trigger\"\n {...props}\n />\n );\n});\nTooltipTrigger.displayName = \"TooltipTrigger\";\n\nconst TooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Popup> &\n Pick<\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Positioner>,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n > & {\n container?: React.ComponentProps<typeof TooltipPrimitive.Portal>[\"container\"];\n }\n>(\n (\n {\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n container,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <TooltipPrimitive.Portal container={container}>\n <ThemeWrapper>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n ref={ref}\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className,\n )}\n {...props}\n >\n {children}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </ThemeWrapper>\n </TooltipPrimitive.Portal>\n );\n },\n);\nTooltipContent.displayName = \"TooltipContent\";\n\nexport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n};\n"],"mappings":"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;;;;;;;;AC9GxB,IAAM,iBAAiB,IACrB,snBACA;CACE,UAAU;EAER,SAAS;GACP,OAAO;GACP,SAAS;GACT,OAAO;GACP,MAAM;GACN,MAAM;EACR;EAIA,OAAO;GACL,SAAS;GACT,WAAW;GACX,aAAa;GACb,SAAS;GACT,SAAS;GACT,MAAM;GACN,UAAU;GACV,OAAO;GACP,QAAQ;EACV;EAGA,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;EACN;CACF;CAGA,kBAAkB;EAEhB;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EAGA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EAGA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WACE;EACJ;EAGA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EAGA;GAAE,SAAS;GAAQ,OAAO;GAAW,WAAW;EAAe;EAC/D;GAAE,SAAS;GAAQ,OAAO;GAAa,WAAW;EAAiB;EACnE;GAAE,SAAS;GAAQ,OAAO;GAAe,WAAW;EAAmB;EACvE;GAAE,SAAS;GAAQ,OAAO;GAAW,WAAW;EAAe;EAC/D;GAAE,SAAS;GAAQ,OAAO;GAAW,WAAW;EAAe;EAC/D;GAAE,SAAS;GAAQ,OAAO;GAAQ,WAAW;EAAY;EACzD;GAAE,SAAS;GAAQ,OAAO;GAAY,WAAW;EAAgB;EACjE;GAAE,SAAS;GAAQ,OAAO;GAAS,WAAW;EAAwB;EACtE;GAAE,SAAS;GAAQ,OAAO;GAAU,WAAW;EAAyB;EAExE;GAAE,OAAO;GAAW,WAAW;EAAgC;EAC/D;GAAE,OAAO;GAAa,WAAW;EAAkC;EACnE;GAAE,OAAO;GAAe,WAAW;EAAoC;EACvE;GAAE,OAAO;GAAW,WAAW;EAAgC;EAC/D;GAAE,OAAO;GAAW,WAAW;EAAgC;EAC/D;GAAE,OAAO;GAAQ,WAAW;EAA6B;EACzD;GAAE,OAAO;GAAY,WAAW;EAAiC;EACjE;GAAE,OAAO;GAAS,WAAW;EAA8B;EAC3D;GAAE,OAAO;GAAU,WAAW;EAA+B;CAC/D;AACF,CACF;AAYA,IAAM,SAAS,MAAM,YAEjB,EACE,WACA,UAAU,SACV,QAAQ,WACR,OAAO,MACP,UACA,UACA,GAAG,SAEL,QACG;CACH,OACE,oBAAC,UAAD;EACO;EACL,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,GAAK,YAAY,EAAE,aAAa,OAAO;EACvC,WAAW,GAAG,eAAe;GAAE;GAAS;GAAO;GAAM;EAAU,CAAC,CAAC;EACjE,GAAI;EAEH;CACc,CAAA;AAErB,CACF;AACA,OAAO,cAAc;AAIrB,IAAM,aAAa,MAAM,WACvB,SAAS,WAAW,EAAE,WAAW,QAAQ,GAAG,SAAS,KAAK;CACxD,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WACL;GACE;GACA,WAAW,GACT,yEACA,kFACA,iDACA,SACF;GACA,aAAa;EACf,GACA,KACF;CACF,CAAC;AACH,CACF;AACA,WAAW,cAAc;;;;;;;;;;;;;;;;ACxUzB,IAAM,eAAe,MAAM,cACzB,KAAA,CACF;;;;;;;;;;;;AAeA,SAAS,WAA0C;CACjD,OAAO,MAAM,WAAW,YAAY;AACtC;;;;;;;;;;;;;;;;;;;;;;AA2CA,SAAS,cAAc,EACrB,UACA,aACA,MAAM,gBACN,gBACqB;CACrB,MAAM,eAAe,mBAAmB,KAAA;CAExC,MAAM,CAAC,cAAc,mBAAmB,MAAM,SAC5C,eAAe,OACjB;CAEA,MAAM,OAAO,eAAe,iBAAiB;CAE7C,MAAM,UAAU,MAAM,aACnB,SAAoB;EACnB,IAAI,cACF,aAAc,IAAI;OAElB,gBAAgB,IAAI;CAExB,GACA,CAAC,cAAc,YAAY,CAC7B;CAEA,MAAM,QAAQ,MAAM,eACX;EAAE;EAAM;CAAQ,IACvB,CAAC,MAAM,OAAO,CAChB;CAEA,OACE,oBAAC,aAAa,UAAd;EAA8B;YAC5B,oBAAC,OAAD;GAAK,WAAW;GAAM,OAAO,EAAE,SAAS,WAAW;GAChD;EACE,CAAA;CACgB,CAAA;AAE3B;AAEA,cAAc,cAAc;;;;;;;;;AAY5B,SAAS,aAAa,EAAE,YAA2C;CACjE,MAAM,QAAQ,SAAS;CAEvB,IAAI,CAAC,OACH,OAAO,oBAAA,UAAA,EAAG,SAAW,CAAA;CAGvB,OACE,oBAAC,OAAD;EAAK,WAAW,MAAM;EAAM,OAAO,EAAE,SAAS,WAAW;EACtD;CACE,CAAA;AAET;AAEA,aAAa,cAAc;;;;;;;;;;;;;;;ACtI3B,SAAS,YAAY,EAAE,GAAG,SAA0C;CAClE,OAAO,oBAAC,cAAqB,MAAtB;EAA2B,aAAU;EAAe,GAAI;CAAQ,CAAA;AACzE;AAEA,SAAS,mBAAmB,EAAE,GAAG,SAA6C;CAC5E,OACE,oBAAC,cAAqB,SAAtB;EAA8B,aAAU;EAAuB,GAAI;CAAQ,CAAA;AAE/E;AAEA,SAAS,iBAAiB,EAAE,GAAG,SAA2C;CACxE,OACE,oBAAC,cAAqB,OAAtB;EAA4B,aAAU;EAAqB,GAAI;CAAQ,CAAA;AAE3E;AAIA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACmC;CACtC,OACE,oBAAC,cAAqB,UAAtB;EACE,aAAU;EACV,WAAW,GACT,yLACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,IAAM,qBAAqB,MAAM,YAM9B,EAAE,WAAW,WAAW,OAAO,MAAM,GAAG,SAAS,QAClD,oBAAC,cAAqB,QAAtB;CAAwC;WACtC,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,oBAAD,CAAqB,CAAA,GACrB,oBAAC,cAAqB,OAAtB;EACO;EACL,aAAU;EACV,aAAW;EACX,WAAW,GACT,oNACA,2BACA,sDACA,sDACA,wIACA,SACF;EACA,GAAI;CACL,CAAA,CACW,EAAA,CAAA;AACa,CAAA,CAC9B;AACD,mBAAmB,cAAc;AAEjC,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;CAC9B,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,gDAAgD,SAAS;EACvE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;CAC9B,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,4HACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,GAAG,SAC2B;CAC9B,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,wFACA,qDACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;CAC1D,OACE,oBAAC,cAAqB,OAAtB;EACE,aAAU;EACV,WAAW,GACT,sCACA,qDACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;CAChE,OACE,oBAAC,cAAqB,aAAtB;EACE,aAAU;EACV,WAAW,GACT,mFACA,uDACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,SACA,OACA,OAAO,MACP,GAAG,SAEsE;CACzE,OACE,oBAAC,cAAqB,OAAtB;EACE,aAAU;EACV,WAAW,GAAG,SAAS;EACvB,QAAQ,oBAAC,QAAD;GAAiB;GAAgB;GAAa;EAAO,CAAA;EAC7D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,UAAU,WACV,OACA,OAAO,MACP,GAAG,SAEsE;CACzE,OACE,oBAAC,cAAqB,OAAtB;EACE,aAAU;EACV,WAAW,GAAG,SAAS;EACvB,QAAQ,oBAAC,QAAD;GAAiB;GAAgB;GAAa;EAAO,CAAA;EAC7D,GAAI;CACL,CAAA;AAEL;;;;;;;;;;;;;;;;;ACtLA,IAAM,cAAc,MAAM,YAGvB,EAAE,OAAO,WAAW,GAAG,SAAS,QAAQ;CACzC,OACE,oBAAC,OAAD;EACO;EACL,aAAU;EACV,OACE,EACE,WAAW,MACb;EAEF,WAAW,GAAG,6BAA6B,SAAS;EACpD,GAAI;CACL,CAAA;AAEL,CAAC;AACD,YAAY,cAAc;;;;;;;;;;;;;;;;;;;ACX1B,IAAM,SAAS,MAAM,YAGlB,EAAE,WAAW,OAAO,MAAM,GAAG,SAAS,QAAQ;CAC/C,OACE,oBAAC,SAAgB,MAAjB;EACO;EACL,aAAU;EACV,aAAW;EACX,WAAW,GACT,yPACA,kHACA,SACF;EACA,GAAI;CACL,CAAA;AAEL,CAAC;AACD,OAAO,cAAc;AAErB,IAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAAQ;CAClC,OACE,oBAAC,SAAgB,OAAjB;EACO;EACL,aAAU;EACV,WAAW,GACT,qDACA,SACF;EACA,GAAI;CACL,CAAA;AAEL,CAAC;AACD,YAAY,cAAc;AAE1B,IAAM,iBAAiB,MAAM,YAG1B,EAAE,WAAW,GAAG,SAAS,QAAQ;CAClC,OACE,oBAAC,SAAgB,UAAjB;EACO;EACL,aAAU;EACV,WAAW,GACT,4KACA,SACF;EACA,GAAI;CACL,CAAA;AAEL,CAAC;AACD,eAAe,cAAc;AAE7B,IAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAAQ;CAClC,OACE,oBAAC,QAAD;EACO;EACL,aAAU;EACV,WAAW,GACT,kDACA,sCACA,wCACA,sCACA,SACF;EACA,GAAI;CACL,CAAA;AAEL,CAAC;AACD,YAAY,cAAc;AAE1B,IAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAAQ;CAClC,OACE,oBAAC,OAAD;EACO;EACL,aAAU;EACV,WAAW,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL,CAAC;AACD,YAAY,cAAc;AAE1B,IAAM,mBAAmB,MAAM,YAG5B,EAAE,WAAW,OAAO,MAAM,GAAG,SAAS,QAAQ;CAC/C,OACE,oBAAC,OAAD;EACO;EACL,aAAU;EACV,aAAW;EACX,WAAW,GACT,qLACA,SACF;EACA,GAAI;CACL,CAAA;AAEL,CAAC;AACD,iBAAiB,cAAc;;;;;;;;;;ACvH/B,IAAM,gBAAgB,IACpB,uVACA;CACE,UAAU;EACR,SAAS;GACP,OAAO;GACP,SAAS;GACT,MAAM;EACR;EACA,OAAO;GACL,SAAS;GACT,WAAW;GACX,aAAa;GACb,SAAS;GACT,SAAS;GACT,MAAM;GACN,UAAU;GACV,OAAO;GACP,QAAQ;EACV;CACF;CACA,kBAAkB;EAEhB;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EAGA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GAAE,SAAS;GAAW,OAAO;GAAQ,WAAW;EAAwB;EACxE;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EAGA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GAAE,SAAS;GAAQ,OAAO;GAAQ,WAAW;EAAuB;EACpE;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;EACA;GACE,SAAS;GACT,OAAO;GACP,WAAW;EACb;CACF;AACF,CACF;AAUA,IAAM,QAAQ,MAAM,YAEhB,EAAE,WAAW,UAAU,SAAS,QAAQ,WAAW,QAAQ,GAAG,SAC9D,QACG;CACH,OAAO,UAAU;EACf,gBAAgB;EAChB,OAAO,WACL;GACE;GACA,WAAW,GAAG,cAAc;IAAE;IAAS;GAAM,CAAC,GAAG,SAAS;EAC5D,GACA,KACF;EACA;EACA,OAAO;GACL,MAAM;GACN;GACA;EACF;CACF,CAAC;AACH,CACF;AACA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;ACjLpB,IAAM,aAAa,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"}
|