@etus/ui 0.4.0-beta.4 → 0.4.0-beta.6

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.
Files changed (61) hide show
  1. package/dist/{chunk-F6ZKBK5B.js → chunk-5GE3BQA7.js} +9 -4
  2. package/dist/chunk-5GE3BQA7.js.map +1 -0
  3. package/dist/{chunk-3RJEA2MM.js → chunk-6HEURMY3.js} +102 -65
  4. package/dist/chunk-6HEURMY3.js.map +1 -0
  5. package/dist/{chunk-ZS2WS5NJ.js → chunk-AVR3LVOQ.js} +48 -3
  6. package/dist/chunk-AVR3LVOQ.js.map +1 -0
  7. package/dist/{chunk-AB3S55W5.js → chunk-HT5XM6XK.js} +3 -3
  8. package/dist/{chunk-AB3S55W5.js.map → chunk-HT5XM6XK.js.map} +1 -1
  9. package/dist/{chunk-ICM45N2K.js → chunk-JONTKXGK.js} +24 -22
  10. package/dist/chunk-JONTKXGK.js.map +1 -0
  11. package/dist/{chunk-XXFKDEFH.js → chunk-JUTPDS4E.js} +7 -11
  12. package/dist/chunk-JUTPDS4E.js.map +1 -0
  13. package/dist/{chunk-DDR24GOP.js → chunk-L3Z5FAJE.js} +67 -51
  14. package/dist/chunk-L3Z5FAJE.js.map +1 -0
  15. package/dist/{chunk-RVUO7SDG.js → chunk-LS3WD6IZ.js} +63 -28
  16. package/dist/chunk-LS3WD6IZ.js.map +1 -0
  17. package/dist/{chunk-5ZKKXLPF.js → chunk-VPNFYQBL.js} +10 -15
  18. package/dist/chunk-VPNFYQBL.js.map +1 -0
  19. package/dist/{chunk-5YDFC74M.js → chunk-XD5LE64P.js} +7 -6
  20. package/dist/chunk-XD5LE64P.js.map +1 -0
  21. package/dist/{chunk-CSXT7SKR.js → chunk-YCEZH35U.js} +18 -4
  22. package/dist/chunk-YCEZH35U.js.map +1 -0
  23. package/dist/{chunk-2D6OFVPN.js → chunk-YWA63YN3.js} +22 -2
  24. package/dist/chunk-YWA63YN3.js.map +1 -0
  25. package/dist/components/advanced/index.js +4 -4
  26. package/dist/components/data-display/ChartCard/index.js +1 -3
  27. package/dist/components/data-display/DashboardFilterbar/index.js +1 -1
  28. package/dist/components/data-display/ImageGallery/index.js +8 -1
  29. package/dist/components/data-display/index.js +15 -15
  30. package/dist/components/feedback/Modal/index.js +1 -1
  31. package/dist/components/feedback/Notification/index.js +1 -1
  32. package/dist/components/feedback/index.js +4 -4
  33. package/dist/components/forms/ColorPicker/index.js +1 -1
  34. package/dist/components/forms/DatePicker/index.js +1 -1
  35. package/dist/components/forms/DateRangePicker/index.js +1 -1
  36. package/dist/components/forms/index.js +14 -14
  37. package/dist/components/index.js +70 -70
  38. package/dist/components/layout/Panel/index.js +2 -1
  39. package/dist/components/layout/index.js +3 -3
  40. package/dist/components/navigation/Header/index.js +1 -1
  41. package/dist/components/navigation/Menu/index.js +2 -1
  42. package/dist/components/navigation/Sidebar/index.js +1 -1
  43. package/dist/components/navigation/Toolbar/index.js +1 -1
  44. package/dist/components/navigation/index.js +8 -7
  45. package/dist/components/primitives/index.js +8 -8
  46. package/dist/components/workflow/index.js +7 -7
  47. package/dist/index.d.ts +181 -64
  48. package/dist/index.js +70 -70
  49. package/dist/styles.css +26 -15
  50. package/package.json +2 -2
  51. package/dist/chunk-2D6OFVPN.js.map +0 -1
  52. package/dist/chunk-3RJEA2MM.js.map +0 -1
  53. package/dist/chunk-5YDFC74M.js.map +0 -1
  54. package/dist/chunk-5ZKKXLPF.js.map +0 -1
  55. package/dist/chunk-CSXT7SKR.js.map +0 -1
  56. package/dist/chunk-DDR24GOP.js.map +0 -1
  57. package/dist/chunk-F6ZKBK5B.js.map +0 -1
  58. package/dist/chunk-ICM45N2K.js.map +0 -1
  59. package/dist/chunk-RVUO7SDG.js.map +0 -1
  60. package/dist/chunk-XXFKDEFH.js.map +0 -1
  61. package/dist/chunk-ZS2WS5NJ.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,168 +1,168 @@
1
1
  import './chunk-BITATKTH.js';
2
2
  import './chunk-KRHL3YH2.js';
3
+ export { TextareaField, textareaFieldDescriptionVariants, textareaFieldErrorVariants, textareaFieldLabelVariants, textareaFieldVariants } from './chunk-B4ETIQOO.js';
3
4
  export { URLInput, urlLinkIconVariants, urlValidationIconVariants } from './chunk-TQBUBD3E.js';
4
- export { toggleGroupItemVariants } from './chunk-SXJMERQL.js';
5
5
  export { Slider, sliderLabelVariants, sliderMarkContainerVariants, sliderMarkLabelVariants, sliderMarkTickVariants, sliderMarkVariants, sliderRangeVariants, sliderRootVariants, sliderThumbVariants, sliderTooltipVariants, sliderTrackVariants } from './chunk-CP2PEDG2.js';
6
6
  export { SuccessMessage, successMessageVariants } from './chunk-EVUHEBWX.js';
7
7
  export { Switch, switchThumbVariants, switchVariants } from './chunk-HAEZLC7V.js';
8
8
  export { TagsInput, tagsInputInputVariants, tagsInputVariants } from './chunk-DDM2I5C6.js';
9
- export { TextareaField, textareaFieldDescriptionVariants, textareaFieldErrorVariants, textareaFieldLabelVariants, textareaFieldVariants } from './chunk-B4ETIQOO.js';
10
9
  export { TimePicker, timeItemVariants, timePickerTriggerVariants, timeScrollListVariants } from './chunk-G2V7D7VC.js';
10
+ export { toggleGroupItemVariants } from './chunk-SXJMERQL.js';
11
11
  export { PaymentInput, cardTypes, detectCardType, formatCardNumber, getCardBrandName, getCardConfig, getCardDigits, paymentInputIconVariants, paymentInputInputVariants, paymentInputVariants, validateCardNumber } from './chunk-6ZAMTPGN.js';
12
- export { RadioButton, radioButtonIndicatorVariants, radioButtonLabelVariants, radioButtonVariants, radioButtonWrapperVariants } from './chunk-ICAQYWCX.js';
13
12
  export { PhoneInput, defaultCountries, findCountryByCode, findCountryByDialCode, formatPhoneNumber, getPhoneDigits, phoneInputCountryButtonVariants, phoneInputDropdownVariants, phoneInputInputVariants, phoneInputOptionVariants, phoneInputVariants } from './chunk-OEXQ2MOY.js';
13
+ export { RadioButton, radioButtonIndicatorVariants, radioButtonLabelVariants, radioButtonVariants, radioButtonWrapperVariants } from './chunk-ICAQYWCX.js';
14
+ export { RadioCardGroup, RadioCardGroupItem, radioCardGroupItemContentVariants, radioCardGroupItemDescriptionVariants, radioCardGroupItemDotVariants, radioCardGroupItemIconVariants, radioCardGroupItemIndicatorVariants, radioCardGroupItemTitleVariants, radioCardGroupItemVariants, radioCardGroupVariants } from './chunk-S6ORCWM2.js';
14
15
  export { RadioGroup, RadioGroupItem } from './chunk-FRDYXDAE.js';
15
16
  export { radioGroupIndicatorVariants, radioGroupItemVariants, radioGroupVariants } from './chunk-ONTUN5XH.js';
16
- export { RadioCardGroup, RadioCardGroupItem, radioCardGroupItemContentVariants, radioCardGroupItemDescriptionVariants, radioCardGroupItemDotVariants, radioCardGroupItemIconVariants, radioCardGroupItemIndicatorVariants, radioCardGroupItemTitleVariants, radioCardGroupItemVariants, radioCardGroupVariants } from './chunk-S6ORCWM2.js';
17
- export { Rating, ratingItemVariants, ratingVariants } from './chunk-23BHD62H.js';
18
17
  export { SearchInput, searchClearButtonVariants, searchIconVariants } from './chunk-JPA2VQRW.js';
18
+ export { Rating, ratingItemVariants, ratingVariants } from './chunk-23BHD62H.js';
19
19
  export { IftaLabel } from './chunk-4MQNDQ4O.js';
20
- export { MultiSelect } from './chunk-HKXQLWGR.js';
21
- export { InputOTPField, inputOTPFieldDescriptionVariants, inputOTPFieldErrorVariants, inputOTPFieldLabelVariants, inputOTPFieldVariants } from './chunk-QZWKXUZP.js';
22
20
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupInputVariants, inputGroupTextareaVariants, inputGroupVariants } from './chunk-33JGPMUW.js';
21
+ export { InputOTPField, inputOTPFieldDescriptionVariants, inputOTPFieldErrorVariants, inputOTPFieldLabelVariants, inputOTPFieldVariants } from './chunk-QZWKXUZP.js';
23
22
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, inputOTPCaretInnerStyles, inputOTPCaretStyles, inputOTPContainerVariants, inputOTPGroupVariants, inputOTPSlotVariants } from './chunk-N3I6GA4I.js';
23
+ export { MultiSelect } from './chunk-HKXQLWGR.js';
24
24
  export { NativeSelect, NativeSelectOptGroup, NativeSelectOption, nativeSelectIconVariants, nativeSelectLeftIconVariants, nativeSelectVariants, nativeSelectWithLeftIconPadding, nativeSelectWrapperVariants } from './chunk-XOGMDABS.js';
25
25
  export { PasswordInput, passwordToggleVariants } from './chunk-ZKK7L7H7.js';
26
26
  export { EmailInput, emailValidationIconVariants } from './chunk-N4UTBJRY.js';
27
- export { FloatLabel } from './chunk-ZARZYMBM.js';
28
- export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, fieldContentVariants, fieldDescriptionVariants, fieldErrorVariants, fieldGroupVariants, fieldLabelVariants, fieldLegendVariants, fieldSeparatorVariants, fieldSetVariants, fieldTitleVariants, fieldVariants } from './chunk-4GQN76L7.js';
29
- export { Form, FormControl, FormDescription, FormField, FormFieldContext, FormItem, FormItemContext, FormLabel, FormMessage, formDescriptionVariants, formItemVariants, formLabelVariants, formMessageVariants, useFormField } from './chunk-JMZ4CO6R.js';
30
27
  export { ErrorMessage, errorMessageIconVariants, errorMessageListVariants, errorMessageVariants } from './chunk-UA3OQAHJ.js';
28
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, fieldContentVariants, fieldDescriptionVariants, fieldErrorVariants, fieldGroupVariants, fieldLabelVariants, fieldLegendVariants, fieldSeparatorVariants, fieldSetVariants, fieldTitleVariants, fieldVariants } from './chunk-4GQN76L7.js';
29
+ export { FloatLabel } from './chunk-ZARZYMBM.js';
31
30
  export { FormValidation, formValidationVariants } from './chunk-AEHYYTFW.js';
31
+ export { Form, FormControl, FormDescription, FormField, FormFieldContext, FormItem, FormItemContext, FormLabel, FormMessage, formDescriptionVariants, formItemVariants, formLabelVariants, formMessageVariants, useFormField } from './chunk-JMZ4CO6R.js';
32
32
  export { HelpText, helpTextIconVariants, helpTextVariants } from './chunk-YMYXWHDU.js';
