@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,5 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { useEffect as e, useRef as t } from "react";
|
|
2
|
-
|
|
3
|
+
// src/hooks/useFormReset.ts
|
|
3
4
|
function n(n, r, i = !0) {
|
|
4
5
|
let a = t(r);
|
|
5
6
|
a.current = r, e(() => {
|
|
@@ -12,5 +13,4 @@ function n(n, r, i = !0) {
|
|
|
12
13
|
return t.addEventListener("reset", r), () => t.removeEventListener("reset", r);
|
|
13
14
|
}, [i]);
|
|
14
15
|
}
|
|
15
|
-
//#endregion
|
|
16
16
|
export { n as useFormReset };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../components/utilities/LocaleProvider/LocaleProvider.cjs.js"),t=require("../utils/validators.cjs.js");let n=require("react");var r=`input:not([type="hidden"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"]), [contenteditable="true"]`,i=e=>e.getClientRects().length>0,a=e=>e instanceof HTMLElement&&e.matches(r)&&i(e)&&!(e instanceof HTMLInputElement&&e.type===`hidden`);function o(e,t){for(let n=e.parentElement,r=0;n&&n!==t&&r<6;n=n.parentElement,r++){let e=new Set(Array.from(n.querySelectorAll(`input[type="hidden"][name]`)).map(e=>e.name));if(e.size===1)return[...e][0];if(e.size>1)return}}function s(e,t){return e.name||o(e,t)||e.id||void 0}function c(e,t){let n=Array.from(t.querySelectorAll(`[name="${CSS.escape(e)}"]`)),i=n.find(a);if(i)return i;for(let e of n)for(let n=e.parentElement,i=0;n&&n!==t&&i<6;n=n.parentElement,i++){let e=Array.from(n.querySelectorAll(r)).find(a);if(e)return e}let o=t.querySelector(`#${CSS.escape(e)}`);return o&&a(o)?o:void 0}function l(e){let t={};return new FormData(e).forEach((e,n)=>{let r=t[n];t[n]=r===void 0?e:Array.isArray(r)?[...r,e]:[r,e]}),t}function u(e,n,r){let i=e instanceof HTMLInputElement&&e.type===`email`&&e.value&&!e.multiple&&!t.isEmail(e.value.trim()),a=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement?e:void 0,o=a?a.value.length:0,s=a&&o>0&&a.minLength>0&&o<a.minLength?n.tooShort(a.minLength):a&&a.maxLength>=0&&o>a.maxLength?n.tooLong(a.maxLength):void 0,c=e.validity;if(c.valid&&!i&&!s)return;if(c.customError)return e.validationMessage;if(c.valueMissing)return n.required;let l=e instanceof HTMLInputElement?e:void 0;if(c.typeMismatch||i)return l?.type===`email`?n.email:l?.type===`url`?n.url:n.invalid;if(c.badInput)return l?.type===`number`?n.number:n.invalid;if(c.patternMismatch)return l?.title||n.pattern;if(s)return s;let u=e=>l&&(l.type===`number`||l.type===`range`)&&e!==``&&!Number.isNaN(Number(e))?new Intl.NumberFormat(r).format(Number(e)):e;return c.rangeUnderflow&&l?n.min(u(l.min)):c.rangeOverflow&&l?n.max(u(l.max)):c.stepMismatch?n.step:n.invalid}var d=(e,t)=>e.length===t.length&&e.every((e,n)=>e.name===t[n].name&&e.message===t[n].message&&e.source===t[n].source);function f(e,t){if(!t)return e;let n=e=>{let n=c(e.name,t);return n?Array.from(t.querySelectorAll(`*`)).indexOf(n):2**53-1},r=new Map(e.map(e=>[e,n(e)]));return[...e].sort((e,t)=>r.get(e)-r.get(t))}function p(t={}){let{rules:r={},onValid:i,focusOnError:a=!0}=t,{messages:o,locale:p}=e.useLocale(),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)([]),[v,y]=(0,n.useState)(0),[b,x]=(0,n.useState)(!1),[S,C]=(0,n.useState)(0),w=(0,n.useRef)({rules:r,onValid:i,messages:o.validation,locale:p});w.current={rules:r,onValid:i,messages:o.validation,locale:p};let T=(0,n.useCallback)((e,t,n)=>({name:e,message:t,source:n,get id(){let t=m.current;return t&&c(e,t)?.id||void 0},focus:()=>{let t=m.current;(t&&c(e,t))?.focus()}}),[]),E=(0,n.useCallback)(e=>{let t=m.current,n=new Map;if(!t)return n;let{rules:r,messages:i,locale:a}=w.current,o=t=>!e||e.includes(t);for(let e of Array.from(t.elements)){if(!(`validity`in e)||!e.willValidate||e.disabled)continue;let r=s(e,t);if(!r||!o(r)||n.has(r))continue;let c=u(e,i,a);c&&n.set(r,c)}let c=l(t);for(let[e,t]of Object.entries(r))if(o(e)&&!n.has(e))for(let r of Array.isArray(t)?t:[t]){let t=r(c[e],{name:e,values:c,messages:i});if(t){n.set(e,t);break}}return n},[]),D=(0,n.useCallback)((e,t,{onlyClear:n=!1}={})=>{_(r=>{let i=e=>!t||t.includes(e),a=[];for(let o of r)i(o.name)?n?e.has(o.name)&&a.push(o):t&&o.source===`server`&&!e.has(o.name)&&a.push(o):a.push(o);if(!n)for(let[t,n]of e)a.push(T(t,n,`client`));let o=f(a,m.current);return d(r,o)?r:o})},[T]),O=(0,n.useCallback)(e=>{let t=E(e);return D(t,e),t.size===0},[E,D]),k=(0,n.useCallback)(e=>{let t=Object.entries(e).filter(([,e])=>e);t.length&&(_(n=>f([...n.filter(t=>!(t.name in e)),...t.map(([e,t])=>T(e,t,`server`))],m.current)),a&&C(e=>e+1))},[T,a]),A=(0,n.useCallback)(e=>{_(t=>e?t.filter(t=>!e.includes(t.name)):[])},[]),j=(0,n.useCallback)(()=>m.current?l(m.current):{},[]);(0,n.useEffect)(()=>{S&&a&&(h.current&&h.current.isConnected?h.current.focus():g[0]?.focus())},[S]);let M=(0,n.useCallback)(e=>{y(e=>e+1);let t=E();if(D(t),t.size>0){e.preventDefault(),a&&C(e=>e+1);return}let n=w.current.onValid;if(!n)return;e.preventDefault();let r=n(l(e.currentTarget),e);r&&typeof r.then==`function`?(x(!0),r.then(e=>{e&&k(e)}).finally(()=>x(!1))):r&&k(r)},[E,D,k,a]),N=e=>{let t=m.current,n=e.target;if(t&&v!==0&&n instanceof Element)return s(n,t)},P=e=>{if(e.target instanceof HTMLSelectElement)return;let t=N(e);t&&(_(e=>e.some(e=>e.name===t&&e.source===`server`)?e.filter(e=>e.name!==t||e.source!==`server`):e),D(E([t]),[t],{onlyClear:!0}))},F=e=>{let t=N(e);if(!t)return;let n=g.filter(e=>e.source===`client`).map(e=>e.name),r=Array.from(new Set([t,...n]));D(E(r),r)},I=(0,n.useMemo)(()=>Object.fromEntries(g.map(e=>[e.name,e.message])),[g]);return{formProps:{ref:e=>{m.current=e},noValidate:!0,onSubmit:M,onInput:P,onChange:e=>{let t=e.target;t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&![`checkbox`,`radio`,`file`].includes(t.type)||F(e)},onBlur:F},formRef:m,errors:I,errorList:g,summaryRef:h,isSubmitting:b,submitCount:v,validate:O,setErrors:k,clearErrors:A,getValues:j}}exports.useFormValidation=p;
|
|
1
|
+
"use client";const e=require("../components/utilities/LocaleProvider/LocaleProvider.cjs.js"),t=require("../utils/validators.cjs.js");let n=require("react");var r=`input:not([type="hidden"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"]), [contenteditable="true"]`,i=e=>e.getClientRects().length>0,a=e=>e instanceof HTMLElement&&e.matches(r)&&i(e)&&!(e instanceof HTMLInputElement&&e.type===`hidden`);function o(e,t){for(let n=e.parentElement,r=0;n&&n!==t&&r<6;n=n.parentElement,r++){let e=new Set(Array.from(n.querySelectorAll(`input[type="hidden"][name]`)).map(e=>e.name));if(e.size===1)return[...e][0];if(e.size>1)return}}function s(e,t){return e.name||o(e,t)||e.id||void 0}function c(e,t){let n=Array.from(t.querySelectorAll(`[name="${CSS.escape(e)}"]`)),i=n.find(a);if(i)return i;for(let e of n)for(let n=e.parentElement,i=0;n&&n!==t&&i<6;n=n.parentElement,i++){let e=Array.from(n.querySelectorAll(r)).find(a);if(e)return e}let o=t.querySelector(`#${CSS.escape(e)}`);return o&&a(o)?o:void 0}function l(e){let t={};return new FormData(e).forEach((e,n)=>{let r=t[n];t[n]=r===void 0?e:Array.isArray(r)?[...r,e]:[r,e]}),t}function u(e,n,r){let i=e instanceof HTMLInputElement&&e.type===`email`&&e.value&&!e.multiple&&!t.isEmail(e.value.trim()),a=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement?e:void 0,o=a?a.value.length:0,s=a&&o>0&&a.minLength>0&&o<a.minLength?n.tooShort(a.minLength):a&&a.maxLength>=0&&o>a.maxLength?n.tooLong(a.maxLength):void 0,c=e.validity;if(c.valid&&!i&&!s)return;if(c.customError)return e.validationMessage;if(c.valueMissing)return n.required;let l=e instanceof HTMLInputElement?e:void 0;if(c.typeMismatch||i)return l?.type===`email`?n.email:l?.type===`url`?n.url:n.invalid;if(c.badInput)return l?.type===`number`?n.number:n.invalid;if(c.patternMismatch)return l?.title||n.pattern;if(s)return s;let u=e=>l&&(l.type===`number`||l.type===`range`)&&e!==``&&!Number.isNaN(Number(e))?new Intl.NumberFormat(r).format(Number(e)):e;return c.rangeUnderflow&&l?n.min(u(l.min)):c.rangeOverflow&&l?n.max(u(l.max)):c.stepMismatch?n.step:n.invalid}var d=(e,t)=>e.length===t.length&&e.every((e,n)=>e.name===t[n].name&&e.message===t[n].message&&e.source===t[n].source);function f(e,t){if(!t)return e;let n=e=>{let n=c(e.name,t);return n?Array.from(t.querySelectorAll(`*`)).indexOf(n):2**53-1},r=new Map(e.map(e=>[e,n(e)]));return[...e].sort((e,t)=>r.get(e)-r.get(t))}function p(t={}){let{rules:r={},onValid:i,focusOnError:a=!0}=t,{messages:o,locale:p}=e.useLocale(),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)([]),[v,y]=(0,n.useState)(0),[b,x]=(0,n.useState)(!1),[S,C]=(0,n.useState)(0),w=(0,n.useRef)({rules:r,onValid:i,messages:o.validation,locale:p});w.current={rules:r,onValid:i,messages:o.validation,locale:p};let T=(0,n.useCallback)((e,t,n)=>({name:e,message:t,source:n,get id(){let t=m.current;return t&&c(e,t)?.id||void 0},focus:()=>{let t=m.current;(t&&c(e,t))?.focus()}}),[]),E=(0,n.useCallback)(e=>{let t=m.current,n=new Map;if(!t)return n;let{rules:r,messages:i,locale:a}=w.current,o=t=>!e||e.includes(t);for(let e of Array.from(t.elements)){if(!(`validity`in e)||!e.willValidate||e.disabled)continue;let r=s(e,t);if(!r||!o(r)||n.has(r))continue;let c=u(e,i,a);c&&n.set(r,c)}let c=l(t);for(let[e,t]of Object.entries(r))if(o(e)&&!n.has(e))for(let r of Array.isArray(t)?t:[t]){let t=r(c[e],{name:e,values:c,messages:i});if(t){n.set(e,t);break}}return n},[]),D=(0,n.useCallback)((e,t,{onlyClear:n=!1}={})=>{_(r=>{let i=e=>!t||t.includes(e),a=[];for(let o of r)i(o.name)?n?e.has(o.name)&&a.push(o):t&&o.source===`server`&&!e.has(o.name)&&a.push(o):a.push(o);if(!n)for(let[t,n]of e)a.push(T(t,n,`client`));let o=f(a,m.current);return d(r,o)?r:o})},[T]),O=(0,n.useCallback)(e=>{let t=E(e);return D(t,e),t.size===0},[E,D]),k=(0,n.useCallback)(e=>{let t=Object.entries(e).filter(([,e])=>e);t.length&&(_(n=>f([...n.filter(t=>!(t.name in e)),...t.map(([e,t])=>T(e,t,`server`))],m.current)),a&&C(e=>e+1))},[T,a]),A=(0,n.useCallback)(e=>{_(t=>e?t.filter(t=>!e.includes(t.name)):[])},[]),j=(0,n.useCallback)(()=>m.current?l(m.current):{},[]);(0,n.useEffect)(()=>{S&&a&&(h.current&&h.current.isConnected?h.current.focus():g[0]?.focus())},[S]);let M=(0,n.useCallback)(e=>{y(e=>e+1);let t=E();if(D(t),t.size>0){e.preventDefault(),a&&C(e=>e+1);return}let n=w.current.onValid;if(!n)return;e.preventDefault();let r=n(l(e.currentTarget),e);r&&typeof r.then==`function`?(x(!0),r.then(e=>{e&&k(e)}).finally(()=>x(!1))):r&&k(r)},[E,D,k,a]),N=e=>{let t=m.current,n=e.target;if(t&&v!==0&&n instanceof Element)return s(n,t)},P=e=>{if(e.target instanceof HTMLSelectElement)return;let t=N(e);t&&(_(e=>e.some(e=>e.name===t&&e.source===`server`)?e.filter(e=>e.name!==t||e.source!==`server`):e),D(E([t]),[t],{onlyClear:!0}))},F=e=>{let t=N(e);if(!t)return;let n=g.filter(e=>e.source===`client`).map(e=>e.name),r=Array.from(new Set([t,...n]));D(E(r),r)},I=(0,n.useMemo)(()=>Object.fromEntries(g.map(e=>[e.name,e.message])),[g]);return{formProps:{ref:e=>{m.current=e},noValidate:!0,onSubmit:M,onInput:P,onChange:e=>{let t=e.target;t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&![`checkbox`,`radio`,`file`].includes(t.type)||F(e)},onBlur:F},formRef:m,errors:I,errorList:g,summaryRef:h,isSubmitting:b,submitCount:v,validate:O,setErrors:k,clearErrors:A,getValues:j}}exports.useFormValidation=p;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { useLocale as e } from "../components/utilities/LocaleProvider/LocaleProvider.mjs";
|
|
2
3
|
import { isEmail as t } from "../utils/validators.mjs";
|
|
3
4
|
import { useCallback as n, useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
|
|
4
|
-
|
|
5
|
+
// src/hooks/useFormValidation.ts
|
|
5
6
|
var s = "input:not([type=\"hidden\"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"true\"]", c = (e) => e.getClientRects().length > 0, l = (e) => e instanceof HTMLElement && e.matches(s) && c(e) && !(e instanceof HTMLInputElement && e.type === "hidden");
|
|
6
7
|
function u(e, t) {
|
|
7
8
|
for (let n = e.parentElement, r = 0; n && n !== t && r < 6; n = n.parentElement, r++) {
|
|
@@ -183,5 +184,4 @@ function _(t = {}) {
|
|
|
183
184
|
getValues: F
|
|
184
185
|
};
|
|
185
186
|
}
|
|
186
|
-
//#endregion
|
|
187
187
|
export { _ as useFormValidation };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../utils/hotkeys.cjs.js");let t=require("react");var n=e=>e.meta||e.ctrl||e.alt;function r(t,r){let i=e.detectPlatform();for(let[a,o,s={}]of t)for(let t of a.split(`,`)){let a=e.parseHotkey(t.trim(),i);if(a&&e.matchesHotkey(r,a)&&(!e.isTypingTarget(r.target)||n(a)||s.allowInInputs)){s.preventDefault!==!1&&r.preventDefault(),o(r);return}}}function i(e,{enabled:n=!0,target:i}={}){let a=(0,t.useRef)(e);a.current=e,(0,t.useEffect)(()=>{if(!n)return;let e=i??(typeof document<`u`?document:void 0);if(!e)return;let t=e=>r(a.current,e);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)},[n,i])}function a(e){return t=>{let n=`nativeEvent`in t?t.nativeEvent:t;r(e.map(([e,t,n])=>[e,t,{allowInInputs:!0,...n}]),n)}}exports.getHotkeyHandler=a,exports.useHotkeys=i;
|
|
1
|
+
"use client";const e=require("../utils/hotkeys.cjs.js");let t=require("react");var n=e=>e.meta||e.ctrl||e.alt;function r(t,r){let i=e.detectPlatform();for(let[a,o,s={}]of t)for(let t of a.split(`,`)){let a=e.parseHotkey(t.trim(),i);if(a&&e.matchesHotkey(r,a)&&(!e.isTypingTarget(r.target)||n(a)||s.allowInInputs)){s.preventDefault!==!1&&r.preventDefault(),o(r);return}}}function i(e,{enabled:n=!0,target:i}={}){let a=(0,t.useRef)(e);a.current=e,(0,t.useEffect)(()=>{if(!n)return;let e=i??(typeof document<`u`?document:void 0);if(!e)return;let t=e=>r(a.current,e);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)},[n,i])}function a(e){return t=>{let n=`nativeEvent`in t?t.nativeEvent:t;r(e.map(([e,t,n])=>[e,t,{allowInInputs:!0,...n}]),n)}}exports.getHotkeyHandler=a,exports.useHotkeys=i;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { detectPlatform as e, isTypingTarget as t, matchesHotkey as n, parseHotkey as r } from "../utils/hotkeys.mjs";
|
|
2
3
|
import { useEffect as i, useRef as a } from "react";
|
|
3
|
-
|
|
4
|
+
// src/hooks/useHotkeys.ts
|
|
4
5
|
var o = (e) => e.meta || e.ctrl || e.alt;
|
|
5
6
|
function s(i, a) {
|
|
6
7
|
let s = e();
|
|
@@ -35,5 +36,4 @@ function l(e) {
|
|
|
35
36
|
]), n);
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
|
-
//#endregion
|
|
39
39
|
export { l as getHotkeyHandler, c as useHotkeys };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./elementSource.cjs.js"),t=require("./useOverlayLayer.cjs.js");let n=require("react");var r=new Map,i=new Set([`SCRIPT`,`STYLE`,`TEMPLATE`,`LINK`,`META`,`NOSCRIPT`]),a=`[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']`;function o(e){let t=r.get(e);
|
|
1
|
+
"use client";const e=require("./elementSource.cjs.js"),t=require("./useOverlayLayer.cjs.js");let n=require("react");var r=new Map,i=new Set([`SCRIPT`,`STYLE`,`TEMPLATE`,`LINK`,`META`,`NOSCRIPT`]),a=`[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']`;function o(e){let t=r.get(e);t?t.count+=1:(r.set(e,{count:1,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}),e.inert=!0,e.setAttribute(`aria-hidden`,`true`))}function s(e){let t=r.get(e);t&&(--t.count,t.count>0||(r.delete(e),e.inert=t.inert,t.ariaHidden===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,t.ariaHidden)))}function c(e){if(typeof document>`u`)return()=>{};let t=(Array.isArray(e)?e:[e]).filter(e=>!!e&&e.isConnected);if(t.length===0)return()=>{};let n=document.body,r=Array.from(n.querySelectorAll(a)).filter(e=>!e.closest(`[inert]`)),c=new Set([...t,...r]),l=new Set;c.forEach(e=>{let t=e.parentElement;for(;t&&t!==n;)l.add(t),t=t.parentElement});let u=[],d=e=>{for(let t of Array.from(e.children))c.has(t)||i.has(t.tagName)||(l.has(t)?d(t):t instanceof HTMLElement&&u.push(t))};d(n),u.forEach(o);let f=!1;return()=>{f||(f=!0,u.forEach(s))}}function l(e,n){if(typeof document>`u`)return()=>{};let r=Array.isArray(n)?n:[n],i=()=>c([...r,...t.getChildLayerElements(e),...t.getLayerElementsAbove(e)]),a=i(),o=t.subscribeOverlayLayers(()=>{let e=i();a(),a=e}),s=!1;return()=>{s||(s=!0,o(),a())}}function u(t,r,i){let a=i?.id,o=(0,n.useRef)({key:[],release:null});(0,n.useLayoutEffect)(()=>{let n=r?t.map(t=>e.resolveElement(t)).filter(e=>!!e):[],i=o.current.key;if(n.length===i.length&&n.every((e,t)=>e===i[t]))return;o.current.release?.();let s=n.length===0?null:a?l(a,n):c(n);o.current={key:n,release:s}}),(0,n.useLayoutEffect)(()=>()=>{o.current.release?.(),o.current={key:[],release:null}},[])}exports.inertOutside=c,exports.inertOutsideLayer=l,exports.useInertOutside=u;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { resolveElement as e } from "./elementSource.mjs";
|
|
2
3
|
import { getChildLayerElements as t, getLayerElementsAbove as n, subscribeOverlayLayers as r } from "./useOverlayLayer.mjs";
|
|
3
4
|
import { useLayoutEffect as i, useRef as a } from "react";
|
|
4
|
-
|
|
5
|
+
// src/hooks/useInertOutside.ts
|
|
5
6
|
var o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set([
|
|
6
7
|
"SCRIPT",
|
|
7
8
|
"STYLE",
|
|
@@ -12,19 +13,15 @@ var o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set([
|
|
|
12
13
|
]), c = "[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']";
|
|
13
14
|
function l(e) {
|
|
14
15
|
let t = o.get(e);
|
|
15
|
-
|
|
16
|
-
t.count += 1;
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
o.set(e, {
|
|
16
|
+
t ? t.count += 1 : (o.set(e, {
|
|
20
17
|
count: 1,
|
|
21
18
|
inert: e.inert,
|
|
22
19
|
ariaHidden: e.getAttribute("aria-hidden")
|
|
23
|
-
}), e.inert = !0, e.setAttribute("aria-hidden", "true");
|
|
20
|
+
}), e.inert = !0, e.setAttribute("aria-hidden", "true"));
|
|
24
21
|
}
|
|
25
22
|
function u(e) {
|
|
26
23
|
let t = o.get(e);
|
|
27
|
-
t && (--t.count,
|
|
24
|
+
t && (--t.count, t.count > 0 || (o.delete(e), e.inert = t.inert, t.ariaHidden === null ? e.removeAttribute("aria-hidden") : e.setAttribute("aria-hidden", t.ariaHidden)));
|
|
28
25
|
}
|
|
29
26
|
function d(e) {
|
|
30
27
|
if (typeof document > "u") return () => {};
|
|
@@ -79,5 +76,4 @@ function p(t, n, r) {
|
|
|
79
76
|
};
|
|
80
77
|
}, []);
|
|
81
78
|
}
|
|
82
|
-
//#endregion
|
|
83
79
|
export { d as inertOutside, f as inertOutsideLayer, p as useInertOutside };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require("react");var t=()=>typeof window<`u`&&typeof window.matchMedia==`function`;function n(n,r=!1){let i=(0,e.useCallback)(e=>{if(!n||!t())return()=>{};let r=window.matchMedia(n);return r.addEventListener(`change`,e),()=>r.removeEventListener(`change`,e)},[n]);return(0,e.useSyncExternalStore)(i,()=>n&&t()?window.matchMedia(n).matches:r,()=>r)}exports.useMediaQuery=n;
|
|
1
|
+
"use client";let e=require("react");var t=()=>typeof window<`u`&&typeof window.matchMedia==`function`;function n(n,r=!1){let i=(0,e.useCallback)(e=>{if(!n||!t())return()=>{};let r=window.matchMedia(n);return r.addEventListener(`change`,e),()=>r.removeEventListener(`change`,e)},[n]);return(0,e.useSyncExternalStore)(i,()=>n&&t()?window.matchMedia(n).matches:r,()=>r)}exports.useMediaQuery=n;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { useCallback as e, useSyncExternalStore as t } from "react";
|
|
2
|
-
|
|
3
|
+
// src/hooks/useMediaQuery.ts
|
|
3
4
|
var n = () => typeof window < "u" && typeof window.matchMedia == "function";
|
|
4
5
|
function r(r, i = !1) {
|
|
5
6
|
let a = e((e) => {
|
|
@@ -9,5 +10,4 @@ function r(r, i = !1) {
|
|
|
9
10
|
}, [r]);
|
|
10
11
|
return t(a, () => r && n() ? window.matchMedia(r).matches : i, () => i);
|
|
11
12
|
}
|
|
12
|
-
//#endregion
|
|
13
13
|
export { r as useMediaQuery };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../utils/refs.cjs.js");let t=require("react");function n(...n){return(0,t.useMemo)(()=>e.mergeRefs(...n),n)}exports.useMergedRef=n;
|
|
1
|
+
"use client";const e=require("../utils/refs.cjs.js");let t=require("react");function n(...n){return(0,t.useMemo)(()=>e.mergeRefs(...n),n)}exports.useMergedRef=n;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { mergeRefs as e } from "../utils/refs.mjs";
|
|
2
3
|
import { useMemo as t } from "react";
|
|
3
|
-
|
|
4
|
+
// src/hooks/useMergedRef.ts
|
|
4
5
|
function n(...n) {
|
|
5
6
|
return t(() => e(...n), n);
|
|
6
7
|
}
|
|
7
|
-
//#endregion
|
|
8
8
|
export { n as useMergedRef };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./elementSource.cjs.js");let t=require("react");var n=[],r=new Map,i=new Set;function a(){i.forEach(e=>e())}function o(e){return i.add(e),()=>{i.delete(e)}}function s(e){return e===null?void 0:n.find(t=>t.id===e)}function c(e,t){let n=e,r=new Set;for(;n&&!r.has(n.id);){if(n.id===t||n.parentId===t)return!0;r.add(n.id),n=s(n.parentId)}return!1}function l(e){let t=new Set,n=[],r=new Map(e.map(e=>[e.id,e])),i=(e,a)=>{if(t.has(e.id)||a.has(e.id))return;a.add(e.id);let o=e.parentId?r.get(e.parentId):void 0;o&&i(o,a),t.add(e.id),n.push(e)};return e.forEach(e=>i(e,new Set)),n}function u(t,n){let i=r.get(t);if(!i)return!1;for(let t of i){let r=t.current.elements?.()??[];for(let t of r)if(e.resolveElement(t)?.contains(n))return!0}return!1}function d(t){let n=[];for(let i of r.get(t)??[])for(let t of i.current.elements?.()??[]){let r=e.resolveElement(t);r&&!n.includes(r)&&n.push(r)}return n}function f(e){return n.filter(t=>t.id!==e&&c(t,e)).flatMap(e=>d(e.id))}function p(e){let t=n.findIndex(t=>t.id===e);return t===-1?[]:n.slice(t+1).flatMap(e=>d(e.id))}function m(e){return o(e)}function h(e,t){return t?n.some(n=>n.id!==e&&c(n,e)&&u(n.id,t)):!1}function g(e,t){return t?u(e,t)||h(e,t):!1}function _(e){return Array.from(r.get(e)??[],e=>e.current)}function v(e){if(e.key!==`Escape`||e.defaultPrevented||e.isComposing)return;let t=n[n.length-1];if(t)for(let n of _(t.id))n.onEscape?.(e)}function y(e){if(e.defaultPrevented)return;let t=e.target instanceof Node?e.target:null;if(!t)return;let r=[...n];for(let n=r.length-1;n>=0;--n){let i=r[n];if(g(i.id,t))break;for(let t of _(i.id))t.onOutsidePress?.(e);if(i.modal)break}}var b=!1;function x(){typeof document
|
|
1
|
+
"use client";const e=require("./elementSource.cjs.js");let t=require("react");var n=[],r=new Map,i=new Set;function a(){i.forEach(e=>e())}function o(e){return i.add(e),()=>{i.delete(e)}}function s(e){return e===null?void 0:n.find(t=>t.id===e)}function c(e,t){let n=e,r=new Set;for(;n&&!r.has(n.id);){if(n.id===t||n.parentId===t)return!0;r.add(n.id),n=s(n.parentId)}return!1}function l(e){let t=new Set,n=[],r=new Map(e.map(e=>[e.id,e])),i=(e,a)=>{if(t.has(e.id)||a.has(e.id))return;a.add(e.id);let o=e.parentId?r.get(e.parentId):void 0;o&&i(o,a),t.add(e.id),n.push(e)};return e.forEach(e=>i(e,new Set)),n}function u(t,n){let i=r.get(t);if(!i)return!1;for(let t of i){let r=t.current.elements?.()??[];for(let t of r)if(e.resolveElement(t)?.contains(n))return!0}return!1}function d(t){let n=[];for(let i of r.get(t)??[])for(let t of i.current.elements?.()??[]){let r=e.resolveElement(t);r&&!n.includes(r)&&n.push(r)}return n}function f(e){return n.filter(t=>t.id!==e&&c(t,e)).flatMap(e=>d(e.id))}function p(e){let t=n.findIndex(t=>t.id===e);return t===-1?[]:n.slice(t+1).flatMap(e=>d(e.id))}function m(e){return o(e)}function h(e,t){return t?n.some(n=>n.id!==e&&c(n,e)&&u(n.id,t)):!1}function g(e,t){return t?u(e,t)||h(e,t):!1}function _(e){return Array.from(r.get(e)??[],e=>e.current)}function v(e){if(e.key!==`Escape`||e.defaultPrevented||e.isComposing)return;let t=n[n.length-1];if(t)for(let n of _(t.id))n.onEscape?.(e)}function y(e){if(e.defaultPrevented)return;let t=e.target instanceof Node?e.target:null;if(!t)return;let r=[...n];for(let n=r.length-1;n>=0;--n){let i=r[n];if(g(i.id,t))break;for(let t of _(i.id))t.onOutsidePress?.(e);if(i.modal)break}}var b=!1;function x(){typeof document<`u`&&(n.length>0&&!b?(document.addEventListener(`keydown`,v),document.addEventListener(`pointerdown`,y),b=!0):n.length===0&&b&&(document.removeEventListener(`keydown`,v),document.removeEventListener(`pointerdown`,y),b=!1))}function S(e){return n=l([...n.filter(t=>t.id!==e.id),e]),x(),a(),()=>{n=n.filter(t=>t!==e),x(),a()}}function C(e,t){let n=r.get(e);return n||(n=new Set,r.set(e,n)),n.add(t),()=>{let n=r.get(e);n?.delete(t),n&&n.size===0&&r.delete(e)}}function w(e){return n.length>0&&n[n.length-1].id===e}function T(e){let t=n.findIndex(t=>t.id===e);return t!==-1&&n.slice(t+1).some(e=>e.modal)}function E(){return n.map(({id:e,parentId:t,modal:n})=>({id:e,parentId:t,modal:n}))}var D=(0,t.createContext)(null);function O(){return(0,t.useContext)(D)}function k({layer:e,children:n}){return(0,t.createElement)(D.Provider,{value:e.id},n)}function A({active:e,modal:n=!1,parentId:r,onEscape:i,onOutsidePress:a,elements:s}){let c=`layer-${(0,t.useId)()}`,l=(0,t.useContext)(D),u=r===void 0?l:r,d=(0,t.useRef)({});d.current={onEscape:i,onOutsidePress:a,elements:s},(0,t.useLayoutEffect)(()=>C(c,d),[c]),(0,t.useLayoutEffect)(()=>{if(e)return S({id:c,parentId:u??null,modal:n})},[e,c,u,n]);let f=(0,t.useSyncExternalStore)(o,()=>e&&w(c),()=>!1),p=(0,t.useSyncExternalStore)(o,()=>e&&T(c),()=>!1),m=(0,t.useCallback)(()=>w(c),[c]),_=(0,t.useCallback)(e=>g(c,e),[c]),v=(0,t.useCallback)(e=>h(c,e),[c]),y=(0,t.useCallback)(e=>C(c,e),[c]);return(0,t.useMemo)(()=>({id:c,parentId:u??null,isTopmost:f,hasModalAbove:p,getIsTopmost:m,contains:_,childContains:v,addHandlers:y}),[c,u,f,p,m,_,v,y])}exports.OverlayLayerProvider=k,exports.childLayerContains=h,exports.getChildLayerElements=f,exports.getLayerElementsAbove=p,exports.getOverlayLayerStack=E,exports.layerContains=g,exports.subscribeOverlayLayers=m,exports.useOverlayLayer=A,exports.useParentOverlayLayer=O;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { resolveElement as e } from "./elementSource.mjs";
|
|
2
3
|
import { createContext as t, createElement as n, useCallback as r, useContext as i, useId as a, useLayoutEffect as o, useMemo as s, useRef as c, useSyncExternalStore as l } from "react";
|
|
3
|
-
|
|
4
|
+
// src/hooks/useOverlayLayer.ts
|
|
4
5
|
var u = [], d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Set();
|
|
5
6
|
function p() {
|
|
6
7
|
f.forEach((e) => e());
|
|
@@ -85,7 +86,7 @@ function D(e) {
|
|
|
85
86
|
}
|
|
86
87
|
var O = !1;
|
|
87
88
|
function k() {
|
|
88
|
-
typeof document
|
|
89
|
+
typeof document < "u" && (u.length > 0 && !O ? (document.addEventListener("keydown", E), document.addEventListener("pointerdown", D), O = !0) : u.length === 0 && O && (document.removeEventListener("keydown", E), document.removeEventListener("pointerdown", D), O = !1));
|
|
89
90
|
}
|
|
90
91
|
function A(e) {
|
|
91
92
|
return u = _([...u.filter((t) => t.id !== e.id), e]), k(), p(), () => {
|
|
@@ -159,5 +160,4 @@ function R({ active: e, modal: t = !1, parentId: n, onEscape: u, onOutsidePress:
|
|
|
159
160
|
T
|
|
160
161
|
]);
|
|
161
162
|
}
|
|
162
|
-
//#endregion
|
|
163
163
|
export { L as OverlayLayerProvider, C as childLayerContains, b as getChildLayerElements, x as getLayerElementsAbove, P as getOverlayLayerStack, w as layerContains, S as subscribeOverlayLayers, R as useOverlayLayer, I as useParentOverlayLayer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../utils/responsive.cjs.js");let t=require("react");var n=()=>typeof window<`u`&&typeof window.matchMedia==`function`,r=e.RESPONSIVE_KEYS.filter(e=>e!==`base`);function i(i,a){let o=e.isResponsiveObject(i),s=(0,t.useCallback)(t=>{if(!o||!n())return()=>{};let i=r.map(t=>window.matchMedia(e.breakpointQuery(t)));return i.forEach(e=>e.addEventListener(`change`,t)),()=>i.forEach(e=>e.removeEventListener(`change`,t))},[o]),c=()=>e.resolveResponsive(i,a,t=>n()&&window.matchMedia(e.breakpointQuery(t)).matches),l=e.isResponsiveObject(i)?i.base??a:i;return(0,t.useSyncExternalStore)(s,c,()=>l)}exports.useResponsiveValue=i;
|
|
1
|
+
"use client";const e=require("../utils/responsive.cjs.js");let t=require("react");var n=()=>typeof window<`u`&&typeof window.matchMedia==`function`,r=e.RESPONSIVE_KEYS.filter(e=>e!==`base`);function i(i,a){let o=e.isResponsiveObject(i),s=(0,t.useCallback)(t=>{if(!o||!n())return()=>{};let i=r.map(t=>window.matchMedia(e.breakpointQuery(t)));return i.forEach(e=>e.addEventListener(`change`,t)),()=>i.forEach(e=>e.removeEventListener(`change`,t))},[o]),c=()=>e.resolveResponsive(i,a,t=>n()&&window.matchMedia(e.breakpointQuery(t)).matches),l=e.isResponsiveObject(i)?i.base??a:i;return(0,t.useSyncExternalStore)(s,c,()=>l)}exports.useResponsiveValue=i;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { RESPONSIVE_KEYS as e, breakpointQuery as t, isResponsiveObject as n, resolveResponsive as r } from "../utils/responsive.mjs";
|
|
2
3
|
import { useCallback as i, useSyncExternalStore as a } from "react";
|
|
3
|
-
|
|
4
|
+
// src/hooks/useResponsiveValue.ts
|
|
4
5
|
var o = () => typeof window < "u" && typeof window.matchMedia == "function", s = e.filter((e) => e !== "base");
|
|
5
6
|
function c(e, c) {
|
|
6
7
|
let l = n(e), u = i((e) => {
|
|
@@ -10,5 +11,4 @@ function c(e, c) {
|
|
|
10
11
|
}, [l]), d = () => r(e, c, (e) => o() && window.matchMedia(t(e)).matches), f = n(e) ? e.base ?? c : e;
|
|
11
12
|
return a(u, d, () => f);
|
|
12
13
|
}
|
|
13
|
-
//#endregion
|
|
14
14
|
export { c as useResponsiveValue };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require("react");var t=0,n=null;function r(){if(typeof document>`u`)return()=>{};let e=document.body;if(t===0){let t=window.innerWidth-document.documentElement.clientWidth;if(n={overflow:e.style.overflow,paddingInlineEnd:e.style.paddingInlineEnd},t>0){let n=parseFloat(window.getComputedStyle(e).paddingInlineEnd)||0;e.style.paddingInlineEnd=`${n+t}px`}e.style.overflow=`hidden`}t+=1;let r=!1;return()=>{r||(r=!0,--t,t===0&&n&&(e.style.overflow=n.overflow,e.style.paddingInlineEnd=n.paddingInlineEnd,n=null))}}function i(t){(0,e.useLayoutEffect)(()=>{if(t)return r()},[t])}exports.lockScroll=r,exports.useScrollLock=i;
|
|
1
|
+
"use client";let e=require("react");var t=0,n=null;function r(){if(typeof document>`u`)return()=>{};let e=document.body;if(t===0){let t=window.innerWidth-document.documentElement.clientWidth;if(n={overflow:e.style.overflow,paddingInlineEnd:e.style.paddingInlineEnd},t>0){let n=parseFloat(window.getComputedStyle(e).paddingInlineEnd)||0;e.style.paddingInlineEnd=`${n+t}px`}e.style.overflow=`hidden`}t+=1;let r=!1;return()=>{r||(r=!0,--t,t===0&&n&&(e.style.overflow=n.overflow,e.style.paddingInlineEnd=n.paddingInlineEnd,n=null))}}function i(t){(0,e.useLayoutEffect)(()=>{if(t)return r()},[t])}exports.lockScroll=r,exports.useScrollLock=i;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { useLayoutEffect as e } from "react";
|
|
2
|
-
|
|
3
|
+
// src/hooks/useScrollLock.ts
|
|
3
4
|
var t = 0, n = null;
|
|
4
5
|
function r() {
|
|
5
6
|
if (typeof document > "u") return () => {};
|
|
@@ -26,5 +27,4 @@ function i(t) {
|
|
|
26
27
|
if (t) return r();
|
|
27
28
|
}, [t]);
|
|
28
29
|
}
|
|
29
|
-
//#endregion
|
|
30
30
|
export { r as lockScroll, i as useScrollLock };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require("react");var t={local:new Set,session:new Set},n=e=>{try{return typeof window>`u`?void 0:e===`local`?window.localStorage:window.sessionStorage}catch{return}},r=(e,t)=>{try{return n(e)?.getItem(t)??null}catch{return null}},i=e=>t[e].forEach(e=>e());function a(e,r){t[e].add(r);let i=t=>{t.storageArea===n(e)&&r()};return typeof window<`u`&&window.addEventListener(`storage`,i),()=>{t[e].delete(r),typeof window<`u`&&window.removeEventListener(`storage`,i)}}function o(t,o,s,{serialize:c=JSON.stringify,deserialize:l=JSON.parse}={}){let u=(0,e.useCallback)(e=>a(t,e),[t]),d=(0,e.useSyncExternalStore)(u,()=>r(t,o),()=>null);return[(0,e.useMemo)(()=>{if(d===null)return s;try{return l(d)}catch{return s}},[d,l]),(0,e.useCallback)(e=>{let a=r(t,o),u=s;if(a!==null)try{u=l(a)}catch{}let d=typeof e==`function`?e(u):e;try{n(t)?.setItem(o,c(d))}catch{}i(t)},[t,o,c,l]),(0,e.useCallback)(()=>{try{n(t)?.removeItem(o)}catch{}i(t)},[t,o])]}function s(e,t,n){return o(`local`,e,t,n)}function c(e,t,n){return o(`session`,e,t,n)}exports.useLocalStorage=s,exports.useSessionStorage=c;
|
|
1
|
+
"use client";let e=require("react");var t={local:new Set,session:new Set},n=e=>{try{return typeof window>`u`?void 0:e===`local`?window.localStorage:window.sessionStorage}catch{return}},r=(e,t)=>{try{return n(e)?.getItem(t)??null}catch{return null}},i=e=>t[e].forEach(e=>e());function a(e,r){t[e].add(r);let i=t=>{t.storageArea===n(e)&&r()};return typeof window<`u`&&window.addEventListener(`storage`,i),()=>{t[e].delete(r),typeof window<`u`&&window.removeEventListener(`storage`,i)}}function o(t,o,s,{serialize:c=JSON.stringify,deserialize:l=JSON.parse}={}){let u=(0,e.useCallback)(e=>a(t,e),[t]),d=(0,e.useSyncExternalStore)(u,()=>r(t,o),()=>null);return[(0,e.useMemo)(()=>{if(d===null)return s;try{return l(d)}catch{return s}},[d,l]),(0,e.useCallback)(e=>{let a=r(t,o),u=s;if(a!==null)try{u=l(a)}catch{}let d=typeof e==`function`?e(u):e;try{n(t)?.setItem(o,c(d))}catch{}i(t)},[t,o,c,l]),(0,e.useCallback)(()=>{try{n(t)?.removeItem(o)}catch{}i(t)},[t,o])]}function s(e,t,n){return o(`local`,e,t,n)}function c(e,t,n){return o(`session`,e,t,n)}exports.useLocalStorage=s,exports.useSessionStorage=c;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { useCallback as e, useMemo as t, useSyncExternalStore as n } from "react";
|
|
2
|
-
|
|
3
|
+
// src/hooks/useStorage.ts
|
|
3
4
|
var r = {
|
|
4
5
|
local: /* @__PURE__ */ new Set(),
|
|
5
6
|
session: /* @__PURE__ */ new Set()
|
|
@@ -66,5 +67,4 @@ function l(e, t, n) {
|
|
|
66
67
|
function u(e, t, n) {
|
|
67
68
|
return c("session", e, t, n);
|
|
68
69
|
}
|
|
69
|
-
//#endregion
|
|
70
70
|
export { l as useLocalStorage, u as useSessionStorage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=require("react");function t(t,n,{leading:r=!1,maxWait:i}={}){let a=(0,e.useRef)(t);a.current=t;let o=(0,e.useRef)({}),s=(0,e.useMemo)(()=>{let e=()=>{let{args:e}=o.current;clearTimeout(o.current.timer),o.current={},e&&a.current(...e)},t=((...t)=>{let s=o.current,c=Date.now();if(s.timer===void 0&&r)
|
|
1
|
+
"use client";let e=require("react");function t(t,n,{leading:r=!1,maxWait:i}={}){let a=(0,e.useRef)(t);a.current=t;let o=(0,e.useRef)({}),s=(0,e.useMemo)(()=>{let e=()=>{let{args:e}=o.current;clearTimeout(o.current.timer),o.current={},e&&a.current(...e)},t=((...t)=>{let s=o.current,c=Date.now();if(s.timer===void 0&&r)a.current(...t),o.current={firstCall:c,timer:setTimeout(()=>o.current={},n)};else{if(clearTimeout(s.timer),s.args=t,s.firstCall??=c,i!==void 0&&c-s.firstCall>=i)return e();s.timer=setTimeout(e,n)}});return t.cancel=()=>{clearTimeout(o.current.timer),o.current={}},t.flush=()=>{o.current.args&&e()},t.isPending=()=>o.current.args!==void 0,t},[n,r,i]);return(0,e.useEffect)(()=>()=>s.cancel(),[s]),s}function n(t,n){let r=(0,e.useRef)(t);r.current=t;let i=(0,e.useRef)({}),a=(0,e.useMemo)(()=>{let e=()=>{let{args:e}=i.current;i.current.args=void 0,i.current.timer=void 0,e&&(i.current.last=Date.now(),r.current(...e))},t=((...t)=>{let a=i.current,o=a.last===void 0?1/0:Date.now()-a.last;o>=n&&a.timer===void 0?(a.last=Date.now(),r.current(...t)):(a.args=t,a.timer??=setTimeout(e,Math.max(0,n-o)))});return t.cancel=()=>{clearTimeout(i.current.timer),i.current={last:i.current.last}},t.flush=()=>{clearTimeout(i.current.timer),e()},t.isPending=()=>i.current.args!==void 0,t},[n]);return(0,e.useEffect)(()=>()=>a.cancel(),[a]),a}function r(n,r){let[i,a]=(0,e.useState)(n),o=t(a,r),s=(0,e.useRef)(n);s.current=n,(0,e.useEffect)(()=>{o(n)},[n,o]);let c=(0,e.useCallback)(()=>{o.cancel(),a(s.current)},[o]);return[i,{cancel:o.cancel,flush:c}]}function i(t,n){let r=(0,e.useRef)(t);r.current=t,(0,e.useEffect)(()=>{if(n===null)return;let e=setInterval(()=>r.current(),n);return()=>clearInterval(e)},[n])}function a(t,n){let r=(0,e.useRef)(t);r.current=t;let i=(0,e.useRef)(void 0),a=(0,e.useCallback)(()=>clearTimeout(i.current),[]),o=(0,e.useCallback)(()=>{clearTimeout(i.current),n!==null&&(i.current=setTimeout(()=>r.current(),n))},[n]);return(0,e.useEffect)(()=>(o(),a),[o,a]),{clear:a,reset:o}}function o(t){let[n,r]=(0,e.useState)({current:t,previous:void 0});return Object.is(n.current,t)||r({current:t,previous:n.current}),Object.is(n.current,t)?n.previous:n.current}exports.useDebouncedCallback=t,exports.useDebouncedValue=r,exports.useInterval=i,exports.usePrevious=o,exports.useThrottledCallback=n,exports.useTimeout=a;
|
package/dist/hooks/useTiming.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { useCallback as e, useEffect as t, useMemo as n, useRef as r, useState as i } from "react";
|
|
2
|
-
|
|
3
|
+
// src/hooks/useTiming.ts
|
|
3
4
|
function a(e, i, { leading: a = !1, maxWait: o } = {}) {
|
|
4
5
|
let s = r(e);
|
|
5
6
|
s.current = e;
|
|
@@ -9,15 +10,14 @@ function a(e, i, { leading: a = !1, maxWait: o } = {}) {
|
|
|
9
10
|
clearTimeout(c.current.timer), c.current = {}, e && s.current(...e);
|
|
10
11
|
}, t = ((...t) => {
|
|
11
12
|
let n = c.current, r = Date.now();
|
|
12
|
-
if (n.timer === void 0 && a) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return;
|
|
13
|
+
if (n.timer === void 0 && a) s.current(...t), c.current = {
|
|
14
|
+
firstCall: r,
|
|
15
|
+
timer: setTimeout(() => c.current = {}, i)
|
|
16
|
+
};
|
|
17
|
+
else {
|
|
18
|
+
if (clearTimeout(n.timer), n.args = t, n.firstCall ??= r, o !== void 0 && r - n.firstCall >= o) return e();
|
|
19
|
+
n.timer = setTimeout(e, i);
|
|
18
20
|
}
|
|
19
|
-
if (clearTimeout(n.timer), n.args = t, n.firstCall ??= r, o !== void 0 && r - n.firstCall >= o) return e();
|
|
20
|
-
n.timer = setTimeout(e, i);
|
|
21
21
|
});
|
|
22
22
|
return t.cancel = () => {
|
|
23
23
|
clearTimeout(c.current.timer), c.current = {};
|
|
@@ -40,11 +40,7 @@ function o(e, i) {
|
|
|
40
40
|
o.current.args = void 0, o.current.timer = void 0, e && (o.current.last = Date.now(), a.current(...e));
|
|
41
41
|
}, t = ((...t) => {
|
|
42
42
|
let n = o.current, r = n.last === void 0 ? Infinity : Date.now() - n.last;
|
|
43
|
-
|
|
44
|
-
n.last = Date.now(), a.current(...t);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
n.args = t, n.timer ??= setTimeout(e, Math.max(0, i - r));
|
|
43
|
+
r >= i && n.timer === void 0 ? (n.last = Date.now(), a.current(...t)) : (n.args = t, n.timer ??= setTimeout(e, Math.max(0, i - r)));
|
|
48
44
|
});
|
|
49
45
|
return t.cancel = () => {
|
|
50
46
|
clearTimeout(o.current.timer), o.current = { last: o.current.last };
|
|
@@ -96,5 +92,4 @@ function u(e) {
|
|
|
96
92
|
previous: t.current
|
|
97
93
|
}), Object.is(t.current, e) ? t.previous : t.current;
|
|
98
94
|
}
|
|
99
|
-
//#endregion
|
|
100
95
|
export { a as useDebouncedCallback, s as useDebouncedValue, c as useInterval, u as usePrevious, o as useThrottledCallback, l as useTimeout };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./elementSource.cjs.js");let t=require("react");function n(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r>>1;e[i]<=t?n=i+1:r=i}return n}function
|
|
1
|
+
"use client";const e=require("./elementSource.cjs.js");let t=require("react");function n(e,t){let n=e.virtualItems.slice(),r=new Set(n.map(e=>e.index));for(let i of t){if(r.has(i))continue;let t=e.getItem(i);t&&(n.push(t),r.add(i))}return n.sort((e,t)=>e.index-t.index)}function r(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r>>1;e[i]<=t?n=i+1:r=i}return n}function i({count:n,scrollElement:i,estimateSize:a,overscan:o=6,gap:s=0,paddingStart:c=0,paddingEnd:l=0,initialCount:u=10}){let d=e.useResolvedElement(i),[f,p]=(0,t.useState)({offset:0,height:0}),m=(0,t.useRef)(new Map),h=(0,t.useRef)(0),[g,_]=(0,t.useState)(0),v=(0,t.useRef)(a);v.current=a;let y=(0,t.useMemo)(()=>{let e=new Float64Array(n),t=new Float64Array(n),r=v.current,i=m.current,a=i.size>0?h.current/i.size:0,o=typeof r==`number`?a||r:0,u=c;for(let a=0;a<n;a++){let c=i.get(a)??(typeof r==`number`?o:r(a));e[a]=u,t[a]=u+c,u+=c+(a<n-1?s:0)}return{starts:e,ends:t,total:u+l}},[n,s,c,l,g,typeof a==`number`?a:-1]);(0,t.useLayoutEffect)(()=>{if(!d)return;let e=0,t=()=>{e=0,p(e=>e.offset===d.scrollTop&&e.height===d.clientHeight?e:{offset:d.scrollTop,height:d.clientHeight})};t();let n=()=>{e||=requestAnimationFrame(t)};d.addEventListener(`scroll`,n,{passive:!0});let r=typeof ResizeObserver<`u`?new ResizeObserver(t):null;return r?.observe(d),()=>{d.removeEventListener(`scroll`,n),r?.disconnect(),e&&cancelAnimationFrame(e)}},[d]);let b=(0,t.useMemo)(()=>{if(n===0)return[];let e,t;f.height===0?(e=0,t=Math.min(n,u)-1):(e=r(y.ends,f.offset),t=r(y.ends,f.offset+f.height),e=Math.max(0,e-o),t=Math.min(n-1,t+o));let i=[];for(let n=e;n<=t;n++)i.push({index:n,start:y.starts[n],end:y.ends[n],size:y.ends[n]-y.starts[n]});return i},[n,y,f,o,u]),x=(0,t.useRef)(new Map),S=(0,t.useRef)(null),C=(0,t.useRef)(!1),w=(0,t.useCallback)(e=>{let t=Number(e.getAttribute(`data-index`));if(!Number.isFinite(t))return;let n=e.getBoundingClientRect().height,r=m.current.get(t);n>0&&r!==n&&(h.current+=n-(r??0),m.current.set(t,n),C.current||(C.current=!0,queueMicrotask(()=>{C.current=!1,_(e=>e+1)})))},[]),T=(0,t.useCallback)(e=>{e&&(!S.current&&typeof ResizeObserver<`u`&&(S.current=new ResizeObserver(e=>{for(let t of e)t.target.isConnected?w(t.target):(S.current?.unobserve(t.target),x.current.delete(t.target))})),x.current.has(e)||(x.current.set(e,Number(e.getAttribute(`data-index`))),S.current?.observe(e)),w(e))},[w]),E=(0,t.useRef)(n);if(E.current!==n){E.current=n;for(let[e,t]of Array.from(m.current))e>=n&&(m.current.delete(e),h.current-=t)}(0,t.useLayoutEffect)(()=>()=>S.current?.disconnect(),[]);let D=(0,t.useRef)(y);D.current=y;let O=(0,t.useRef)(null),k=(0,t.useCallback)((e,t,n)=>{let{starts:r,ends:i}=D.current;if(t<0||t>=r.length)return null;let a=e.scrollTop,o=e.clientHeight,s=r[t],c=i[t],l;if(n===`start`)l=s;else if(n===`end`)l=c-o;else if(n===`center`)l=s-(o-(c-s))/2;else if(s<a)l=s;else if(c>a+o)l=c-o;else return null;return Math.max(0,Math.min(l,e.scrollHeight-o))},[]),A=(0,t.useCallback)((t,{align:n=`auto`,behavior:r}={})=>{let a=e.resolveElement(i);if(!a)return;let o=k(a,t,n);O.current={index:t,align:n,tries:0},o!==null&&a.scrollTo({top:o,behavior:r})},[i,k]);(0,t.useLayoutEffect)(()=>{let t=O.current,n=e.resolveElement(i);if(!t||!n)return;let r=k(n,t.index,t.align);r===null||Math.abs(n.scrollTop-r)<1||t.tries>=10?O.current=null:(t.tries++,n.scrollTop=r)},[y,i,k]);let j=(0,t.useCallback)(e=>{if(e<0||e>=y.starts.length)return;let t=y.starts[e],n=y.ends[e];return{index:e,start:t,end:n,size:n-t}},[y]);return{virtualItems:b,totalSize:y.total,measureElement:T,scrollToIndex:A,getItem:j}}exports.useVirtualizer=i,exports.withExtraItems=n;
|
|
@@ -49,7 +49,20 @@ export interface Virtualizer {
|
|
|
49
49
|
align?: VirtualAlign;
|
|
50
50
|
behavior?: ScrollBehavior;
|
|
51
51
|
}) => void;
|
|
52
|
+
/**
|
|
53
|
+
* The position of any item, rendered or not, or `undefined` when `index`
|
|
54
|
+
* is out of range. Use it to keep one extra item rendered outside the
|
|
55
|
+
* window (the focused row, the `aria-activedescendant` option) with
|
|
56
|
+
* `withExtraItems`.
|
|
57
|
+
*/
|
|
58
|
+
getItem: (index: number) => VirtualItem | undefined;
|
|
52
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* The window's items plus extra indices that must stay rendered even when
|
|
62
|
+
* scrolled out of view (a focused row, a highlighted option), in order.
|
|
63
|
+
* Render spacers between non-adjacent items from their `start` / `end`.
|
|
64
|
+
*/
|
|
65
|
+
export declare function withExtraItems(virtualizer: Virtualizer, extra: readonly number[]): VirtualItem[];
|
|
53
66
|
/**
|
|
54
67
|
* Headless list virtualization: renders only the items in view (plus
|
|
55
68
|
* `overscan`), so lists of 100,000 rows stay fast. Works with variable
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { resolveElement as e, useResolvedElement as t } from "./elementSource.mjs";
|
|
2
3
|
import { useCallback as n, useLayoutEffect as r, useMemo as i, useRef as a, useState as o } from "react";
|
|
3
|
-
|
|
4
|
+
// src/hooks/useVirtualizer.ts
|
|
4
5
|
function s(e, t) {
|
|
6
|
+
let n = e.virtualItems.slice(), r = new Set(n.map((e) => e.index));
|
|
7
|
+
for (let i of t) {
|
|
8
|
+
if (r.has(i)) continue;
|
|
9
|
+
let t = e.getItem(i);
|
|
10
|
+
t && (n.push(t), r.add(i));
|
|
11
|
+
}
|
|
12
|
+
return n.sort((e, t) => e.index - t.index);
|
|
13
|
+
}
|
|
14
|
+
function c(e, t) {
|
|
5
15
|
let n = 0, r = e.length - 1;
|
|
6
16
|
for (; n < r;) {
|
|
7
17
|
let i = n + r >> 1;
|
|
@@ -9,29 +19,29 @@ function s(e, t) {
|
|
|
9
19
|
}
|
|
10
20
|
return n;
|
|
11
21
|
}
|
|
12
|
-
function
|
|
22
|
+
function l({ count: s, scrollElement: l, estimateSize: u, overscan: d = 6, gap: f = 0, paddingStart: p = 0, paddingEnd: m = 0, initialCount: h = 10 }) {
|
|
13
23
|
let g = t(l), [_, v] = o({
|
|
14
24
|
offset: 0,
|
|
15
25
|
height: 0
|
|
16
|
-
}), y = a(/* @__PURE__ */ new Map()),
|
|
17
|
-
|
|
18
|
-
let
|
|
19
|
-
let e =
|
|
20
|
-
for (let
|
|
21
|
-
let
|
|
22
|
-
e[
|
|
26
|
+
}), y = a(/* @__PURE__ */ new Map()), b = a(0), [x, S] = o(0), C = a(u);
|
|
27
|
+
C.current = u;
|
|
28
|
+
let w = i(() => {
|
|
29
|
+
let e = new Float64Array(s), t = new Float64Array(s), n = C.current, r = y.current, i = r.size > 0 ? b.current / r.size : 0, a = typeof n == "number" ? i || n : 0, o = p;
|
|
30
|
+
for (let i = 0; i < s; i++) {
|
|
31
|
+
let c = r.get(i) ?? (typeof n == "number" ? a : n(i));
|
|
32
|
+
e[i] = o, t[i] = o + c, o += c + (i < s - 1 ? f : 0);
|
|
23
33
|
}
|
|
24
34
|
return {
|
|
25
35
|
starts: e,
|
|
26
36
|
ends: t,
|
|
27
|
-
total:
|
|
37
|
+
total: o + m
|
|
28
38
|
};
|
|
29
39
|
}, [
|
|
30
|
-
|
|
40
|
+
s,
|
|
31
41
|
f,
|
|
32
42
|
p,
|
|
33
43
|
m,
|
|
34
|
-
|
|
44
|
+
x,
|
|
35
45
|
typeof u == "number" ? u : -1
|
|
36
46
|
]);
|
|
37
47
|
r(() => {
|
|
@@ -52,64 +62,93 @@ function c({ count: c, scrollElement: l, estimateSize: u, overscan: d = 6, gap:
|
|
|
52
62
|
g.removeEventListener("scroll", n), r?.disconnect(), e && cancelAnimationFrame(e);
|
|
53
63
|
};
|
|
54
64
|
}, [g]);
|
|
55
|
-
let
|
|
56
|
-
if (
|
|
65
|
+
let T = i(() => {
|
|
66
|
+
if (s === 0) return [];
|
|
57
67
|
let e, t;
|
|
58
|
-
_.height === 0 ? (e = 0, t = Math.min(
|
|
68
|
+
_.height === 0 ? (e = 0, t = Math.min(s, h) - 1) : (e = c(w.ends, _.offset), t = c(w.ends, _.offset + _.height), e = Math.max(0, e - d), t = Math.min(s - 1, t + d));
|
|
59
69
|
let n = [];
|
|
60
70
|
for (let r = e; r <= t; r++) n.push({
|
|
61
71
|
index: r,
|
|
62
|
-
start:
|
|
63
|
-
end:
|
|
64
|
-
size:
|
|
72
|
+
start: w.starts[r],
|
|
73
|
+
end: w.ends[r],
|
|
74
|
+
size: w.ends[r] - w.starts[r]
|
|
65
75
|
});
|
|
66
76
|
return n;
|
|
67
77
|
}, [
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
s,
|
|
79
|
+
w,
|
|
70
80
|
_,
|
|
71
81
|
d,
|
|
72
82
|
h
|
|
73
|
-
]),
|
|
83
|
+
]), E = a(/* @__PURE__ */ new Map()), D = a(null), O = a(!1), k = n((e) => {
|
|
74
84
|
let t = Number(e.getAttribute("data-index"));
|
|
75
85
|
if (!Number.isFinite(t)) return;
|
|
76
|
-
let n = e.getBoundingClientRect().height;
|
|
77
|
-
n > 0 &&
|
|
78
|
-
|
|
86
|
+
let n = e.getBoundingClientRect().height, r = y.current.get(t);
|
|
87
|
+
n > 0 && r !== n && (b.current += n - (r ?? 0), y.current.set(t, n), O.current || (O.current = !0, queueMicrotask(() => {
|
|
88
|
+
O.current = !1, S((e) => e + 1);
|
|
79
89
|
})));
|
|
80
|
-
}, []),
|
|
81
|
-
e && (!
|
|
82
|
-
for (let t of e) t.target.isConnected ?
|
|
83
|
-
})),
|
|
84
|
-
}, [
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
for (let e of Array.from(y.current
|
|
90
|
+
}, []), A = n((e) => {
|
|
91
|
+
e && (!D.current && typeof ResizeObserver < "u" && (D.current = new ResizeObserver((e) => {
|
|
92
|
+
for (let t of e) t.target.isConnected ? k(t.target) : (D.current?.unobserve(t.target), E.current.delete(t.target));
|
|
93
|
+
})), E.current.has(e) || (E.current.set(e, Number(e.getAttribute("data-index"))), D.current?.observe(e)), k(e));
|
|
94
|
+
}, [k]), j = a(s);
|
|
95
|
+
if (j.current !== s) {
|
|
96
|
+
j.current = s;
|
|
97
|
+
for (let [e, t] of Array.from(y.current)) e >= s && (y.current.delete(e), b.current -= t);
|
|
88
98
|
}
|
|
89
|
-
r(() => () =>
|
|
90
|
-
let
|
|
91
|
-
|
|
92
|
-
let
|
|
93
|
-
let
|
|
94
|
-
if (
|
|
95
|
-
let
|
|
96
|
-
if (n === "start")
|
|
97
|
-
else if (n === "end")
|
|
98
|
-
else if (n === "center")
|
|
99
|
-
else if (
|
|
100
|
-
else if (
|
|
101
|
-
else return;
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
r(() => () => D.current?.disconnect(), []);
|
|
100
|
+
let M = a(w);
|
|
101
|
+
M.current = w;
|
|
102
|
+
let N = a(null), P = n((e, t, n) => {
|
|
103
|
+
let { starts: r, ends: i } = M.current;
|
|
104
|
+
if (t < 0 || t >= r.length) return null;
|
|
105
|
+
let a = e.scrollTop, o = e.clientHeight, s = r[t], c = i[t], l;
|
|
106
|
+
if (n === "start") l = s;
|
|
107
|
+
else if (n === "end") l = c - o;
|
|
108
|
+
else if (n === "center") l = s - (o - (c - s)) / 2;
|
|
109
|
+
else if (s < a) l = s;
|
|
110
|
+
else if (c > a + o) l = c - o;
|
|
111
|
+
else return null;
|
|
112
|
+
return Math.max(0, Math.min(l, e.scrollHeight - o));
|
|
113
|
+
}, []), F = n((t, { align: n = "auto", behavior: r } = {}) => {
|
|
114
|
+
let i = e(l);
|
|
115
|
+
if (!i) return;
|
|
116
|
+
let a = P(i, t, n);
|
|
117
|
+
N.current = {
|
|
118
|
+
index: t,
|
|
119
|
+
align: n,
|
|
120
|
+
tries: 0
|
|
121
|
+
}, a !== null && i.scrollTo({
|
|
122
|
+
top: a,
|
|
104
123
|
behavior: r
|
|
105
124
|
});
|
|
106
|
-
}, [l]);
|
|
125
|
+
}, [l, P]);
|
|
126
|
+
r(() => {
|
|
127
|
+
let t = N.current, n = e(l);
|
|
128
|
+
if (!t || !n) return;
|
|
129
|
+
let r = P(n, t.index, t.align);
|
|
130
|
+
r === null || Math.abs(n.scrollTop - r) < 1 || t.tries >= 10 ? N.current = null : (t.tries++, n.scrollTop = r);
|
|
131
|
+
}, [
|
|
132
|
+
w,
|
|
133
|
+
l,
|
|
134
|
+
P
|
|
135
|
+
]);
|
|
136
|
+
let I = n((e) => {
|
|
137
|
+
if (e < 0 || e >= w.starts.length) return;
|
|
138
|
+
let t = w.starts[e], n = w.ends[e];
|
|
139
|
+
return {
|
|
140
|
+
index: e,
|
|
141
|
+
start: t,
|
|
142
|
+
end: n,
|
|
143
|
+
size: n - t
|
|
144
|
+
};
|
|
145
|
+
}, [w]);
|
|
107
146
|
return {
|
|
108
|
-
virtualItems:
|
|
109
|
-
totalSize:
|
|
110
|
-
measureElement:
|
|
111
|
-
scrollToIndex:
|
|
147
|
+
virtualItems: T,
|
|
148
|
+
totalSize: w.total,
|
|
149
|
+
measureElement: A,
|
|
150
|
+
scrollToIndex: F,
|
|
151
|
+
getItem: I
|
|
112
152
|
};
|
|
113
153
|
}
|
|
114
|
-
|
|
115
|
-
export { c as useVirtualizer };
|
|
154
|
+
export { l as useVirtualizer, s as withExtraItems };
|