@vjdesigns/vjdesigns-ui 2.3.0 → 2.5.0
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 +15 -0
- package/README.md +45 -1
- package/dist/ai/llms-full.txt +199 -107
- package/dist/ai/registry.json +217 -77
- package/dist/components/data-display/Accordion/Accordion.cjs.js +1 -1
- package/dist/components/data-display/Accordion/Accordion.mjs +22 -22
- package/dist/components/data-display/Accordion/Accordion.module.css.mjs +1 -2
- package/dist/components/data-display/Avatar/Avatar.cjs.js +1 -1
- package/dist/components/data-display/Avatar/Avatar.mjs +92 -92
- package/dist/components/data-display/Avatar/Avatar.module.css.mjs +1 -2
- package/dist/components/data-display/Badge/Badge.cjs.js +1 -1
- package/dist/components/data-display/Badge/Badge.d.ts +7 -2
- package/dist/components/data-display/Badge/Badge.mjs +4 -3
- package/dist/components/data-display/Badge/Badge.module.css.cjs.js +1 -1
- package/dist/components/data-display/Badge/Badge.module.css.mjs +34 -34
- package/dist/components/data-display/Card/Card.cjs.js +1 -1
- package/dist/components/data-display/Card/Card.mjs +2 -2
- package/dist/components/data-display/Card/Card.module.css.mjs +1 -2
- package/dist/components/data-display/Carousel/Carousel.cjs.js +1 -1
- package/dist/components/data-display/Carousel/Carousel.mjs +42 -42
- package/dist/components/data-display/Carousel/Carousel.module.css.mjs +1 -2
- package/dist/components/data-display/Chat/Chat.cjs.js +1 -1
- package/dist/components/data-display/Chat/Chat.mjs +114 -118
- package/dist/components/data-display/Chat/Chat.module.css.mjs +1 -2
- package/dist/components/data-display/Chat/streams.mjs +1 -2
- package/dist/components/data-display/Chip/Chip.cjs.js +1 -1
- package/dist/components/data-display/Chip/Chip.mjs +50 -54
- package/dist/components/data-display/Chip/Chip.module.css.mjs +1 -2
- package/dist/components/data-display/CodeBlock/CodeBlock.cjs.js +4 -4
- package/dist/components/data-display/CodeBlock/CodeBlock.mjs +113 -113
- package/dist/components/data-display/CodeBlock/CodeBlock.module.css.mjs +1 -2
- package/dist/components/data-display/CodeBlock/tokenize.mjs +1 -2
- package/dist/components/data-display/DataGrid/DataGrid.cjs.js +1 -1
- package/dist/components/data-display/DataGrid/DataGrid.d.ts +14 -3
- package/dist/components/data-display/DataGrid/DataGrid.mjs +352 -267
- package/dist/components/data-display/DataGrid/DataGrid.module.css.cjs.js +1 -1
- package/dist/components/data-display/DataGrid/DataGrid.module.css.mjs +6 -5
- package/dist/components/data-display/DataGrid/dataGridUtils.cjs.js +1 -1
- package/dist/components/data-display/DataGrid/dataGridUtils.d.ts +18 -0
- package/dist/components/data-display/DataGrid/dataGridUtils.mjs +100 -32
- package/dist/components/data-display/EmptyState/EmptyState.cjs.js +1 -1
- package/dist/components/data-display/EmptyState/EmptyState.mjs +53 -53
- package/dist/components/data-display/EmptyState/EmptyState.module.css.mjs +1 -2
- package/dist/components/data-display/Image/Image.cjs.js +1 -1
- package/dist/components/data-display/Image/Image.mjs +6 -6
- package/dist/components/data-display/Image/Image.module.css.mjs +1 -2
- package/dist/components/data-display/List/List.cjs.js +1 -1
- package/dist/components/data-display/List/List.mjs +68 -68
- package/dist/components/data-display/List/List.module.css.mjs +1 -2
- package/dist/components/data-display/Stat/Stat.cjs.js +1 -1
- package/dist/components/data-display/Stat/Stat.mjs +112 -112
- package/dist/components/data-display/Stat/Stat.module.css.mjs +1 -2
- package/dist/components/data-display/Table/Table.cjs.js +1 -1
- package/dist/components/data-display/Table/Table.mjs +187 -183
- package/dist/components/data-display/Table/Table.module.css.mjs +1 -2
- package/dist/components/data-display/Table/useTable.cjs.js +1 -1
- package/dist/components/data-display/Table/useTable.mjs +2 -2
- package/dist/components/data-display/Timeline/Timeline.cjs.js +1 -1
- package/dist/components/data-display/Timeline/Timeline.mjs +64 -64
- package/dist/components/data-display/Timeline/Timeline.module.css.mjs +1 -2
- package/dist/components/data-display/TreeView/TreeView.cjs.js +1 -1
- package/dist/components/data-display/TreeView/TreeView.mjs +107 -119
- package/dist/components/data-display/TreeView/TreeView.module.css.mjs +1 -2
- package/dist/components/data-display/TreeView/treeUtils.mjs +1 -2
- package/dist/components/data-display/VirtualList/VirtualList.cjs.js +1 -1
- package/dist/components/data-display/VirtualList/VirtualList.mjs +2 -2
- package/dist/components/data-display/VirtualList/VirtualList.module.css.mjs +1 -2
- package/dist/components/feedback/Alert/Alert.cjs.js +1 -1
- package/dist/components/feedback/Alert/Alert.mjs +56 -56
- package/dist/components/feedback/Alert/Alert.module.css.mjs +1 -2
- package/dist/components/feedback/Banner/Banner.cjs.js +1 -1
- package/dist/components/feedback/Banner/Banner.mjs +48 -48
- package/dist/components/feedback/Banner/Banner.module.css.mjs +1 -2
- package/dist/components/feedback/ErrorSummary/ErrorSummary.cjs.js +1 -1
- package/dist/components/feedback/ErrorSummary/ErrorSummary.mjs +10 -10
- package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.mjs +1 -2
- package/dist/components/feedback/Progress/Progress.cjs.js +1 -1
- package/dist/components/feedback/Progress/Progress.mjs +2 -2
- package/dist/components/feedback/Progress/Progress.module.css.mjs +1 -2
- package/dist/components/feedback/Skeleton/Skeleton.cjs.js +1 -1
- package/dist/components/feedback/Skeleton/Skeleton.mjs +73 -73
- package/dist/components/feedback/Skeleton/Skeleton.module.css.mjs +1 -2
- package/dist/components/feedback/Spinner/Spinner.cjs.js +1 -1
- package/dist/components/feedback/Spinner/Spinner.mjs +29 -29
- package/dist/components/feedback/Spinner/Spinner.module.css.mjs +1 -2
- package/dist/components/feedback/Toast/Toast.cjs.js +1 -1
- package/dist/components/feedback/Toast/Toast.mjs +42 -42
- package/dist/components/feedback/Toast/Toast.module.css.mjs +1 -2
- package/dist/components/feedback/Toast/ToastItem.cjs.js +1 -1
- package/dist/components/feedback/Toast/ToastItem.mjs +10 -10
- package/dist/components/feedback/Toast/ToastProvider.cjs.js +1 -1
- package/dist/components/feedback/Toast/ToastProvider.mjs +11 -11
- package/dist/components/feedback/Toast/ToastViewport.cjs.js +1 -1
- package/dist/components/feedback/Toast/ToastViewport.mjs +30 -30
- package/dist/components/feedback/Toast/toastStore.mjs +1 -2
- package/dist/components/feedback/Toast/toastTiming.cjs.js +1 -1
- package/dist/components/feedback/Toast/toastTiming.mjs +2 -2
- package/dist/components/feedback/Toast/useToast.cjs.js +1 -1
- package/dist/components/feedback/Toast/useToast.mjs +2 -2
- package/dist/components/feedback/Toast/useToastAnnouncer.cjs.js +1 -1
- package/dist/components/feedback/Toast/useToastAnnouncer.mjs +2 -2
- package/dist/components/forms/CheckBox/CheckBox.cjs.js +1 -1
- package/dist/components/forms/CheckBox/CheckBox.mjs +2 -2
- package/dist/components/forms/CheckBox/CheckBox.module.css.mjs +1 -2
- package/dist/components/forms/ColorPicker/ColorInput.cjs.js +1 -1
- package/dist/components/forms/ColorPicker/ColorInput.mjs +43 -43
- package/dist/components/forms/ColorPicker/ColorPicker.cjs.js +1 -1
- package/dist/components/forms/ColorPicker/ColorPicker.mjs +153 -153
- package/dist/components/forms/ColorPicker/ColorPicker.module.css.mjs +1 -2
- package/dist/components/forms/ColorPicker/colorUtils.mjs +1 -2
- package/dist/components/forms/Combobox/Combobox.cjs.js +1 -1
- package/dist/components/forms/Combobox/Combobox.mjs +200 -213
- package/dist/components/forms/Combobox/Combobox.module.css.mjs +1 -2
- package/dist/components/forms/Combobox/ComboboxPopup.cjs.js +1 -1
- package/dist/components/forms/Combobox/ComboboxPopup.mjs +164 -121
- package/dist/components/forms/Combobox/comboboxUtils.cjs.js +1 -1
- package/dist/components/forms/Combobox/comboboxUtils.d.ts +4 -1
- package/dist/components/forms/Combobox/comboboxUtils.mjs +21 -20
- package/dist/components/forms/DatePicker/Calendar.cjs.js +1 -1
- package/dist/components/forms/DatePicker/Calendar.mjs +60 -66
- package/dist/components/forms/DatePicker/Calendar.module.css.mjs +1 -2
- package/dist/components/forms/DatePicker/DatePicker.cjs.js +1 -1
- package/dist/components/forms/DatePicker/DatePicker.mjs +72 -74
- package/dist/components/forms/DatePicker/DatePicker.module.css.mjs +1 -2
- package/dist/components/forms/DatePicker/DateRangePicker.cjs.js +1 -1
- package/dist/components/forms/DatePicker/DateRangePicker.mjs +117 -117
- package/dist/components/forms/DatePicker/DateRangePicker.module.css.mjs +1 -2
- package/dist/components/forms/DatePicker/dateUtils.mjs +1 -2
- package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.js +1 -1
- package/dist/components/forms/DateTimePicker/DateTimePicker.mjs +19 -19
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +1 -2
- package/dist/components/forms/Field/Field.cjs.js +1 -1
- package/dist/components/forms/Field/Field.mjs +14 -14
- package/dist/components/forms/Field/Field.module.css.mjs +1 -2
- package/dist/components/forms/Field/FieldContext.cjs.js +1 -1
- package/dist/components/forms/Field/FieldContext.mjs +2 -2
- package/dist/components/forms/FileUpload/FileUpload.cjs.js +1 -1
- package/dist/components/forms/FileUpload/FileUpload.mjs +250 -255
- package/dist/components/forms/FileUpload/FileUpload.module.css.mjs +1 -2
- package/dist/components/forms/Input/Input.cjs.js +1 -1
- package/dist/components/forms/Input/Input.mjs +35 -35
- package/dist/components/forms/Input/Input.module.css.mjs +1 -2
- package/dist/components/forms/NumberInput/NumberInput.cjs.js +1 -1
- package/dist/components/forms/NumberInput/NumberInput.mjs +137 -142
- package/dist/components/forms/NumberInput/NumberInput.module.css.mjs +1 -2
- package/dist/components/forms/PasswordInput/PasswordInput.cjs.js +1 -1
- package/dist/components/forms/PasswordInput/PasswordInput.mjs +142 -142
- package/dist/components/forms/PasswordInput/PasswordInput.module.css.mjs +1 -2
- package/dist/components/forms/PinInput/PinInput.cjs.js +1 -1
- package/dist/components/forms/PinInput/PinInput.mjs +12 -12
- package/dist/components/forms/PinInput/PinInput.module.css.mjs +1 -2
- package/dist/components/forms/Radio/Radio.cjs.js +1 -1
- package/dist/components/forms/Radio/Radio.mjs +2 -2
- package/dist/components/forms/Radio/Radio.module.css.mjs +1 -2
- package/dist/components/forms/Rating/Rating.cjs.js +1 -1
- package/dist/components/forms/Rating/Rating.mjs +110 -109
- package/dist/components/forms/Rating/Rating.module.css.mjs +1 -2
- package/dist/components/forms/SearchInput/SearchInput.cjs.js +1 -1
- package/dist/components/forms/SearchInput/SearchInput.mjs +118 -126
- package/dist/components/forms/SearchInput/SearchInput.module.css.mjs +1 -2
- package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.js +1 -1
- package/dist/components/forms/SegmentedControl/SegmentedControl.mjs +46 -43
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +1 -2
- package/dist/components/forms/Select/Select.cjs.js +1 -1
- package/dist/components/forms/Select/Select.mjs +2 -2
- package/dist/components/forms/Select/Select.module.css.mjs +1 -2
- package/dist/components/forms/Slider/Slider.cjs.js +1 -1
- package/dist/components/forms/Slider/Slider.mjs +2 -2
- package/dist/components/forms/Slider/Slider.module.css.mjs +1 -2
- package/dist/components/forms/Switch/Switch.cjs.js +1 -1
- package/dist/components/forms/Switch/Switch.mjs +39 -39
- package/dist/components/forms/Switch/Switch.module.css.mjs +1 -2
- package/dist/components/forms/TagInput/TagInput.cjs.js +1 -1
- package/dist/components/forms/TagInput/TagInput.mjs +197 -203
- package/dist/components/forms/TagInput/TagInput.module.css.mjs +1 -2
- package/dist/components/forms/Textarea/Textarea.cjs.js +1 -1
- package/dist/components/forms/Textarea/Textarea.mjs +59 -59
- package/dist/components/forms/Textarea/Textarea.module.css.mjs +1 -2
- package/dist/components/forms/TimePicker/TimePicker.cjs.js +1 -1
- package/dist/components/forms/TimePicker/TimePicker.mjs +14 -16
- package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -2
- package/dist/components/forms/TimePicker/timeUtils.cjs.js +1 -1
- package/dist/components/forms/TimePicker/timeUtils.d.ts +4 -1
- package/dist/components/forms/TimePicker/timeUtils.mjs +43 -38
- package/dist/components/forms/ToggleGroup/ToggleGroup.cjs.js +1 -1
- package/dist/components/forms/ToggleGroup/ToggleGroup.mjs +10 -10
- package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.mjs +1 -2
- package/dist/components/layout/Box/Box.mjs +1 -2
- package/dist/components/layout/Box/Box.module.css.mjs +1 -2
- package/dist/components/layout/Container/Container.mjs +1 -2
- package/dist/components/layout/Container/Container.module.css.mjs +1 -2
- package/dist/components/layout/Divider/Divider.mjs +1 -2
- package/dist/components/layout/Divider/Divider.module.css.mjs +1 -2
- package/dist/components/layout/Flex/Flex.cjs.js +1 -1
- package/dist/components/layout/Flex/Flex.mjs +12 -13
- package/dist/components/layout/Flex/Flex.module.css.mjs +1 -2
- package/dist/components/layout/Grid/Grid.cjs.js +1 -1
- package/dist/components/layout/Grid/Grid.mjs +20 -21
- package/dist/components/layout/Grid/Grid.module.css.mjs +1 -2
- package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -1
- package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +17 -17
- package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +1 -2
- package/dist/components/layout/ScrollArea/ScrollArea.cjs.js +1 -1
- package/dist/components/layout/ScrollArea/ScrollArea.mjs +2 -2
- package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +1 -2
- package/dist/components/layout/Stack/Stack.cjs.js +1 -1
- package/dist/components/layout/Stack/Stack.mjs +8 -9
- package/dist/components/layout/Stack/Stack.module.css.mjs +1 -2
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.cjs.js +1 -1
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.mjs +41 -41
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.mjs +1 -2
- package/dist/components/navigation/ContextMenu/ContextMenu.cjs.js +1 -1
- package/dist/components/navigation/ContextMenu/ContextMenu.mjs +48 -48
- package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +1 -2
- package/dist/components/navigation/Link/Link.cjs.js +1 -1
- package/dist/components/navigation/Link/Link.mjs +6 -7
- package/dist/components/navigation/Link/Link.module.css.mjs +1 -2
- package/dist/components/navigation/Menu/Menu.cjs.js +1 -1
- package/dist/components/navigation/Menu/Menu.mjs +11 -11
- package/dist/components/navigation/Menu/Menu.module.css.mjs +1 -2
- package/dist/components/navigation/Menu/MenuContent.cjs.js +1 -1
- package/dist/components/navigation/Menu/MenuContent.mjs +46 -46
- package/dist/components/navigation/Menu/MenuContext.cjs.js +1 -1
- package/dist/components/navigation/Menu/MenuContext.mjs +2 -2
- package/dist/components/navigation/Menu/MenuItem.cjs.js +1 -1
- package/dist/components/navigation/Menu/MenuItem.mjs +35 -39
- package/dist/components/navigation/Menu/MenuSub.cjs.js +1 -1
- package/dist/components/navigation/Menu/MenuSub.mjs +16 -20
- package/dist/components/navigation/Menu/useMenuRoot.cjs.js +1 -1
- package/dist/components/navigation/Menu/useMenuRoot.mjs +2 -2
- package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -1
- package/dist/components/navigation/Navbar/Navbar.d.ts +65 -2
- package/dist/components/navigation/Navbar/Navbar.mjs +315 -175
- package/dist/components/navigation/Navbar/Navbar.module.css.cjs.js +1 -1
- package/dist/components/navigation/Navbar/Navbar.module.css.mjs +21 -13
- package/dist/components/navigation/Pagination/Pagination.cjs.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.mjs +31 -35
- package/dist/components/navigation/Pagination/Pagination.module.css.mjs +1 -2
- package/dist/components/navigation/Sidebar/Sidebar.cjs.js +1 -1
- package/dist/components/navigation/Sidebar/Sidebar.mjs +52 -52
- package/dist/components/navigation/Sidebar/Sidebar.module.css.mjs +1 -2
- package/dist/components/navigation/Sidebar/SidebarContext.cjs.js +1 -1
- package/dist/components/navigation/Sidebar/SidebarContext.mjs +2 -2
- package/dist/components/navigation/Sidebar/SidebarParts.cjs.js +1 -1
- package/dist/components/navigation/Sidebar/SidebarParts.mjs +76 -80
- package/dist/components/navigation/SkipLink/SkipLink.cjs.js +1 -1
- package/dist/components/navigation/SkipLink/SkipLink.mjs +12 -12
- package/dist/components/navigation/SkipLink/SkipLink.module.css.mjs +1 -2
- package/dist/components/navigation/Stepper/Stepper.cjs.js +1 -1
- package/dist/components/navigation/Stepper/Stepper.mjs +46 -46
- package/dist/components/navigation/Stepper/Stepper.module.css.mjs +1 -2
- package/dist/components/navigation/Tabs/Tabs.cjs.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.mjs +2 -2
- package/dist/components/navigation/Tabs/Tabs.module.css.mjs +1 -2
- package/dist/components/overlays/CommandPalette/CommandPalette.cjs.js +1 -1
- package/dist/components/overlays/CommandPalette/CommandPalette.mjs +206 -206
- package/dist/components/overlays/CommandPalette/CommandPalette.module.css.mjs +1 -2
- package/dist/components/overlays/CommandPalette/CommandPaletteContext.cjs.js +1 -1
- package/dist/components/overlays/CommandPalette/CommandPaletteContext.mjs +2 -2
- package/dist/components/overlays/CommandPalette/CommandPaletteParts.cjs.js +1 -1
- package/dist/components/overlays/CommandPalette/CommandPaletteParts.mjs +104 -104
- package/dist/components/overlays/CommandPalette/commandPaletteUtils.cjs.js +1 -1
- package/dist/components/overlays/CommandPalette/commandPaletteUtils.mjs +62 -60
- package/dist/components/overlays/Drawer/Drawer.cjs.js +1 -1
- package/dist/components/overlays/Drawer/Drawer.mjs +31 -31
- package/dist/components/overlays/Drawer/Drawer.module.css.mjs +1 -2
- package/dist/components/overlays/Drawer/DrawerContent.cjs.js +1 -1
- package/dist/components/overlays/Drawer/DrawerContent.mjs +99 -99
- package/dist/components/overlays/Drawer/DrawerContext.cjs.js +1 -1
- package/dist/components/overlays/Drawer/DrawerContext.mjs +2 -2
- package/dist/components/overlays/Drawer/DrawerParts.cjs.js +1 -1
- package/dist/components/overlays/Drawer/DrawerParts.mjs +18 -18
- package/dist/components/overlays/Drawer/internal.mjs +1 -2
- package/dist/components/overlays/Drawer/useDragToClose.cjs.js +1 -1
- package/dist/components/overlays/Drawer/useDragToClose.mjs +2 -2
- package/dist/components/overlays/HoverCard/HoverCard.cjs.js +1 -1
- package/dist/components/overlays/HoverCard/HoverCard.mjs +31 -31
- package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +1 -2
- package/dist/components/overlays/Modal/ConfirmModal.cjs.js +1 -1
- package/dist/components/overlays/Modal/ConfirmModal.mjs +21 -23
- package/dist/components/overlays/Modal/Modal.cjs.js +1 -1
- package/dist/components/overlays/Modal/Modal.mjs +47 -47
- package/dist/components/overlays/Modal/Modal.module.css.mjs +1 -2
- package/dist/components/overlays/Modal/ModalContent.cjs.js +1 -1
- package/dist/components/overlays/Modal/ModalContent.mjs +24 -24
- package/dist/components/overlays/Modal/ModalContext.cjs.js +1 -1
- package/dist/components/overlays/Modal/ModalContext.mjs +2 -2
- package/dist/components/overlays/Modal/useScrollRegion.cjs.js +1 -1
- package/dist/components/overlays/Modal/useScrollRegion.mjs +2 -2
- package/dist/components/overlays/Popover/Popover.cjs.js +1 -1
- package/dist/components/overlays/Popover/Popover.mjs +40 -40
- package/dist/components/overlays/Popover/Popover.module.css.mjs +1 -2
- package/dist/components/overlays/Popover/PopoverContent.cjs.js +1 -1
- package/dist/components/overlays/Popover/PopoverContent.mjs +39 -39
- package/dist/components/overlays/Popover/PopoverContext.cjs.js +1 -1
- package/dist/components/overlays/Popover/PopoverContext.mjs +2 -2
- package/dist/components/overlays/Tooltip/Tooltip.cjs.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.mjs +100 -95
- package/dist/components/overlays/Tooltip/Tooltip.module.css.mjs +1 -2
- package/dist/components/primitives/Button/Button.cjs.js +1 -1
- package/dist/components/primitives/Button/Button.mjs +59 -63
- package/dist/components/primitives/Button/Button.module.css.mjs +1 -2
- package/dist/components/primitives/Icon/Icon.cjs.js +1 -1
- package/dist/components/primitives/Icon/Icon.mjs +5 -6
- package/dist/components/primitives/Icon/Icon.module.css.mjs +1 -2
- package/dist/components/primitives/Icon/IconSvg.mjs +1 -2
- package/dist/components/primitives/Icon/icons.mjs +1 -2
- package/dist/components/primitives/Kbd/Kbd.cjs.js +1 -1
- package/dist/components/primitives/Kbd/Kbd.mjs +30 -30
- package/dist/components/primitives/Kbd/Kbd.module.css.mjs +1 -2
- package/dist/components/primitives/Typography/Typography.mjs +1 -2
- package/dist/components/primitives/Typography/Typography.module.css.mjs +1 -2
- package/dist/components/utilities/LocaleProvider/LocaleProvider.cjs.js +1 -1
- package/dist/components/utilities/LocaleProvider/LocaleProvider.mjs +11 -11
- package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +1 -2
- package/dist/components/utilities/Portal/Portal.cjs.js +1 -1
- package/dist/components/utilities/Portal/Portal.mjs +2 -2
- package/dist/components/utilities/Theme/Theme.cjs.js +1 -1
- package/dist/components/utilities/Theme/Theme.mjs +13 -13
- package/dist/components/utilities/Theme/Theme.module.css.mjs +1 -2
- package/dist/components/utilities/VisuallyHidden/VisuallyHidden.mjs +1 -2
- package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.mjs +1 -2
- package/dist/hooks/elementSource.cjs.js +1 -1
- package/dist/hooks/elementSource.mjs +4 -3
- package/dist/hooks/useClipboard.cjs.js +1 -1
- package/dist/hooks/useClipboard.mjs +2 -2
- package/dist/hooks/useControllableState.cjs.js +1 -1
- package/dist/hooks/useControllableState.mjs +2 -2
- package/dist/hooks/useDisclosure.cjs.js +1 -1
- package/dist/hooks/useDisclosure.mjs +2 -2
- package/dist/hooks/useDismiss.cjs.js +1 -1
- package/dist/hooks/useDismiss.mjs +2 -2
- package/dist/hooks/useElementObservers.cjs.js +1 -1
- package/dist/hooks/useElementObservers.mjs +2 -2
- package/dist/hooks/useEnvironment.cjs.js +1 -1
- package/dist/hooks/useEnvironment.mjs +2 -2
- package/dist/hooks/useFloatingPosition.cjs.js +1 -1
- package/dist/hooks/useFloatingPosition.mjs +2 -2
- package/dist/hooks/useFocusTrap.cjs.js +1 -1
- package/dist/hooks/useFocusTrap.mjs +4 -15
- package/dist/hooks/useFormReset.cjs.js +1 -1
- package/dist/hooks/useFormReset.mjs +2 -2
- package/dist/hooks/useFormValidation.cjs.js +1 -1
- package/dist/hooks/useFormValidation.mjs +2 -2
- package/dist/hooks/useHotkeys.cjs.js +1 -1
- package/dist/hooks/useHotkeys.mjs +2 -2
- package/dist/hooks/useInertOutside.cjs.js +1 -1
- package/dist/hooks/useInertOutside.mjs +5 -9
- package/dist/hooks/useMediaQuery.cjs.js +1 -1
- package/dist/hooks/useMediaQuery.mjs +2 -2
- package/dist/hooks/useMergedRef.cjs.js +1 -1
- package/dist/hooks/useMergedRef.mjs +2 -2
- package/dist/hooks/useOverlayLayer.cjs.js +1 -1
- package/dist/hooks/useOverlayLayer.mjs +3 -3
- package/dist/hooks/useResponsiveValue.cjs.js +1 -1
- package/dist/hooks/useResponsiveValue.mjs +2 -2
- package/dist/hooks/useScrollLock.cjs.js +1 -1
- package/dist/hooks/useScrollLock.mjs +2 -2
- package/dist/hooks/useStorage.cjs.js +1 -1
- package/dist/hooks/useStorage.mjs +2 -2
- package/dist/hooks/useTiming.cjs.js +1 -1
- package/dist/hooks/useTiming.mjs +10 -15
- package/dist/hooks/useVirtualizer.cjs.js +1 -1
- package/dist/hooks/useVirtualizer.d.ts +13 -0
- package/dist/hooks/useVirtualizer.mjs +93 -54
- package/dist/i18n/en.cjs.js +1 -1
- package/dist/i18n/en.mjs +2 -2
- package/dist/i18n/merge.mjs +1 -2
- package/dist/i18n/plural.mjs +1 -2
- package/dist/i18n/types.d.ts +5 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +114 -114
- package/dist/locales/ar.cjs.js +1 -1
- package/dist/locales/ar.mjs +2 -2
- package/dist/locales/bn.cjs.js +1 -1
- package/dist/locales/bn.mjs +2 -2
- package/dist/locales/cs.cjs.js +1 -1
- package/dist/locales/cs.mjs +2 -2
- package/dist/locales/da.cjs.js +1 -1
- package/dist/locales/da.mjs +2 -2
- package/dist/locales/de.cjs.js +1 -1
- package/dist/locales/de.mjs +2 -2
- package/dist/locales/el.cjs.js +1 -1
- package/dist/locales/el.mjs +2 -2
- package/dist/locales/es.cjs.js +1 -1
- package/dist/locales/es.mjs +2 -2
- package/dist/locales/fa.cjs.js +1 -1
- package/dist/locales/fa.mjs +2 -2
- package/dist/locales/fi.cjs.js +1 -1
- package/dist/locales/fi.mjs +2 -2
- package/dist/locales/fr.cjs.js +1 -1
- package/dist/locales/fr.mjs +2 -2
- package/dist/locales/he.cjs.js +1 -1
- package/dist/locales/he.mjs +2 -2
- package/dist/locales/hi.cjs.js +1 -1
- package/dist/locales/hi.mjs +2 -2
- package/dist/locales/hu.cjs.js +1 -1
- package/dist/locales/hu.mjs +2 -2
- package/dist/locales/id.cjs.js +1 -1
- package/dist/locales/id.mjs +2 -2
- package/dist/locales/it.cjs.js +1 -1
- package/dist/locales/it.mjs +2 -2
- package/dist/locales/ja.cjs.js +1 -1
- package/dist/locales/ja.mjs +2 -2
- package/dist/locales/ko.cjs.js +1 -1
- package/dist/locales/ko.mjs +2 -2
- package/dist/locales/nb.cjs.js +1 -1
- package/dist/locales/nb.mjs +2 -2
- package/dist/locales/nl.cjs.js +1 -1
- package/dist/locales/nl.mjs +2 -2
- package/dist/locales/pl.cjs.js +1 -1
- package/dist/locales/pl.mjs +2 -2
- package/dist/locales/pt-BR.cjs.js +1 -1
- package/dist/locales/pt-BR.mjs +2 -2
- package/dist/locales/ro.cjs.js +1 -1
- package/dist/locales/ro.mjs +2 -2
- package/dist/locales/ru.cjs.js +1 -1
- package/dist/locales/ru.mjs +2 -2
- package/dist/locales/sv.cjs.js +1 -1
- package/dist/locales/sv.mjs +2 -2
- package/dist/locales/th.cjs.js +1 -1
- package/dist/locales/th.mjs +2 -2
- package/dist/locales/tr.cjs.js +1 -1
- package/dist/locales/tr.mjs +2 -2
- package/dist/locales/uk.cjs.js +1 -1
- package/dist/locales/uk.mjs +2 -2
- package/dist/locales/ur.cjs.js +1 -1
- package/dist/locales/ur.mjs +2 -2
- package/dist/locales/vi.cjs.js +1 -1
- package/dist/locales/vi.mjs +2 -2
- package/dist/locales/zh-Hans.cjs.js +1 -1
- package/dist/locales/zh-Hans.mjs +2 -2
- package/dist/locales/zh-Hant.cjs.js +1 -1
- package/dist/locales/zh-Hant.mjs +2 -2
- package/dist/types/common.mjs +1 -2
- package/dist/utils/announce.cjs.js +1 -1
- package/dist/utils/announce.mjs +3 -4
- package/dist/utils/brandPalette.mjs +1 -2
- package/dist/utils/clipboard.mjs +1 -2
- package/dist/utils/cx.mjs +1 -2
- package/dist/utils/fillSlot.cjs.js +1 -1
- package/dist/utils/fillSlot.mjs +2 -2
- package/dist/utils/flattenChildren.mjs +1 -2
- package/dist/utils/hotkeys.mjs +1 -2
- package/dist/utils/intl.cjs.js +1 -0
- package/dist/utils/intl.d.ts +10 -0
- package/dist/utils/intl.mjs +15 -0
- package/dist/utils/refs.mjs +1 -2
- package/dist/utils/responsive.mjs +1 -2
- package/dist/utils/slot.mjs +1 -2
- package/dist/utils/validators.mjs +1 -2
- package/dist/vjdesigns-ui.css +1 -1
- package/dist/vjdesigns-ui.css.d.ts +2 -0
- package/package.json +24 -14
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { cx as e } from "../../../utils/cx.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
3
|
+
import { ErrorIcon as t } from "../../primitives/Icon/icons.mjs";
|
|
4
|
+
import { VisuallyHidden as n } from "../../utilities/VisuallyHidden/VisuallyHidden.mjs";
|
|
4
5
|
import { FieldContext as r, useFieldContext as i } from "./FieldContext.mjs";
|
|
5
6
|
import a from "./Field.module.css.mjs";
|
|
6
7
|
import { createContext as o, useCallback as s, useContext as c, useId as l, useLayoutEffect as u, useMemo as d, useState as f } from "react";
|
|
7
8
|
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
8
|
-
|
|
9
|
+
// src/components/forms/Field/Field.tsx
|
|
9
10
|
var g = o(null), _ = (e) => e != null && e !== !1 && e !== "";
|
|
10
11
|
function v(e) {
|
|
11
12
|
let [t, n] = f({
|
|
@@ -79,25 +80,25 @@ function w({ className: t, children: n, ...r }) {
|
|
|
79
80
|
children: n
|
|
80
81
|
}) : null;
|
|
81
82
|
}
|
|
82
|
-
function T({ announce:
|
|
83
|
+
function T({ announce: n = !1, className: r, children: i, ...o }) {
|
|
83
84
|
let s = c(g), l = _(i);
|
|
84
85
|
y("error", l);
|
|
85
86
|
let u = l ? /* @__PURE__ */ h("p", {
|
|
86
87
|
id: s?.errorId,
|
|
87
88
|
...o,
|
|
88
89
|
className: e(a.error, r),
|
|
89
|
-
children: [/* @__PURE__ */ m(
|
|
90
|
+
children: [/* @__PURE__ */ m(t, {
|
|
90
91
|
size: "sm",
|
|
91
92
|
className: a.errorIcon
|
|
92
93
|
}), /* @__PURE__ */ m("span", { children: i })]
|
|
93
94
|
}) : null;
|
|
94
|
-
return
|
|
95
|
+
return n ? /* @__PURE__ */ m("div", {
|
|
95
96
|
role: "alert",
|
|
96
97
|
className: a.alertRegion,
|
|
97
98
|
children: u
|
|
98
99
|
}) : u;
|
|
99
100
|
}
|
|
100
|
-
function E({ label:
|
|
101
|
+
function E({ label: t, labelVisuallyHidden: i = !1, hint: o, error: s, invalid: c, required: u = !1, disabled: f = !1, readOnly: y = !1, size: x, id: S, requiredIndicator: E, optionalIndicator: D, announceError: O = !1, orientation: k = "vertical", labelAction: A, counter: j, className: M, children: N, ...P }) {
|
|
101
102
|
let F = l(), { parts: I, counts: L } = v(F), R = _(s), z = c ?? R, B = R && z, V = _(o), H = _(j), U = V || L.hint > 0, W = B || L.error > 0, G = d(() => ({
|
|
102
103
|
controlId: S ?? `${F}-control`,
|
|
103
104
|
labelId: `${F}-label`,
|
|
@@ -123,7 +124,7 @@ function E({ label: n, labelVisuallyHidden: i = !1, hint: o, error: s, invalid:
|
|
|
123
124
|
]), K = /* @__PURE__ */ m(C, {
|
|
124
125
|
requiredIndicator: E,
|
|
125
126
|
optionalIndicator: D,
|
|
126
|
-
children:
|
|
127
|
+
children: t
|
|
127
128
|
}), q = _(A);
|
|
128
129
|
return /* @__PURE__ */ m(r.Provider, {
|
|
129
130
|
value: G,
|
|
@@ -137,7 +138,7 @@ function E({ label: n, labelVisuallyHidden: i = !1, hint: o, error: s, invalid:
|
|
|
137
138
|
className: e(a.field, k === "horizontal" && a.horizontal, x && b[x], M),
|
|
138
139
|
children: /* @__PURE__ */ h("div", {
|
|
139
140
|
className: a.layout,
|
|
140
|
-
children: [i ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(
|
|
141
|
+
children: [i ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(n, { children: K }), q && /* @__PURE__ */ m("div", {
|
|
141
142
|
className: e(a.labelRow, a.labelRowActionOnly),
|
|
142
143
|
children: /* @__PURE__ */ m("span", {
|
|
143
144
|
className: a.labelAction,
|
|
@@ -203,7 +204,7 @@ function D({ id: e, invalid: t = !1, required: n = !1, disabled: i = !1, readOnl
|
|
|
203
204
|
})
|
|
204
205
|
});
|
|
205
206
|
}
|
|
206
|
-
function O({ label:
|
|
207
|
+
function O({ label: t, labelVisuallyHidden: i = !1, hint: o, error: s, invalid: c, required: u = !1, disabled: f = !1, readOnly: y = !1, size: S, requiredIndicator: C, optionalIndicator: E, requiredText: D = "required", announceError: O = !1, className: k, children: A, "aria-describedby": j, ...M }) {
|
|
207
208
|
let N = l(), { parts: P, counts: F } = v(N), I = _(s), L = c ?? I, R = I && L, z = _(o), B = z || F.hint > 0, V = R || F.error > 0, H = `${N}-label`, U = d(() => ({
|
|
208
209
|
controlId: `${N}-control`,
|
|
209
210
|
labelId: H,
|
|
@@ -231,13 +232,13 @@ function O({ label: n, labelVisuallyHidden: i = !1, hint: o, error: s, invalid:
|
|
|
231
232
|
B ? P.hintId : void 0,
|
|
232
233
|
L && V ? P.errorId : void 0
|
|
233
234
|
].filter(Boolean).join(" ") || void 0, G = /* @__PURE__ */ h(p, { children: [
|
|
234
|
-
|
|
235
|
+
t,
|
|
235
236
|
/* @__PURE__ */ m(x, {
|
|
236
237
|
required: u,
|
|
237
238
|
requiredIndicator: C,
|
|
238
239
|
optionalIndicator: E
|
|
239
240
|
}),
|
|
240
|
-
u && /* @__PURE__ */ h(
|
|
241
|
+
u && /* @__PURE__ */ h(n, { children: [
|
|
241
242
|
" (",
|
|
242
243
|
D,
|
|
243
244
|
")"
|
|
@@ -257,7 +258,7 @@ function O({ label: n, labelVisuallyHidden: i = !1, hint: o, error: s, invalid:
|
|
|
257
258
|
children: [/* @__PURE__ */ m("legend", {
|
|
258
259
|
id: H,
|
|
259
260
|
className: e(a.label, a.legend, b[S ?? "md"], f && a.labelDisabled, i && a.legendHidden),
|
|
260
|
-
children: i ? /* @__PURE__ */ m(
|
|
261
|
+
children: i ? /* @__PURE__ */ m(n, { children: G }) : G
|
|
261
262
|
}), /* @__PURE__ */ h("div", {
|
|
262
263
|
className: a.groupBody,
|
|
263
264
|
children: [
|
|
@@ -273,5 +274,4 @@ function O({ label: n, labelVisuallyHidden: i = !1, hint: o, error: s, invalid:
|
|
|
273
274
|
})
|
|
274
275
|
});
|
|
275
276
|
}
|
|
276
|
-
//#endregion
|
|
277
277
|
export { E as Field, T as FieldError, w as FieldHint, C as FieldLabel, D as FieldProvider, O as Fieldset };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/components/forms/Field/Field.module.css
|
|
2
2
|
var e = "_sizeSm_ygpyp_19", t = "_sizeMd_ygpyp_27", n = "_sizeLg_ygpyp_35", r = "_field_ygpyp_47", i = "_layout_ygpyp_61", a = "_labelRow_ygpyp_77", o = "_labelRowActionOnly_ygpyp_97", s = "_label_ygpyp_77", c = "_labelDisabled_ygpyp_123", l = "_requiredIndicator_ygpyp_133", u = "_optionalIndicator_ygpyp_143", d = "_labelAction_ygpyp_167", f = "_body_ygpyp_179", p = "_hintRow_ygpyp_193", m = "_hint_ygpyp_193", h = "_counter_ygpyp_225", g = "_error_ygpyp_247", _ = "_errorIcon_ygpyp_271", v = "_alertRegion_ygpyp_285", y = "_groupBody_ygpyp_291", b = "_horizontal_ygpyp_305", x = "_fieldset_ygpyp_363", S = "_legend_ygpyp_383", C = "_legendHidden_ygpyp_393", w = {
|
|
3
3
|
sizeSm: e,
|
|
4
4
|
sizeMd: t,
|
|
@@ -25,5 +25,4 @@ var e = "_sizeSm_ygpyp_19", t = "_sizeMd_ygpyp_27", n = "_sizeLg_ygpyp_35", r =
|
|
|
25
25
|
legend: S,
|
|
26
26
|
legendHidden: C
|
|
27
27
|
};
|
|
28
|
-
//#endregion
|
|
29
28
|
export { v as alertRegion, f as body, h as counter, w as default, g as error, _ as errorIcon, r as field, x as fieldset, y as groupBody, m as hint, p as hintRow, b as horizontal, s as label, d as labelAction, c as labelDisabled, a as labelRow, o as labelRowActionOnly, i as layout, S as legend, C as legendHidden, u as optionalIndicator, l as requiredIndicator, n as sizeLg, t as sizeMd, e as sizeSm };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require("react");var t=(0,e.createContext)(null);function n(){return(0,e.useContext)(t)}function r(e={},{nativeRequired:t=!0}={}){let r=n(),i=e.invalid??r?.invalid??!1,a=e.required??r?.required??!1,o=e.disabled??r?.disabled??!1,s=e.readOnly??r?.readOnly??!1,c=e.id??(r&&!r.isGroup?r.controlId:void 0),l=[e[`aria-describedby`],r?.hintId,i?r?.errorId:void 0].filter(Boolean).join(` `)||void 0;return{id:c,invalid:i,required:a,disabled:o,readOnly:s,size:e.size??r?.size,ariaProps:{...l?{"aria-describedby":l}:null,...i?{"aria-invalid":!0}:null,...i&&r?.errorId?{"aria-errormessage":r.errorId}:null,...a&&!t?{"aria-required":!0}:null}}}exports.FieldContext=t,exports.useFieldContext=n,exports.useFieldControl=r;
|
|
1
|
+
"use client";let e=require("react");var t=(0,e.createContext)(null);function n(){return(0,e.useContext)(t)}function r(e={},{nativeRequired:t=!0}={}){let r=n(),i=e.invalid??r?.invalid??!1,a=e.required??r?.required??!1,o=e.disabled??r?.disabled??!1,s=e.readOnly??r?.readOnly??!1,c=e.id??(r&&!r.isGroup?r.controlId:void 0),l=[e[`aria-describedby`],r?.hintId,i?r?.errorId:void 0].filter(Boolean).join(` `)||void 0;return{id:c,invalid:i,required:a,disabled:o,readOnly:s,size:e.size??r?.size,ariaProps:{...l?{"aria-describedby":l}:null,...i?{"aria-invalid":!0}:null,...i&&r?.errorId?{"aria-errormessage":r.errorId}:null,...a&&!t?{"aria-required":!0}:null}}}exports.FieldContext=t,exports.useFieldContext=n,exports.useFieldControl=r;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { createContext as e, useContext as t } from "react";
|
|
2
|
-
|
|
3
|
+
// src/components/forms/Field/FieldContext.ts
|
|
3
4
|
var n = e(null);
|
|
4
5
|
function r() {
|
|
5
6
|
return t(n);
|
|
@@ -25,5 +26,4 @@ function i(e = {}, { nativeRequired: t = !0 } = {}) {
|
|
|
25
26
|
}
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
|
-
//#endregion
|
|
29
29
|
export { n as FieldContext, r as useFieldContext, i as useFieldControl };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../../../i18n/en.cjs.js"),t=require("../../../hooks/useControllableState.cjs.js"),n=require("../../../hooks/useFormReset.cjs.js"),r=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),i=require("../../../utils/refs.cjs.js"),a=require("../../../utils/cx.cjs.js"),o=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),s=require("../../feedback/Spinner/Spinner.cjs.js"),c=require("../../primitives/Button/Button.cjs.js"),l=require("../../primitives/Icon/icons.cjs.js"),u=require("../Field/FieldContext.cjs.js"),d=require("../../feedback/Progress/Progress.cjs.js"),f=require("./FileUpload.module.css.cjs.js");let p=require("react"),m=require("react/jsx-runtime");var h={sm:f.default.sm,md:f.default.md,lg:f.default.lg},g={dropzone:f.default.variantDropzone,button:f.default.variantButton};function _(t,n=e.en.fileUpload.units,r){let i=e=>new Intl.NumberFormat(r).format(e);if(!Number.isFinite(t)||t<0)return`${i(0)} ${n.B}`;if(t<1024)return`${i(Math.round(t))} ${n.B}`;let a=[n.KB,n.MB,n.GB,n.TB],o=t/1024,s=0;for(;o>=1024&&s<a.length-1;)o/=1024,s++;return`${i(o>=10?Math.round(o):Math.round(o*10)/10)} ${a[s]}`}function v(e){return e?e.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean):[]}function y(e,t){let n=v(t);if(n.length===0)return!0;let r=e.name.toLowerCase(),i=(e.type||``).toLowerCase();return n.some(e=>e.startsWith(`.`)?r.endsWith(e):e.endsWith(`/*`)?i.startsWith(e.slice(0,-1)):i===e)}var b={"image/jpeg":`JPG`,"image/svg+xml":`SVG`,"text/plain":`TXT`,"application/msword":`DOC`,"application/vnd.openxmlformats-officedocument.wordprocessingml.document":`DOCX`,"application/vnd.ms-excel":`XLS`,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":`XLSX`};function x(t,n=e.en.fileUpload){let r=n.typeGroups,i=v(t).map(e=>{if(e.startsWith(`.`))return e.slice(1).toUpperCase();if(e.endsWith(`/*`)){let t=e.slice(0,-2);return r[t]??n.typeGroup(t)}return b[e]?b[e]:(e.split(`/`)[1]??e).toUpperCase()}),a=Array.from(new Set(i));if(a.length===0)return``;let o=a.join(`, `);return o.charAt(0).toUpperCase()+o.slice(1)}var S=e=>`${e.name}::${e.size}::${e.lastModified}`,C=e=>(e.type||``).startsWith(`image/`),w=new WeakMap,T=0;function E(e){let t=w.get(e);return t||(t=`file-${++T}`,w.set(e,t)),t}function D(e,t){let n=Intl.ListFormat;return n?new n(t,{type:`conjunction`}).format(e):e.join(`, `)}function ee(){let[e,t]=(0,p.useState)(``),n=(0,p.useRef)(!1);return[e,(0,p.useCallback)(e=>{n.current=!n.current,t(n.current?`${e} `:e)},[])]}function O(e,t){let[n,r]=(0,p.useState)();return(0,p.useEffect)(()=>{if(!t||typeof URL>`u`||typeof URL.createObjectURL!=`function`)return;let n=URL.createObjectURL(e);return r(n),()=>{URL.revokeObjectURL(n),r(void 0)}},[e,t]),n}var k=(e,t)=>{if(!e?.status&&e?.progress==null)return null;if(e.message)return e.message;switch(e.status){case`done`:return t.uploaded;case`error`:return t.uploadFailed;default:return e.progress==null?t.uploading:t.uploadingPercent(Math.round(e.progress))}},te=({file:e,state:t,showThumbnails:n,disabled:i,removeLabel:a,onRemove:o,removeRef:u})=>{let{messages:h,locale:g}=r.useLocale(),v=C(e),[y,b]=(0,p.useState)(!1),x=O(e,n&&v),S=t?.status??(t?.progress==null?void 0:`uploading`),w=k(t,h.fileUpload),T=S===`uploading`&&t?.progress!=null;return(0,m.jsxs)(`li`,{className:f.default.item,"data-status":S,children:[(0,m.jsx)(`span`,{className:f.default.thumb,"aria-hidden":`true`,children:x&&!y?(0,m.jsx)(`img`,{className:f.default.thumbImage,src:x,alt:``,onError:()=>b(!0)}):v?(0,m.jsx)(l.ImageIcon,{size:`md`}):(0,m.jsx)(l.FileIcon,{size:`md`})}),(0,m.jsxs)(`div`,{className:f.default.itemBody,children:[(0,m.jsx)(`span`,{className:f.default.fileName,title:e.name,children:e.name}),(0,m.jsxs)(`span`,{className:f.default.meta,children:[(0,m.jsx)(`span`,{children:_(e.size,h.fileUpload.units,g)}),w&&(0,m.jsxs)(`span`,{className:f.default.status,"data-status":S,children:[S===`done`&&(0,m.jsx)(l.CheckIcon,{size:`sm`}),S===`error`&&(0,m.jsx)(l.ErrorIcon,{size:`sm`}),S===`uploading`&&(0,m.jsx)(s.Spinner,{decorative:!0,size:`xs`}),(0,m.jsx)(`span`,{children:w})]})]}),T&&(0,m.jsx)(d.Progress,{className:f.default.progress,size:`sm`,value:t?.progress,"aria-label":h.fileUpload.progressFor(e.name)})]}),o&&(0,m.jsx)(c.IconButton,{ref:u,className:f.default.remove,variant:`ghost`,tone:`neutral`,size:`sm`,"aria-label":a,disabled:i,onClick:o,children:S===`uploading`?(0,m.jsx)(l.CloseIcon,{size:`sm`}):(0,m.jsx)(l.TrashIcon,{size:`sm`})})]})},A=({files:e,onRemove:t,getFileState:n,showThumbnails:i=!0,disabled:s=!1,removeLabel:c,focusFallback:l,size:u=`md`,className:d,"aria-label":g,..._})=>{let{messages:v,locale:y}=r.useLocale(),b=e=>D(e,y),x=c??v.fileUpload.remove,S=g??v.fileUpload.list,C=(0,p.useRef)([]),w=(0,p.useRef)(null),[T,O]=ee(),k=(n,r)=>{w.current={index:r,length:e.length},t?.(n,r)};(0,p.useLayoutEffect)(()=>{let t=w.current;if(t&&(w.current=null,!(e.length>=t.length))){if(e.length===0){l?.()?.focus();return}C.current[Math.min(t.index,e.length-1)]?.focus()}},[e,l]);let A=e.map((e,t)=>n?.(e,t)),j=(0,p.useRef)(new WeakMap),M=A.map(e=>e?.status??``).join(`|`);return(0,p.useEffect)(()=>{let t=[],n=[];e.forEach((e,r)=>{let i=A[r]?.status,a=j.current.get(e);i!==a&&((a!==void 0||j.current.has(e))&&(i===`done`&&t.push(e.name),i===`error`&&n.push(e.name)),j.current.set(e,i))});let r=[];t.length&&r.push(v.fileUpload.announceUploaded(b(t))),n.length&&r.push(v.fileUpload.announceFailed(b(n))),r.length&&O(r.join(` `))},[e,M,O]),(0,m.jsxs)(m.Fragment,{children:[e.length>0&&(0,m.jsx)(`ul`,{..._,"aria-label":S,className:a.cx(f.default.list,h[u],d),children:e.map((e,n)=>(0,m.jsx)(te,{file:e,state:A[n],showThumbnails:i,disabled:s,removeLabel:x(e.name),onRemove:t?()=>k(e,n):void 0,removeRef:e=>{C.current[n]=e}},E(e)))}),(0,m.jsx)(o.VisuallyHidden,{role:`status`,children:T})]})};function j(e,t,n,r,i){let a=e=>_(e,r.units,i),{accept:o,multiple:s=!1,maxFiles:c,maxSize:l,minSize:u,validator:d}=n,f=[],p=[],m=new Set(s?t.map(S):[]),h=s?c??1/0:1,g=s?t.length:0,v=x(o,r);for(let t of e){let e=[];if(y(t,o)||e.push(v?r.typeNotAcceptedUse(v):r.typeNotAccepted),l!=null&&t.size>l&&e.push(r.tooLarge(a(l))),u!=null&&t.size<u&&e.push(r.tooSmall(a(u))),m.has(S(t))&&e.push(r.duplicate),e.length===0&&d){let n=d(t);n&&e.push(n)}e.length===0&&g+f.length>=h&&e.push(s?r.tooMany(h):r.onlyOne),e.length?p.push({file:t,errors:e}):(f.push(t),m.add(S(t)))}return{accepted:f,rejections:p}}var M=e=>Array.from(e.dataTransfer?.types??[]).includes(`Files`),ne=Object.assign(({accept:e,multiple:s=!1,maxFiles:d,maxSize:v,minSize:y,validator:b,value:S,defaultValue:C,onValueChange:w,onReject:T,onFileRemove:D,disabled:O,invalid:k,name:te,required:ne,size:re,variant:N=`dropzone`,children:P,prompt:ie,hint:ae,browseLabel:oe,showList:se=!0,showRejections:ce=!0,showThumbnails:le=!0,getFileState:ue,inputRef:de,buttonRef:fe,id:pe,className:me,style:he,"aria-describedby":ge,"aria-label":F,"aria-labelledby":_e,...I})=>{let{messages:L,locale:ve}=r.useLocale(),ye=e=>_(e,L.fileUpload.units,ve),R=(0,p.useId)(),z=`${R}-hint`,be=`${R}-prompt`,xe=`${R}-browse`,Se=`${R}-rejections`,Ce=`${R}-required`,we=`${R}-input`,B=u.useFieldContext(),[V,Te]=(0,p.useState)([]),H=ae===void 0?[[x(e,L.fileUpload),v==null?``:s?L.fileUpload.upToEach(ye(v)):L.fileUpload.upTo(ye(v))].filter(Boolean).join(` `),s&&d!=null?L.fileUpload.maxFiles(d):``].filter(Boolean).map(e=>`${e}.`).join(` `)||null:ae,Ee=H!==null&&H!==!1&&H!==``,De=ce&&V.length>0,U=u.useFieldControl({id:pe,invalid:k,required:ne,disabled:O,size:re,"aria-describedby":[ge,Ee&&!P?z:void 0,De?Se:void 0].filter(Boolean).join(` `)||void 0}),W=U.size??`md`,G=U.disabled,[K,q]=t.useControllableState({value:S,defaultValue:C??[],onChange:w});n.useFormReset(()=>U.id?document.getElementById(U.id):null,()=>q(C??[]),S===void 0);let J=(0,p.useRef)(K);J.current=K;let[Oe,ke]=ee(),[Ae,Y]=(0,p.useState)(!1),X=(0,p.useRef)(0),Z=(0,p.useRef)(null),Q=(0,p.useRef)(null),je=(0,p.useCallback)(e=>{Z.current=e,i.assignRef(de,e)},[de]),Me=(0,p.useCallback)(e=>{Q.current=e,i.assignRef(fe,e)},[fe]),$=(0,p.useCallback)(e=>{let t=Z.current;if(t)try{if(typeof DataTransfer>`u`)throw Error(`unsupported`);let n=new DataTransfer;e.forEach(e=>n.items.add(e)),t.files=n.files}catch{e.length===0&&(t.value=``)}},[]);(0,p.useEffect)(()=>{$(K)},[K,$]);let Ne=(0,p.useCallback)(()=>{if(G)return;let e=Z.current;e&&(e.value=``,e.click())},[G]);(0,p.useEffect)(()=>{let e=Z.current;if(!e)return;let t=()=>$(J.current);return e.addEventListener(`cancel`,t),()=>e.removeEventListener(`cancel`,t)},[$]);let Pe=t=>{if(G||t.length===0)return;let n=J.current,r=j(t,n,{accept:e,multiple:s,maxFiles:d,maxSize:v,minSize:y,validator:b},L.fileUpload,ve);r.accepted.length&&q(s?[...n,...r.accepted]:r.accepted),Te(r.rejections),r.rejections.length&&T?.(r.rejections);let i=r.accepted.length,a=r.rejections.length,o=L.fileUpload.announceAdded(i,a);a===1&&i===0&&(o+=` ${r.rejections[0].file.name}: ${r.rejections[0].errors.join(` `)}`),ke(o)},Fe=e=>{let t=Array.from(e.target.files??[]);Pe(t),requestAnimationFrame(()=>$(J.current))},Ie=e=>{let t=J.current.filter(t=>t!==e);q(t),D?.(e),ke(`${e.name} removed.`)},Le=()=>{X.current=0,Y(!1)},Re=e=>{M(e)&&(e.preventDefault(),X.current+=1,G||Y(!0))},ze=e=>{M(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=G?`none`:`copy`)},Be=e=>{M(e)&&(X.current=Math.max(0,X.current-1),X.current===0&&Y(!1))},Ve=e=>{M(e)&&(e.preventDefault(),Le(),!G&&Pe(Array.from(e.dataTransfer.files??[])))},He=[xe,B&&!B.isGroup?B.labelId:void 0].filter(Boolean).join(` `),Ue=[U.ariaProps[`aria-describedby`],U.required?Ce:void 0].filter(Boolean).join(` `)||void 0,We=oe??(N===`button`?L.fileUpload.uploadFiles:L.fileUpload.browseFiles),Ge=W,Ke=(0,m.jsx)(c.Button,{ref:Me,id:U.id,className:f.default.browse,variant:N===`button`?`outline`:`solid`,size:Ge,startIcon:N===`button`?(0,m.jsx)(l.UploadIcon,{size:`sm`}):void 0,disabled:G,"aria-labelledby":He,"aria-describedby":Ue,"aria-invalid":U.ariaProps[`aria-invalid`],"aria-errormessage":U.ariaProps[`aria-errormessage`],"aria-controls":we,onClick:Ne,children:(0,m.jsx)(`span`,{id:xe,children:We})}),qe=ie??(s?L.fileUpload.dropFiles:L.fileUpload.dropFile),Je=typeof P==`function`?P({dragging:Ae,disabled:G,openPicker:Ne}):P,Ye=Ee?(0,m.jsx)(`p`,{id:z,className:f.default.hint,children:H}):null,Xe=_e??(B&&!F?B.labelId:void 0),Ze=!!(F||Xe),Qe=(0,p.useCallback)(()=>Q.current,[]),$e=(0,p.useMemo)(()=>K,[K]);return(0,m.jsxs)(`div`,{...I,role:Ze?`group`:I.role,"aria-label":F,"aria-labelledby":Xe,className:a.cx(f.default.root,h[W],g[N],U.invalid&&f.default.invalid,G&&f.default.disabled,me),style:he,"data-size":W,"data-variant":N,"data-dragging":Ae||void 0,"data-disabled":G||void 0,"aria-disabled":G||void 0,children:[(0,m.jsx)(`input`,{ref:je,id:we,className:f.default.nativeInput,type:`file`,name:te,accept:e,multiple:s,required:U.required,disabled:G,tabIndex:-1,"aria-hidden":`true`,onChange:Fe,onInvalid:()=>Q.current?.focus()}),U.required&&(0,m.jsx)(o.VisuallyHidden,{id:Ce,children:L.fileUpload.required}),N===`dropzone`?(0,m.jsxs)(`div`,{className:f.default.dropzone,onDragEnter:Re,onDragOver:ze,onDragLeave:Be,onDrop:Ve,children:[(0,m.jsx)(`span`,{className:f.default.iconBadge,"aria-hidden":`true`,children:(0,m.jsx)(l.UploadIcon,{size:W===`lg`?`xl`:W===`sm`?`sm`:`lg`})}),(0,m.jsx)(`div`,{className:f.default.text,children:Je??(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`p`,{id:be,className:f.default.prompt,children:qe}),Ye]})}),Ke]}):(0,m.jsxs)(`div`,{className:f.default.buttonRow,children:[Ke,Je??Ye]}),De&&(0,m.jsxs)(`div`,{id:Se,className:f.default.rejections,children:[(0,m.jsxs)(`div`,{className:f.default.rejectionsHeader,children:[(0,m.jsx)(l.ErrorIcon,{size:`sm`}),(0,m.jsx)(`p`,{className:f.default.rejectionsTitle,children:L.fileUpload.rejected(V.length)}),(0,m.jsx)(c.IconButton,{className:f.default.rejectionsDismiss,variant:`ghost`,tone:`neutral`,size:`sm`,"aria-label":L.fileUpload.dismissErrors,onClick:()=>{Te([]),Q.current?.focus()},children:(0,m.jsx)(l.CloseIcon,{size:`sm`})})]}),(0,m.jsx)(`ul`,{className:f.default.rejectionList,children:V.map(({file:e,errors:t},n)=>(0,m.jsxs)(`li`,{className:f.default.rejection,children:[(0,m.jsx)(`span`,{className:f.default.rejectionName,children:e.name}),(0,m.jsx)(`span`,{className:f.default.rejectionReason,children:t.join(` `)})]},`${E(e)}-${n}`))})]}),se&&(0,m.jsx)(A,{files:$e,size:W,disabled:G,showThumbnails:le,getFileState:ue,onRemove:Ie,focusFallback:Qe}),(0,m.jsx)(o.VisuallyHidden,{role:`status`,children:Oe})]})},{List:A});exports.FileUpload=ne,exports.FileUploadList=A,exports.describeAccept=x,exports.fileMatchesAccept=y,exports.formatFileSize=_;
|
|
1
|
+
"use client";const e=require("../../../utils/cx.cjs.js"),t=require("../../../utils/intl.cjs.js"),n=require("../../../utils/refs.cjs.js"),r=require("../../../hooks/useControllableState.cjs.js"),i=require("../../../hooks/useFormReset.cjs.js"),a=require("../../primitives/Button/Button.cjs.js"),o=require("../../primitives/Icon/icons.cjs.js"),s=require("../../feedback/Progress/Progress.cjs.js"),c=require("../../feedback/Spinner/Spinner.cjs.js"),l=require("../../utilities/VisuallyHidden/VisuallyHidden.cjs.js"),u=require("../Field/FieldContext.cjs.js"),d=require("./FileUpload.module.css.cjs.js"),f=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),p=require("../../../i18n/en.cjs.js");let m=require("react"),h=require("react/jsx-runtime");var g={sm:d.default.sm,md:d.default.md,lg:d.default.lg},_={dropzone:d.default.variantDropzone,button:d.default.variantButton};function v(e,n=p.en.fileUpload.units,r){let i=e=>t.getNumberFormat(r).format(e);if(!Number.isFinite(e)||e<0)return`${i(0)} ${n.B}`;if(e<1024)return`${i(Math.round(e))} ${n.B}`;let a=[n.KB,n.MB,n.GB,n.TB],o=e/1024,s=0;for(;o>=1024&&s<a.length-1;)o/=1024,s++;return`${i(o>=10?Math.round(o):Math.round(o*10)/10)} ${a[s]}`}function y(e){return e?e.split(`,`).map(e=>e.trim().toLowerCase()).filter(Boolean):[]}function b(e,t){let n=y(t);if(n.length===0)return!0;let r=e.name.toLowerCase(),i=(e.type||``).toLowerCase();return n.some(e=>e.startsWith(`.`)?r.endsWith(e):e.endsWith(`/*`)?i.startsWith(e.slice(0,-1)):i===e)}var x={"image/jpeg":`JPG`,"image/svg+xml":`SVG`,"text/plain":`TXT`,"application/msword":`DOC`,"application/vnd.openxmlformats-officedocument.wordprocessingml.document":`DOCX`,"application/vnd.ms-excel":`XLS`,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":`XLSX`};function S(e,t=p.en.fileUpload){let n=t.typeGroups,r=y(e).map(e=>{if(e.startsWith(`.`))return e.slice(1).toUpperCase();if(e.endsWith(`/*`)){let r=e.slice(0,-2);return n[r]??t.typeGroup(r)}return x[e]?x[e]:(e.split(`/`)[1]??e).toUpperCase()}),i=Array.from(new Set(r));if(i.length===0)return``;let a=i.join(`, `);return a.charAt(0).toUpperCase()+a.slice(1)}var C=e=>`${e.name}::${e.size}::${e.lastModified}`,w=e=>(e.type||``).startsWith(`image/`),T=new WeakMap,E=0;function ee(e){let t=T.get(e);return t||(t=`file-${++E}`,T.set(e,t)),t}function te(e,t){let n=Intl.ListFormat;return n?new n(t,{type:`conjunction`}).format(e):e.join(`, `)}function D(){let[e,t]=(0,m.useState)(``),n=(0,m.useRef)(!1);return[e,(0,m.useCallback)(e=>{n.current=!n.current,t(n.current?`${e} `:e)},[])]}function O(e,t){let[n,r]=(0,m.useState)();return(0,m.useEffect)(()=>{if(!t||typeof URL>`u`||typeof URL.createObjectURL!=`function`)return;let n=URL.createObjectURL(e);return r(n),()=>{URL.revokeObjectURL(n),r(void 0)}},[e,t]),n}var k=(e,t)=>{if(!e?.status&&e?.progress==null)return null;if(e.message)return e.message;switch(e.status){case`done`:return t.uploaded;case`error`:return t.uploadFailed;default:return e.progress==null?t.uploading:t.uploadingPercent(Math.round(e.progress))}},ne=({file:e,state:t,showThumbnails:n,disabled:r,removeLabel:i,onRemove:l,removeRef:u})=>{let{messages:p,locale:g}=f.useLocale(),_=w(e),[y,b]=(0,m.useState)(!1),x=O(e,n&&_),S=t?.status??(t?.progress==null?void 0:`uploading`),C=k(t,p.fileUpload),T=S===`uploading`&&t?.progress!=null;return(0,h.jsxs)(`li`,{className:d.default.item,"data-status":S,children:[(0,h.jsx)(`span`,{className:d.default.thumb,"aria-hidden":`true`,children:x&&!y?(0,h.jsx)(`img`,{className:d.default.thumbImage,src:x,alt:``,onError:()=>b(!0)}):_?(0,h.jsx)(o.ImageIcon,{size:`md`}):(0,h.jsx)(o.FileIcon,{size:`md`})}),(0,h.jsxs)(`div`,{className:d.default.itemBody,children:[(0,h.jsx)(`span`,{className:d.default.fileName,title:e.name,children:e.name}),(0,h.jsxs)(`span`,{className:d.default.meta,children:[(0,h.jsx)(`span`,{children:v(e.size,p.fileUpload.units,g)}),C&&(0,h.jsxs)(`span`,{className:d.default.status,"data-status":S,children:[S===`done`&&(0,h.jsx)(o.CheckIcon,{size:`sm`}),S===`error`&&(0,h.jsx)(o.ErrorIcon,{size:`sm`}),S===`uploading`&&(0,h.jsx)(c.Spinner,{decorative:!0,size:`xs`}),(0,h.jsx)(`span`,{children:C})]})]}),T&&(0,h.jsx)(s.Progress,{className:d.default.progress,size:`sm`,value:t?.progress,"aria-label":p.fileUpload.progressFor(e.name)})]}),l&&(0,h.jsx)(a.IconButton,{ref:u,className:d.default.remove,variant:`ghost`,tone:`neutral`,size:`sm`,"aria-label":i,disabled:r,onClick:l,children:S===`uploading`?(0,h.jsx)(o.CloseIcon,{size:`sm`}):(0,h.jsx)(o.TrashIcon,{size:`sm`})})]})},A=({files:t,onRemove:n,getFileState:r,showThumbnails:i=!0,disabled:a=!1,removeLabel:o,focusFallback:s,size:c=`md`,className:u,"aria-label":p,..._})=>{let{messages:v,locale:y}=f.useLocale(),b=e=>te(e,y),x=o??v.fileUpload.remove,S=p??v.fileUpload.list,C=(0,m.useRef)([]),w=(0,m.useRef)(null),[T,E]=D(),O=(e,r)=>{w.current={index:r,length:t.length},n?.(e,r)};(0,m.useLayoutEffect)(()=>{let e=w.current;e&&(w.current=null,t.length>=e.length||(t.length===0?s?.()?.focus():C.current[Math.min(e.index,t.length-1)]?.focus()))},[t,s]);let k=t.map((e,t)=>r?.(e,t)),A=(0,m.useRef)(new WeakMap),j=k.map(e=>e?.status??``).join(`|`);return(0,m.useEffect)(()=>{let e=[],n=[];t.forEach((t,r)=>{let i=k[r]?.status,a=A.current.get(t);i!==a&&((a!==void 0||A.current.has(t))&&(i===`done`&&e.push(t.name),i===`error`&&n.push(t.name)),A.current.set(t,i))});let r=[];e.length&&r.push(v.fileUpload.announceUploaded(b(e))),n.length&&r.push(v.fileUpload.announceFailed(b(n))),r.length&&E(r.join(` `))},[t,j,E]),(0,h.jsxs)(h.Fragment,{children:[t.length>0&&(0,h.jsx)(`ul`,{..._,"aria-label":S,className:e.cx(d.default.list,g[c],u),children:t.map((e,t)=>(0,h.jsx)(ne,{file:e,state:k[t],showThumbnails:i,disabled:a,removeLabel:x(e.name),onRemove:n?()=>O(e,t):void 0,removeRef:e=>{C.current[t]=e}},ee(e)))}),(0,h.jsx)(l.VisuallyHidden,{role:`status`,children:T})]})};function j(e,t,n,r,i){let a=e=>v(e,r.units,i),{accept:o,multiple:s=!1,maxFiles:c,maxSize:l,minSize:u,validator:d}=n,f=[],p=[],m=new Set(s?t.map(C):[]),h=s?c??1/0:1,g=s?t.length:0,_=S(o,r);for(let t of e){let e=[];if(b(t,o)||e.push(_?r.typeNotAcceptedUse(_):r.typeNotAccepted),l!=null&&t.size>l&&e.push(r.tooLarge(a(l))),u!=null&&t.size<u&&e.push(r.tooSmall(a(u))),m.has(C(t))&&e.push(r.duplicate),e.length===0&&d){let n=d(t);n&&e.push(n)}e.length===0&&g+f.length>=h&&e.push(s?r.tooMany(h):r.onlyOne),e.length?p.push({file:t,errors:e}):(f.push(t),m.add(C(t)))}return{accepted:f,rejections:p}}var M=e=>Array.from(e.dataTransfer?.types??[]).includes(`Files`),re=Object.assign(({accept:t,multiple:s=!1,maxFiles:c,maxSize:p,minSize:y,validator:b,value:x,defaultValue:C,onValueChange:w,onReject:T,onFileRemove:E,disabled:te,invalid:O,name:k,required:ne,size:re,variant:N=`dropzone`,children:P,prompt:ie,hint:ae,browseLabel:oe,showList:se=!0,showRejections:ce=!0,showThumbnails:le=!0,getFileState:ue,inputRef:de,buttonRef:fe,id:pe,className:me,style:he,"aria-describedby":ge,"aria-label":F,"aria-labelledby":_e,...I})=>{let{messages:L,locale:ve}=f.useLocale(),ye=e=>v(e,L.fileUpload.units,ve),R=(0,m.useId)(),z=`${R}-hint`,be=`${R}-prompt`,xe=`${R}-browse`,Se=`${R}-rejections`,Ce=`${R}-required`,we=`${R}-input`,B=u.useFieldContext(),[V,Te]=(0,m.useState)([]),H=ae===void 0?[[S(t,L.fileUpload),p==null?``:s?L.fileUpload.upToEach(ye(p)):L.fileUpload.upTo(ye(p))].filter(Boolean).join(` `),s&&c!=null?L.fileUpload.maxFiles(c):``].filter(Boolean).map(e=>`${e}.`).join(` `)||null:ae,Ee=H!==null&&H!==!1&&H!==``,De=ce&&V.length>0,U=u.useFieldControl({id:pe,invalid:O,required:ne,disabled:te,size:re,"aria-describedby":[ge,Ee&&!P?z:void 0,De?Se:void 0].filter(Boolean).join(` `)||void 0}),W=U.size??`md`,G=U.disabled,[K,q]=r.useControllableState({value:x,defaultValue:C??[],onChange:w});i.useFormReset(()=>U.id?document.getElementById(U.id):null,()=>q(C??[]),x===void 0);let J=(0,m.useRef)(K);J.current=K;let[Oe,ke]=D(),[Ae,Y]=(0,m.useState)(!1),X=(0,m.useRef)(0),Z=(0,m.useRef)(null),Q=(0,m.useRef)(null),je=(0,m.useCallback)(e=>{Z.current=e,n.assignRef(de,e)},[de]),Me=(0,m.useCallback)(e=>{Q.current=e,n.assignRef(fe,e)},[fe]),$=(0,m.useCallback)(e=>{let t=Z.current;if(t)try{if(typeof DataTransfer>`u`)throw Error(`unsupported`);let n=new DataTransfer;e.forEach(e=>n.items.add(e)),t.files=n.files}catch{e.length===0&&(t.value=``)}},[]);(0,m.useEffect)(()=>{$(K)},[K,$]);let Ne=(0,m.useCallback)(()=>{if(G)return;let e=Z.current;e&&(e.value=``,e.click())},[G]);(0,m.useEffect)(()=>{let e=Z.current;if(!e)return;let t=()=>$(J.current);return e.addEventListener(`cancel`,t),()=>e.removeEventListener(`cancel`,t)},[$]);let Pe=e=>{if(G||e.length===0)return;let n=J.current,r=j(e,n,{accept:t,multiple:s,maxFiles:c,maxSize:p,minSize:y,validator:b},L.fileUpload,ve);r.accepted.length&&q(s?[...n,...r.accepted]:r.accepted),Te(r.rejections),r.rejections.length&&T?.(r.rejections);let i=r.accepted.length,a=r.rejections.length,o=L.fileUpload.announceAdded(i,a);a===1&&i===0&&(o+=` ${r.rejections[0].file.name}: ${r.rejections[0].errors.join(` `)}`),ke(o)},Fe=e=>{let t=Array.from(e.target.files??[]);Pe(t),requestAnimationFrame(()=>$(J.current))},Ie=e=>{let t=J.current.filter(t=>t!==e);q(t),E?.(e),ke(`${e.name} removed.`)},Le=()=>{X.current=0,Y(!1)},Re=e=>{M(e)&&(e.preventDefault(),X.current+=1,G||Y(!0))},ze=e=>{M(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=G?`none`:`copy`)},Be=e=>{M(e)&&(X.current=Math.max(0,X.current-1),X.current===0&&Y(!1))},Ve=e=>{M(e)&&(e.preventDefault(),Le(),G||Pe(Array.from(e.dataTransfer.files??[])))},He=[xe,B&&!B.isGroup?B.labelId:void 0].filter(Boolean).join(` `),Ue=[U.ariaProps[`aria-describedby`],U.required?Ce:void 0].filter(Boolean).join(` `)||void 0,We=oe??(N===`button`?L.fileUpload.uploadFiles:L.fileUpload.browseFiles),Ge=W,Ke=(0,h.jsx)(a.Button,{ref:Me,id:U.id,className:d.default.browse,variant:N===`button`?`outline`:`solid`,size:Ge,startIcon:N===`button`?(0,h.jsx)(o.UploadIcon,{size:`sm`}):void 0,disabled:G,"aria-labelledby":He,"aria-describedby":Ue,"aria-invalid":U.ariaProps[`aria-invalid`],"aria-errormessage":U.ariaProps[`aria-errormessage`],"aria-controls":we,onClick:Ne,children:(0,h.jsx)(`span`,{id:xe,children:We})}),qe=ie??(s?L.fileUpload.dropFiles:L.fileUpload.dropFile),Je=typeof P==`function`?P({dragging:Ae,disabled:G,openPicker:Ne}):P,Ye=Ee?(0,h.jsx)(`p`,{id:z,className:d.default.hint,children:H}):null,Xe=_e??(B&&!F?B.labelId:void 0),Ze=!!(F||Xe),Qe=(0,m.useCallback)(()=>Q.current,[]),$e=(0,m.useMemo)(()=>K,[K]);return(0,h.jsxs)(`div`,{...I,role:Ze?`group`:I.role,"aria-label":F,"aria-labelledby":Xe,className:e.cx(d.default.root,g[W],_[N],U.invalid&&d.default.invalid,G&&d.default.disabled,me),style:he,"data-size":W,"data-variant":N,"data-dragging":Ae||void 0,"data-disabled":G||void 0,"aria-disabled":G||void 0,children:[(0,h.jsx)(`input`,{ref:je,id:we,className:d.default.nativeInput,type:`file`,name:k,accept:t,multiple:s,required:U.required,disabled:G,tabIndex:-1,"aria-hidden":`true`,onChange:Fe,onInvalid:()=>Q.current?.focus()}),U.required&&(0,h.jsx)(l.VisuallyHidden,{id:Ce,children:L.fileUpload.required}),N===`dropzone`?(0,h.jsxs)(`div`,{className:d.default.dropzone,onDragEnter:Re,onDragOver:ze,onDragLeave:Be,onDrop:Ve,children:[(0,h.jsx)(`span`,{className:d.default.iconBadge,"aria-hidden":`true`,children:(0,h.jsx)(o.UploadIcon,{size:W===`lg`?`xl`:W===`sm`?`sm`:`lg`})}),(0,h.jsx)(`div`,{className:d.default.text,children:Je??(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`p`,{id:be,className:d.default.prompt,children:qe}),Ye]})}),Ke]}):(0,h.jsxs)(`div`,{className:d.default.buttonRow,children:[Ke,Je??Ye]}),De&&(0,h.jsxs)(`div`,{id:Se,className:d.default.rejections,children:[(0,h.jsxs)(`div`,{className:d.default.rejectionsHeader,children:[(0,h.jsx)(o.ErrorIcon,{size:`sm`}),(0,h.jsx)(`p`,{className:d.default.rejectionsTitle,children:L.fileUpload.rejected(V.length)}),(0,h.jsx)(a.IconButton,{className:d.default.rejectionsDismiss,variant:`ghost`,tone:`neutral`,size:`sm`,"aria-label":L.fileUpload.dismissErrors,onClick:()=>{Te([]),Q.current?.focus()},children:(0,h.jsx)(o.CloseIcon,{size:`sm`})})]}),(0,h.jsx)(`ul`,{className:d.default.rejectionList,children:V.map(({file:e,errors:t},n)=>(0,h.jsxs)(`li`,{className:d.default.rejection,children:[(0,h.jsx)(`span`,{className:d.default.rejectionName,children:e.name}),(0,h.jsx)(`span`,{className:d.default.rejectionReason,children:t.join(` `)})]},`${ee(e)}-${n}`))})]}),se&&(0,h.jsx)(A,{files:$e,size:W,disabled:G,showThumbnails:le,getFileState:ue,onRemove:Ie,focusFallback:Qe}),(0,h.jsx)(l.VisuallyHidden,{role:`status`,children:Oe})]})},{List:A});exports.FileUpload=re,exports.FileUploadList=A,exports.describeAccept=S,exports.fileMatchesAccept=b,exports.formatFileSize=v;
|