33
- export { CheckboxGroup, CheckboxGroupItem, checkboxGroupDescriptionVariants, checkboxGroupHeaderVariants, checkboxGroupItemWrapperVariants, checkboxGroupLabelVariants, checkboxGroupVariants } from './chunk-LQVQ7SHG.js';
34
33
  export { Autocomplete } from './chunk-G5TWK7L3.js';
35
- export { ColorPicker, colorPickerPreviewVariants, colorPickerSwatchVariants, colorPickerTriggerVariants } from './chunk-5YDFC74M.js';
36
- export { DatePicker, datePickerTriggerVariants } from './chunk-RVUO7SDG.js';
34
+ export { CheckboxGroup, CheckboxGroupItem, checkboxGroupDescriptionVariants, checkboxGroupHeaderVariants, checkboxGroupItemWrapperVariants, checkboxGroupLabelVariants, checkboxGroupVariants } from './chunk-LQVQ7SHG.js';
37
35
  export { Combobox } from './chunk-4RSHPKHB.js';
38
- export { DateRangeInput, DateRangePicker, DateRangePresets, dateRangeInputContainerVariants, dateRangeInputFieldVariants, dateRangePickerFooterVariants, dateRangePickerTriggerVariants, dateRangePresetVariants, dateRangePresetsContainerVariants, defaultPresets } from './chunk-ZS2WS5NJ.js';
36
+ export { ColorPicker, colorPickerPreviewVariants, colorPickerSwatchVariants, colorPickerTriggerVariants } from './chunk-XD5LE64P.js';
37
+ export { DatePicker, datePickerTriggerVariants } from './chunk-LS3WD6IZ.js';
38
+ export { DateRangeInput, DateRangePicker, DateRangePresets, dateRangeInputContainerVariants, dateRangeInputFieldVariants, dateRangePickerFooterVariants, dateRangePickerTriggerVariants, dateRangePresetVariants, dateRangePresetsContainerVariants, defaultPresets } from './chunk-AVR3LVOQ.js';
39
39
  import './chunk-U77MCUVE.js';
40
40
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup, resizableHandleGripVariants, resizableHandleVariants, resizablePanelGroupVariants, resizablePanelVariants } from './chunk-PFVT27B5.js';
41
41
  export { ResponsiveContainer, responsiveContainerVariants } from './chunk-I7ZLEC7Y.js';
42
42
  export { Section, sectionVariants } from './chunk-GL56KIFL.js';
43
43
  export { Stack, stackVariants } from './chunk-2IFYXJ3H.js';
44
44
  export { Collapsible, CollapsibleContent, CollapsibleTrigger, collapsibleContentVariants, collapsibleTriggerVariants, collapsibleVariants } from './chunk-NWVYQYKK.js';
45
- export { Container, containerVariants } from './chunk-FCSYPOHF.js';
46
- export { Panel, PanelContent, PanelFooter, PanelHeader, panelContentVariants, panelFooterVariants, panelHeaderVariants, panelVariants } from './chunk-XXFKDEFH.js';
47
45
  export { Flex, flexVariants } from './chunk-VKDN66VL.js';
46
+ export { Container, containerVariants } from './chunk-FCSYPOHF.js';
48
47
  export { Grid, gridVariants } from './chunk-B3BDIM4H.js';
49
- export { ScrollArea, ScrollBar, scrollAreaCornerVariants, scrollAreaVariants, scrollAreaViewportVariants, scrollBarThumbVariants, scrollBarVariants } from './chunk-CNRV2IGH.js';
48
+ export { Panel, PanelContent, PanelFooter, PanelHeader, panelContentVariants, panelFooterVariants, panelHeaderVariants, panelVariants } from './chunk-JUTPDS4E.js';
50
49
  import './chunk-6Z73ZQOP.js';
51
50
  export { TabPanel, TabPanelList, TabPanelRoot, TabPanelTrigger, tabPanelListVariants, tabPanelRootVariants, tabPanelTriggerVariants, tabPanelVariants } from './chunk-GKMR5SVC.js';
52
51
  export { Topbar, TopbarLeading, TopbarTrailing, topbarLeadingVariants, topbarTrailingVariants, topbarVariants } from './chunk-6SZRWNPT.js';
53
- export { Navbar, NavbarBrand, NavbarContent, NavbarItem, NavbarLink, NavbarMenu, NavbarMenuToggle, navbarBrandVariants, navbarContainerVariants, navbarContentVariants, navbarItemVariants, navbarLinkVariants, navbarMenuToggleVariants, navbarMenuVariants, navbarVariants } from './chunk-NXQ25PKF.js';
54
52
  export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuContentVariants, navigationMenuIndicatorArrowVariants, navigationMenuIndicatorVariants, navigationMenuItemVariants, navigationMenuLinkVariants, navigationMenuListVariants, navigationMenuTriggerStyle, navigationMenuVariants, navigationMenuViewportVariants, navigationMenuViewportWrapperVariants } from './chunk-MQ2446N7.js';
53
+ export { Navbar, NavbarBrand, NavbarContent, NavbarItem, NavbarLink, NavbarMenu, NavbarMenuToggle, navbarBrandVariants, navbarContainerVariants, navbarContentVariants, navbarItemVariants, navbarLinkVariants, navbarMenuToggleVariants, navbarMenuVariants, navbarVariants } from './chunk-NXQ25PKF.js';
55
54
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, paginationContentVariants, paginationEllipsisVariants, paginationNextVariants, paginationPreviousVariants, paginationVariants } from './chunk-KPNNSUXM.js';
56
- export { SpeedDial } from './chunk-YZY35OHQ.js';
55
+ export { Sidebar, SidebarAvatar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPanelContent, SidebarProvider, SidebarRail, SidebarRailButton, SidebarRailContent, SidebarSeparator, SidebarThemeToggle, SidebarTrigger, sidebarContainerVariants, sidebarContentVariants, sidebarDesktopVariants, sidebarFooterVariants, sidebarGapVariants, sidebarGroupActionVariants, sidebarGroupContentVariants, sidebarGroupLabelVariants, sidebarGroupVariants, sidebarHeaderVariants, sidebarInnerVariants, sidebarInputVariants, sidebarInsetVariants, sidebarMenuActionShowOnHoverVariants, sidebarMenuActionVariants, sidebarMenuBadgeVariants, sidebarMenuButtonVariants, sidebarMenuItemVariants, sidebarMenuSkeletonVariants, sidebarMenuSubButtonVariants, sidebarMenuSubItemVariants, sidebarMenuSubVariants, sidebarMenuVariants, sidebarMobileVariants, sidebarNonCollapsibleVariants, sidebarProviderVariants, sidebarRailButtonVariants, sidebarRailVariants, sidebarSeparatorVariants, sidebarTriggerVariants, useSidebar } from './chunk-HT5XM6XK.js';
57
56
  export { SkipLink, SkipLinksList, skipLinkVariants, skipLinksListInnerVariants, skipLinksListItemVariants, skipLinksListVariants } from './chunk-7RTHGI6E.js';
58
- export { Sidebar, SidebarAvatar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPanelContent, SidebarProvider, SidebarRail, SidebarRailButton, SidebarRailContent, SidebarSeparator, SidebarThemeToggle, SidebarTrigger, sidebarContainerVariants, sidebarContentVariants, sidebarDesktopVariants, sidebarFooterVariants, sidebarGapVariants, sidebarGroupActionVariants, sidebarGroupContentVariants, sidebarGroupLabelVariants, sidebarGroupVariants, sidebarHeaderVariants, sidebarInnerVariants, sidebarInputVariants, sidebarInsetVariants, sidebarMenuActionShowOnHoverVariants, sidebarMenuActionVariants, sidebarMenuBadgeVariants, sidebarMenuButtonVariants, sidebarMenuItemVariants, sidebarMenuSkeletonVariants, sidebarMenuSubButtonVariants, sidebarMenuSubItemVariants, sidebarMenuSubVariants, sidebarMenuVariants, sidebarMobileVariants, sidebarNonCollapsibleVariants, sidebarProviderVariants, sidebarRailButtonVariants, sidebarRailVariants, sidebarSeparatorVariants, sidebarTriggerVariants, useSidebar } from './chunk-AB3S55W5.js';
57
+ export { SpeedDial } from './chunk-YZY35OHQ.js';
59
58
  export { TabNavigation, TabNavigationLink, tabNavigationLinkVariants, tabNavigationVariants } from './chunk-Y5GO2F6P.js';
60
- export { Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, toolbarButtonVariants, toolbarLinkVariants, toolbarSeparatorVariants, toolbarToggleGroupVariants, toolbarToggleItemVariants, toolbarVariants } from './chunk-CSXT7SKR.js';
59
+ export { Toolbar, ToolbarButton, ToolbarGroup, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, toolbarButtonVariants, toolbarGroupVariants, toolbarLinkVariants, toolbarSeparatorVariants, toolbarToggleGroupVariants, toolbarToggleItemVariants, toolbarVariants } from './chunk-YCEZH35U.js';
61
60
  export { FileTree, FileTreeAction, FileTreeBody, FileTreeFooter, FileTreeHeader, FileTreeProjectBadge, FileTreeProjectMeta, FileTreeSearch, FileTreeToolbar, fileTreeRowVariants, fileTreeShellVariants } from './chunk-7Y2UQMX6.js';
62
- export { Menu, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuShortcut, menuGroupVariants, menuItemVariants, menuLabelVariants, menuSeparatorVariants, menuShortcutVariants, menuVariants } from './chunk-F6ZKBK5B.js';
63
- export { Header, HeaderActions, HeaderBrand, HeaderNav, headerActionsVariants, headerBrandVariants, headerContainerVariants, headerNavVariants, headerVariants } from './chunk-5ZKKXLPF.js';
61
+ export { Header, HeaderActions, HeaderBrand, HeaderNav, headerActionsVariants, headerBrandVariants, headerContainerVariants, headerNavVariants, headerVariants } from './chunk-VPNFYQBL.js';
62
+ export { Menu, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuShortcut, menuGroupVariants, menuItemVariants, menuLabelVariants, menuSeparatorVariants, menuShortcutVariants, menuVariants } from './chunk-5GE3BQA7.js';
64
63
  export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, menubarCheckboxItemVariants, menubarContentVariants, menubarIndicatorWrapperVariants, menubarItemVariants, menubarLabelVariants, menubarRadioItemVariants, menubarSeparatorVariants, menubarShortcutVariants, menubarSubContentVariants, menubarSubTriggerVariants, menubarTriggerVariants, menubarVariants } from './chunk-VT4IMHGE.js';
65
64
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, drawerContentBaseVariants, drawerContentVariants, drawerDescriptionVariants, drawerFooterVariants, drawerHandleVariants, drawerHeaderVariants, drawerOverlayVariants, drawerTitleVariants } from './chunk-PLLJNHWU.js';
66
- export { AccountSwitch } from './chunk-2Y7PQ6ZL.js';
67
65
  export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, breadcrumbEllipsisVariants, breadcrumbItemVariants, breadcrumbLinkVariants, breadcrumbListVariants, breadcrumbPageVariants, breadcrumbSeparatorVariants } from './chunk-E27SQ54A.js';
66
+ export { AccountSwitch } from './chunk-2Y7PQ6ZL.js';
68
67
  export { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, sheetContentVariants, sheetOverlayVariants } from './chunk-3NFQXZHO.js';
