@vjdesigns/vjdesigns-ui 2.4.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 +133 -76
- package/dist/ai/registry.json +82 -61
- 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.mjs +2 -2
- package/dist/components/data-display/Badge/Badge.module.css.mjs +1 -2
- 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.mjs +111 -111
- package/dist/components/navigation/Navbar/Navbar.module.css.mjs +1 -2
- 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.mjs +1 -2
- package/dist/i18n/merge.mjs +1 -2
- package/dist/i18n/plural.mjs +1 -2
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +114 -114
- package/dist/locales/ar.mjs +1 -2
- package/dist/locales/bn.mjs +1 -2
- package/dist/locales/cs.mjs +1 -2
- package/dist/locales/da.mjs +1 -2
- package/dist/locales/de.mjs +1 -2
- package/dist/locales/el.mjs +1 -2
- package/dist/locales/es.mjs +1 -2
- package/dist/locales/fa.mjs +1 -2
- package/dist/locales/fi.mjs +1 -2
- package/dist/locales/fr.mjs +1 -2
- package/dist/locales/he.mjs +1 -2
- package/dist/locales/hi.mjs +1 -2
- package/dist/locales/hu.mjs +1 -2
- package/dist/locales/id.mjs +1 -2
- package/dist/locales/it.mjs +1 -2
- package/dist/locales/ja.mjs +1 -2
- package/dist/locales/ko.mjs +1 -2
- package/dist/locales/nb.mjs +1 -2
- package/dist/locales/nl.mjs +1 -2
- package/dist/locales/pl.mjs +1 -2
- package/dist/locales/pt-BR.mjs +1 -2
- package/dist/locales/ro.mjs +1 -2
- package/dist/locales/ru.mjs +1 -2
- package/dist/locales/sv.mjs +1 -2
- package/dist/locales/th.mjs +1 -2
- package/dist/locales/tr.mjs +1 -2
- package/dist/locales/uk.mjs +1 -2
- package/dist/locales/ur.mjs +1 -2
- package/dist/locales/vi.mjs +1 -2
- package/dist/locales/zh-Hans.mjs +1 -2
- package/dist/locales/zh-Hant.mjs +1 -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
package/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 VJDesigns
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
copyright notice and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
10
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
11
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
12
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
13
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
14
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
15
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
CHANGED
|
@@ -82,6 +82,50 @@ export function SignupForm() {
|
|
|
82
82
|
}
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
+
### Next.js (App Router) and React Server Components
|
|
86
|
+
|
|
87
|
+
The library works in Server Components. Interactive components (anything with state, effects, or context: `Button`, `DataGrid`, `Modal`, ...) are marked `"use client"`, so you can render them from a Server Component like any client component. Utilities (`cx`, `sortRows`, `createBrandPalette`, `getLocaleDirection`, ...) and the locale catalogs have no directive, so you can call or read them on the server too. Every component also renders on the server for the first paint.
|
|
88
|
+
|
|
89
|
+
Put the providers in a small client file of your own, and render it from the root layout:
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
// app/providers.tsx
|
|
93
|
+
"use client";
|
|
94
|
+
import { LocaleProvider, ToastProvider } from "@vjdesigns/vjdesigns-ui";
|
|
95
|
+
import es from "@vjdesigns/vjdesigns-ui/locales/es";
|
|
96
|
+
import type { ReactNode } from "react";
|
|
97
|
+
|
|
98
|
+
export function Providers({ children }: { children: ReactNode }) {
|
|
99
|
+
return (
|
|
100
|
+
<LocaleProvider locale="es" messages={es}>
|
|
101
|
+
<ToastProvider>{children}</ToastProvider>
|
|
102
|
+
</LocaleProvider>
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
// app/layout.tsx (a Server Component)
|
|
109
|
+
import "@vjdesigns/vjdesigns-ui/dist/vjdesigns-ui.css";
|
|
110
|
+
import { getLocaleDirection } from "@vjdesigns/vjdesigns-ui";
|
|
111
|
+
import { Providers } from "./providers";
|
|
112
|
+
|
|
113
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
114
|
+
return (
|
|
115
|
+
<html lang="es" dir={getLocaleDirection("es")}>
|
|
116
|
+
<body>
|
|
117
|
+
<Providers>{children}</Providers>
|
|
118
|
+
</body>
|
|
119
|
+
</html>
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Two rules of Server Components to keep in mind:
|
|
125
|
+
|
|
126
|
+
- **Functions can't be passed from a Server Component to a client one.** That includes event handlers (`onClick`), DataGrid columns with `cell` or `value` functions, and the locale catalogs themselves (their plural messages are functions, which is why `LocaleProvider` goes in the client providers file above). Render those components from your own `"use client"` file.
|
|
127
|
+
- **Compound parts can't be reached with a dot from a Server Component** (`Tabs.List`, `Menu.Item`): Next.js reports "You cannot dot into a client module". Use them inside a `"use client"` file, or use the named exports where they exist (`CardHeader`, `CardBody`, `NavbarBrand`, ...).
|
|
128
|
+
|
|
85
129
|
### Angular
|
|
86
130
|
|
|
87
131
|
Make a standalone wrapper that renders the React component into its host element. The wrapper uses `createElement`, so you don't need to change your JSX or TSX settings.
|
|
@@ -778,4 +822,4 @@ See [RELEASING.md](RELEASING.md) for the full process, including how to update t
|
|
|
778
822
|
|
|
779
823
|
## License
|
|
780
824
|
|
|
781
|
-
ISC
|
|
825
|
+
[ISC](LICENSE) © 2026 VJDesigns. The Pro package (`pro/`) has its own commercial license.
|
package/dist/ai/llms-full.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @vjdesigns/vjdesigns-ui 2.
|
|
1
|
+
# @vjdesigns/vjdesigns-ui 2.4.0: full reference
|
|
2
2
|
|
|
3
3
|
> Accessible React 19 component library: WCAG 2.2 AA verified (axe on every story, a contrast check on every color pair), 31 languages with right-to-left support, themeable with any brand color (auto-adjusted to stay accessible), tree-shakable, no runtime dependencies besides React.
|
|
4
4
|
|
|
@@ -83,6 +83,50 @@ export function SignupForm() {
|
|
|
83
83
|
}
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
+
### Next.js (App Router) and React Server Components
|
|
87
|
+
|
|
88
|
+
The library works in Server Components. Interactive components (anything with state, effects, or context: `Button`, `DataGrid`, `Modal`, ...) are marked `"use client"`, so you can render them from a Server Component like any client component. Utilities (`cx`, `sortRows`, `createBrandPalette`, `getLocaleDirection`, ...) and the locale catalogs have no directive, so you can call or read them on the server too. Every component also renders on the server for the first paint.
|
|
89
|
+
|
|
90
|
+
Put the providers in a small client file of your own, and render it from the root layout:
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
// app/providers.tsx
|
|
94
|
+
"use client";
|
|
95
|
+
import { LocaleProvider, ToastProvider } from "@vjdesigns/vjdesigns-ui";
|
|
96
|
+
import es from "@vjdesigns/vjdesigns-ui/locales/es";
|
|
97
|
+
import type { ReactNode } from "react";
|
|
98
|
+
|
|
99
|
+
export function Providers({ children }: { children: ReactNode }) {
|
|
100
|
+
return (
|
|
101
|
+
<LocaleProvider locale="es" messages={es}>
|
|
102
|
+
<ToastProvider>{children}</ToastProvider>
|
|
103
|
+
</LocaleProvider>
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
// app/layout.tsx (a Server Component)
|
|
110
|
+
import "@vjdesigns/vjdesigns-ui/dist/vjdesigns-ui.css";
|
|
111
|
+
import { getLocaleDirection } from "@vjdesigns/vjdesigns-ui";
|
|
112
|
+
import { Providers } from "./providers";
|
|
113
|
+
|
|
114
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
115
|
+
return (
|
|
116
|
+
<html lang="es" dir={getLocaleDirection("es")}>
|
|
117
|
+
<body>
|
|
118
|
+
<Providers>{children}</Providers>
|
|
119
|
+
</body>
|
|
120
|
+
</html>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Two rules of Server Components to keep in mind:
|
|
126
|
+
|
|
127
|
+
- **Functions can't be passed from a Server Component to a client one.** That includes event handlers (`onClick`), DataGrid columns with `cell` or `value` functions, and the locale catalogs themselves (their plural messages are functions, which is why `LocaleProvider` goes in the client providers file above). Render those components from your own `"use client"` file.
|
|
128
|
+
- **Compound parts can't be reached with a dot from a Server Component** (`Tabs.List`, `Menu.Item`): Next.js reports "You cannot dot into a client module". Use them inside a `"use client"` file, or use the named exports where they exist (`CardHeader`, `CardBody`, `NavbarBrand`, ...).
|
|
129
|
+
|
|
86
130
|
### Angular
|
|
87
131
|
|
|
88
132
|
Make a standalone wrapper that renders the React component into its host element. The wrapper uses `createElement`, so you don't need to change your JSX or TSX settings.
|
|
@@ -607,8 +651,8 @@ import { Avatar } from "@vjdesigns/vjdesigns-ui";
|
|
|
607
651
|
|
|
608
652
|
Category: data-display · Storybook: Data Display/Avatar
|
|
609
653
|
|
|
610
|
-
A person's photo (`src`), with a fallback chain of image, initials (from
|
|
611
|
-
`name`), then a user icon, so it always shows something. Supports a border,
|
|
654
|
+
A person's photo (`src`), with a fallback chain of image, initials (from
|
|
655
|
+
`name`), then a user icon, so it always shows something. Supports a border,
|
|
612
656
|
a presence status dot, a highlight ring, and stacking in an `AvatarGroup`.
|
|
613
657
|
|
|
614
658
|
### Props
|
|
@@ -655,7 +699,7 @@ import { AvatarGroup } from "@vjdesigns/vjdesigns-ui";
|
|
|
655
699
|
|
|
656
700
|
Category: data-display · Storybook: Data Display/Avatar
|
|
657
701
|
|
|
658
|
-
Overlapping stack of avatars in a labelled `role="group"`. Avatars beyond
|
|
702
|
+
Overlapping stack of avatars in a labelled `role="group"`. Avatars beyond
|
|
659
703
|
`max` collapse into a "+N" surplus avatar with an accessible label.
|
|
660
704
|
|
|
661
705
|
### Props
|
|
@@ -1233,6 +1277,7 @@ real `<table role="grid">` with `aria-sort`, `aria-selected`,
|
|
|
1233
1277
|
- `onSelectedChange`: `(selected: DataGridRowId[]) => void`. Called with the next selected ids.
|
|
1234
1278
|
- `isRowSelectable`: `(row: T) => boolean`. Rows that can't be selected (their checkbox is disabled).
|
|
1235
1279
|
- `pageSize`: `number`. Rows per page. Shows a footer with the range and `Pagination`. Without it, every row shows.
|
|
1280
|
+
- `virtualize`: `boolean | "auto"` (default "auto"). Render only the rows in view (plus a few above and below), so grids of 100,000+ rows scroll, sort, filter, and select without delay. `"auto"` turns it on when more than 100 rows show at once. While it's on, the body scrolls inside the grid (its height is `maxHeight`, 70% of the window by default) and the table uses fixed layout unless you set `layout`, so columns keep their widths while you scroll; give columns a `width` to size them. Screen readers still get the full count (`aria-rowcount`) and each row's position (`aria-rowindex`).
|
|
1236
1281
|
- `page`: `number`. Current page, starting at 1 (controlled).
|
|
1237
1282
|
- `defaultPage`: `number` (default 1). Initial page when uncontrolled.
|
|
1238
1283
|
- `onPageChange`: `(page: number) => void`. Called with the next page.
|
|
@@ -1246,7 +1291,7 @@ real `<table role="grid">` with `aria-sort`, `aria-selected`,
|
|
|
1246
1291
|
- `hoverable`: `boolean` (default true). Highlight rows under the pointer.
|
|
1247
1292
|
- `stickyHeader`: `boolean` (default true). Keep the header row visible while scrolling.
|
|
1248
1293
|
- `maxHeight`: `CSSProperties["maxHeight"]`. Maximum height of the scrolling body (CSS length, or px as a number).
|
|
1249
|
-
- `layout`: `"auto" | "fixed"` (default "auto"). Table layout. `fixed` makes column widths exact (content wraps or clips instead of widening a column).
|
|
1294
|
+
- `layout`: `"auto" | "fixed"` (default "auto" ("fixed" while virtualized)). Table layout. `fixed` makes column widths exact (content wraps or clips instead of widening a column).
|
|
1250
1295
|
- `tableStyle`: `CSSProperties`. Style for the `<table>` (for example a total width when columns are resized).
|
|
1251
1296
|
- `className`: `string`. Class name for the outer frame.
|
|
1252
1297
|
- `style`: `CSSProperties`. Style for the outer frame.
|
|
@@ -1265,6 +1310,7 @@ real `<table role="grid">` with `aria-sort`, `aria-selected`,
|
|
|
1265
1310
|
- Sticky Header: A long list in a fixed-height area, with the header kept in view.
|
|
1266
1311
|
- Right To Left: In right-to-left layouts the columns mirror and ArrowRight moves toward the start.
|
|
1267
1312
|
- Extending Columns: Extending columns: `headerEnd` adds content after a header's label, outside its sort button (here a column menu button), and `className` / `style` reach every cell of a column. Controls marked `data-grid-secondary` don't steal the header's focus: the sort button stays its target, and F2 then Tab reaches them.
|
|
1313
|
+
- Large data (100,000 rows): 100,000 rows with sorting, search, and selection. Only the rows in view (plus a few above and below) are in the page, so scrolling, sorting, filtering, and selecting stay instant at any size. Screen readers still hear the full count (`aria-rowcount`) and each row's position.
|
|
1268
1314
|
|
|
1269
1315
|
## EmptyState
|
|
1270
1316
|
|
|
@@ -1385,19 +1431,19 @@ import { List } from "@vjdesigns/vjdesigns-ui";
|
|
|
1385
1431
|
|
|
1386
1432
|
Category: data-display · Storybook: Data Display/List
|
|
1387
1433
|
|
|
1388
|
-
A semantic list (`<ul>` or `<ol>`) with styled markers and rich items.
|
|
1389
|
-
|
|
1390
|
-
Every variant draws its own markers, so the browser's markers are removed
|
|
1391
|
-
with CSS; `role="list"` is added so Safari and VoiceOver keep announcing
|
|
1392
|
-
the list and its item count.
|
|
1393
|
-
|
|
1394
|
-
This is a list, not a listbox: items are not selectable options and there
|
|
1395
|
-
is no roving focus. Interactive items (`List.ItemButton`, `List.ItemLink`)
|
|
1396
|
-
are ordinary Tab stops. For choosing among options, use a Listbox,
|
|
1397
|
-
Combobox, or Select instead.
|
|
1398
|
-
|
|
1399
|
-
Grouping: put a `List.Subheader` (a real heading by default) before each
|
|
1400
|
-
list and point the list at it with `aria-labelledby`, so screen readers
|
|
1434
|
+
A semantic list (`<ul>` or `<ol>`) with styled markers and rich items.
|
|
1435
|
+
|
|
1436
|
+
Every variant draws its own markers, so the browser's markers are removed
|
|
1437
|
+
with CSS; `role="list"` is added so Safari and VoiceOver keep announcing
|
|
1438
|
+
the list and its item count.
|
|
1439
|
+
|
|
1440
|
+
This is a list, not a listbox: items are not selectable options and there
|
|
1441
|
+
is no roving focus. Interactive items (`List.ItemButton`, `List.ItemLink`)
|
|
1442
|
+
are ordinary Tab stops. For choosing among options, use a Listbox,
|
|
1443
|
+
Combobox, or Select instead.
|
|
1444
|
+
|
|
1445
|
+
Grouping: put a `List.Subheader` (a real heading by default) before each
|
|
1446
|
+
list and point the list at it with `aria-labelledby`, so screen readers
|
|
1401
1447
|
announce "Account, list, 3 items".
|
|
1402
1448
|
|
|
1403
1449
|
### Props
|
|
@@ -1417,8 +1463,8 @@ announce "Account, list, 3 items".
|
|
|
1417
1463
|
|
|
1418
1464
|
Also exported as `ListItem`.
|
|
1419
1465
|
|
|
1420
|
-
A static list item (`<li>`) with optional `start`, `title`, `description`,
|
|
1421
|
-
`meta`, and `end` slots, or plain `children`. For a clickable row, use
|
|
1466
|
+
A static list item (`<li>`) with optional `start`, `title`, `description`,
|
|
1467
|
+
`meta`, and `end` slots, or plain `children`. For a clickable row, use
|
|
1422
1468
|
`List.ItemButton` or `List.ItemLink`.
|
|
1423
1469
|
|
|
1424
1470
|
- `start`: `ReactNode`. Leading visual: an `Avatar`, an `Icon`, or a thumbnail.
|
|
@@ -1436,14 +1482,14 @@ A static list item (`<li>`) with optional `start`, `title`, `description`,
|
|
|
1436
1482
|
|
|
1437
1483
|
Also exported as `ListItemButton`.
|
|
1438
1484
|
|
|
1439
|
-
A list item whose main area is a real `<button>`. The button wraps the
|
|
1440
|
-
title (or `children` when there is no title) and its hit area is
|
|
1441
|
-
stretched over the whole row, so the row is clickable, while `end`
|
|
1442
|
-
actions sit above it and stay independently clickable. Never nest
|
|
1443
|
-
interactive elements in `title` or `description`.
|
|
1444
|
-
|
|
1445
|
-
`className` and `style` go on the row `<li>`; `ref`, `onClick`, `type`,
|
|
1446
|
-
`aria-*`, and every other prop go on the `<button>`. The description and
|
|
1485
|
+
A list item whose main area is a real `<button>`. The button wraps the
|
|
1486
|
+
title (or `children` when there is no title) and its hit area is
|
|
1487
|
+
stretched over the whole row, so the row is clickable, while `end`
|
|
1488
|
+
actions sit above it and stay independently clickable. Never nest
|
|
1489
|
+
interactive elements in `title` or `description`.
|
|
1490
|
+
|
|
1491
|
+
`className` and `style` go on the row `<li>`; `ref`, `onClick`, `type`,
|
|
1492
|
+
`aria-*`, and every other prop go on the `<button>`. The description and
|
|
1447
1493
|
meta become the button's accessible description.
|
|
1448
1494
|
|
|
1449
1495
|
- `start`: `ReactNode`. Leading visual: an `Avatar`, an `Icon`, or a thumbnail.
|
|
@@ -1465,12 +1511,12 @@ meta become the button's accessible description.
|
|
|
1465
1511
|
|
|
1466
1512
|
Also exported as `ListItemLink`.
|
|
1467
1513
|
|
|
1468
|
-
A list item whose main area is a real `<a>`, stretched over the whole row
|
|
1469
|
-
like `List.ItemButton`. `selected` sets `aria-current="page"` (override
|
|
1470
|
-
with `current`). When `disabled`, the link loses its `href` and is marked
|
|
1471
|
-
`aria-disabled`, so it can't be followed or focused.
|
|
1472
|
-
|
|
1473
|
-
`className` and `style` go on the row `<li>`; everything else, including
|
|
1514
|
+
A list item whose main area is a real `<a>`, stretched over the whole row
|
|
1515
|
+
like `List.ItemButton`. `selected` sets `aria-current="page"` (override
|
|
1516
|
+
with `current`). When `disabled`, the link loses its `href` and is marked
|
|
1517
|
+
`aria-disabled`, so it can't be followed or focused.
|
|
1518
|
+
|
|
1519
|
+
`className` and `style` go on the row `<li>`; everything else, including
|
|
1474
1520
|
`ref` and `href`, goes on the `<a>`.
|
|
1475
1521
|
|
|
1476
1522
|
- `start`: `ReactNode`. Leading visual: an `Avatar`, an `Icon`, or a thumbnail.
|
|
@@ -1492,14 +1538,14 @@ with `current`). When `disabled`, the link loses its `href` and is marked
|
|
|
1492
1538
|
|
|
1493
1539
|
Also exported as `ListSubheader`.
|
|
1494
1540
|
|
|
1495
|
-
An uppercase label for a group of items. Render it before (outside) a
|
|
1496
|
-
`List`, give it an `id`, and pass that id to the list's
|
|
1497
|
-
`aria-labelledby`. It must not go inside the `<ul>`, where it would be
|
|
1498
|
-
counted as an item.
|
|
1499
|
-
|
|
1500
|
-
```tsx
|
|
1501
|
-
<List.Subheader id="acct">Account</List.Subheader>
|
|
1502
|
-
<List aria-labelledby="acct">...</List>
|
|
1541
|
+
An uppercase label for a group of items. Render it before (outside) a
|
|
1542
|
+
`List`, give it an `id`, and pass that id to the list's
|
|
1543
|
+
`aria-labelledby`. It must not go inside the `<ul>`, where it would be
|
|
1544
|
+
counted as an item.
|
|
1545
|
+
|
|
1546
|
+
```tsx
|
|
1547
|
+
<List.Subheader id="acct">Account</List.Subheader>
|
|
1548
|
+
<List aria-labelledby="acct">...</List>
|
|
1503
1549
|
```
|
|
1504
1550
|
|
|
1505
1551
|
- `as`: `ListSubheaderElement` (default "h3"). Element to render. A heading (default `h3`) so grouped lists show up in the screen reader's headings list; pick the level that fits the page outline, or `div` when a heading would be out of place.
|
|
@@ -1636,7 +1682,7 @@ Semantic data table. See `TableRoot` docs above; parts are attached as `Table.*`
|
|
|
1636
1682
|
|
|
1637
1683
|
Also exported as `TableCaption`.
|
|
1638
1684
|
|
|
1639
|
-
The table's title (`<caption>`). It names the table and, when the table
|
|
1685
|
+
The table's title (`<caption>`). It names the table and, when the table
|
|
1640
1686
|
scrolls, its scroll region. Strongly recommended on every table.
|
|
1641
1687
|
|
|
1642
1688
|
- Plus every native `<caption>` attribute.
|
|
@@ -1678,9 +1724,9 @@ A table row (`<tr>`).
|
|
|
1678
1724
|
|
|
1679
1725
|
Also exported as `TableHeaderCell`.
|
|
1680
1726
|
|
|
1681
|
-
A header cell (`<th>`). With `sortable`, the whole cell is a real
|
|
1682
|
-
`<button>` and the header carries `aria-sort` while it is the sorted column.
|
|
1683
|
-
The sort icon shows the direction by shape (up arrow, down arrow, or a
|
|
1727
|
+
A header cell (`<th>`). With `sortable`, the whole cell is a real
|
|
1728
|
+
`<button>` and the header carries `aria-sort` while it is the sorted column.
|
|
1729
|
+
The sort icon shows the direction by shape (up arrow, down arrow, or a
|
|
1684
1730
|
neutral double arrow), not by color alone.
|
|
1685
1731
|
|
|
1686
1732
|
- `align`: `TableCellAlign` (default "start" ("end" when `numeric`)). Horizontal alignment.
|
|
@@ -1710,8 +1756,8 @@ A data cell (`<td>`).
|
|
|
1710
1756
|
|
|
1711
1757
|
Also exported as `TableSelectCell`.
|
|
1712
1758
|
|
|
1713
|
-
A data cell holding the row's selection checkbox. Pair with `selected` on
|
|
1714
|
-
the `Table.Row`. Give it a `rowLabel` (or `checkboxLabel`) so each
|
|
1759
|
+
A data cell holding the row's selection checkbox. Pair with `selected` on
|
|
1760
|
+
the `Table.Row`. Give it a `rowLabel` (or `checkboxLabel`) so each
|
|
1715
1761
|
checkbox has a unique accessible name.
|
|
1716
1762
|
|
|
1717
1763
|
- `checked`: `boolean` (required). Whether the row is selected.
|
|
@@ -1725,7 +1771,7 @@ checkbox has a unique accessible name.
|
|
|
1725
1771
|
|
|
1726
1772
|
Also exported as `TableSelectAllCell`.
|
|
1727
1773
|
|
|
1728
|
-
A header cell (`<th scope="col">`) with a "select all" checkbox. Shows the
|
|
1774
|
+
A header cell (`<th scope="col">`) with a "select all" checkbox. Shows the
|
|
1729
1775
|
mixed state (`aria-checked="mixed"`) when some rows are selected.
|
|
1730
1776
|
|
|
1731
1777
|
- `checked`: `boolean` (required). Whether every row is selected.
|
|
@@ -2800,6 +2846,7 @@ and size are wired automatically, as with `Input`.
|
|
|
2800
2846
|
- Required: `required` blocks native form submission until an option is chosen (`setCustomValidity` on the text input).
|
|
2801
2847
|
- Clear On Escape: `clearOnEscape`: once the text matches the selection, Escape also clears the selection.
|
|
2802
2848
|
- Form submit, reset, and custom values: Form behavior: Enter submits what is shown (cleared text submits no team), a form reset restores the default, and re-entering a custom tag that's already chosen doesn't remove it.
|
|
2849
|
+
- Long list (10,000 options): 10,000 options. Only the options in view are in the page (plus the highlighted one), so opening, scrolling, and typing stay instant. Each option carries its position in the full list (`aria-setsize`, `aria-posinset`), so screen readers still hear "10,000 of 10,000". Lists with groups always render in full.
|
|
2803
2850
|
|
|
2804
2851
|
## DatePicker
|
|
2805
2852
|
|
|
@@ -3197,7 +3244,7 @@ import { FileUpload } from "@vjdesigns/vjdesigns-ui";
|
|
|
3197
3244
|
|
|
3198
3245
|
Category: forms · Storybook: Forms/FileUpload
|
|
3199
3246
|
|
|
3200
|
-
File picker with drag and drop, validation, and a file list.
|
|
3247
|
+
File picker with drag and drop, validation, and a file list.
|
|
3201
3248
|
`FileUpload.List` is the standalone list for custom layouts.
|
|
3202
3249
|
|
|
3203
3250
|
### Props
|
|
@@ -3236,13 +3283,13 @@ File picker with drag and drop, validation, and a file list.
|
|
|
3236
3283
|
|
|
3237
3284
|
Also exported as `FileUploadList`.
|
|
3238
3285
|
|
|
3239
|
-
The list of selected files: icon or image thumbnail, name (truncated, full
|
|
3240
|
-
name on hover and focus), formatted size, optional upload progress and
|
|
3241
|
-
status, and a remove button per file. `FileUpload` renders one for you;
|
|
3242
|
-
use `FileUpload.List` directly for custom layouts.
|
|
3243
|
-
|
|
3244
|
-
After a removal, focus moves to the next item's remove button (or the
|
|
3245
|
-
previous one), then to `focusFallback` when the list becomes empty.
|
|
3286
|
+
The list of selected files: icon or image thumbnail, name (truncated, full
|
|
3287
|
+
name on hover and focus), formatted size, optional upload progress and
|
|
3288
|
+
status, and a remove button per file. `FileUpload` renders one for you;
|
|
3289
|
+
use `FileUpload.List` directly for custom layouts.
|
|
3290
|
+
|
|
3291
|
+
After a removal, focus moves to the next item's remove button (or the
|
|
3292
|
+
previous one), then to `focusFallback` when the list becomes empty.
|
|
3246
3293
|
Upload completions and failures are announced in a polite live region.
|
|
3247
3294
|
|
|
3248
3295
|
- `files`: `File[]` (required). The files to show.
|
|
@@ -3340,21 +3387,21 @@ import { NumberInput } from "@vjdesigns/vjdesigns-ui";
|
|
|
3340
3387
|
|
|
3341
3388
|
Category: forms · Storybook: Forms/NumberInput
|
|
3342
3389
|
|
|
3343
|
-
A numeric text field following the WAI-ARIA spinbutton pattern. The
|
|
3344
|
-
`<input>` itself is the spinbutton: it takes focus, exposes
|
|
3345
|
-
`aria-valuenow`/`min`/`max`/`valuetext`, and handles ArrowUp/Down,
|
|
3346
|
-
PageUp/Down, Home/End, and Enter. Stepper buttons are pointer
|
|
3347
|
-
conveniences (press and hold to repeat) and stay out of the tab order.
|
|
3348
|
-
|
|
3349
|
-
Shows a formatted value (`Intl.NumberFormat`) when not focused and the
|
|
3350
|
-
plain editable number while focused; parses locale input (group
|
|
3351
|
-
separators, decimal comma). Built on `Input`, so size, variant, radius,
|
|
3352
|
-
addons, and `Field` wiring match every other text field.
|
|
3353
|
-
|
|
3354
|
-
```tsx
|
|
3355
|
-
<Field label="Weight">
|
|
3356
|
-
<NumberInput min={0} step={2.5} endAddon="kg" defaultValue={60} />
|
|
3357
|
-
</Field>
|
|
3390
|
+
A numeric text field following the WAI-ARIA spinbutton pattern. The
|
|
3391
|
+
`<input>` itself is the spinbutton: it takes focus, exposes
|
|
3392
|
+
`aria-valuenow`/`min`/`max`/`valuetext`, and handles ArrowUp/Down,
|
|
3393
|
+
PageUp/Down, Home/End, and Enter. Stepper buttons are pointer
|
|
3394
|
+
conveniences (press and hold to repeat) and stay out of the tab order.
|
|
3395
|
+
|
|
3396
|
+
Shows a formatted value (`Intl.NumberFormat`) when not focused and the
|
|
3397
|
+
plain editable number while focused; parses locale input (group
|
|
3398
|
+
separators, decimal comma). Built on `Input`, so size, variant, radius,
|
|
3399
|
+
addons, and `Field` wiring match every other text field.
|
|
3400
|
+
|
|
3401
|
+
```tsx
|
|
3402
|
+
<Field label="Weight">
|
|
3403
|
+
<NumberInput min={0} step={2.5} endAddon="kg" defaultValue={60} />
|
|
3404
|
+
</Field>
|
|
3358
3405
|
```
|
|
3359
3406
|
|
|
3360
3407
|
### Props
|
|
@@ -6735,9 +6782,9 @@ import { Tooltip } from "@vjdesigns/vjdesigns-ui";
|
|
|
6735
6782
|
|
|
6736
6783
|
Category: overlays · Storybook: Overlays/Tooltip
|
|
6737
6784
|
|
|
6738
|
-
A short, non-interactive label or description that appears on hover and on
|
|
6739
|
-
keyboard focus. Follows the WAI-ARIA tooltip pattern and WCAG 1.4.13: it
|
|
6740
|
-
can be dismissed with Escape, the pointer can move onto it, and it stays
|
|
6785
|
+
A short, non-interactive label or description that appears on hover and on
|
|
6786
|
+
keyboard focus. Follows the WAI-ARIA tooltip pattern and WCAG 1.4.13: it
|
|
6787
|
+
can be dismissed with Escape, the pointer can move onto it, and it stays
|
|
6741
6788
|
open until the pointer or focus leaves. Use `Popover` for interactive content.
|
|
6742
6789
|
|
|
6743
6790
|
### Props
|
|
@@ -6780,7 +6827,7 @@ import { TooltipProvider } from "@vjdesigns/vjdesigns-ui";
|
|
|
6780
6827
|
|
|
6781
6828
|
Category: overlays · Storybook: Overlays/Tooltip
|
|
6782
6829
|
|
|
6783
|
-
Optional. Sets shared timing for the tooltips inside it. Tooltips work
|
|
6830
|
+
Optional. Sets shared timing for the tooltips inside it. Tooltips work
|
|
6784
6831
|
without a provider, using the defaults.
|
|
6785
6832
|
|
|
6786
6833
|
### Props
|
|
@@ -7943,6 +7990,16 @@ typing in that element.
|
|
|
7943
7990
|
<Textarea onKeyDown={getHotkeyHandler([["mod+enter", send]])} />
|
|
7944
7991
|
```
|
|
7945
7992
|
|
|
7993
|
+
## withExtraItems
|
|
7994
|
+
|
|
7995
|
+
```ts
|
|
7996
|
+
withExtraItems(virtualizer: Virtualizer, extra: readonly number[]): VirtualItem[]
|
|
7997
|
+
```
|
|
7998
|
+
|
|
7999
|
+
The window's items plus extra indices that must stay rendered even when
|
|
8000
|
+
scrolled out of view (a focused row, a highlighted option), in order.
|
|
8001
|
+
Render spacers between non-adjacent items from their `start` / `end`.
|
|
8002
|
+
|
|
7946
8003
|
## cx
|
|
7947
8004
|
|
|
7948
8005
|
```ts
|