@vjdesigns/vjdesigns-ui 2.4.0 → 3.0.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 +141 -76
- package/dist/ai/registry.json +125 -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 +59 -3
- package/dist/components/data-display/DataGrid/DataGrid.mjs +382 -272
- package/dist/components/data-display/DataGrid/DataGrid.module.css.cjs.js +1 -1
- package/dist/components/data-display/DataGrid/DataGrid.module.css.mjs +29 -26
- 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/DatePicker/index.d.ts +1 -1
- 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.cjs.js +1 -1
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +2 -3
- 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 +65 -67
- package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -2
- package/dist/components/forms/TimePicker/index.d.ts +1 -0
- 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.cjs.js +1 -1
- package/dist/i18n/en.mjs +194 -4
- package/dist/i18n/merge.mjs +1 -2
- package/dist/i18n/plural.mjs +1 -2
- package/dist/i18n/types.d.ts +240 -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 +230 -4
- package/dist/locales/bn.cjs.js +1 -1
- package/dist/locales/bn.mjs +167 -4
- package/dist/locales/cs.cjs.js +1 -1
- package/dist/locales/cs.mjs +212 -4
- package/dist/locales/da.cjs.js +1 -1
- package/dist/locales/da.mjs +194 -4
- package/dist/locales/de.cjs.js +1 -1
- package/dist/locales/de.mjs +194 -4
- package/dist/locales/el.cjs.js +1 -1
- package/dist/locales/el.mjs +194 -4
- package/dist/locales/es.cjs.js +1 -1
- package/dist/locales/es.mjs +194 -4
- package/dist/locales/fa.cjs.js +1 -1
- package/dist/locales/fa.mjs +167 -4
- package/dist/locales/fi.cjs.js +1 -1
- package/dist/locales/fi.mjs +194 -4
- package/dist/locales/fr.cjs.js +1 -1
- package/dist/locales/fr.mjs +194 -4
- package/dist/locales/he.cjs.js +1 -1
- package/dist/locales/he.mjs +203 -4
- package/dist/locales/hi.cjs.js +1 -1
- package/dist/locales/hi.mjs +194 -4
- package/dist/locales/hu.cjs.js +1 -1
- package/dist/locales/hu.mjs +167 -4
- package/dist/locales/id.cjs.js +1 -1
- package/dist/locales/id.mjs +167 -4
- package/dist/locales/it.cjs.js +1 -1
- package/dist/locales/it.mjs +194 -4
- package/dist/locales/ja.cjs.js +1 -1
- package/dist/locales/ja.mjs +167 -4
- package/dist/locales/ko.cjs.js +1 -1
- package/dist/locales/ko.mjs +167 -4
- package/dist/locales/nb.cjs.js +1 -1
- package/dist/locales/nb.mjs +194 -4
- package/dist/locales/nl.cjs.js +1 -1
- package/dist/locales/nl.mjs +194 -4
- package/dist/locales/pl.cjs.js +1 -1
- package/dist/locales/pl.mjs +212 -4
- package/dist/locales/pt-BR.cjs.js +1 -1
- package/dist/locales/pt-BR.mjs +194 -4
- package/dist/locales/ro.cjs.js +1 -1
- package/dist/locales/ro.mjs +203 -4
- package/dist/locales/ru.cjs.js +1 -1
- package/dist/locales/ru.mjs +212 -4
- package/dist/locales/sv.cjs.js +1 -1
- package/dist/locales/sv.mjs +194 -4
- package/dist/locales/th.cjs.js +1 -1
- package/dist/locales/th.mjs +167 -4
- package/dist/locales/tr.cjs.js +1 -1
- package/dist/locales/tr.mjs +167 -4
- package/dist/locales/uk.cjs.js +1 -1
- package/dist/locales/uk.mjs +212 -4
- package/dist/locales/ur.cjs.js +1 -1
- package/dist/locales/ur.mjs +194 -4
- package/dist/locales/vi.cjs.js +1 -1
- package/dist/locales/vi.mjs +167 -4
- package/dist/locales/zh-Hans.cjs.js +1 -1
- package/dist/locales/zh-Hans.mjs +167 -4
- package/dist/locales/zh-Hant.cjs.js +1 -1
- package/dist/locales/zh-Hant.mjs +167 -4
- 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 +103 -90
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.5.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,11 +1291,16 @@ 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.
|
|
1253
1298
|
- `ref`: `Ref<HTMLTableElement>`. Ref to the `<table role="grid">`.
|
|
1299
|
+
- `treegrid`: `boolean` (default false). Rows form a hierarchy (groups, a tree): the table becomes a `role="treegrid"` and each row takes the `level` and `expanded` from `getRowProps`.
|
|
1300
|
+
- `getRowProps`: `(row: T) => DataGridRowProps`. Per-row level, expanded state, and class name.
|
|
1301
|
+
- `renderRowDetail`: `(row: T) => ReactNode`. Content for a full-width row under a row (master-detail), or null for none. Its controls are outside the grid's arrow-key navigation: Tab from the row moves into them. A grid with detail rows doesn't virtualize, so pair it with `pageSize` for long lists.
|
|
1302
|
+
- `onRowsShown`: `(rows: readonly T[]) => void`. Called with the rows the grid shows, sorted, filtered, and paged, in display order, whenever they change (to copy a cell range, or export exactly what's on screen).
|
|
1303
|
+
- `onVisibleRangeChange`: `(range: { start: number; end: number }) => void`. Called with the range of shown rows (indexes into them, inclusive) that are rendered in view. With virtualization this follows scrolling, which is what "load more while scrolling" needs.
|
|
1254
1304
|
|
|
1255
1305
|
### Examples (Storybook stories)
|
|
1256
1306
|
|
|
@@ -1265,6 +1315,9 @@ real `<table role="grid">` with `aria-sort`, `aria-selected`,
|
|
|
1265
1315
|
- Sticky Header: A long list in a fixed-height area, with the header kept in view.
|
|
1266
1316
|
- Right To Left: In right-to-left layouts the columns mirror and ArrowRight moves toward the start.
|
|
1267
1317
|
- 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.
|
|
1318
|
+
- 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.
|
|
1319
|
+
- Row Levels And Details: Extension points for hierarchical and master-detail grids: `treegrid` with `getRowProps` (each row's level and expanded state), and `renderRowDetail` (a full-width row under a row). DataGridPro builds its grouping, tree data, and details on these.
|
|
1320
|
+
- Rows Shown And Range: `onRowsShown` reports the rows on screen, sorted, filtered, and paged, in order; `onVisibleRangeChange` reports which of them are rendered in view. DataGridPro builds cell ranges and loading while scrolling on these.
|
|
1268
1321
|
|
|
1269
1322
|
## EmptyState
|
|
1270
1323
|
|
|
@@ -1385,19 +1438,19 @@ import { List } from "@vjdesigns/vjdesigns-ui";
|
|
|
1385
1438
|
|
|
1386
1439
|
Category: data-display · Storybook: Data Display/List
|
|
1387
1440
|
|
|
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
|
|
1441
|
+
A semantic list (`<ul>` or `<ol>`) with styled markers and rich items.
|
|
1442
|
+
|
|
1443
|
+
Every variant draws its own markers, so the browser's markers are removed
|
|
1444
|
+
with CSS; `role="list"` is added so Safari and VoiceOver keep announcing
|
|
1445
|
+
the list and its item count.
|
|
1446
|
+
|
|
1447
|
+
This is a list, not a listbox: items are not selectable options and there
|
|
1448
|
+
is no roving focus. Interactive items (`List.ItemButton`, `List.ItemLink`)
|
|
1449
|
+
are ordinary Tab stops. For choosing among options, use a Listbox,
|
|
1450
|
+
Combobox, or Select instead.
|
|
1451
|
+
|
|
1452
|
+
Grouping: put a `List.Subheader` (a real heading by default) before each
|
|
1453
|
+
list and point the list at it with `aria-labelledby`, so screen readers
|
|
1401
1454
|
announce "Account, list, 3 items".
|
|
1402
1455
|
|
|
1403
1456
|
### Props
|
|
@@ -1417,8 +1470,8 @@ announce "Account, list, 3 items".
|
|
|
1417
1470
|
|
|
1418
1471
|
Also exported as `ListItem`.
|
|
1419
1472
|
|
|
1420
|
-
A static list item (`<li>`) with optional `start`, `title`, `description`,
|
|
1421
|
-
`meta`, and `end` slots, or plain `children`. For a clickable row, use
|
|
1473
|
+
A static list item (`<li>`) with optional `start`, `title`, `description`,
|
|
1474
|
+
`meta`, and `end` slots, or plain `children`. For a clickable row, use
|
|
1422
1475
|
`List.ItemButton` or `List.ItemLink`.
|
|
1423
1476
|
|
|
1424
1477
|
- `start`: `ReactNode`. Leading visual: an `Avatar`, an `Icon`, or a thumbnail.
|
|
@@ -1436,14 +1489,14 @@ A static list item (`<li>`) with optional `start`, `title`, `description`,
|
|
|
1436
1489
|
|
|
1437
1490
|
Also exported as `ListItemButton`.
|
|
1438
1491
|
|
|
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
|
|
1492
|
+
A list item whose main area is a real `<button>`. The button wraps the
|
|
1493
|
+
title (or `children` when there is no title) and its hit area is
|
|
1494
|
+
stretched over the whole row, so the row is clickable, while `end`
|
|
1495
|
+
actions sit above it and stay independently clickable. Never nest
|
|
1496
|
+
interactive elements in `title` or `description`.
|
|
1497
|
+
|
|
1498
|
+
`className` and `style` go on the row `<li>`; `ref`, `onClick`, `type`,
|
|
1499
|
+
`aria-*`, and every other prop go on the `<button>`. The description and
|
|
1447
1500
|
meta become the button's accessible description.
|
|
1448
1501
|
|
|
1449
1502
|
- `start`: `ReactNode`. Leading visual: an `Avatar`, an `Icon`, or a thumbnail.
|
|
@@ -1465,12 +1518,12 @@ meta become the button's accessible description.
|
|
|
1465
1518
|
|
|
1466
1519
|
Also exported as `ListItemLink`.
|
|
1467
1520
|
|
|
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
|
|
1521
|
+
A list item whose main area is a real `<a>`, stretched over the whole row
|
|
1522
|
+
like `List.ItemButton`. `selected` sets `aria-current="page"` (override
|
|
1523
|
+
with `current`). When `disabled`, the link loses its `href` and is marked
|
|
1524
|
+
`aria-disabled`, so it can't be followed or focused.
|
|
1525
|
+
|
|
1526
|
+
`className` and `style` go on the row `<li>`; everything else, including
|
|
1474
1527
|
`ref` and `href`, goes on the `<a>`.
|
|
1475
1528
|
|
|
1476
1529
|
- `start`: `ReactNode`. Leading visual: an `Avatar`, an `Icon`, or a thumbnail.
|
|
@@ -1492,14 +1545,14 @@ with `current`). When `disabled`, the link loses its `href` and is marked
|
|
|
1492
1545
|
|
|
1493
1546
|
Also exported as `ListSubheader`.
|
|
1494
1547
|
|
|
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>
|
|
1548
|
+
An uppercase label for a group of items. Render it before (outside) a
|
|
1549
|
+
`List`, give it an `id`, and pass that id to the list's
|
|
1550
|
+
`aria-labelledby`. It must not go inside the `<ul>`, where it would be
|
|
1551
|
+
counted as an item.
|
|
1552
|
+
|
|
1553
|
+
```tsx
|
|
1554
|
+
<List.Subheader id="acct">Account</List.Subheader>
|
|
1555
|
+
<List aria-labelledby="acct">...</List>
|
|
1503
1556
|
```
|
|
1504
1557
|
|
|
1505
1558
|
- `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 +1689,7 @@ Semantic data table. See `TableRoot` docs above; parts are attached as `Table.*`
|
|
|
1636
1689
|
|
|
1637
1690
|
Also exported as `TableCaption`.
|
|
1638
1691
|
|
|
1639
|
-
The table's title (`<caption>`). It names the table and, when the table
|
|
1692
|
+
The table's title (`<caption>`). It names the table and, when the table
|
|
1640
1693
|
scrolls, its scroll region. Strongly recommended on every table.
|
|
1641
1694
|
|
|
1642
1695
|
- Plus every native `<caption>` attribute.
|
|
@@ -1678,9 +1731,9 @@ A table row (`<tr>`).
|
|
|
1678
1731
|
|
|
1679
1732
|
Also exported as `TableHeaderCell`.
|
|
1680
1733
|
|
|
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
|
|
1734
|
+
A header cell (`<th>`). With `sortable`, the whole cell is a real
|
|
1735
|
+
`<button>` and the header carries `aria-sort` while it is the sorted column.
|
|
1736
|
+
The sort icon shows the direction by shape (up arrow, down arrow, or a
|
|
1684
1737
|
neutral double arrow), not by color alone.
|
|
1685
1738
|
|
|
1686
1739
|
- `align`: `TableCellAlign` (default "start" ("end" when `numeric`)). Horizontal alignment.
|
|
@@ -1710,8 +1763,8 @@ A data cell (`<td>`).
|
|
|
1710
1763
|
|
|
1711
1764
|
Also exported as `TableSelectCell`.
|
|
1712
1765
|
|
|
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
|
|
1766
|
+
A data cell holding the row's selection checkbox. Pair with `selected` on
|
|
1767
|
+
the `Table.Row`. Give it a `rowLabel` (or `checkboxLabel`) so each
|
|
1715
1768
|
checkbox has a unique accessible name.
|
|
1716
1769
|
|
|
1717
1770
|
- `checked`: `boolean` (required). Whether the row is selected.
|
|
@@ -1725,7 +1778,7 @@ checkbox has a unique accessible name.
|
|
|
1725
1778
|
|
|
1726
1779
|
Also exported as `TableSelectAllCell`.
|
|
1727
1780
|
|
|
1728
|
-
A header cell (`<th scope="col">`) with a "select all" checkbox. Shows the
|
|
1781
|
+
A header cell (`<th scope="col">`) with a "select all" checkbox. Shows the
|
|
1729
1782
|
mixed state (`aria-checked="mixed"`) when some rows are selected.
|
|
1730
1783
|
|
|
1731
1784
|
- `checked`: `boolean` (required). Whether every row is selected.
|
|
@@ -2800,6 +2853,7 @@ and size are wired automatically, as with `Input`.
|
|
|
2800
2853
|
- Required: `required` blocks native form submission until an option is chosen (`setCustomValidity` on the text input).
|
|
2801
2854
|
- Clear On Escape: `clearOnEscape`: once the text matches the selection, Escape also clears the selection.
|
|
2802
2855
|
- 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.
|
|
2856
|
+
- 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
2857
|
|
|
2804
2858
|
## DatePicker
|
|
2805
2859
|
|
|
@@ -3197,7 +3251,7 @@ import { FileUpload } from "@vjdesigns/vjdesigns-ui";
|
|
|
3197
3251
|
|
|
3198
3252
|
Category: forms · Storybook: Forms/FileUpload
|
|
3199
3253
|
|
|
3200
|
-
File picker with drag and drop, validation, and a file list.
|
|
3254
|
+
File picker with drag and drop, validation, and a file list.
|
|
3201
3255
|
`FileUpload.List` is the standalone list for custom layouts.
|
|
3202
3256
|
|
|
3203
3257
|
### Props
|
|
@@ -3236,13 +3290,13 @@ File picker with drag and drop, validation, and a file list.
|
|
|
3236
3290
|
|
|
3237
3291
|
Also exported as `FileUploadList`.
|
|
3238
3292
|
|
|
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.
|
|
3293
|
+
The list of selected files: icon or image thumbnail, name (truncated, full
|
|
3294
|
+
name on hover and focus), formatted size, optional upload progress and
|
|
3295
|
+
status, and a remove button per file. `FileUpload` renders one for you;
|
|
3296
|
+
use `FileUpload.List` directly for custom layouts.
|
|
3297
|
+
|
|
3298
|
+
After a removal, focus moves to the next item's remove button (or the
|
|
3299
|
+
previous one), then to `focusFallback` when the list becomes empty.
|
|
3246
3300
|
Upload completions and failures are announced in a polite live region.
|
|
3247
3301
|
|
|
3248
3302
|
- `files`: `File[]` (required). The files to show.
|
|
@@ -3340,21 +3394,21 @@ import { NumberInput } from "@vjdesigns/vjdesigns-ui";
|
|
|
3340
3394
|
|
|
3341
3395
|
Category: forms · Storybook: Forms/NumberInput
|
|
3342
3396
|
|
|
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>
|
|
3397
|
+
A numeric text field following the WAI-ARIA spinbutton pattern. The
|
|
3398
|
+
`<input>` itself is the spinbutton: it takes focus, exposes
|
|
3399
|
+
`aria-valuenow`/`min`/`max`/`valuetext`, and handles ArrowUp/Down,
|
|
3400
|
+
PageUp/Down, Home/End, and Enter. Stepper buttons are pointer
|
|
3401
|
+
conveniences (press and hold to repeat) and stay out of the tab order.
|
|
3402
|
+
|
|
3403
|
+
Shows a formatted value (`Intl.NumberFormat`) when not focused and the
|
|
3404
|
+
plain editable number while focused; parses locale input (group
|
|
3405
|
+
separators, decimal comma). Built on `Input`, so size, variant, radius,
|
|
3406
|
+
addons, and `Field` wiring match every other text field.
|
|
3407
|
+
|
|
3408
|
+
```tsx
|
|
3409
|
+
<Field label="Weight">
|
|
3410
|
+
<NumberInput min={0} step={2.5} endAddon="kg" defaultValue={60} />
|
|
3411
|
+
</Field>
|
|
3358
3412
|
```
|
|
3359
3413
|
|
|
3360
3414
|
### Props
|
|
@@ -3911,6 +3965,7 @@ focusable, covering the segment) inside a `<label>`. `ref` points at the
|
|
|
3911
3965
|
- Controlled
|
|
3912
3966
|
- In Fieldset
|
|
3913
3967
|
- Composition: Stats period
|
|
3968
|
+
- Right To Left: Right to left: the segments run from the right and the thumb sits under the selected one.
|
|
3914
3969
|
|
|
3915
3970
|
## Select
|
|
3916
3971
|
|
|
@@ -6735,9 +6790,9 @@ import { Tooltip } from "@vjdesigns/vjdesigns-ui";
|
|
|
6735
6790
|
|
|
6736
6791
|
Category: overlays · Storybook: Overlays/Tooltip
|
|
6737
6792
|
|
|
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
|
|
6793
|
+
A short, non-interactive label or description that appears on hover and on
|
|
6794
|
+
keyboard focus. Follows the WAI-ARIA tooltip pattern and WCAG 1.4.13: it
|
|
6795
|
+
can be dismissed with Escape, the pointer can move onto it, and it stays
|
|
6741
6796
|
open until the pointer or focus leaves. Use `Popover` for interactive content.
|
|
6742
6797
|
|
|
6743
6798
|
### Props
|
|
@@ -6780,7 +6835,7 @@ import { TooltipProvider } from "@vjdesigns/vjdesigns-ui";
|
|
|
6780
6835
|
|
|
6781
6836
|
Category: overlays · Storybook: Overlays/Tooltip
|
|
6782
6837
|
|
|
6783
|
-
Optional. Sets shared timing for the tooltips inside it. Tooltips work
|
|
6838
|
+
Optional. Sets shared timing for the tooltips inside it. Tooltips work
|
|
6784
6839
|
without a provider, using the defaults.
|
|
6785
6840
|
|
|
6786
6841
|
### Props
|
|
@@ -7943,6 +7998,16 @@ typing in that element.
|
|
|
7943
7998
|
<Textarea onKeyDown={getHotkeyHandler([["mod+enter", send]])} />
|
|
7944
7999
|
```
|
|
7945
8000
|
|
|
8001
|
+
## withExtraItems
|
|
8002
|
+
|
|
8003
|
+
```ts
|
|
8004
|
+
withExtraItems(virtualizer: Virtualizer, extra: readonly number[]): VirtualItem[]
|
|
8005
|
+
```
|
|
8006
|
+
|
|
8007
|
+
The window's items plus extra indices that must stay rendered even when
|
|
8008
|
+
scrolled out of view (a focused row, a highlighted option), in order.
|
|
8009
|
+
Render spacers between non-adjacent items from their `start` / `end`.
|
|
8010
|
+
|
|
7946
8011
|
## cx
|
|
7947
8012
|
|
|
7948
8013
|
```ts
|