69
- import './chunk-UOHVT5KN.js';
70
- export { Wizard, wizardActionsVariants, wizardContentVariants, wizardStepContentVariants, wizardStepperVariants, wizardVariants } from './chunk-EGYWK2XX.js';
71
- export { TaskCard, completedStyles, priorityStyles, selectedStyles, statusStyles, taskCardVariants } from './chunk-57KTYE5H.js';
72
- export { Dashboard, DashboardEmptyState, DashboardErrorState, DashboardHeader, DashboardLoadingState, DashboardWidget, dashboardContentVariants, dashboardEmptyVariants, dashboardGridVariants, dashboardHeaderVariants, dashboardLoadingVariants, dashboardSidebarVariants, dashboardVariants, dashboardWidgetHeaderVariants, dashboardWidgetVariants } from './chunk-Y7UFBSAD.js';
73
- export { DashboardBuilder, DashboardBuilderCanvas, DashboardBuilderPropertiesPanel, DashboardBuilderToolbar, DashboardBuilderWidgetComponent, DashboardBuilderWidgetLibrary, dashboardBuilderCanvasVariants, dashboardBuilderDropZoneVariants, dashboardBuilderEmptyStateVariants, dashboardBuilderPropertiesPanelVariants, dashboardBuilderResizeHandleVariants, dashboardBuilderToolbarVariants, dashboardBuilderVariants, dashboardBuilderWidgetCardVariants, dashboardBuilderWidgetLibraryVariants, dashboardBuilderWidgetVariants, defaultWidgets } from './chunk-QIETN4UU.js';
74
- export { KanbanBoard, KanbanCard, kanbanAddButtonVariants, kanbanBoardVariants, kanbanCardDescriptionVariants, kanbanCardMetaVariants, kanbanCardTitleVariants, kanbanCardVariants, kanbanColumnContentVariants, kanbanColumnHeaderVariants, kanbanColumnVariants, kanbanDropIndicatorVariants, kanbanLabelVariants, kanbanSearchVariants, kanbanSwimlaneVariants } from './chunk-AUCDXPWH.js';
75
- export { ProgressSteps, progressStepsVariants, stepBarSegmentVariants, stepCircleVariants, stepConnectorHorizontalVariants, stepConnectorVerticalVariants, stepDescriptionVariants, stepDotVariants, stepItemVariants, stepLabelVariants } from './chunk-MK6ID2HI.js';
76
- export { ReportGenerator, configSectionVariants, errorStateVariants, exportButtonGroupVariants, formActionsVariants, loadingStateVariants, previewContainerVariants, previewContentVariants, previewHeaderVariants, reportGeneratorVariants, stepBadgeVariants as reportStepBadgeVariants, stepIndicatorVariants as reportStepIndicatorVariants, stepItemVariants as reportStepItemVariants, templateCardVariants, templateGridVariants } from './chunk-KC6CHPT3.js';
77
- export { Stepper, stepperConnectorHorizontalVariants, stepperConnectorVerticalVariants, stepperDescriptionVariants, stepperIndicatorVariants, stepperItemVariants, stepperLabelVariants, stepperVariants } from './chunk-IFHF4UES.js';
78
- export { TaskList, emptyStateStyles, groupHeaderStyles, loadingStyles, selectedItemStyles, taskListHeaderVariants, taskListItemVariants, taskListTitleVariants, taskListVariants } from './chunk-5J5OL4IV.js';
79
- export { ALL_STATUSES, DEFAULT_STATUS_CONFIGS, TaskStatus, taskStatusColorVariants, taskStatusIconVariants, taskStatusLabelVariants, taskStatusMenuItemVariants, taskStatusTriggerVariants, taskStatusVariants } from './chunk-LATTRPLQ.js';
80
- export { ApprovalFlow, ApprovalFlowConnector, ApprovalFlowMarker, ApprovalFlowStep, approvalFlowActionsVariants, approvalFlowConnectorVariants, approvalFlowMarkerVariants, approvalFlowStepCardVariants, approvalFlowStepVariants, approvalFlowVariants } from './chunk-36XTKR3B.js';
81
- export { ApprovalStatus, approvalStatusVariants, statusConfig } from './chunk-5ZEYTBTU.js';
82
- export { CommentInput, CommentItem, CommentReactions, CommentSystem, commentActionsVariants, commentContentVariants, commentEmptyStateVariants, commentHeaderVariants, commentInputContainerVariants, commentItemVariants, commentMentionVariants, commentReactionVariants, commentRepliesVariants, commentSystemVariants, commentThreadLineVariants, commentTimelineMarkerVariants, defaultReactions, mentionSuggestionItemVariants, mentionSuggestionsVariants } from './chunk-JKYB5QAP.js';
83
- export { Textarea, textareaVariants } from './chunk-U6EOAIPK.js';
68
+ export { ScrollArea, ScrollBar, scrollAreaCornerVariants, scrollAreaVariants, scrollAreaViewportVariants, scrollBarThumbVariants, scrollBarVariants } from './chunk-CNRV2IGH.js';
84
69
  import './chunk-IXJHHR3Y.js';
70
+ export { Thumbnail, ThumbnailBadge, ThumbnailCheckbox, ThumbnailPin, ThumbnailPlayOverlay, ThumbnailTag, thumbnailVariants } from './chunk-Q43KJP5A.js';
71
+ export { Spacer, spacerVariants } from './chunk-JWXK4TMX.js';
85
72
  export { GradientSpinner, Spinner, gradientSpinnerVariants, spinnerVariants } from './chunk-BECPEVUL.js';
86
73
  export { SplitButton, splitButtonVariants } from './chunk-J62TFQHR.js';
87
- export { Text, textVariants } from './chunk-NK5Q2YRM.js';
88
- export { Thumbnail, ThumbnailBadge, ThumbnailCheckbox, ThumbnailPin, ThumbnailPlayOverlay, ThumbnailTag, thumbnailVariants } from './chunk-Q43KJP5A.js';
89
- export { Tag, TagGroup, tagCheckboxVariants, tagCountVariants, tagGroupVariants, tagVariants, useTagGroup } from './chunk-VFALJSXB.js';
90
74
  export { StatusIndicator, statusIndicatorVariants } from './chunk-OWIFNJXZ.js';
75
+ export { Tag, TagGroup, tagCheckboxVariants, tagCountVariants, tagGroupVariants, tagVariants, useTagGroup } from './chunk-VFALJSXB.js';
76
+ export { Text, textVariants } from './chunk-NK5Q2YRM.js';
77
+ export { FolderStack, folderStackVariants } from './chunk-CKD4UBV6.js';
78
+ export { Image, imageVariants } from './chunk-IRIIK3BU.js';
91
79
  export { Icon, iconVariants } from './chunk-AR3OXNPL.js';
92
80
  export { Link, linkVariants } from './chunk-LFN7UHDT.js';
81
+ export { Kbd, KbdGroup, kbdVariants } from './chunk-W3QUVCRK.js';
93
82
  export { Paragraph, paragraphVariants } from './chunk-ARNVOHVW.js';
94
83
  export { PROGRESS_CIRCLE_SIZES, ProgressCircle, progressCircleContainerVariants, progressCircleIndicatorVariants, progressCircleLabelVariants, progressCircleTrackVariants, progressCircleValueVariants } from './chunk-U4H3XHSI.js';
95
- export { Spacer, spacerVariants } from './chunk-JWXK4TMX.js';
84
+ import './chunk-BWGZKU3I.js';
96
85
  export { ConfirmButton } from './chunk-5XQIH6WM.js';
97
86
  export { FeatureItem, featureItemIconVariants, featureItemVariants } from './chunk-N23L6UDK.js';
98
87
  export { FeaturedIcon, featuredIconVariants } from './chunk-PK5O62XD.js';
99
- export { FolderStack, folderStackVariants } from './chunk-CKD4UBV6.js';
100
88
  export { Heading, headingVariants } from './chunk-HXHB2CK5.js';
101
- export { Image, imageVariants } from './chunk-IRIIK3BU.js';
102
- export { Kbd, KbdGroup, kbdVariants } from './chunk-W3QUVCRK.js';
103
- import './chunk-BWGZKU3I.js';
89
+ import './chunk-UOHVT5KN.js';
90
+ export { KanbanBoard, KanbanCard, kanbanAddButtonVariants, kanbanBoardVariants, kanbanCardDescriptionVariants, kanbanCardMetaVariants, kanbanCardTitleVariants, kanbanCardVariants, kanbanColumnContentVariants, kanbanColumnHeaderVariants, kanbanColumnVariants, kanbanDropIndicatorVariants, kanbanLabelVariants, kanbanSearchVariants, kanbanSwimlaneVariants } from './chunk-AUCDXPWH.js';
91
+ export { ProgressSteps, progressStepsVariants, stepBarSegmentVariants, stepCircleVariants, stepConnectorHorizontalVariants, stepConnectorVerticalVariants, stepDescriptionVariants, stepDotVariants, stepItemVariants, stepLabelVariants } from './chunk-MK6ID2HI.js';
92
+ export { TaskCard, completedStyles, priorityStyles, selectedStyles, statusStyles, taskCardVariants } from './chunk-57KTYE5H.js';
93
+ export { ALL_STATUSES, DEFAULT_STATUS_CONFIGS, TaskStatus, taskStatusColorVariants, taskStatusIconVariants, taskStatusLabelVariants, taskStatusMenuItemVariants, taskStatusTriggerVariants, taskStatusVariants } from './chunk-LATTRPLQ.js';
94
+ export { TaskList, emptyStateStyles, groupHeaderStyles, loadingStyles, selectedItemStyles, taskListHeaderVariants, taskListItemVariants, taskListTitleVariants, taskListVariants } from './chunk-5J5OL4IV.js';
95
+ export { Wizard, wizardActionsVariants, wizardContentVariants, wizardStepContentVariants, wizardStepperVariants, wizardVariants } from './chunk-EGYWK2XX.js';
96
+ export { Stepper, stepperConnectorHorizontalVariants, stepperConnectorVerticalVariants, stepperDescriptionVariants, stepperIndicatorVariants, stepperItemVariants, stepperLabelVariants, stepperVariants } from './chunk-IFHF4UES.js';
97
+ export { ApprovalFlow, ApprovalFlowConnector, ApprovalFlowMarker, ApprovalFlowStep, approvalFlowActionsVariants, approvalFlowConnectorVariants, approvalFlowMarkerVariants, approvalFlowStepCardVariants, approvalFlowStepVariants, approvalFlowVariants } from './chunk-36XTKR3B.js';
98
+ export { ApprovalStatus, approvalStatusVariants, statusConfig } from './chunk-5ZEYTBTU.js';
99
+ export { Dashboard, DashboardEmptyState, DashboardErrorState, DashboardHeader, DashboardLoadingState, DashboardWidget, dashboardContentVariants, dashboardEmptyVariants, dashboardGridVariants, dashboardHeaderVariants, dashboardLoadingVariants, dashboardSidebarVariants, dashboardVariants, dashboardWidgetHeaderVariants, dashboardWidgetVariants } from './chunk-Y7UFBSAD.js';
100
+ export { CommentInput, CommentItem, CommentReactions, CommentSystem, commentActionsVariants, commentContentVariants, commentEmptyStateVariants, commentHeaderVariants, commentInputContainerVariants, commentItemVariants, commentMentionVariants, commentReactionVariants, commentRepliesVariants, commentSystemVariants, commentThreadLineVariants, commentTimelineMarkerVariants, defaultReactions, mentionSuggestionItemVariants, mentionSuggestionsVariants } from './chunk-JKYB5QAP.js';
101
+ export { DashboardBuilder, DashboardBuilderCanvas, DashboardBuilderPropertiesPanel, DashboardBuilderToolbar, DashboardBuilderWidgetComponent, DashboardBuilderWidgetLibrary, dashboardBuilderCanvasVariants, dashboardBuilderDropZoneVariants, dashboardBuilderEmptyStateVariants, dashboardBuilderPropertiesPanelVariants, dashboardBuilderResizeHandleVariants, dashboardBuilderToolbarVariants, dashboardBuilderVariants, dashboardBuilderWidgetCardVariants, dashboardBuilderWidgetLibraryVariants, dashboardBuilderWidgetVariants, defaultWidgets } from './chunk-QIETN4UU.js';
102
+ export { ReportGenerator, configSectionVariants, errorStateVariants, exportButtonGroupVariants, formActionsVariants, loadingStateVariants, previewContainerVariants, previewContentVariants, previewHeaderVariants, reportGeneratorVariants, stepBadgeVariants as reportStepBadgeVariants, stepIndicatorVariants as reportStepIndicatorVariants, stepItemVariants as reportStepItemVariants, templateCardVariants, templateGridVariants } from './chunk-KC6CHPT3.js';
103
+ export { Textarea, textareaVariants } from './chunk-U6EOAIPK.js';
104
104
  export { Label } from './chunk-SCGKQ5RE.js';
105
105
  export { useOnWindowResize } from './chunk-6VCJU6XD.js';
106
106
  export { useIsMobile } from './chunk-WH7Y2MAY.js';
107
107
  export { availableChartColors, chartColors, constructCategoryColors, defaultChartColors, getColorClassName, getYAxisDomain } from './chunk-AZANPNLR.js';
108
108
  import './chunk-5ZWFIDO2.js';
109
109
  export { Portal, portalContainerVariants, portalContentVariants, portalOverlayVariants } from './chunk-L2XR5IFJ.js';
110
- export { ReportBuilder } from './chunk-2HM5Z2YP.js';
111
110
  export { RichTextBubbleMenuContent as RichTextBubbleMenu, RichTextEditor, RichTextFloatingMenuContent as RichTextFloatingMenu, RichTextToolbar, richTextEditorBubbleMenuVariants, richTextEditorContentVariants, richTextEditorFloatingMenuVariants, richTextEditorPlaceholderVariants, richTextEditorToolbarButtonVariants, richTextEditorToolbarVariants, richTextEditorVariants } from './chunk-6XY7QYVR.js';
111
+ export { ReportBuilder } from './chunk-2HM5Z2YP.js';
112
112
  export { AdvancedSearchInput, Search, SearchEmpty, SearchFilters, SearchHighlight, SearchHistory, SearchLoading, SearchResultGroup, SearchResultItem, SearchResults, searchEmptyVariants, searchFilterVariants, searchFiltersContainerVariants, searchGroupHeadingVariants, searchHighlightVariants, searchHistoryHeaderVariants, searchInputVariants, searchInputWrapperVariants, searchLoadingVariants, searchResultIconVariants, searchResultItemVariants, searchResultsVariants, searchVariants } from './chunk-ESLSPRYA.js';
113
- export { ChangeIndicator, VersionActions, VersionBadge, VersionControl, VersionDiff, VersionItem, VersionList, VersionTimeline, changeIndicatorVariants, diffLineVariants, versionBadgeVariants, versionControlVariants, versionItemVariants, versionTimelineConnectorVariants, versionTimelineMarkerVariants } from './chunk-FPCRGFNY.js';
114
113
  export { SortableList, SortableListDragHandle, SortableListItem, sortableListHandleVariants, sortableListItemVariants, sortableListOverlayVariants, sortableListVariants } from './chunk-LNY2EXOV.js';
114
+ export { ChangeIndicator, VersionActions, VersionBadge, VersionControl, VersionDiff, VersionItem, VersionList, VersionTimeline, changeIndicatorVariants, diffLineVariants, versionBadgeVariants, versionControlVariants, versionItemVariants, versionTimelineConnectorVariants, versionTimelineMarkerVariants } from './chunk-FPCRGFNY.js';
115
115
  export { DefaultFallback, ErrorBoundary, errorBoundaryActionVariants, errorBoundaryCardVariants, errorBoundaryFallbackVariants, errorBoundaryIconVariants, errorBoundaryMessageVariants, errorBoundaryStackVariants, errorBoundaryTitleVariants } from './chunk-D2V2HKLX.js';
116
116
  export { FileDropzone, fileDropzoneVariants } from './chunk-W4NC5CU5.js';
117
117
  export { EventCalendar, EventCalendarAgenda, EventCalendarDay, EventCalendarEvent, EventCalendarHeader, EventCalendarMonth, EventCalendarWeek, eventCalendarAgendaItemVariants, eventCalendarCellVariants, eventCalendarDayNumberVariants, eventCalendarEventVariants, eventCalendarHeaderVariants, eventCalendarTimeSlotVariants, eventCalendarVariants, eventCalendarViewButtonVariants, getEventVariant } from './chunk-OWOVCGUZ.js';
118
118
  export { FilePreview, filePreviewActionButtonVariants, filePreviewActionsVariants, filePreviewContentVariants, filePreviewFallbackVariants, filePreviewInfoVariants, filePreviewVariants } from './chunk-V7WEN4SD.js';
119
- export { FileUpload, FileUploadAvatar, FileUploadDropzone, FileUploadInline, FileUploadList, FileUploadPreview, FileUploadProgressBar, FileUploadTrigger } from './chunk-B6KQKQ4S.js';
120
119
  export { FilterBuilder, FilterGroupComponent as FilterGroup, FilterPreview, FilterRuleComponent as FilterRule, FilterToolbar, combinatorToggleVariants, emptyStateVariants, filterBuilderVariants, filterGroupHeaderVariants, filterGroupVariants, filterPreviewVariants, filterRuleVariants, filterToolbarVariants, isFilterGroup, isFilterRule, ruleFieldVariants, ruleOperatorVariants, ruleValueVariants, rulesContainerVariants } from './chunk-AWYOWR5N.js';
120
+ export { FileUpload, FileUploadAvatar, FileUploadDropzone, FileUploadInline, FileUploadList, FileUploadPreview, FileUploadProgressBar, FileUploadTrigger } from './chunk-B6KQKQ4S.js';
121
121
  export { MarkdownEditor, MarkdownHelp, MarkdownPreview, MarkdownToolbar } from './chunk-FYJHWYPM.js';
122
122
  export { NumberInput, numberInputPaddingVariants, numberStepperButtonVariants, numberStepperVariants } from './chunk-U74PNG4S.js';
123
123
  export { Tabs, TabsContent, TabsList, TabsTrigger, tabsContentVariants, tabsListVariants, tabsTriggerVariants, tabsVariants } from './chunk-NGR4HFVA.js';
124
- export { DndContext, DragHandle, DragOverlay, Draggable, Droppable, SortableContext, SortableItem, arrayMove, closestCenter, closestCorners, dragHandleVariants, dragOverlayVariants, draggableVariants, droppableVariants, horizontalListSortingStrategy, pointerWithin, rectIntersection, rectSortingStrategy, rectSwappingStrategy, sortableItemVariants, verticalListSortingStrategy } from './chunk-BIUVOZQG.js';
125
124
  export { Toggle, ToggleGroup, ToggleItem, toggleVariants } from './chunk-3WOGOTOV.js';
125
+ export { DndContext, DragHandle, DragOverlay, Draggable, Droppable, SortableContext, SortableItem, arrayMove, closestCenter, closestCorners, dragHandleVariants, dragOverlayVariants, draggableVariants, droppableVariants, horizontalListSortingStrategy, pointerWithin, rectIntersection, rectSortingStrategy, rectSwappingStrategy, sortableItemVariants, verticalListSortingStrategy } from './chunk-BIUVOZQG.js';
126
126
  export { AssetManager, AssetManagerEmpty, AssetManagerGrid, AssetManagerItem, AssetManagerList, AssetManagerSidebar, AssetManagerToolbar, AssetManagerUploader, assetManagerContentVariants, assetManagerEmptyVariants, assetManagerGridVariants, assetManagerItemInfoVariants, assetManagerItemVariants, assetManagerLoadingVariants, assetManagerSidebarVariants, assetManagerThumbnailVariants, assetManagerToolbarVariants, assetManagerUploaderVariants, assetManagerVariants } from './chunk-YCZ6M6EF.js';
127
127
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, commandEmptyVariants, commandGroupVariants, commandInputIconVariants, commandInputVariants, commandInputWrapperVariants, commandItemVariants, commandListVariants, commandSeparatorVariants, commandShortcutVariants, commandVariants } from './chunk-Z3FL7LEK.js';
128
128
  export { Calendar, CalendarDayButton, calendarContainerVariants, calendarDayButtonVariants, calendarDayCellVariants, calendarDisabledVariants, calendarNavButtonVariants, calendarOutsideVariants, calendarRangeEndVariants, calendarRangeMiddleVariants, calendarRangeStartVariants, calendarTodayIndicatorVariants, calendarTodayVariants } from './chunk-R4UOT76L.js';
129
129
  import './chunk-ATIEGLR2.js';
130
- export { VirtualTable } from './chunk-ILAV2AZ4.js';
131
130
  export { Timeline, TimelineConnector, TimelineContent, TimelineItemComponent as TimelineItem, TimelineMarker, timelineItemVariants, timelineMarkerVariants, timelineVariants } from './chunk-NCLOPI6U.js';
132
131
  export { Tracker } from './chunk-GPW57XOW.js';
132
+ export { VirtualTable } from './chunk-ILAV2AZ4.js';
133
133
  export { List, ListItem, ListItemActions, ListItemContent, listItemVariants, listVariants } from './chunk-V7XHE25E.js';
134
+ export { LineChart } from './chunk-XV6NXXXP.js';
134
135
  export { MarkerBar, markerBarContainerVariants, markerBarMarkerVariants, markerBarMarkerWrapperVariants, markerBarRangeVariants } from './chunk-X4YUWX7H.js';
135
- export { PieChart } from './chunk-BFBGESUI.js';
136
136
  export { RadarChart } from './chunk-BQMQULAC.js';
137
+ export { PieChart } from './chunk-BFBGESUI.js';
137
138
  export { RadialChart } from './chunk-2XJWE2XR.js';
138
139
  export { ScatterChart } from './chunk-AEE5GDNA.js';
139
140
  export { SingleStat } from './chunk-D6TH3EGA.js';
140
- export { DataTable, DataTableBooleanCell, DataTableCurrencyCell, DataTableDateCell, DataTableProgressCell, DataTableRatingCell, downloadFile, exportToCSV, exportToExcel, exportToPDF, tableToCSV } from './chunk-ZO2EKJZM.js';
141
- import './chunk-Y3BOERVB.js';
142
- export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-65YSTUD2.js';
143
- export { Heatmap, HeatmapCell, HeatmapLegend, heatmapVariants } from './chunk-6GWO7JNP.js';
144
141
  export { GaugeChart, gaugeChartVariants } from './chunk-5KTMPLDK.js';
142
+ export { Feed, FeedItemComponent as FeedItem, FeedSkeleton, feedItemVariants, feedVariants } from './chunk-B7ZLPQSO.js';
143
+ export { ImageGallery, ImageGalleryItem } from './chunk-6HEURMY3.js';
145
144
  export { HoverCard, HoverCardContent, HoverCardTrigger } from './chunk-VWW3DJKI.js';
145
+ export { Heatmap, HeatmapCell, HeatmapLegend, heatmapVariants } from './chunk-6GWO7JNP.js';
146
146
  export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, itemMediaVariants, itemVariants } from './chunk-VZZ3HP7G.js';
147
- export { ImageGallery, ImageGalleryItem } from './chunk-3RJEA2MM.js';
148
- export { Lightbox } from './chunk-KR3IVNQH.js';
149
147
  export { KPICard, KPICardGroup } from './chunk-32IJQOUV.js';
150
148
  export { Sparkline } from './chunk-2VHARFMD.js';
149
+ export { Lightbox } from './chunk-KR3IVNQH.js';
150
+ export { CategoryBar } from './chunk-H4ANCFZG.js';
151
151
  export { ComboChart } from './chunk-3MJNJKAF.js';
152
- import './chunk-G6SIIN2B.js';
153
152
  export { DashboardCard, DashboardCardContent, DashboardCardFooter, DashboardCardHeader, DashboardCardTitle, DashboardCardValue, dashboardCardContentVariants, dashboardCardFooterVariants, dashboardCardHeaderVariants, dashboardCardTitleVariants, dashboardCardValueVariants, dashboardCardVariants } from './chunk-SM4AZOEP.js';
154
153
  export { DeltaBar } from './chunk-DNAGXK2C.js';
155
154
  export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, emptyMediaVariants } from './chunk-QUENPT24.js';
156
- export { Feed, FeedItemComponent as FeedItem, FeedSkeleton, feedItemVariants, feedVariants } from './chunk-B7ZLPQSO.js';
155
+ export { DataTable, DataTableBooleanCell, DataTableCurrencyCell, DataTableDateCell, DataTableProgressCell, DataTableRatingCell, downloadFile, exportToCSV, exportToExcel, exportToPDF, tableToCSV } from './chunk-ZO2EKJZM.js';
156
+ import './chunk-Y3BOERVB.js';
157
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-65YSTUD2.js';
157
158
  export { FunnelChart } from './chunk-ZPCELVWJ.js';
158
159
  export { Banner, bannerVariants } from './chunk-F7XARQUW.js';
159
- export { BarChart } from './chunk-GAP3OZR7.js';
160
- export { BarList } from './chunk-FDES5YDF.js';
161
160
  export { Callout, calloutVariants } from './chunk-XLTSCY22.js';
161
+ export { BarList } from './chunk-FDES5YDF.js';
162
+ export { BarChart } from './chunk-GAP3OZR7.js';
162
163
  export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from './chunk-SJSYKUCL.js';
163
- export { CategoryBar } from './chunk-H4ANCFZG.js';
164
- export { ChartCard, chartCardChartVariants, chartCardHeaderVariants, chartCardPreviousValueVariants, chartCardTitleVariants, chartCardValueContainerVariants, chartCardValueVariants, chartCardVariants } from './chunk-DDR24GOP.js';
165
- export { LineChart } from './chunk-XV6NXXXP.js';
164
+ export { ChartCard, chartCardChartVariants, chartCardHeaderVariants, chartCardPreviousValueVariants, chartCardTitleVariants, chartCardValueContainerVariants, chartCardValueVariants, chartCardVariants } from './chunk-L3Z5FAJE.js';
165
+ import './chunk-G6SIIN2B.js';
166
166
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, accordionContentInnerVariants, accordionContentVariants, accordionItemVariants, accordionTriggerVariants } from './chunk-6SHOL6WR.js';
167
167
  export { AreaChart } from './chunk-SHS6EGWS.js';
168
168
  export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './chunk-7I6KK6QE.js';
@@ -180,14 +180,14 @@ export { TextInput } from './chunk-PWCMCMDN.js';
180
180
  export { inputIconVariants, inputVariants, inputWrapperVariants } from './chunk-DYDXGWH2.js';
181
181
  import './chunk-MVOENLOZ.js';
182
182
  export { UpdatesWidget } from './chunk-46ESMCEQ.js';
183
+ export { ErrorPage, errorDefaults } from './chunk-CYIFWQ5Y.js';
184
+ export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-IRKDMISK.js';
183
185
  export { FocusTrap } from './chunk-OQCGQG47.js';
186
+ export { Modal } from './chunk-YWA63YN3.js';
187
+ export { Notification, NotificationDismissButton, notificationVariants, unreadDotVariants } from './chunk-JONTKXGK.js';
184
188
  export { Message, messageVariants } from './chunk-DL7D5F7B.js';
185
- export { Modal } from './chunk-2D6OFVPN.js';
186
- export { Notification, NotificationDismissButton, notificationVariants, unreadDotVariants } from './chunk-ICM45N2K.js';
187
189
  export { Toaster } from './chunk-JDTAG7KZ.js';
188
- export { Alert, AlertDescription, AlertTitle, alertVariants } from './chunk-IRKDMISK.js';
189
190
  export { ConfirmModal } from './chunk-XRMKL43Y.js';
190
- export { ErrorPage, errorDefaults } from './chunk-CYIFWQ5Y.js';
191
191
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-IBVCSZCH.js';
192
192
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-ZUFM33AV.js';
193
193
  export { Avatar, AvatarAddButton, AvatarBadge, AvatarFallback, AvatarGroup, AvatarImage, AvatarLabelGroup, AvatarLabelGroupSkeleton, AvatarSkeleton, AvatarStatus, avatarAddButtonVariants, avatarBadgeVariants, avatarFallbackVariants, avatarGroupVariants, avatarLabelGroupVariants, avatarStatusVariants, avatarVariants, getInitials } from './chunk-YP2ATSXP.js';
package/dist/styles.css CHANGED
@@ -621,8 +621,8 @@
621
621
  --color-mobile: oklch(65.95% 0.2608 320.32);
622
622
  --color-other: oklch(63.68% 0.2078 25.33);
623
623
  --color-picker-content-gap: 12px;
624
- --color-picker-content-padding: 12px;
625
- --color-picker-content-width: 260px;
624
+ --color-picker-content-padding: 16px;
625
+ --color-picker-content-width: 320px;
626
626
  --color-picker-filled-preview-radius: 9999px;
627
627
  --color-picker-focus-ring-destructive: oklch(63.68% 0.2078 25.33);
628
628
  --color-picker-focus-ring-primary: oklch(81.75% 0.1821 159.79);
@@ -657,8 +657,8 @@
657
657
  --combobox-trigger-padding-x-lg: 14px;
658
658
  --combobox-trigger-padding-x-md: 12px;
659
659
  --combobox-trigger-padding-x-sm: 10px;
660
- --combobox-trigger-padding-y-lg: 8px;
661
- --combobox-trigger-padding-y-md: 8px;
660
+ --combobox-trigger-padding-y-lg: 6px;
661
+ --combobox-trigger-padding-y-md: 4px;
662
662
  --combobox-trigger-padding-y-sm: 4px;
663
663
  --combobox-trigger-radius: 8px;
664
664
  --combobox-trigger-ring-primary: oklch(81.75% 0.1821 159.79);
@@ -1196,10 +1196,12 @@
1196
1196
  --green-800: oklch(44.79% 0.1083 151.33);
1197
1197
  --green-900: oklch(39.25% 0.0896 152.54);
1198
1198
  --green-950: oklch(26.64% 0.0628 152.93);
1199
+ --header-content-height: 36px;
1200
+ --header-height: 64px;
1199
1201
  --header-root-bg: oklch(100.00% 0.0000 0);
1200
1202
  --header-root-border-color: oklch(92.19% 0.0000 0);
1201
- --header-root-padding-x: 16px;
1202
- --header-root-padding-y: 12px;
1203
+ --header-root-padding-x: 32px;
1204
+ --header-root-padding-y: 20px;
1203
1205
  --header-size-lg-height: 80px;
1204
1206
  --header-size-md-height: 64px;
1205
1207
  --header-size-sm-height: 48px;
@@ -1506,6 +1508,10 @@
1506
1508
  --markdown-editor-toolbar-border-bottom: oklch(92.19% 0.0000 0);
1507
1509
  --markdown-editor-toolbar-gap: 4px;
1508
1510
  --markdown-editor-toolbar-padding: 8px;
1511
+ --menu-content-bg: oklch(100.00% 0.0000 0);
1512
+ --menu-content-border: oklch(92.19% 0.0000 0);
1513
+ --menu-content-radius: 8px;
1514
+ --menu-content-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
1509
1515
  --menu-item-bg-default: transparent;
1510
1516
  --menu-item-bg-hover: oklch(95.21% 0.0467 171.12);
1511
1517
  --menu-item-fg-default: oklch(14.48% 0.0000 0);
@@ -1670,9 +1676,8 @@
1670
1676
  --notification-dot-color-info: oklch(54.61% 0.2152 262.88);
1671
1677
  --notification-dot-color-success: oklch(62.71% 0.1699 149.21);
1672
1678
  --notification-dot-color-warning: oklch(86.06% 0.1731 91.94);
1673
- --notification-dot-left: 6px;
1679
+ --notification-dot-gap: 6px;
1674
1680
  --notification-dot-size: 8px;
1675
- --notification-dot-top: 16px;
1676
1681
  --notification-root-gap: 12px;
1677
1682
  --notification-root-padding: 12px;
1678
1683
  --overlay: oklch(0.00% 0.0000 0 / 60.0%);
@@ -1950,14 +1955,14 @@
1950
1955
  --select-trigger-disabled-border: oklch(97.02% 0.0000 0);
1951
1956
  --select-trigger-disabled-fg: oklch(55.55% 0.0000 0);
1952
1957
  --select-trigger-gap: 8px;
1953
- --select-trigger-height-lg: 40px;
1954
- --select-trigger-height-md: 36px;
1955
- --select-trigger-height-sm: 32px;
1958
+ --select-trigger-height-lg: 44px;
1959
+ --select-trigger-height-md: 40px;
1960
+ --select-trigger-height-sm: 36px;
1956
1961
  --select-trigger-padding-x-lg: 0.875rem;
1957
1962
  --select-trigger-padding-x-md: 12px;
1958
1963
  --select-trigger-padding-x-sm: 0.625rem;
1959
- --select-trigger-padding-y-lg: 8px;
1960
- --select-trigger-padding-y-md: 8px;
1964
+ --select-trigger-padding-y-lg: 0.375rem;
1965
+ --select-trigger-padding-y-md: 4px;
1961
1966
  --select-trigger-padding-y-sm: 4px;
1962
1967
  --select-trigger-radius: 8px;
1963
1968
  --select-trigger-ring-destructive: oklch(63.68% 0.2078 25.33);
@@ -3305,6 +3310,8 @@
3305
3310
  --markdown-editor-root-border: oklch(43.86% 0.0000 0);
3306
3311
  --markdown-editor-toolbar-background: oklch(26.86% 0.0000 0);
3307
3312
  --markdown-editor-toolbar-border-bottom: oklch(37.15% 0.0000 0);
3313
+ --menu-content-bg: oklch(20.46% 0.0000 0);
3314
+ --menu-content-border: oklch(37.15% 0.0000 0);
3308
3315
  --menu-item-bg-hover: oklch(26.88% 0.0527 163.85);
3309
3316
  --menu-item-fg-default: oklch(98.51% 0.0000 0);
3310
3317
  --menu-item-fg-destructive: oklch(63.68% 0.2078 25.33);
@@ -3409,7 +3416,7 @@
3409
3416
  --rail-accent-foreground: oklch(95.21% 0.0467 171.12);
3410
3417
  --rail-accent: oklch(26.88% 0.0527 163.85);
3411
3418
  --rail-background: oklch(20.46% 0.0000 0);
3412
- --rail-border: oklch(26.86% 0.0000 0);
3419
+ --rail-border: oklch(37.15% 0.0000 0);
3413
3420
  --rating-icon-color-filled: oklch(79.52% 0.1617 86.05);
3414
3421
  --report-builder-accent-bg-subtle: oklch(33.49% 0.0383 251.89);
3415
3422
  --report-builder-accent-bg: oklch(34.67% 0.0731 256.69);
@@ -3470,7 +3477,7 @@
3470
3477
  --sidebar-accent-foreground: oklch(95.21% 0.0467 171.12);
3471
3478
  --sidebar-accent: oklch(26.88% 0.0527 163.85);
3472
3479
  --sidebar-background: oklch(20.46% 0.0000 0);
3473
- --sidebar-border: oklch(26.86% 0.0000 0);
3480
+ --sidebar-border: oklch(37.15% 0.0000 0);
3474
3481
  --sidebar-container-background: oklch(20.46% 0.0000 0);
3475
3482
  --sidebar-foreground: oklch(97.02% 0.0000 0);
3476
3483
  --sidebar-input-background: oklch(14.48% 0.0000 0);
@@ -4048,6 +4055,8 @@
4048
4055
  --markdown-editor-root-border: oklch(92.19% 0.0000 0);
4049
4056
  --markdown-editor-toolbar-background: oklch(97.02% 0.0000 0);
4050
4057
  --markdown-editor-toolbar-border-bottom: oklch(92.19% 0.0000 0);
4058
+ --menu-content-bg: oklch(100.00% 0.0000 0);
4059
+ --menu-content-border: oklch(92.19% 0.0000 0);
4051
4060
  --menu-item-bg-hover: oklch(95.21% 0.0467 171.12);
4052
4061
  --menu-item-fg-default: oklch(14.48% 0.0000 0);
4053
4062
  --menu-item-fg-destructive: oklch(63.68% 0.2078 25.33);
@@ -4915,6 +4924,8 @@
4915
4924
  --color-markdown-editor-root-border: var(--markdown-editor-root-border);
4916
4925
  --color-markdown-editor-toolbar-background: var(--markdown-editor-toolbar-background);
4917
4926
  --color-markdown-editor-toolbar-border-bottom: var(--markdown-editor-toolbar-border-bottom);
4927
+ --color-menu-content-bg: var(--menu-content-bg);
4928
+ --color-menu-content-border: var(--menu-content-border);
4918
4929
  --color-menu-item-bg-default: var(--menu-item-bg-default);
4919
4930
  --color-menu-item-bg-hover: var(--menu-item-bg-hover);
4920
4931
  --color-menu-item-fg-default: var(--menu-item-fg-default);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etus/ui",
3
- "version": "0.4.0-beta.4",
3
+ "version": "0.4.0-beta.6",
4
4
  "description": "Seven Design System - UI components for ETUS applications",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -113,7 +113,7 @@
113
113
  "sonner": "^2.0.7",
114
114
  "tailwind-merge": "^3.4.0",
115
115
  "vaul": "^1.1.2",
116
- "@etus/tokens": "^0.4.0-beta.3"
116
+ "@etus/tokens": "^0.4.0-beta.5"
117
117
  },
118
118
  "devDependencies": {
119
119
  "@storybook/react-vite": "^10.2.15",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/Modal/Modal.tsx"],"names":[],"mappings":"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","file":"chunk-2D6OFVPN.js","sourcesContent":["\"use client\"\n\nimport type { ModalProps, ModalSize } from \"./Modal.types\"\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\n\n/**\n * Size classes for modal widths\n */\nconst sizeClasses: Record<ModalSize, string> = {\n \"2xl\": \"sm:max-w-2xl\",\n full: \"sm:max-w-[calc(100vw-4rem)]\",\n lg: \"sm:max-w-lg\",\n md: \"sm:max-w-md\",\n sm: \"sm:max-w-sm\",\n xl: \"sm:max-w-xl\",\n}\n\n// Default English fallbacks — override via props for i18n (DES-1286 item 7)\nconst DEFAULT_FALLBACK_TITLE = \"Modal dialog\"\nconst DEFAULT_FALLBACK_DESCRIPTION = \"Use this dialog to complete the current action.\"\nconst DEFAULT_CLOSE_LABEL = \"Close\"\n\n/**\n * Modal - Simplified wrapper over Dialog\n *\n * A declarative API for common modal use cases. Provides a simpler interface\n * than Dialog's subcomponents while maintaining full accessibility.\n *\n * @example\n * ```tsx\n * // With trigger (uncontrolled)\n * <Modal\n * trigger={<Button>Open Modal</Button>}\n * title=\"Modal Title\"\n * description=\"Optional description\"\n * footer={<Button>Save</Button>}\n * >\n * <p>Modal content here</p>\n * </Modal>\n *\n * // Controlled\n * <Modal\n * open={isOpen}\n * onOpenChange={setIsOpen}\n * title=\"Controlled Modal\"\n * >\n * <p>Content</p>\n * </Modal>\n * ```\n */\nfunction Modal({\n children,\n className,\n closeLabel = DEFAULT_CLOSE_LABEL,\n closeOnEscape = true,\n closeOnOverlayClick = true,\n defaultOpen = false,\n description,\n fallbackDescription = DEFAULT_FALLBACK_DESCRIPTION,\n fallbackTitle = DEFAULT_FALLBACK_TITLE,\n footer,\n onOpenChange,\n open,\n overlayClassName,\n showCloseButton = true,\n size = \"md\",\n title,\n trigger,\n}: ModalProps) {\n const accessibleTitle = title ?? fallbackTitle\n const accessibleDescription = description ?? fallbackDescription\n\n const handleOpenChange = (newOpen: boolean): void => {\n onOpenChange?.(newOpen)\n }\n\n const handleEscapeKeyDown = (event: KeyboardEvent): void => {\n if (!closeOnEscape) {\n event.preventDefault()\n }\n }\n\n const handleInteractOutside = (\n event: CustomEvent<{ originalEvent: Event }>\n ): void => {\n if (!closeOnOverlayClick) {\n event.preventDefault()\n }\n }\n\n return (\n <DialogPrimitive.Root\n defaultOpen={defaultOpen}\n open={open}\n onOpenChange={handleOpenChange}\n >\n {trigger && (\n <DialogPrimitive.Trigger asChild data-slot=\"modal-trigger\">\n {trigger}\n </DialogPrimitive.Trigger>\n )}\n\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-[color:var(--modal-overlay-bg)]\",\n overlayClassName\n )}\n data-slot=\"modal-overlay\"\n />\n <DialogPrimitive.Content\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] border duration-200\",\n \"bg-[color:var(--modal-content-bg)] border-[color:var(--modal-content-border)] gap-[var(--modal-content-gap)] rounded-[var(--modal-content-radius)] p-[var(--modal-content-padding)] shadow-[var(--modal-content-shadow)]\",\n sizeClasses[size],\n className\n )}\n data-slot=\"modal\"\n onEscapeKeyDown={handleEscapeKeyDown}\n onInteractOutside={handleInteractOutside}\n >\n {/* Header */}\n <div\n className=\"flex flex-col gap-[var(--modal-header-gap)] text-center sm:text-left\"\n data-slot=\"modal-header\"\n >\n <DialogPrimitive.Title\n className={cn(\n \"text-lg leading-tight font-semibold\",\n !title && \"sr-only\"\n )}\n data-slot=\"modal-title\"\n >\n {accessibleTitle}\n </DialogPrimitive.Title>\n <DialogPrimitive.Description\n className={cn(\n \"text-muted-foreground text-sm\",\n !description && \"sr-only\"\n )}\n data-slot=\"modal-description\"\n >\n {accessibleDescription}\n </DialogPrimitive.Description>\n </div>\n\n {/* Content */}\n {children && <div data-slot=\"modal-content\">{children}</div>}\n\n {/* Footer */}\n {footer && (\n <div\n className=\"flex flex-col-reverse gap-[var(--modal-footer-gap)] sm:flex-row sm:justify-end\"\n data-slot=\"modal-footer\"\n >\n {footer}\n </div>\n )}\n\n {/* Close Button */}\n {showCloseButton && (\n <DialogPrimitive.Close\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n data-slot=\"modal-close\"\n >\n <X />\n <span className=\"sr-only\">{closeLabel}</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n )\n}\n\nexport { Modal }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/ImageGallery/ImageGallery.tsx"],"names":[],"mappings":"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","file":"chunk-3RJEA2MM.js","sourcesContent":["\"use client\"\n\nimport type {\n ImageGalleryGap,\n ImageGalleryItemProps,\n ImageGalleryLayout,\n ImageGalleryProps,\n ImageItem,\n ResponsiveColumns,\n} from \"./ImageGallery.types\"\n\nimport { cva } from \"class-variance-authority\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { Check } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { AspectRatio } from \"../../primitives/AspectRatio\"\n\n// Gap size mapping\nconst gapClasses: Record<ImageGalleryGap, string> = {\n lg: \"gap-6\",\n md: \"gap-4\",\n sm: \"gap-2\",\n}\n\n// Static column class mappings for Tailwind v4 detection\nconst columnClasses: Record<number, string> = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n 5: \"grid-cols-5\",\n 6: \"grid-cols-6\",\n}\n\nconst smColumnClasses: Record<number, string> = {\n 1: \"sm:grid-cols-1\",\n 2: \"sm:grid-cols-2\",\n 3: \"sm:grid-cols-3\",\n 4: \"sm:grid-cols-4\",\n 5: \"sm:grid-cols-5\",\n 6: \"sm:grid-cols-6\",\n}\n\nconst mdColumnClasses: Record<number, string> = {\n 1: \"md:grid-cols-1\",\n 2: \"md:grid-cols-2\",\n 3: \"md:grid-cols-3\",\n 4: \"md:grid-cols-4\",\n 5: \"md:grid-cols-5\",\n 6: \"md:grid-cols-6\",\n}\n\nconst lgColumnClasses: Record<number, string> = {\n 1: \"lg:grid-cols-1\",\n 2: \"lg:grid-cols-2\",\n 3: \"lg:grid-cols-3\",\n 4: \"lg:grid-cols-4\",\n 5: \"lg:grid-cols-5\",\n 6: \"lg:grid-cols-6\",\n}\n\nconst xlColumnClasses: Record<number, string> = {\n 1: \"xl:grid-cols-1\",\n 2: \"xl:grid-cols-2\",\n 3: \"xl:grid-cols-3\",\n 4: \"xl:grid-cols-4\",\n 5: \"xl:grid-cols-5\",\n 6: \"xl:grid-cols-6\",\n}\n\n\n// Generate responsive column classes using static mappings\nfunction getColumnClasses(\n columns: number | ResponsiveColumns | undefined\n): string {\n if (columns === undefined) {\n return \"grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4\"\n }\n\n if (typeof columns === \"number\") {\n return columnClasses[columns] ?? \"grid-cols-4\"\n }\n\n const classes: string[] = []\n if (columns.sm) classes.push(smColumnClasses[columns.sm] ?? \"sm:grid-cols-2\")\n if (columns.md) classes.push(mdColumnClasses[columns.md] ?? \"md:grid-cols-3\")\n if (columns.lg) classes.push(lgColumnClasses[columns.lg] ?? \"lg:grid-cols-4\")\n if (columns.xl) classes.push(xlColumnClasses[columns.xl] ?? \"xl:grid-cols-4\")\n\n return classes.join(\" \") || \"grid-cols-2 md:grid-cols-3 lg:grid-cols-4\"\n}\n\n// Item variants for consistent styling\nconst imageGalleryItemVariants = cva(\n [\n \"relative overflow-hidden rounded-md\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"transition-transform duration-200\",\n \"cursor-pointer\",\n ],\n {\n variants: {\n selected: {\n true: \"ring-2 ring-primary ring-offset-2\",\n false: \"\",\n },\n interactive: {\n true: \"hover:scale-[1.02]\",\n false: \"\",\n },\n },\n defaultVariants: {\n selected: false,\n interactive: true,\n },\n }\n)\n\n/**\n * Individual gallery item component\n */\nfunction ImageGalleryItem({\n aspectRatio = 1,\n className,\n enableLightbox = true,\n enableSelection = false,\n image,\n index: _index,\n isSelected = false,\n onClick,\n onImageError,\n onImageLoad,\n ...props\n}: ImageGalleryItemProps) {\n const [imageState, setImageState] = React.useState<\n \"error\" | \"loaded\" | \"loading\"\n >(\"loading\")\n\n const handleLoad = React.useCallback(() => {\n setImageState(\"loaded\")\n onImageLoad?.()\n }, [onImageLoad])\n\n const handleError = React.useCallback(() => {\n setImageState(\"error\")\n onImageError?.(new Error(`Failed to load image: ${image.src}`))\n }, [image.src, onImageError])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault()\n onClick?.()\n }\n },\n [onClick]\n )\n\n return (\n <button\n aria-label={\n enableSelection && isSelected\n ? `${image.alt} (selected)`\n : image.alt\n }\n className={cn(\n imageGalleryItemVariants({\n selected: isSelected,\n interactive: enableLightbox || enableSelection,\n }),\n className\n )}\n aria-pressed={enableSelection ? isSelected : undefined}\n data-error={imageState === \"error\" || undefined}\n data-loading={imageState === \"loading\" || undefined}\n data-selected={isSelected || undefined}\n data-slot=\"image-gallery-item\"\n type=\"button\"\n onClick={onClick}\n onKeyDown={handleKeyDown}\n {...props}\n >\n <AspectRatio ratio={aspectRatio}>\n {imageState === \"loading\" && (\n <div className=\"absolute inset-0 animate-pulse bg-muted\" />\n )}\n {imageState === \"error\" ? (\n <div className=\"flex h-full w-full items-center justify-center bg-muted text-muted-foreground\">\n <span className=\"text-sm\">Failed to load</span>\n </div>\n ) : (\n <img\n className={cn(\n \"h-full w-full object-cover transition-opacity duration-200\",\n imageState === \"loading\" ? \"opacity-0\" : \"opacity-100\"\n )}\n alt={image.alt}\n data-slot=\"image-gallery-image\"\n loading=\"lazy\"\n src={image.thumbnail ?? image.src}\n onError={handleError}\n onLoad={handleLoad}\n />\n )}\n </AspectRatio>\n\n {/* Selection indicator */}\n {enableSelection && isSelected && (\n <div className=\"absolute right-2 top-2 flex h-6 w-6 items-center justify-center rounded-full bg-primary text-primary-foreground\">\n <Check className=\"h-4 w-4\" />\n </div>\n )}\n </button>\n )\n}\n\n/**\n * Grid layout component\n */\nfunction GridLayout({\n aspectRatio = 1,\n columns,\n enableLightbox = true,\n enableSelection = false,\n gap = \"md\",\n images,\n onImageError,\n onImageLoad,\n onItemClick,\n selectedIds = [],\n}: {\n aspectRatio?: number\n columns?: number | ResponsiveColumns\n enableLightbox?: boolean\n enableSelection?: boolean\n gap?: ImageGalleryGap\n images: ImageItem[]\n onImageError?: (image: ImageItem, error: Error) => void\n onImageLoad?: (image: ImageItem) => void\n onItemClick: (image: ImageItem, index: number) => void\n selectedIds?: string[]\n}) {\n // Only emit inline-style fallback for fixed numeric column counts.\n // For responsive ResponsiveColumns objects, Tailwind classes handle breakpoints —\n // inline style would override them and break responsiveness.\n const inlineGridStyle =\n typeof columns === \"number\"\n ? { gridTemplateColumns: `repeat(${String(columns)}, minmax(0, 1fr))` }\n : undefined\n\n return (\n <div\n className={cn(\"grid\", getColumnClasses(columns), gapClasses[gap])}\n data-layout=\"grid\"\n style={inlineGridStyle}\n >\n {images.map((image, index) => (\n <ImageGalleryItem\n key={image.id}\n aspectRatio={aspectRatio}\n enableLightbox={enableLightbox}\n enableSelection={enableSelection}\n image={image}\n index={index}\n isSelected={selectedIds.includes(image.id)}\n onClick={() => {\n onItemClick(image, index)\n }}\n onImageError={(error) => {\n onImageError?.(image, error)\n }}\n onImageLoad={() => {\n onImageLoad?.(image)\n }}\n />\n ))}\n </div>\n )\n}\n\n/**\n * Masonry layout component\n * Uses CSS columns for a Pinterest-style layout\n */\nfunction MasonryLayout({\n columns,\n enableLightbox = true,\n enableSelection = false,\n gap = \"md\",\n images,\n onImageError,\n onImageLoad,\n onItemClick,\n selectedIds = [],\n}: {\n columns?: number | ResponsiveColumns\n enableLightbox?: boolean\n enableSelection?: boolean\n gap?: ImageGalleryGap\n images: ImageItem[]\n onImageError?: (image: ImageItem, error: Error) => void\n onImageLoad?: (image: ImageItem) => void\n onItemClick: (image: ImageItem, index: number) => void\n selectedIds?: string[]\n}) {\n const columnCount =\n typeof columns === \"number\" ? columns : columns?.lg ?? columns?.md ?? 3\n\n const gapValue = gap === \"sm\" ? \"0.5rem\" : gap === \"lg\" ? \"1.5rem\" : \"1rem\"\n\n return (\n <div\n style={{\n columnCount,\n columnGap: gapValue,\n }}\n className=\"[column-fill:balance]\"\n data-layout=\"masonry\"\n >\n {images.map((image, index) => {\n const aspectRatio =\n image.width && image.height ? image.width / image.height : 1\n\n return (\n <div\n key={image.id}\n style={{\n marginBottom: gapValue,\n }}\n className=\"mb-2 break-inside-avoid md:mb-4 lg:mb-6\"\n >\n <ImageGalleryItem\n aspectRatio={aspectRatio}\n enableLightbox={enableLightbox}\n enableSelection={enableSelection}\n image={image}\n index={index}\n isSelected={selectedIds.includes(image.id)}\n onClick={() => {\n onItemClick(image, index)\n }}\n onImageError={(error) => {\n onImageError?.(image, error)\n }}\n onImageLoad={() => {\n onImageLoad?.(image)\n }}\n />\n </div>\n )\n })}\n </div>\n )\n}\n\n/**\n * Featured layout component\n * Shows first image large with thumbnails on the side\n */\nfunction FeaturedLayout({\n aspectRatio = 1,\n enableLightbox = true,\n enableSelection = false,\n gap = \"md\",\n images,\n onImageError,\n onImageLoad,\n onItemClick,\n selectedIds = [],\n}: {\n aspectRatio?: number\n enableLightbox?: boolean\n enableSelection?: boolean\n gap?: ImageGalleryGap\n images: ImageItem[]\n onImageError?: (image: ImageItem, error: Error) => void\n onImageLoad?: (image: ImageItem) => void\n onItemClick: (image: ImageItem, index: number) => void\n selectedIds?: string[]\n}) {\n const [featuredIndex, setFeaturedIndex] = React.useState(0)\n\n const handleThumbnailClick = React.useCallback(\n (image: ImageItem, originalIndex: number) => {\n setFeaturedIndex(originalIndex)\n onItemClick(image, originalIndex)\n },\n [onItemClick]\n )\n\n if (images.length === 0) return null\n\n const featuredImage = images[featuredIndex]\n if (!featuredImage) return null\n\n const thumbnails = images.filter((_, i) => i !== featuredIndex)\n\n return (\n <div\n className={cn(\"flex flex-col gap-4 md:flex-row\", gapClasses[gap])}\n data-layout=\"featured\"\n >\n {/* Main featured image */}\n <div className=\"flex-1\">\n <ImageGalleryItem\n aspectRatio={aspectRatio}\n className=\"h-full\"\n enableLightbox={enableLightbox}\n enableSelection={enableSelection}\n image={featuredImage}\n index={featuredIndex}\n isSelected={selectedIds.includes(featuredImage.id)}\n onClick={() => {\n onItemClick(featuredImage, featuredIndex)\n }}\n onImageError={(error) => {\n onImageError?.(featuredImage, error)\n }}\n onImageLoad={() => {\n onImageLoad?.(featuredImage)\n }}\n />\n </div>\n\n {/* Thumbnails sidebar */}\n {thumbnails.length > 0 && (\n <div\n className={cn(\n \"flex w-full flex-row md:w-24 md:flex-col lg:w-32\",\n gapClasses[gap]\n )}\n >\n {thumbnails.map((image) => {\n const originalIndex = images.findIndex((img) => img.id === image.id)\n return (\n <ImageGalleryItem\n key={image.id}\n aspectRatio={1}\n className=\"flex-1 md:flex-none\"\n enableLightbox={false}\n enableSelection={enableSelection}\n image={image}\n index={originalIndex}\n isSelected={selectedIds.includes(image.id)}\n onClick={() => {\n handleThumbnailClick(image, originalIndex)\n }}\n onImageError={(error) => {\n onImageError?.(image, error)\n }}\n onImageLoad={() => {\n onImageLoad?.(image)\n }}\n />\n )\n })}\n </div>\n )}\n </div>\n )\n}\n\n/**\n * Carousel layout component\n * Horizontal slider using Embla Carousel\n */\nfunction CarouselLayout({\n aspectRatio = 1,\n enableLightbox = true,\n enableSelection = false,\n gap = \"md\",\n images,\n onImageError,\n onImageLoad,\n onItemClick,\n selectedIds = [],\n}: {\n aspectRatio?: number\n enableLightbox?: boolean\n enableSelection?: boolean\n gap?: ImageGalleryGap\n images: ImageItem[]\n onImageError?: (image: ImageItem, error: Error) => void\n onImageLoad?: (image: ImageItem) => void\n onItemClick: (image: ImageItem, index: number) => void\n selectedIds?: string[]\n}) {\n const [emblaRef] = useEmblaCarousel({\n align: \"start\",\n loop: false,\n slidesToScroll: 1,\n })\n\n const gapValue = gap === \"sm\" ? \"0.5rem\" : gap === \"lg\" ? \"1.5rem\" : \"1rem\"\n\n return (\n <div\n ref={emblaRef}\n aria-roledescription=\"carousel\"\n className=\"overflow-hidden\"\n data-layout=\"carousel\"\n >\n <div\n style={{\n gap: gapValue,\n }}\n className=\"flex\"\n >\n {images.map((image, index) => (\n <div\n key={image.id}\n aria-roledescription=\"slide\"\n className=\"min-w-0 shrink-0 basis-full sm:basis-1/2 md:basis-1/3 lg:basis-1/4\"\n role=\"group\"\n >\n <ImageGalleryItem\n aspectRatio={aspectRatio}\n enableLightbox={enableLightbox}\n enableSelection={enableSelection}\n image={image}\n index={index}\n isSelected={selectedIds.includes(image.id)}\n onClick={() => {\n onItemClick(image, index)\n }}\n onImageError={(error) => {\n onImageError?.(image, error)\n }}\n onImageLoad={() => {\n onImageLoad?.(image)\n }}\n />\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n/**\n * Loading skeleton for the gallery\n */\nfunction LoadingSkeleton({\n aspectRatio = 1,\n columns,\n count = 8,\n gap = \"md\",\n}: {\n aspectRatio?: number\n columns?: number | ResponsiveColumns\n count?: number\n gap?: ImageGalleryGap\n}) {\n // Generate stable keys for skeleton items\n const skeletonKeys = React.useMemo(\n () => Array.from({ length: count }, (_, i) => `skeleton-${String(i)}`),\n [count]\n )\n\n const skeletonInlineStyle =\n typeof columns === \"number\"\n ? { gridTemplateColumns: `repeat(${String(columns)}, minmax(0, 1fr))` }\n : undefined\n\n return (\n <div\n className={cn(\"grid\", getColumnClasses(columns), gapClasses[gap])}\n data-loading=\"true\"\n style={skeletonInlineStyle}\n >\n {skeletonKeys.map((key) => (\n <AspectRatio key={key} ratio={aspectRatio}>\n <div className=\"h-full w-full animate-pulse rounded-md bg-muted\" />\n </AspectRatio>\n ))}\n </div>\n )\n}\n\n/**\n * ImageGallery - A component for displaying collections of images in various layouts\n *\n * @example\n * ```tsx\n * <ImageGallery\n * images={[\n * { id: \"1\", src: \"/photo.jpg\", alt: \"Beach sunset\" },\n * { id: \"2\", src: \"/mountain.jpg\", alt: \"Mountain view\" },\n * ]}\n * layout=\"grid\"\n * columns={{ sm: 2, md: 3, lg: 4 }}\n * gap=\"md\"\n * />\n * ```\n */\nfunction ImageGallery({\n aspectRatio = 1,\n className,\n columns,\n enableLightbox = true,\n enableSelection = false,\n gap = \"md\",\n images,\n layout = \"grid\",\n loading = false,\n maxSelection,\n onImageClick,\n onImageError,\n onImageLoad,\n _onLoadMore,\n onSelectionChange,\n ref,\n selectedIds: controlledSelectedIds,\n ...props\n}: ImageGalleryProps & { _onLoadMore?: () => void }) {\n // Internal selection state when uncontrolled\n const [internalSelectedIds, setInternalSelectedIds] = React.useState<\n string[]\n >([])\n const selectedIds = controlledSelectedIds ?? internalSelectedIds\n\n const handleItemClick = React.useCallback(\n (image: ImageItem, index: number) => {\n // Handle selection mode\n if (enableSelection) {\n const newSelectedIds = selectedIds.includes(image.id)\n ? selectedIds.filter((id) => id !== image.id)\n : maxSelection && selectedIds.length >= maxSelection\n ? selectedIds // Don't add if at max\n : [...selectedIds, image.id]\n\n if (controlledSelectedIds === undefined) {\n setInternalSelectedIds(newSelectedIds)\n }\n onSelectionChange?.(newSelectedIds)\n }\n\n // Always call onImageClick callback\n onImageClick?.(image, index)\n },\n [\n enableSelection,\n selectedIds,\n maxSelection,\n controlledSelectedIds,\n onSelectionChange,\n onImageClick,\n ]\n )\n\n // Render loading skeleton\n if (loading) {\n return (\n <div\n ref={ref}\n aria-busy=\"true\"\n aria-label=\"Image gallery loading\"\n className={cn(\"relative w-full\", className)}\n data-slot=\"image-gallery\"\n role=\"group\"\n {...props}\n >\n <LoadingSkeleton\n aspectRatio={aspectRatio}\n columns={columns}\n count={8}\n gap={gap}\n />\n </div>\n )\n }\n\n // Empty state\n if (images.length === 0) {\n return (\n <div\n ref={ref}\n className={cn(\n \"flex min-h-52 items-center justify-center rounded-lg border-2 border-dashed border-muted\",\n className\n )}\n aria-label=\"Empty image gallery\"\n data-slot=\"image-gallery\"\n role=\"group\"\n {...props}\n >\n <p className=\"text-muted-foreground\">No images to display</p>\n </div>\n )\n }\n\n const layoutProps = {\n aspectRatio,\n columns,\n enableLightbox,\n enableSelection,\n gap,\n images,\n onImageError,\n onImageLoad,\n onItemClick: handleItemClick,\n selectedIds,\n }\n\n const layoutComponents: Record<ImageGalleryLayout, React.ReactNode> = {\n carousel: <CarouselLayout {...layoutProps} />,\n featured: <FeaturedLayout {...layoutProps} />,\n grid: <GridLayout {...layoutProps} />,\n masonry: <MasonryLayout {...layoutProps} />,\n }\n\n return (\n <div\n ref={ref}\n aria-label={`Image gallery with ${String(images.length)} images`}\n aria-roledescription=\"gallery\"\n className={cn(\"relative w-full\", className)}\n data-layout={layout}\n data-slot=\"image-gallery\"\n role=\"group\"\n {...props}\n >\n {layoutComponents[layout]}\n </div>\n )\n}\n\nexport { ImageGallery, ImageGalleryItem }\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/forms/ColorPicker/ColorPicker.variants.ts","../src/components/forms/ColorPicker/ColorPicker.tsx"],"names":[],"mappings":"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","file":"chunk-5YDFC74M.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ColorPicker trigger variant styles using CVA\n */\nexport const colorPickerTriggerVariants = cva(\n // Base styles\n [\n \"inline-flex w-full items-center justify-between gap-2 rounded-[var(--color-picker-trigger-radius)] border bg-transparent font-normal transition-[color,box-shadow] outline-none\",\n \"text-left\",\n \"placeholder:text-muted-foreground\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:border-[color:var(--color-picker-focus-ring-primary)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50 focus-visible:ring-[length:var(--color-picker-focus-ring-width)]\",\n \"aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/20 dark:aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/40 aria-invalid:border-[color:var(--color-picker-focus-ring-destructive)]\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 px-2.5 py-1 text-sm\",\n md: \"h-9 px-3 py-1 text-base md:text-sm\",\n lg: \"h-10 px-3.5 py-1.5 text-base\",\n },\n variant: {\n default: \"border-input shadow-xs dark:bg-input/30\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * ColorPicker swatch styles using CVA\n */\nexport const colorPickerSwatchVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input cursor-pointer transition-all\",\n \"hover:scale-110 hover:border-ring\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n size: {\n sm: \"size-5\",\n md: \"size-6\",\n lg: \"size-7\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ColorPicker preview swatch (in trigger) styles\n */\nexport const colorPickerPreviewVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ColorPickerTriggerVariantProps = VariantProps<typeof colorPickerTriggerVariants>\nexport type ColorPickerSwatchVariantProps = VariantProps<typeof colorPickerSwatchVariants>\nexport type ColorPickerPreviewVariantProps = VariantProps<typeof colorPickerPreviewVariants>\n","import type { ColorPickerProps } from \"./ColorPicker.types\"\n\nimport { Palette } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../../feedback/Popover\"\nimport {\n colorPickerPreviewVariants,\n colorPickerSwatchVariants,\n colorPickerTriggerVariants,\n} from \"./ColorPicker.variants\"\n\n/**\n * Validates if a string is a valid 6-digit hex color\n */\nfunction isValid6DigitHex(color: string): boolean {\n return /^#[A-Fa-f0-9]{6}$/.test(color)\n}\n\n/**\n * Validates if a string is a valid 3-digit hex color\n */\nfunction isValid3DigitHex(color: string): boolean {\n return /^#[A-Fa-f0-9]{3}$/.test(color)\n}\n\n/**\n * Validates if a string is a valid hex color (3 or 6 digit)\n */\nfunction isValidHexColor(color: string): boolean {\n return isValid6DigitHex(color) || isValid3DigitHex(color)\n}\n\n/**\n * Normalizes a hex color to 6-digit lowercase format\n */\nfunction normalizeHexColor(color: string): string {\n if (!color.startsWith(\"#\")) {\n color = `#${color}`\n }\n // Convert 3-digit hex to 6-digit\n if (color.length === 4) {\n const r = color[1] ?? \"\"\n const g = color[2] ?? \"\"\n const b = color[3] ?? \"\"\n return `#${r}${r}${g}${g}${b}${b}`.toLowerCase()\n }\n return color.toLowerCase()\n}\n\n/**\n * Default preset swatches\n */\nconst DEFAULT_SWATCHES = [\n \"#ef4444\", // red\n \"#f97316\", // orange\n \"#eab308\", // yellow\n \"#22c55e\", // green\n \"#14b8a6\", // teal\n \"#3b82f6\", // blue\n \"#8b5cf6\", // violet\n \"#ec4899\", // pink\n \"#000000\", // black\n \"#ffffff\", // white\n]\n\nfunction ColorPicker({\n className,\n value,\n defaultValue,\n placeholder = \"Select color\",\n disabled = false,\n swatches = DEFAULT_SWATCHES,\n showInput = true,\n showPreview = true,\n onChange,\n onOpenChange,\n size = \"md\",\n variant = \"default\",\n required = false,\n invalid = false,\n id,\n name,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n}: ColorPickerProps) {\n const [open, setOpen] = React.useState(false)\n const [internalColor, setInternalColor] = React.useState<string | undefined>(defaultValue)\n const [inputValue, setInputValue] = React.useState(defaultValue ?? \"\")\n const colorInputRef = React.useRef<HTMLInputElement>(null)\n\n // Use controlled value if provided, otherwise use internal state\n const selectedColor = value ?? internalColor\n\n // Sync controlled color to input value when it changes.\n /* eslint-disable react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Controlled value sync */\n React.useEffect(() => {\n if (!selectedColor) return\n setInputValue((prev) => (prev === selectedColor ? prev : selectedColor))\n }, [selectedColor])\n /* eslint-enable react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n const handleColorChange = (color: string) => {\n const normalizedColor = normalizeHexColor(color)\n if (value === undefined) {\n setInternalColor(normalizedColor)\n }\n onChange?.(normalizedColor)\n }\n\n const handleNativeColorChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleColorChange(e.target.value)\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let inputVal = e.target.value\n setInputValue(inputVal)\n\n // Auto-add # if not present\n if (inputVal && !inputVal.startsWith(\"#\")) {\n inputVal = `#${inputVal}`\n }\n\n // Only validate 6-digit hex during typing to avoid intermediate 3-digit matches\n if (isValid6DigitHex(inputVal)) {\n handleColorChange(inputVal)\n }\n }\n\n const handleInputBlur = () => {\n let inputVal = inputValue\n\n // Auto-add # if not present\n if (inputVal && !inputVal.startsWith(\"#\")) {\n inputVal = `#${inputVal}`\n }\n\n // On blur, also accept 3-digit hex and normalize it\n if (isValid3DigitHex(inputVal)) {\n handleColorChange(inputVal)\n } else if (!isValidHexColor(inputVal) && selectedColor) {\n // Reset to current color if invalid\n setInputValue(selectedColor)\n }\n }\n\n const handleSwatchClick = (color: string) => {\n handleColorChange(color)\n }\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n\n return (\n <div className={cn(\"relative\", className)} data-slot=\"color-picker\" {...props}>\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <button\n className={cn(\n colorPickerTriggerVariants({ size, variant }),\n !selectedColor && \"text-muted-foreground\"\n )}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-invalid={invalid}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-required={required}\n data-size={size}\n data-slot=\"color-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n data-variant={variant}\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n >\n <span className=\"flex items-center gap-2 flex-1 truncate\">\n {showPreview && selectedColor && (\n <span\n aria-hidden=\"true\"\n className={cn(colorPickerPreviewVariants({ size }))}\n data-slot=\"color-picker-preview\"\n style={{ backgroundColor: selectedColor }}\n />\n )}\n <span className=\"truncate\">\n {selectedColor ?? placeholder}\n </span>\n </span>\n <Palette aria-hidden=\"true\" className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-64 p-3\"\n data-slot=\"color-picker-content\"\n >\n <div className=\"space-y-3\">\n {/* Native color picker */}\n <div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <input\n ref={colorInputRef}\n aria-label=\"Choose color\"\n className=\"size-10 cursor-pointer rounded-md border border-input p-0.5 [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:rounded-sm [&::-webkit-color-swatch]:border-none [&::-moz-color-swatch]:rounded-sm [&::-moz-color-swatch]:border-none\"\n data-slot=\"color-picker-native\"\n type=\"color\"\n value={selectedColor ?? \"#000000\"}\n onChange={handleNativeColorChange}\n />\n </div>\n {showInput && (\n <input\n aria-label=\"Hex color value\"\n className=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm font-mono shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 uppercase\"\n data-slot=\"color-picker-input\"\n maxLength={7}\n placeholder=\"#000000\"\n type=\"text\"\n value={inputValue}\n onBlur={handleInputBlur}\n onChange={handleInputChange}\n />\n )}\n </div>\n\n {/* Preset swatches */}\n {swatches.length > 0 ? (\n <div className=\"space-y-1.5\">\n <span className=\"text-xs text-muted-foreground font-medium\">\n Preset colors\n </span>\n <div\n aria-label=\"Color swatches\"\n className=\"grid grid-cols-5 gap-2\"\n data-slot=\"color-picker-swatches\"\n role=\"group\"\n >\n {swatches.map((color, index) => (\n <button\n key={`${color}-${String(index)}`}\n className={cn(\n colorPickerSwatchVariants({ size }),\n selectedColor === color && \"ring-2 ring-ring ring-offset-2\"\n )}\n aria-label={`Select color ${color}`}\n aria-pressed={selectedColor === color}\n data-color={color}\n data-selected={selectedColor === color}\n data-slot=\"color-picker-swatch\"\n style={{ backgroundColor: color }}\n type=\"button\"\n onClick={() => { handleSwatchClick(color); }}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n </PopoverContent>\n </Popover>\n {name && (\n <input\n name={name}\n type=\"hidden\"\n value={selectedColor ?? \"\"}\n />\n )}\n </div>\n )\n}\n\nexport { ColorPicker }\n"]}