@vjdesigns/vjdesigns-ui 0.0.0-stage → 1.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/README.md +723 -3
- package/dist/ai/llms-full.txt +8222 -0
- package/dist/ai/llms.txt +196 -0
- package/dist/ai/mcp-server.mjs +212 -0
- package/dist/ai/registry.json +20480 -0
- package/dist/components/data-display/Accordion/Accordion.cjs.js +1 -0
- package/dist/components/data-display/Accordion/Accordion.d.ts +154 -0
- package/dist/components/data-display/Accordion/Accordion.mjs +327 -0
- package/dist/components/data-display/Accordion/Accordion.module.css.cjs.js +1 -0
- package/dist/components/data-display/Accordion/Accordion.module.css.mjs +31 -0
- package/dist/components/data-display/Accordion/index.d.ts +1 -0
- package/dist/components/data-display/Avatar/Avatar.cjs.js +1 -0
- package/dist/components/data-display/Avatar/Avatar.d.ts +114 -0
- package/dist/components/data-display/Avatar/Avatar.mjs +150 -0
- package/dist/components/data-display/Avatar/Avatar.module.css.cjs.js +1 -0
- package/dist/components/data-display/Avatar/Avatar.module.css.mjs +48 -0
- package/dist/components/data-display/Avatar/index.d.ts +1 -0
- package/dist/components/data-display/Badge/Badge.cjs.js +1 -0
- package/dist/components/data-display/Badge/Badge.d.ts +95 -0
- package/dist/components/data-display/Badge/Badge.mjs +100 -0
- package/dist/components/data-display/Badge/Badge.module.css.cjs.js +1 -0
- package/dist/components/data-display/Badge/Badge.module.css.mjs +43 -0
- package/dist/components/data-display/Badge/index.d.ts +1 -0
- package/dist/components/data-display/Card/Card.cjs.js +1 -0
- package/dist/components/data-display/Card/Card.d.ts +171 -0
- package/dist/components/data-display/Card/Card.mjs +178 -0
- package/dist/components/data-display/Card/Card.module.css.cjs.js +1 -0
- package/dist/components/data-display/Card/Card.module.css.mjs +59 -0
- package/dist/components/data-display/Card/index.d.ts +1 -0
- package/dist/components/data-display/Carousel/Carousel.cjs.js +1 -0
- package/dist/components/data-display/Carousel/Carousel.d.ts +117 -0
- package/dist/components/data-display/Carousel/Carousel.mjs +374 -0
- package/dist/components/data-display/Carousel/Carousel.module.css.cjs.js +1 -0
- package/dist/components/data-display/Carousel/Carousel.module.css.mjs +26 -0
- package/dist/components/data-display/Carousel/index.d.ts +1 -0
- package/dist/components/data-display/Chip/Chip.cjs.js +1 -0
- package/dist/components/data-display/Chip/Chip.d.ts +162 -0
- package/dist/components/data-display/Chip/Chip.mjs +223 -0
- package/dist/components/data-display/Chip/Chip.module.css.cjs.js +1 -0
- package/dist/components/data-display/Chip/Chip.module.css.mjs +45 -0
- package/dist/components/data-display/Chip/index.d.ts +1 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.cjs.js +6 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.d.ts +96 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.mjs +207 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.module.css.cjs.js +1 -0
- package/dist/components/data-display/CodeBlock/CodeBlock.module.css.mjs +48 -0
- package/dist/components/data-display/CodeBlock/index.d.ts +1 -0
- package/dist/components/data-display/CodeBlock/tokenize.cjs.js +13 -0
- package/dist/components/data-display/CodeBlock/tokenize.d.ts +26 -0
- package/dist/components/data-display/CodeBlock/tokenize.mjs +307 -0
- package/dist/components/data-display/DataGrid/DataGrid.cjs.js +1 -0
- package/dist/components/data-display/DataGrid/DataGrid.d.ts +183 -0
- package/dist/components/data-display/DataGrid/DataGrid.mjs +403 -0
- package/dist/components/data-display/DataGrid/DataGrid.module.css.cjs.js +1 -0
- package/dist/components/data-display/DataGrid/DataGrid.module.css.mjs +41 -0
- package/dist/components/data-display/DataGrid/dataGridUtils.cjs.js +1 -0
- package/dist/components/data-display/DataGrid/dataGridUtils.d.ts +28 -0
- package/dist/components/data-display/DataGrid/dataGridUtils.mjs +46 -0
- package/dist/components/data-display/DataGrid/index.d.ts +1 -0
- package/dist/components/data-display/EmptyState/EmptyState.cjs.js +1 -0
- package/dist/components/data-display/EmptyState/EmptyState.d.ts +112 -0
- package/dist/components/data-display/EmptyState/EmptyState.mjs +146 -0
- package/dist/components/data-display/EmptyState/EmptyState.module.css.cjs.js +1 -0
- package/dist/components/data-display/EmptyState/EmptyState.module.css.mjs +31 -0
- package/dist/components/data-display/EmptyState/index.d.ts +1 -0
- package/dist/components/data-display/Image/Image.cjs.js +1 -0
- package/dist/components/data-display/Image/Image.d.ts +107 -0
- package/dist/components/data-display/Image/Image.mjs +171 -0
- package/dist/components/data-display/Image/Image.module.css.cjs.js +1 -0
- package/dist/components/data-display/Image/Image.module.css.mjs +46 -0
- package/dist/components/data-display/Image/index.d.ts +1 -0
- package/dist/components/data-display/List/List.cjs.js +1 -0
- package/dist/components/data-display/List/List.d.ts +195 -0
- package/dist/components/data-display/List/List.mjs +200 -0
- package/dist/components/data-display/List/List.module.css.cjs.js +1 -0
- package/dist/components/data-display/List/List.module.css.mjs +33 -0
- package/dist/components/data-display/List/index.d.ts +1 -0
- package/dist/components/data-display/Stat/Stat.cjs.js +1 -0
- package/dist/components/data-display/Stat/Stat.d.ts +149 -0
- package/dist/components/data-display/Stat/Stat.mjs +224 -0
- package/dist/components/data-display/Stat/Stat.module.css.cjs.js +1 -0
- package/dist/components/data-display/Stat/Stat.module.css.mjs +60 -0
- package/dist/components/data-display/Stat/index.d.ts +1 -0
- package/dist/components/data-display/Table/Table.cjs.js +1 -0
- package/dist/components/data-display/Table/Table.d.ts +255 -0
- package/dist/components/data-display/Table/Table.mjs +333 -0
- package/dist/components/data-display/Table/Table.module.css.cjs.js +1 -0
- package/dist/components/data-display/Table/Table.module.css.mjs +55 -0
- package/dist/components/data-display/Table/index.d.ts +1 -0
- package/dist/components/data-display/Table/useTable.cjs.js +1 -0
- package/dist/components/data-display/Table/useTable.d.ts +118 -0
- package/dist/components/data-display/Table/useTable.mjs +89 -0
- package/dist/components/data-display/Timeline/Timeline.cjs.js +1 -0
- package/dist/components/data-display/Timeline/Timeline.d.ts +92 -0
- package/dist/components/data-display/Timeline/Timeline.mjs +140 -0
- package/dist/components/data-display/Timeline/Timeline.module.css.cjs.js +1 -0
- package/dist/components/data-display/Timeline/Timeline.module.css.mjs +46 -0
- package/dist/components/data-display/Timeline/index.d.ts +1 -0
- package/dist/components/data-display/TreeView/TreeView.cjs.js +1 -0
- package/dist/components/data-display/TreeView/TreeView.d.ts +86 -0
- package/dist/components/data-display/TreeView/TreeView.mjs +361 -0
- package/dist/components/data-display/TreeView/TreeView.module.css.cjs.js +1 -0
- package/dist/components/data-display/TreeView/TreeView.module.css.mjs +24 -0
- package/dist/components/data-display/TreeView/index.d.ts +1 -0
- package/dist/components/data-display/TreeView/treeUtils.cjs.js +1 -0
- package/dist/components/data-display/TreeView/treeUtils.d.ts +82 -0
- package/dist/components/data-display/TreeView/treeUtils.mjs +54 -0
- package/dist/components/data-display/VirtualList/VirtualList.cjs.js +1 -0
- package/dist/components/data-display/VirtualList/VirtualList.d.ts +66 -0
- package/dist/components/data-display/VirtualList/VirtualList.mjs +53 -0
- package/dist/components/data-display/VirtualList/VirtualList.module.css.cjs.js +1 -0
- package/dist/components/data-display/VirtualList/VirtualList.module.css.mjs +9 -0
- package/dist/components/data-display/VirtualList/index.d.ts +1 -0
- package/dist/components/feedback/Alert/Alert.cjs.js +1 -0
- package/dist/components/feedback/Alert/Alert.d.ts +101 -0
- package/dist/components/feedback/Alert/Alert.mjs +113 -0
- package/dist/components/feedback/Alert/Alert.module.css.cjs.js +1 -0
- package/dist/components/feedback/Alert/Alert.module.css.mjs +32 -0
- package/dist/components/feedback/Alert/index.d.ts +1 -0
- package/dist/components/feedback/Banner/Banner.cjs.js +1 -0
- package/dist/components/feedback/Banner/Banner.d.ts +132 -0
- package/dist/components/feedback/Banner/Banner.mjs +199 -0
- package/dist/components/feedback/Banner/Banner.module.css.cjs.js +1 -0
- package/dist/components/feedback/Banner/Banner.module.css.mjs +40 -0
- package/dist/components/feedback/Banner/index.d.ts +1 -0
- package/dist/components/feedback/ErrorSummary/ErrorSummary.cjs.js +1 -0
- package/dist/components/feedback/ErrorSummary/ErrorSummary.d.ts +29 -0
- package/dist/components/feedback/ErrorSummary/ErrorSummary.mjs +38 -0
- package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.cjs.js +1 -0
- package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.mjs +7 -0
- package/dist/components/feedback/ErrorSummary/index.d.ts +1 -0
- package/dist/components/feedback/Progress/Progress.cjs.js +1 -0
- package/dist/components/feedback/Progress/Progress.d.ts +150 -0
- package/dist/components/feedback/Progress/Progress.mjs +238 -0
- package/dist/components/feedback/Progress/Progress.module.css.cjs.js +1 -0
- package/dist/components/feedback/Progress/Progress.module.css.mjs +57 -0
- package/dist/components/feedback/Progress/index.d.ts +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.cjs.js +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.d.ts +151 -0
- package/dist/components/feedback/Skeleton/Skeleton.mjs +157 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs.js +1 -0
- package/dist/components/feedback/Skeleton/Skeleton.module.css.mjs +63 -0
- package/dist/components/feedback/Skeleton/index.d.ts +1 -0
- package/dist/components/feedback/Spinner/Spinner.cjs.js +1 -0
- package/dist/components/feedback/Spinner/Spinner.d.ts +72 -0
- package/dist/components/feedback/Spinner/Spinner.mjs +67 -0
- package/dist/components/feedback/Spinner/Spinner.module.css.cjs.js +1 -0
- package/dist/components/feedback/Spinner/Spinner.module.css.mjs +29 -0
- package/dist/components/feedback/Spinner/index.d.ts +1 -0
- package/dist/components/feedback/Toast/Toast.cjs.js +1 -0
- package/dist/components/feedback/Toast/Toast.d.ts +52 -0
- package/dist/components/feedback/Toast/Toast.mjs +89 -0
- package/dist/components/feedback/Toast/Toast.module.css.cjs.js +1 -0
- package/dist/components/feedback/Toast/Toast.module.css.mjs +48 -0
- package/dist/components/feedback/Toast/Toast.storyHelpers.d.ts +21 -0
- package/dist/components/feedback/Toast/ToastItem.cjs.js +1 -0
- package/dist/components/feedback/Toast/ToastItem.d.ts +18 -0
- package/dist/components/feedback/Toast/ToastItem.mjs +61 -0
- package/dist/components/feedback/Toast/ToastProvider.cjs.js +1 -0
- package/dist/components/feedback/Toast/ToastProvider.d.ts +62 -0
- package/dist/components/feedback/Toast/ToastProvider.mjs +36 -0
- package/dist/components/feedback/Toast/ToastViewport.cjs.js +1 -0
- package/dist/components/feedback/Toast/ToastViewport.d.ts +25 -0
- package/dist/components/feedback/Toast/ToastViewport.mjs +137 -0
- package/dist/components/feedback/Toast/index.d.ts +5 -0
- package/dist/components/feedback/Toast/toastStore.cjs.js +1 -0
- package/dist/components/feedback/Toast/toastStore.d.ts +46 -0
- package/dist/components/feedback/Toast/toastStore.mjs +86 -0
- package/dist/components/feedback/Toast/toastTiming.cjs.js +1 -0
- package/dist/components/feedback/Toast/toastTiming.d.ts +27 -0
- package/dist/components/feedback/Toast/toastTiming.mjs +43 -0
- package/dist/components/feedback/Toast/toastTypes.d.ts +136 -0
- package/dist/components/feedback/Toast/useToast.cjs.js +1 -0
- package/dist/components/feedback/Toast/useToast.d.ts +32 -0
- package/dist/components/feedback/Toast/useToast.mjs +16 -0
- package/dist/components/feedback/Toast/useToastAnnouncer.cjs.js +1 -0
- package/dist/components/feedback/Toast/useToastAnnouncer.d.ts +15 -0
- package/dist/components/feedback/Toast/useToastAnnouncer.mjs +39 -0
- package/dist/components/forms/CheckBox/CheckBox.cjs.js +1 -0
- package/dist/components/forms/CheckBox/CheckBox.d.ts +79 -0
- package/dist/components/forms/CheckBox/CheckBox.mjs +168 -0
- package/dist/components/forms/CheckBox/CheckBox.module.css.cjs.js +1 -0
- package/dist/components/forms/CheckBox/CheckBox.module.css.mjs +33 -0
- package/dist/components/forms/CheckBox/index.d.ts +1 -0
- package/dist/components/forms/ColorPicker/ColorInput.cjs.js +1 -0
- package/dist/components/forms/ColorPicker/ColorInput.d.ts +38 -0
- package/dist/components/forms/ColorPicker/ColorInput.mjs +113 -0
- package/dist/components/forms/ColorPicker/ColorPicker.cjs.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPicker.d.ts +129 -0
- package/dist/components/forms/ColorPicker/ColorPicker.mjs +554 -0
- package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs.js +1 -0
- package/dist/components/forms/ColorPicker/ColorPicker.module.css.mjs +45 -0
- package/dist/components/forms/ColorPicker/colorUtils.cjs.js +1 -0
- package/dist/components/forms/ColorPicker/colorUtils.d.ts +86 -0
- package/dist/components/forms/ColorPicker/colorUtils.mjs +184 -0
- package/dist/components/forms/ColorPicker/index.d.ts +2 -0
- package/dist/components/forms/Combobox/Combobox.cjs.js +1 -0
- package/dist/components/forms/Combobox/Combobox.d.ts +172 -0
- package/dist/components/forms/Combobox/Combobox.mjs +364 -0
- package/dist/components/forms/Combobox/Combobox.module.css.cjs.js +1 -0
- package/dist/components/forms/Combobox/Combobox.module.css.mjs +37 -0
- package/dist/components/forms/Combobox/ComboboxPopup.cjs.js +1 -0
- package/dist/components/forms/Combobox/ComboboxPopup.d.ts +40 -0
- package/dist/components/forms/Combobox/ComboboxPopup.mjs +183 -0
- package/dist/components/forms/Combobox/comboboxUtils.cjs.js +1 -0
- package/dist/components/forms/Combobox/comboboxUtils.d.ts +70 -0
- package/dist/components/forms/Combobox/comboboxUtils.mjs +57 -0
- package/dist/components/forms/Combobox/index.d.ts +1 -0
- package/dist/components/forms/DatePicker/Calendar.cjs.js +1 -0
- package/dist/components/forms/DatePicker/Calendar.d.ts +98 -0
- package/dist/components/forms/DatePicker/Calendar.mjs +228 -0
- package/dist/components/forms/DatePicker/Calendar.module.css.cjs.js +1 -0
- package/dist/components/forms/DatePicker/Calendar.module.css.mjs +25 -0
- package/dist/components/forms/DatePicker/DatePicker.cjs.js +1 -0
- package/dist/components/forms/DatePicker/DatePicker.d.ts +100 -0
- package/dist/components/forms/DatePicker/DatePicker.mjs +186 -0
- package/dist/components/forms/DatePicker/DatePicker.module.css.cjs.js +1 -0
- package/dist/components/forms/DatePicker/DatePicker.module.css.mjs +11 -0
- package/dist/components/forms/DatePicker/DateRangePicker.cjs.js +1 -0
- package/dist/components/forms/DatePicker/DateRangePicker.d.ts +124 -0
- package/dist/components/forms/DatePicker/DateRangePicker.mjs +250 -0
- package/dist/components/forms/DatePicker/DateRangePicker.module.css.cjs.js +1 -0
- package/dist/components/forms/DatePicker/DateRangePicker.module.css.mjs +15 -0
- package/dist/components/forms/DatePicker/dateUtils.cjs.js +1 -0
- package/dist/components/forms/DatePicker/dateUtils.d.ts +88 -0
- package/dist/components/forms/DatePicker/dateUtils.mjs +204 -0
- package/dist/components/forms/DatePicker/index.d.ts +4 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.js +1 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.d.ts +101 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.mjs +120 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs.js +1 -0
- package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +12 -0
- package/dist/components/forms/DateTimePicker/index.d.ts +1 -0
- package/dist/components/forms/Field/Field.cjs.js +1 -0
- package/dist/components/forms/Field/Field.d.ts +171 -0
- package/dist/components/forms/Field/Field.mjs +277 -0
- package/dist/components/forms/Field/Field.module.css.cjs.js +1 -0
- package/dist/components/forms/Field/Field.module.css.mjs +29 -0
- package/dist/components/forms/Field/FieldContext.cjs.js +1 -0
- package/dist/components/forms/Field/FieldContext.d.ts +74 -0
- package/dist/components/forms/Field/FieldContext.mjs +29 -0
- package/dist/components/forms/Field/index.d.ts +2 -0
- package/dist/components/forms/FileUpload/FileUpload.cjs.js +1 -0
- package/dist/components/forms/FileUpload/FileUpload.d.ts +153 -0
- package/dist/components/forms/FileUpload/FileUpload.mjs +447 -0
- package/dist/components/forms/FileUpload/FileUpload.module.css.cjs.js +1 -0
- package/dist/components/forms/FileUpload/FileUpload.module.css.mjs +40 -0
- package/dist/components/forms/FileUpload/index.d.ts +1 -0
- package/dist/components/forms/Input/Input.cjs.js +1 -0
- package/dist/components/forms/Input/Input.d.ts +98 -0
- package/dist/components/forms/Input/Input.mjs +147 -0
- package/dist/components/forms/Input/Input.module.css.cjs.js +1 -0
- package/dist/components/forms/Input/Input.module.css.mjs +36 -0
- package/dist/components/forms/Input/index.d.ts +1 -0
- package/dist/components/forms/NumberInput/NumberInput.cjs.js +1 -0
- package/dist/components/forms/NumberInput/NumberInput.d.ts +87 -0
- package/dist/components/forms/NumberInput/NumberInput.mjs +309 -0
- package/dist/components/forms/NumberInput/NumberInput.module.css.cjs.js +1 -0
- package/dist/components/forms/NumberInput/NumberInput.module.css.mjs +13 -0
- package/dist/components/forms/NumberInput/index.d.ts +1 -0
- package/dist/components/forms/PasswordInput/PasswordInput.cjs.js +1 -0
- package/dist/components/forms/PasswordInput/PasswordInput.d.ts +117 -0
- package/dist/components/forms/PasswordInput/PasswordInput.mjs +253 -0
- package/dist/components/forms/PasswordInput/PasswordInput.module.css.cjs.js +1 -0
- package/dist/components/forms/PasswordInput/PasswordInput.module.css.mjs +33 -0
- package/dist/components/forms/PasswordInput/index.d.ts +1 -0
- package/dist/components/forms/PinInput/PinInput.cjs.js +1 -0
- package/dist/components/forms/PinInput/PinInput.d.ts +92 -0
- package/dist/components/forms/PinInput/PinInput.mjs +221 -0
- package/dist/components/forms/PinInput/PinInput.module.css.cjs.js +1 -0
- package/dist/components/forms/PinInput/PinInput.module.css.mjs +34 -0
- package/dist/components/forms/PinInput/index.d.ts +1 -0
- package/dist/components/forms/Radio/Radio.cjs.js +1 -0
- package/dist/components/forms/Radio/Radio.d.ts +119 -0
- package/dist/components/forms/Radio/Radio.mjs +220 -0
- package/dist/components/forms/Radio/Radio.module.css.cjs.js +1 -0
- package/dist/components/forms/Radio/Radio.module.css.mjs +43 -0
- package/dist/components/forms/Radio/index.d.ts +1 -0
- package/dist/components/forms/Rating/Rating.cjs.js +1 -0
- package/dist/components/forms/Rating/Rating.d.ts +128 -0
- package/dist/components/forms/Rating/Rating.mjs +228 -0
- package/dist/components/forms/Rating/Rating.module.css.cjs.js +1 -0
- package/dist/components/forms/Rating/Rating.module.css.mjs +42 -0
- package/dist/components/forms/Rating/index.d.ts +1 -0
- package/dist/components/forms/SearchInput/SearchInput.cjs.js +1 -0
- package/dist/components/forms/SearchInput/SearchInput.d.ts +124 -0
- package/dist/components/forms/SearchInput/SearchInput.mjs +220 -0
- package/dist/components/forms/SearchInput/SearchInput.module.css.cjs.js +1 -0
- package/dist/components/forms/SearchInput/SearchInput.module.css.mjs +8 -0
- package/dist/components/forms/SearchInput/index.d.ts +1 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.js +1 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.d.ts +120 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.mjs +171 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.js +1 -0
- package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +33 -0
- package/dist/components/forms/SegmentedControl/index.d.ts +1 -0
- package/dist/components/forms/Select/Select.cjs.js +1 -0
- package/dist/components/forms/Select/Select.d.ts +86 -0
- package/dist/components/forms/Select/Select.mjs +107 -0
- package/dist/components/forms/Select/Select.module.css.cjs.js +1 -0
- package/dist/components/forms/Select/Select.module.css.mjs +27 -0
- package/dist/components/forms/Select/index.d.ts +1 -0
- package/dist/components/forms/Slider/Slider.cjs.js +1 -0
- package/dist/components/forms/Slider/Slider.d.ts +84 -0
- package/dist/components/forms/Slider/Slider.mjs +251 -0
- package/dist/components/forms/Slider/Slider.module.css.cjs.js +1 -0
- package/dist/components/forms/Slider/Slider.module.css.mjs +29 -0
- package/dist/components/forms/Slider/index.d.ts +1 -0
- package/dist/components/forms/Switch/Switch.cjs.js +1 -0
- package/dist/components/forms/Switch/Switch.d.ts +62 -0
- package/dist/components/forms/Switch/Switch.mjs +135 -0
- package/dist/components/forms/Switch/Switch.module.css.cjs.js +1 -0
- package/dist/components/forms/Switch/Switch.module.css.mjs +30 -0
- package/dist/components/forms/Switch/index.d.ts +1 -0
- package/dist/components/forms/TagInput/TagInput.cjs.js +1 -0
- package/dist/components/forms/TagInput/TagInput.d.ts +144 -0
- package/dist/components/forms/TagInput/TagInput.mjs +311 -0
- package/dist/components/forms/TagInput/TagInput.module.css.cjs.js +1 -0
- package/dist/components/forms/TagInput/TagInput.module.css.mjs +22 -0
- package/dist/components/forms/TagInput/index.d.ts +1 -0
- package/dist/components/forms/Textarea/Textarea.cjs.js +1 -0
- package/dist/components/forms/Textarea/Textarea.d.ts +62 -0
- package/dist/components/forms/Textarea/Textarea.mjs +151 -0
- package/dist/components/forms/Textarea/Textarea.module.css.cjs.js +1 -0
- package/dist/components/forms/Textarea/Textarea.module.css.mjs +30 -0
- package/dist/components/forms/Textarea/index.d.ts +1 -0
- package/dist/components/forms/TimePicker/TimePicker.cjs.js +1 -0
- package/dist/components/forms/TimePicker/TimePicker.d.ts +116 -0
- package/dist/components/forms/TimePicker/TimePicker.mjs +161 -0
- package/dist/components/forms/TimePicker/TimePicker.module.css.cjs.js +1 -0
- package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +9 -0
- package/dist/components/forms/TimePicker/index.d.ts +1 -0
- package/dist/components/forms/TimePicker/timeUtils.cjs.js +1 -0
- package/dist/components/forms/TimePicker/timeUtils.d.ts +23 -0
- package/dist/components/forms/TimePicker/timeUtils.mjs +117 -0
- package/dist/components/forms/ToggleGroup/ToggleGroup.cjs.js +1 -0
- package/dist/components/forms/ToggleGroup/ToggleGroup.d.ts +153 -0
- package/dist/components/forms/ToggleGroup/ToggleGroup.mjs +201 -0
- package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.cjs.js +1 -0
- package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.mjs +58 -0
- package/dist/components/forms/ToggleGroup/index.d.ts +1 -0
- package/dist/components/layout/Box/Box.cjs.js +1 -0
- package/dist/components/layout/Box/Box.d.ts +120 -0
- package/dist/components/layout/Box/Box.mjs +158 -0
- package/dist/components/layout/Box/Box.module.css.cjs.js +1 -0
- package/dist/components/layout/Box/Box.module.css.mjs +83 -0
- package/dist/components/layout/Box/index.d.ts +1 -0
- package/dist/components/layout/Container/Container.cjs.js +1 -0
- package/dist/components/layout/Container/Container.d.ts +30 -0
- package/dist/components/layout/Container/Container.mjs +48 -0
- package/dist/components/layout/Container/Container.module.css.cjs.js +1 -0
- package/dist/components/layout/Container/Container.module.css.mjs +43 -0
- package/dist/components/layout/Container/index.d.ts +1 -0
- package/dist/components/layout/Divider/Divider.cjs.js +1 -0
- package/dist/components/layout/Divider/Divider.d.ts +65 -0
- package/dist/components/layout/Divider/Divider.mjs +77 -0
- package/dist/components/layout/Divider/Divider.module.css.cjs.js +1 -0
- package/dist/components/layout/Divider/Divider.module.css.mjs +31 -0
- package/dist/components/layout/Divider/index.d.ts +1 -0
- package/dist/components/layout/Flex/Flex.cjs.js +1 -0
- package/dist/components/layout/Flex/Flex.d.ts +96 -0
- package/dist/components/layout/Flex/Flex.mjs +60 -0
- package/dist/components/layout/Flex/Flex.module.css.cjs.js +1 -0
- package/dist/components/layout/Flex/Flex.module.css.mjs +60 -0
- package/dist/components/layout/Flex/index.d.ts +1 -0
- package/dist/components/layout/Grid/Grid.cjs.js +1 -0
- package/dist/components/layout/Grid/Grid.d.ts +127 -0
- package/dist/components/layout/Grid/Grid.mjs +74 -0
- package/dist/components/layout/Grid/Grid.module.css.cjs.js +1 -0
- package/dist/components/layout/Grid/Grid.module.css.mjs +22 -0
- package/dist/components/layout/Grid/index.d.ts +1 -0
- package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -0
- package/dist/components/layout/ResizablePanels/ResizablePanels.d.ts +48 -0
- package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +174 -0
- package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.cjs.js +1 -0
- package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +9 -0
- package/dist/components/layout/ResizablePanels/index.d.ts +1 -0
- package/dist/components/layout/ScrollArea/ScrollArea.cjs.js +1 -0
- package/dist/components/layout/ScrollArea/ScrollArea.d.ts +65 -0
- package/dist/components/layout/ScrollArea/ScrollArea.mjs +152 -0
- package/dist/components/layout/ScrollArea/ScrollArea.module.css.cjs.js +1 -0
- package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +13 -0
- package/dist/components/layout/ScrollArea/index.d.ts +1 -0
- package/dist/components/layout/Stack/Stack.cjs.js +1 -0
- package/dist/components/layout/Stack/Stack.d.ts +81 -0
- package/dist/components/layout/Stack/Stack.mjs +70 -0
- package/dist/components/layout/Stack/Stack.module.css.cjs.js +1 -0
- package/dist/components/layout/Stack/Stack.module.css.mjs +43 -0
- package/dist/components/layout/Stack/index.d.ts +1 -0
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.cjs.js +1 -0
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.d.ts +111 -0
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.mjs +147 -0
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.cjs.js +1 -0
- package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.mjs +21 -0
- package/dist/components/navigation/Breadcrumbs/index.d.ts +1 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.cjs.js +1 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.d.ts +67 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.mjs +168 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.module.css.cjs.js +1 -0
- package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +7 -0
- package/dist/components/navigation/ContextMenu/index.d.ts +1 -0
- package/dist/components/navigation/Link/Link.cjs.js +1 -0
- package/dist/components/navigation/Link/Link.d.ts +93 -0
- package/dist/components/navigation/Link/Link.mjs +83 -0
- package/dist/components/navigation/Link/Link.module.css.cjs.js +1 -0
- package/dist/components/navigation/Link/Link.module.css.mjs +31 -0
- package/dist/components/navigation/Link/index.d.ts +1 -0
- package/dist/components/navigation/Menu/Menu.cjs.js +1 -0
- package/dist/components/navigation/Menu/Menu.d.ts +61 -0
- package/dist/components/navigation/Menu/Menu.mjs +72 -0
- package/dist/components/navigation/Menu/Menu.module.css.cjs.js +1 -0
- package/dist/components/navigation/Menu/Menu.module.css.mjs +22 -0
- package/dist/components/navigation/Menu/MenuContent.cjs.js +1 -0
- package/dist/components/navigation/Menu/MenuContent.d.ts +46 -0
- package/dist/components/navigation/Menu/MenuContent.mjs +180 -0
- package/dist/components/navigation/Menu/MenuContext.cjs.js +1 -0
- package/dist/components/navigation/Menu/MenuContext.d.ts +84 -0
- package/dist/components/navigation/Menu/MenuContext.mjs +60 -0
- package/dist/components/navigation/Menu/MenuItem.cjs.js +1 -0
- package/dist/components/navigation/Menu/MenuItem.d.ts +133 -0
- package/dist/components/navigation/Menu/MenuItem.mjs +250 -0
- package/dist/components/navigation/Menu/MenuSub.cjs.js +1 -0
- package/dist/components/navigation/Menu/MenuSub.d.ts +28 -0
- package/dist/components/navigation/Menu/MenuSub.mjs +93 -0
- package/dist/components/navigation/Menu/index.d.ts +1 -0
- package/dist/components/navigation/Menu/useMenuRoot.cjs.js +1 -0
- package/dist/components/navigation/Menu/useMenuRoot.d.ts +14 -0
- package/dist/components/navigation/Menu/useMenuRoot.mjs +59 -0
- package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -0
- package/dist/components/navigation/Navbar/Navbar.d.ts +245 -0
- package/dist/components/navigation/Navbar/Navbar.mjs +249 -0
- package/dist/components/navigation/Navbar/Navbar.module.css.cjs.js +1 -0
- package/dist/components/navigation/Navbar/Navbar.module.css.mjs +49 -0
- package/dist/components/navigation/Navbar/index.d.ts +1 -0
- package/dist/components/navigation/Pagination/Pagination.cjs.js +1 -0
- package/dist/components/navigation/Pagination/Pagination.d.ts +97 -0
- package/dist/components/navigation/Pagination/Pagination.mjs +133 -0
- package/dist/components/navigation/Pagination/Pagination.module.css.cjs.js +1 -0
- package/dist/components/navigation/Pagination/Pagination.module.css.mjs +19 -0
- package/dist/components/navigation/Pagination/index.d.ts +1 -0
- package/dist/components/navigation/Sidebar/Sidebar.cjs.js +1 -0
- package/dist/components/navigation/Sidebar/Sidebar.d.ts +90 -0
- package/dist/components/navigation/Sidebar/Sidebar.mjs +113 -0
- package/dist/components/navigation/Sidebar/Sidebar.module.css.cjs.js +1 -0
- package/dist/components/navigation/Sidebar/Sidebar.module.css.mjs +34 -0
- package/dist/components/navigation/Sidebar/Sidebar.storyHelpers.d.ts +27 -0
- package/dist/components/navigation/Sidebar/SidebarContext.cjs.js +1 -0
- package/dist/components/navigation/Sidebar/SidebarContext.d.ts +45 -0
- package/dist/components/navigation/Sidebar/SidebarContext.mjs +21 -0
- package/dist/components/navigation/Sidebar/SidebarParts.cjs.js +1 -0
- package/dist/components/navigation/Sidebar/SidebarParts.d.ts +179 -0
- package/dist/components/navigation/Sidebar/SidebarParts.mjs +242 -0
- package/dist/components/navigation/Sidebar/index.d.ts +1 -0
- package/dist/components/navigation/SkipLink/SkipLink.cjs.js +1 -0
- package/dist/components/navigation/SkipLink/SkipLink.d.ts +41 -0
- package/dist/components/navigation/SkipLink/SkipLink.mjs +52 -0
- package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs.js +1 -0
- package/dist/components/navigation/SkipLink/SkipLink.module.css.mjs +8 -0
- package/dist/components/navigation/SkipLink/index.d.ts +1 -0
- package/dist/components/navigation/Stepper/Stepper.cjs.js +1 -0
- package/dist/components/navigation/Stepper/Stepper.d.ts +109 -0
- package/dist/components/navigation/Stepper/Stepper.mjs +185 -0
- package/dist/components/navigation/Stepper/Stepper.module.css.cjs.js +1 -0
- package/dist/components/navigation/Stepper/Stepper.module.css.mjs +32 -0
- package/dist/components/navigation/Stepper/index.d.ts +1 -0
- package/dist/components/navigation/Tabs/Tabs.cjs.js +1 -0
- package/dist/components/navigation/Tabs/Tabs.d.ts +132 -0
- package/dist/components/navigation/Tabs/Tabs.mjs +300 -0
- package/dist/components/navigation/Tabs/Tabs.module.css.cjs.js +1 -0
- package/dist/components/navigation/Tabs/Tabs.module.css.mjs +26 -0
- package/dist/components/navigation/Tabs/index.d.ts +1 -0
- package/dist/components/overlays/CommandPalette/CommandPalette.cjs.js +1 -0
- package/dist/components/overlays/CommandPalette/CommandPalette.d.ts +152 -0
- package/dist/components/overlays/CommandPalette/CommandPalette.mjs +375 -0
- package/dist/components/overlays/CommandPalette/CommandPalette.module.css.cjs.js +1 -0
- package/dist/components/overlays/CommandPalette/CommandPalette.module.css.mjs +33 -0
- package/dist/components/overlays/CommandPalette/CommandPaletteContext.cjs.js +1 -0
- package/dist/components/overlays/CommandPalette/CommandPaletteContext.d.ts +96 -0
- package/dist/components/overlays/CommandPalette/CommandPaletteContext.mjs +11 -0
- package/dist/components/overlays/CommandPalette/CommandPaletteParts.cjs.js +1 -0
- package/dist/components/overlays/CommandPalette/CommandPaletteParts.d.ts +115 -0
- package/dist/components/overlays/CommandPalette/CommandPaletteParts.mjs +304 -0
- package/dist/components/overlays/CommandPalette/commandPaletteUtils.cjs.js +1 -0
- package/dist/components/overlays/CommandPalette/commandPaletteUtils.d.ts +50 -0
- package/dist/components/overlays/CommandPalette/commandPaletteUtils.mjs +147 -0
- package/dist/components/overlays/CommandPalette/index.d.ts +1 -0
- package/dist/components/overlays/Drawer/Drawer.cjs.js +1 -0
- package/dist/components/overlays/Drawer/Drawer.d.ts +148 -0
- package/dist/components/overlays/Drawer/Drawer.mjs +106 -0
- package/dist/components/overlays/Drawer/Drawer.module.css.cjs.js +1 -0
- package/dist/components/overlays/Drawer/Drawer.module.css.mjs +34 -0
- package/dist/components/overlays/Drawer/Drawer.storyHelpers.d.ts +16 -0
- package/dist/components/overlays/Drawer/DrawerContent.cjs.js +1 -0
- package/dist/components/overlays/Drawer/DrawerContent.d.ts +27 -0
- package/dist/components/overlays/Drawer/DrawerContent.mjs +192 -0
- package/dist/components/overlays/Drawer/DrawerContext.cjs.js +1 -0
- package/dist/components/overlays/Drawer/DrawerContext.d.ts +39 -0
- package/dist/components/overlays/Drawer/DrawerContext.mjs +10 -0
- package/dist/components/overlays/Drawer/DrawerParts.cjs.js +1 -0
- package/dist/components/overlays/Drawer/DrawerParts.d.ts +65 -0
- package/dist/components/overlays/Drawer/DrawerParts.mjs +63 -0
- package/dist/components/overlays/Drawer/index.d.ts +1 -0
- package/dist/components/overlays/Drawer/internal.cjs.js +1 -0
- package/dist/components/overlays/Drawer/internal.d.ts +1 -0
- package/dist/components/overlays/Drawer/internal.mjs +4 -0
- package/dist/components/overlays/Drawer/useDragToClose.cjs.js +1 -0
- package/dist/components/overlays/Drawer/useDragToClose.d.ts +28 -0
- package/dist/components/overlays/Drawer/useDragToClose.mjs +42 -0
- package/dist/components/overlays/HoverCard/HoverCard.cjs.js +1 -0
- package/dist/components/overlays/HoverCard/HoverCard.d.ts +50 -0
- package/dist/components/overlays/HoverCard/HoverCard.mjs +173 -0
- package/dist/components/overlays/HoverCard/HoverCard.module.css.cjs.js +1 -0
- package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +12 -0
- package/dist/components/overlays/HoverCard/index.d.ts +1 -0
- package/dist/components/overlays/Modal/ConfirmModal.cjs.js +1 -0
- package/dist/components/overlays/Modal/ConfirmModal.d.ts +47 -0
- package/dist/components/overlays/Modal/ConfirmModal.mjs +76 -0
- package/dist/components/overlays/Modal/Modal.cjs.js +1 -0
- package/dist/components/overlays/Modal/Modal.d.ts +150 -0
- package/dist/components/overlays/Modal/Modal.mjs +153 -0
- package/dist/components/overlays/Modal/Modal.module.css.cjs.js +1 -0
- package/dist/components/overlays/Modal/Modal.module.css.mjs +36 -0
- package/dist/components/overlays/Modal/ModalContent.cjs.js +1 -0
- package/dist/components/overlays/Modal/ModalContent.d.ts +12 -0
- package/dist/components/overlays/Modal/ModalContent.mjs +160 -0
- package/dist/components/overlays/Modal/ModalContext.cjs.js +1 -0
- package/dist/components/overlays/Modal/ModalContext.d.ts +56 -0
- package/dist/components/overlays/Modal/ModalContext.mjs +10 -0
- package/dist/components/overlays/Modal/index.d.ts +2 -0
- package/dist/components/overlays/Modal/useScrollRegion.cjs.js +1 -0
- package/dist/components/overlays/Modal/useScrollRegion.d.ts +7 -0
- package/dist/components/overlays/Modal/useScrollRegion.mjs +25 -0
- package/dist/components/overlays/Popover/Popover.cjs.js +1 -0
- package/dist/components/overlays/Popover/Popover.d.ts +96 -0
- package/dist/components/overlays/Popover/Popover.mjs +150 -0
- package/dist/components/overlays/Popover/Popover.module.css.cjs.js +1 -0
- package/dist/components/overlays/Popover/Popover.module.css.mjs +16 -0
- package/dist/components/overlays/Popover/PopoverContent.cjs.js +1 -0
- package/dist/components/overlays/Popover/PopoverContent.d.ts +41 -0
- package/dist/components/overlays/Popover/PopoverContent.mjs +158 -0
- package/dist/components/overlays/Popover/PopoverContext.cjs.js +1 -0
- package/dist/components/overlays/Popover/PopoverContext.d.ts +38 -0
- package/dist/components/overlays/Popover/PopoverContext.mjs +11 -0
- package/dist/components/overlays/Popover/index.d.ts +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.cjs.js +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.d.ts +104 -0
- package/dist/components/overlays/Tooltip/Tooltip.mjs +153 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.css.cjs.js +1 -0
- package/dist/components/overlays/Tooltip/Tooltip.module.css.mjs +13 -0
- package/dist/components/overlays/Tooltip/index.d.ts +1 -0
- package/dist/components/primitives/Button/Button.cjs.js +1 -0
- package/dist/components/primitives/Button/Button.d.ts +123 -0
- package/dist/components/primitives/Button/Button.mjs +194 -0
- package/dist/components/primitives/Button/Button.module.css.cjs.js +1 -0
- package/dist/components/primitives/Button/Button.module.css.mjs +63 -0
- package/dist/components/primitives/Button/index.d.ts +1 -0
- package/dist/components/primitives/Icon/Icon.cjs.js +1 -0
- package/dist/components/primitives/Icon/Icon.d.ts +17 -0
- package/dist/components/primitives/Icon/Icon.mjs +11 -0
- package/dist/components/primitives/Icon/Icon.module.css.cjs.js +1 -0
- package/dist/components/primitives/Icon/Icon.module.css.mjs +21 -0
- package/dist/components/primitives/Icon/IconSvg.cjs.js +1 -0
- package/dist/components/primitives/Icon/IconSvg.d.ts +31 -0
- package/dist/components/primitives/Icon/IconSvg.mjs +47 -0
- package/dist/components/primitives/Icon/icons.cjs.js +1 -0
- package/dist/components/primitives/Icon/icons.d.ts +315 -0
- package/dist/components/primitives/Icon/icons.mjs +285 -0
- package/dist/components/primitives/Icon/index.d.ts +2 -0
- package/dist/components/primitives/Kbd/Kbd.cjs.js +1 -0
- package/dist/components/primitives/Kbd/Kbd.d.ts +81 -0
- package/dist/components/primitives/Kbd/Kbd.mjs +175 -0
- package/dist/components/primitives/Kbd/Kbd.module.css.cjs.js +1 -0
- package/dist/components/primitives/Kbd/Kbd.module.css.mjs +16 -0
- package/dist/components/primitives/Kbd/index.d.ts +1 -0
- package/dist/components/primitives/Typography/Typography.cjs.js +1 -0
- package/dist/components/primitives/Typography/Typography.d.ts +111 -0
- package/dist/components/primitives/Typography/Typography.mjs +147 -0
- package/dist/components/primitives/Typography/Typography.module.css.cjs.js +1 -0
- package/dist/components/primitives/Typography/Typography.module.css.mjs +49 -0
- package/dist/components/primitives/Typography/index.d.ts +1 -0
- package/dist/components/utilities/LocaleProvider/LocaleProvider.cjs.js +1 -0
- package/dist/components/utilities/LocaleProvider/LocaleProvider.d.ts +58 -0
- package/dist/components/utilities/LocaleProvider/LocaleProvider.mjs +40 -0
- package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.cjs.js +1 -0
- package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +4 -0
- package/dist/components/utilities/LocaleProvider/index.d.ts +1 -0
- package/dist/components/utilities/Portal/Portal.cjs.js +1 -0
- package/dist/components/utilities/Portal/Portal.d.ts +23 -0
- package/dist/components/utilities/Portal/Portal.mjs +27 -0
- package/dist/components/utilities/Portal/index.d.ts +1 -0
- package/dist/components/utilities/Theme/Theme.cjs.js +1 -0
- package/dist/components/utilities/Theme/Theme.d.ts +79 -0
- package/dist/components/utilities/Theme/Theme.mjs +82 -0
- package/dist/components/utilities/Theme/Theme.module.css.cjs.js +1 -0
- package/dist/components/utilities/Theme/Theme.module.css.mjs +7 -0
- package/dist/components/utilities/Theme/index.d.ts +1 -0
- package/dist/components/utilities/VisuallyHidden/VisuallyHidden.cjs.js +1 -0
- package/dist/components/utilities/VisuallyHidden/VisuallyHidden.d.ts +4 -0
- package/dist/components/utilities/VisuallyHidden/VisuallyHidden.mjs +10 -0
- package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.cjs.js +1 -0
- package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.mjs +4 -0
- package/dist/components/utilities/VisuallyHidden/index.d.ts +1 -0
- package/dist/hooks/elementSource.cjs.js +1 -0
- package/dist/hooks/elementSource.d.ts +16 -0
- package/dist/hooks/elementSource.mjs +17 -0
- package/dist/hooks/index.d.ts +21 -0
- package/dist/hooks/useClipboard.cjs.js +1 -0
- package/dist/hooks/useClipboard.d.ts +24 -0
- package/dist/hooks/useClipboard.mjs +23 -0
- package/dist/hooks/useControllableState.cjs.js +1 -0
- package/dist/hooks/useControllableState.d.ts +15 -0
- package/dist/hooks/useControllableState.mjs +13 -0
- package/dist/hooks/useDisclosure.cjs.js +1 -0
- package/dist/hooks/useDisclosure.d.ts +35 -0
- package/dist/hooks/useDisclosure.mjs +29 -0
- package/dist/hooks/useDismiss.cjs.js +1 -0
- package/dist/hooks/useDismiss.d.ts +33 -0
- package/dist/hooks/useDismiss.mjs +15 -0
- package/dist/hooks/useElementObservers.cjs.js +1 -0
- package/dist/hooks/useElementObservers.d.ts +70 -0
- package/dist/hooks/useElementObservers.mjs +88 -0
- package/dist/hooks/useEnvironment.cjs.js +1 -0
- package/dist/hooks/useEnvironment.d.ts +42 -0
- package/dist/hooks/useEnvironment.mjs +36 -0
- package/dist/hooks/useFloatingPosition.cjs.js +1 -0
- package/dist/hooks/useFloatingPosition.d.ts +55 -0
- package/dist/hooks/useFloatingPosition.mjs +116 -0
- package/dist/hooks/useFocusTrap.cjs.js +1 -0
- package/dist/hooks/useFocusTrap.d.ts +52 -0
- package/dist/hooks/useFocusTrap.mjs +93 -0
- package/dist/hooks/useFormReset.cjs.js +1 -0
- package/dist/hooks/useFormReset.d.ts +17 -0
- package/dist/hooks/useFormReset.mjs +16 -0
- package/dist/hooks/useFormValidation.cjs.js +1 -0
- package/dist/hooks/useFormValidation.d.ts +101 -0
- package/dist/hooks/useFormValidation.mjs +187 -0
- package/dist/hooks/useHotkeys.cjs.js +1 -0
- package/dist/hooks/useHotkeys.d.ts +50 -0
- package/dist/hooks/useHotkeys.mjs +39 -0
- package/dist/hooks/useInertOutside.cjs.js +1 -0
- package/dist/hooks/useInertOutside.d.ts +23 -0
- package/dist/hooks/useInertOutside.mjs +83 -0
- package/dist/hooks/useMediaQuery.cjs.js +1 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.mjs +13 -0
- package/dist/hooks/useMergedRef.cjs.js +1 -0
- package/dist/hooks/useMergedRef.d.ts +7 -0
- package/dist/hooks/useMergedRef.mjs +8 -0
- package/dist/hooks/useOverlayLayer.cjs.js +1 -0
- package/dist/hooks/useOverlayLayer.d.ts +92 -0
- package/dist/hooks/useOverlayLayer.mjs +163 -0
- package/dist/hooks/useResponsiveValue.cjs.js +1 -0
- package/dist/hooks/useResponsiveValue.d.ts +10 -0
- package/dist/hooks/useResponsiveValue.mjs +14 -0
- package/dist/hooks/useScrollLock.cjs.js +1 -0
- package/dist/hooks/useScrollLock.d.ts +4 -0
- package/dist/hooks/useScrollLock.mjs +30 -0
- package/dist/hooks/useStorage.cjs.js +1 -0
- package/dist/hooks/useStorage.d.ts +21 -0
- package/dist/hooks/useStorage.mjs +70 -0
- package/dist/hooks/useTiming.cjs.js +1 -0
- package/dist/hooks/useTiming.d.ts +78 -0
- package/dist/hooks/useTiming.mjs +100 -0
- package/dist/hooks/useVirtualizer.cjs.js +1 -0
- package/dist/hooks/useVirtualizer.d.ts +77 -0
- package/dist/hooks/useVirtualizer.mjs +115 -0
- package/dist/i18n/en.cjs.js +1 -0
- package/dist/i18n/en.d.ts +3 -0
- package/dist/i18n/en.mjs +515 -0
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/locales/ar.d.ts +3 -0
- package/dist/i18n/locales/bn.d.ts +3 -0
- package/dist/i18n/locales/cs.d.ts +3 -0
- package/dist/i18n/locales/da.d.ts +3 -0
- package/dist/i18n/locales/de.d.ts +3 -0
- package/dist/i18n/locales/el.d.ts +3 -0
- package/dist/i18n/locales/es.d.ts +3 -0
- package/dist/i18n/locales/fa.d.ts +3 -0
- package/dist/i18n/locales/fi.d.ts +3 -0
- package/dist/i18n/locales/fr.d.ts +3 -0
- package/dist/i18n/locales/he.d.ts +3 -0
- package/dist/i18n/locales/hi.d.ts +3 -0
- package/dist/i18n/locales/hu.d.ts +3 -0
- package/dist/i18n/locales/id.d.ts +3 -0
- package/dist/i18n/locales/it.d.ts +3 -0
- package/dist/i18n/locales/ja.d.ts +3 -0
- package/dist/i18n/locales/ko.d.ts +3 -0
- package/dist/i18n/locales/nb.d.ts +3 -0
- package/dist/i18n/locales/nl.d.ts +3 -0
- package/dist/i18n/locales/pl.d.ts +3 -0
- package/dist/i18n/locales/pt-BR.d.ts +3 -0
- package/dist/i18n/locales/ro.d.ts +3 -0
- package/dist/i18n/locales/ru.d.ts +3 -0
- package/dist/i18n/locales/sv.d.ts +3 -0
- package/dist/i18n/locales/th.d.ts +3 -0
- package/dist/i18n/locales/tr.d.ts +3 -0
- package/dist/i18n/locales/uk.d.ts +3 -0
- package/dist/i18n/locales/ur.d.ts +3 -0
- package/dist/i18n/locales/vi.d.ts +3 -0
- package/dist/i18n/locales/zh-Hans.d.ts +3 -0
- package/dist/i18n/locales/zh-Hant.d.ts +3 -0
- package/dist/i18n/merge.cjs.js +1 -0
- package/dist/i18n/merge.d.ts +6 -0
- package/dist/i18n/merge.mjs +12 -0
- package/dist/i18n/plural.cjs.js +1 -0
- package/dist/i18n/plural.d.ts +45 -0
- package/dist/i18n/plural.mjs +43 -0
- package/dist/i18n/types.d.ts +563 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.d.ts +81 -0
- package/dist/index.mjs +143 -0
- package/dist/locales/ar.cjs.js +1 -0
- package/dist/locales/ar.d.ts +6 -0
- package/dist/locales/ar.mjs +535 -0
- package/dist/locales/bn.cjs.js +1 -0
- package/dist/locales/bn.d.ts +6 -0
- package/dist/locales/bn.mjs +462 -0
- package/dist/locales/cs.cjs.js +1 -0
- package/dist/locales/cs.d.ts +6 -0
- package/dist/locales/cs.mjs +544 -0
- package/dist/locales/da.cjs.js +1 -0
- package/dist/locales/da.d.ts +6 -0
- package/dist/locales/da.mjs +512 -0
- package/dist/locales/de.cjs.js +1 -0
- package/dist/locales/de.d.ts +6 -0
- package/dist/locales/de.mjs +512 -0
- package/dist/locales/el.cjs.js +1 -0
- package/dist/locales/el.d.ts +6 -0
- package/dist/locales/el.mjs +512 -0
- package/dist/locales/es.cjs.js +1 -0
- package/dist/locales/es.d.ts +6 -0
- package/dist/locales/es.mjs +515 -0
- package/dist/locales/fa.cjs.js +1 -0
- package/dist/locales/fa.d.ts +6 -0
- package/dist/locales/fa.mjs +462 -0
- package/dist/locales/fi.cjs.js +1 -0
- package/dist/locales/fi.d.ts +6 -0
- package/dist/locales/fi.mjs +512 -0
- package/dist/locales/fr.cjs.js +1 -0
- package/dist/locales/fr.d.ts +6 -0
- package/dist/locales/fr.mjs +515 -0
- package/dist/locales/he.cjs.js +1 -0
- package/dist/locales/he.d.ts +6 -0
- package/dist/locales/he.mjs +523 -0
- package/dist/locales/hi.cjs.js +1 -0
- package/dist/locales/hi.d.ts +6 -0
- package/dist/locales/hi.mjs +512 -0
- package/dist/locales/hu.cjs.js +1 -0
- package/dist/locales/hu.d.ts +6 -0
- package/dist/locales/hu.mjs +462 -0
- package/dist/locales/id.cjs.js +1 -0
- package/dist/locales/id.d.ts +6 -0
- package/dist/locales/id.mjs +462 -0
- package/dist/locales/it.cjs.js +1 -0
- package/dist/locales/it.d.ts +6 -0
- package/dist/locales/it.mjs +515 -0
- package/dist/locales/ja.cjs.js +1 -0
- package/dist/locales/ja.d.ts +6 -0
- package/dist/locales/ja.mjs +462 -0
- package/dist/locales/ko.cjs.js +1 -0
- package/dist/locales/ko.d.ts +6 -0
- package/dist/locales/ko.mjs +462 -0
- package/dist/locales/nb.cjs.js +1 -0
- package/dist/locales/nb.d.ts +6 -0
- package/dist/locales/nb.mjs +512 -0
- package/dist/locales/nl.cjs.js +1 -0
- package/dist/locales/nl.d.ts +6 -0
- package/dist/locales/nl.mjs +512 -0
- package/dist/locales/pl.cjs.js +1 -0
- package/dist/locales/pl.d.ts +6 -0
- package/dist/locales/pl.mjs +544 -0
- package/dist/locales/pt-BR.cjs.js +1 -0
- package/dist/locales/pt-BR.d.ts +6 -0
- package/dist/locales/pt-BR.mjs +515 -0
- package/dist/locales/ro.cjs.js +1 -0
- package/dist/locales/ro.d.ts +6 -0
- package/dist/locales/ro.mjs +528 -0
- package/dist/locales/ru.cjs.js +1 -0
- package/dist/locales/ru.d.ts +6 -0
- package/dist/locales/ru.mjs +544 -0
- package/dist/locales/sv.cjs.js +1 -0
- package/dist/locales/sv.d.ts +6 -0
- package/dist/locales/sv.mjs +512 -0
- package/dist/locales/th.cjs.js +1 -0
- package/dist/locales/th.d.ts +6 -0
- package/dist/locales/th.mjs +462 -0
- package/dist/locales/tr.cjs.js +1 -0
- package/dist/locales/tr.d.ts +6 -0
- package/dist/locales/tr.mjs +462 -0
- package/dist/locales/uk.cjs.js +1 -0
- package/dist/locales/uk.d.ts +6 -0
- package/dist/locales/uk.mjs +544 -0
- package/dist/locales/ur.cjs.js +1 -0
- package/dist/locales/ur.d.ts +6 -0
- package/dist/locales/ur.mjs +512 -0
- package/dist/locales/vi.cjs.js +1 -0
- package/dist/locales/vi.d.ts +6 -0
- package/dist/locales/vi.mjs +462 -0
- package/dist/locales/zh-Hans.cjs.js +1 -0
- package/dist/locales/zh-Hans.d.ts +6 -0
- package/dist/locales/zh-Hans.mjs +462 -0
- package/dist/locales/zh-Hant.cjs.js +1 -0
- package/dist/locales/zh-Hant.d.ts +6 -0
- package/dist/locales/zh-Hant.mjs +462 -0
- package/dist/types/common.cjs.js +1 -0
- package/dist/types/common.d.ts +31 -0
- package/dist/types/common.mjs +10 -0
- package/dist/types/style.d.ts +7 -0
- package/dist/utils/announce.cjs.js +1 -0
- package/dist/utils/announce.d.ts +1 -0
- package/dist/utils/announce.mjs +26 -0
- package/dist/utils/brandPalette.cjs.js +3 -0
- package/dist/utils/brandPalette.d.ts +144 -0
- package/dist/utils/brandPalette.mjs +387 -0
- package/dist/utils/clipboard.cjs.js +1 -0
- package/dist/utils/clipboard.d.ts +6 -0
- package/dist/utils/clipboard.mjs +21 -0
- package/dist/utils/cx.cjs.js +1 -0
- package/dist/utils/cx.d.ts +2 -0
- package/dist/utils/cx.mjs +6 -0
- package/dist/utils/fillSlot.cjs.js +1 -0
- package/dist/utils/fillSlot.d.ts +9 -0
- package/dist/utils/fillSlot.mjs +5 -0
- package/dist/utils/flattenChildren.cjs.js +1 -0
- package/dist/utils/flattenChildren.d.ts +8 -0
- package/dist/utils/flattenChildren.mjs +7 -0
- package/dist/utils/hotkeys.cjs.js +1 -0
- package/dist/utils/hotkeys.d.ts +27 -0
- package/dist/utils/hotkeys.mjs +45 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/refs.cjs.js +1 -0
- package/dist/utils/refs.d.ts +15 -0
- package/dist/utils/refs.mjs +27 -0
- package/dist/utils/responsive.cjs.js +1 -0
- package/dist/utils/responsive.d.ts +43 -0
- package/dist/utils/responsive.mjs +63 -0
- package/dist/utils/slot.cjs.js +1 -0
- package/dist/utils/slot.d.ts +11 -0
- package/dist/utils/slot.mjs +21 -0
- package/dist/utils/validators.cjs.js +1 -0
- package/dist/utils/validators.d.ts +72 -0
- package/dist/utils/validators.mjs +61 -0
- package/dist/vjdesigns-ui.css +2 -0
- package/package.json +88 -6
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { FocusEvent, FormEvent, RefObject, SyntheticEvent } from 'react';
|
|
2
|
+
import { FormValues, ValidationRule } from '../utils/validators';
|
|
3
|
+
/** Error messages by field name. */
|
|
4
|
+
export type FormErrors = Record<string, string>;
|
|
5
|
+
/** One error, in page order, for an error summary. */
|
|
6
|
+
export interface FormErrorItem {
|
|
7
|
+
/** The field's name. */
|
|
8
|
+
name: string;
|
|
9
|
+
message: string;
|
|
10
|
+
/** Id of the field's focusable control, for a `#id` link (when it has one). */
|
|
11
|
+
id?: string;
|
|
12
|
+
/** Moves focus to the field. */
|
|
13
|
+
focus: () => void;
|
|
14
|
+
/** `server` errors (from `setErrors` or `onValid`) stay until the field is edited. */
|
|
15
|
+
source: "client" | "server";
|
|
16
|
+
}
|
|
17
|
+
/** What `onValid` may return: errors from the server, or nothing when the submit succeeded. */
|
|
18
|
+
type SubmitResult = FormErrors | void | undefined | null;
|
|
19
|
+
export interface UseFormValidationOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Extra rules per field name, run after the browser's own checks
|
|
22
|
+
* (`required`, `type="email"`, `min`, `pattern`, ...). Use the helpers in
|
|
23
|
+
* `rules` (`rules.email()`, `rules.ip()`, `rules.matches("password")`, ...)
|
|
24
|
+
* or your own functions returning a message.
|
|
25
|
+
*/
|
|
26
|
+
rules?: Record<string, ValidationRule | ValidationRule[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Called on submit when every field is valid, with the form's values. Return
|
|
29
|
+
* (or resolve to) errors from the server to show them on their fields. When
|
|
30
|
+
* omitted, a valid form submits natively (to its `action`).
|
|
31
|
+
*/
|
|
32
|
+
onValid?: (values: FormValues, event: FormEvent<HTMLFormElement>) => SubmitResult | Promise<SubmitResult>;
|
|
33
|
+
/**
|
|
34
|
+
* After a failed submit, focus moves to the error summary (when an
|
|
35
|
+
* `ErrorSummary` has `summaryRef`) or to the first invalid field. @default true
|
|
36
|
+
*/
|
|
37
|
+
focusOnError?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface FormValidation {
|
|
40
|
+
/** Spread on the `<form>`: `ref`, `noValidate`, and the submit, input, and blur handlers. */
|
|
41
|
+
formProps: {
|
|
42
|
+
ref: (node: HTMLFormElement | null) => void;
|
|
43
|
+
noValidate: true;
|
|
44
|
+
onSubmit: (event: FormEvent<HTMLFormElement>) => void;
|
|
45
|
+
onInput: (event: SyntheticEvent<HTMLFormElement>) => void;
|
|
46
|
+
onChange: (event: SyntheticEvent<HTMLFormElement>) => void;
|
|
47
|
+
onBlur: (event: FocusEvent<HTMLFormElement>) => void;
|
|
48
|
+
};
|
|
49
|
+
/** The form element. */
|
|
50
|
+
formRef: RefObject<HTMLFormElement | null>;
|
|
51
|
+
/** Current errors by field name: pass `errors.email` to the email `Field`'s `error`. */
|
|
52
|
+
errors: FormErrors;
|
|
53
|
+
/** Current errors in page order, for `ErrorSummary`. */
|
|
54
|
+
errorList: FormErrorItem[];
|
|
55
|
+
/** Attach to an `ErrorSummary` so a failed submit moves focus to it. */
|
|
56
|
+
summaryRef: RefObject<HTMLDivElement | null>;
|
|
57
|
+
/** True while an async `onValid` is running. */
|
|
58
|
+
isSubmitting: boolean;
|
|
59
|
+
/** Number of submit attempts; fields re-check as they're edited after the first. */
|
|
60
|
+
submitCount: number;
|
|
61
|
+
/** Validates now (every field, or only `names`); returns true when they're valid. */
|
|
62
|
+
validate: (names?: string[]) => boolean;
|
|
63
|
+
/** Shows errors (for example from the server) on their fields, next to the current ones. */
|
|
64
|
+
setErrors: (errors: FormErrors) => void;
|
|
65
|
+
/** Removes errors (all of them, or only `names`). */
|
|
66
|
+
clearErrors: (names?: string[]) => void;
|
|
67
|
+
/** The form's current values, by field name. */
|
|
68
|
+
getValues: () => FormValues;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Form validation built on the browser's own constraints (`required`,
|
|
72
|
+
* `type="email"`, `min`, `maxLength`, `pattern`, ...) plus your own `rules`,
|
|
73
|
+
* with the messages in the current language. It works with plain inputs and
|
|
74
|
+
* every form component in this library; pass each field's message to its
|
|
75
|
+
* `Field`:
|
|
76
|
+
*
|
|
77
|
+
* ```tsx
|
|
78
|
+
* const form = useFormValidation({
|
|
79
|
+
* rules: { server: rules.ip(), confirm: rules.matches("password") },
|
|
80
|
+
* onValid: async (values) => (await save(values)).errors,
|
|
81
|
+
* });
|
|
82
|
+
*
|
|
83
|
+
* <form {...form.formProps}>
|
|
84
|
+
* <ErrorSummary ref={form.summaryRef} errors={form.errorList} />
|
|
85
|
+
* <Field label="Email" required error={form.errors.email}>
|
|
86
|
+
* <Input name="email" type="email" />
|
|
87
|
+
* </Field>
|
|
88
|
+
* <Button type="submit" loading={form.isSubmitting}>Save</Button>
|
|
89
|
+
* </form>
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* Validates on submit. After that, an error clears as soon as its field is
|
|
93
|
+
* fixed while typing, and a field is fully re-checked when focus leaves it.
|
|
94
|
+
* A failed submit moves focus to the error summary (or the first invalid
|
|
95
|
+
* field). Errors from the server stay until their field is edited.
|
|
96
|
+
*
|
|
97
|
+
* This is for the user's convenience, not security: validate again on the
|
|
98
|
+
* server, since anyone can bypass the browser.
|
|
99
|
+
*/
|
|
100
|
+
export declare function useFormValidation(options?: UseFormValidationOptions): FormValidation;
|
|
101
|
+
export {};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { useLocale as e } from "../components/utilities/LocaleProvider/LocaleProvider.mjs";
|
|
2
|
+
import { isEmail as t } from "../utils/validators.mjs";
|
|
3
|
+
import { useCallback as n, useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
|
|
4
|
+
//#region src/hooks/useFormValidation.ts
|
|
5
|
+
var s = "input:not([type=\"hidden\"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"true\"]", c = (e) => e.getClientRects().length > 0, l = (e) => e instanceof HTMLElement && e.matches(s) && c(e) && !(e instanceof HTMLInputElement && e.type === "hidden");
|
|
6
|
+
function u(e, t) {
|
|
7
|
+
for (let n = e.parentElement, r = 0; n && n !== t && r < 6; n = n.parentElement, r++) {
|
|
8
|
+
let e = new Set(Array.from(n.querySelectorAll("input[type=\"hidden\"][name]")).map((e) => e.name));
|
|
9
|
+
if (e.size === 1) return [...e][0];
|
|
10
|
+
if (e.size > 1) return;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function d(e, t) {
|
|
14
|
+
return e.name || u(e, t) || e.id || void 0;
|
|
15
|
+
}
|
|
16
|
+
function f(e, t) {
|
|
17
|
+
let n = Array.from(t.querySelectorAll(`[name="${CSS.escape(e)}"]`)), r = n.find(l);
|
|
18
|
+
if (r) return r;
|
|
19
|
+
for (let e of n) for (let n = e.parentElement, r = 0; n && n !== t && r < 6; n = n.parentElement, r++) {
|
|
20
|
+
let e = Array.from(n.querySelectorAll(s)).find(l);
|
|
21
|
+
if (e) return e;
|
|
22
|
+
}
|
|
23
|
+
let i = t.querySelector(`#${CSS.escape(e)}`);
|
|
24
|
+
return i && l(i) ? i : void 0;
|
|
25
|
+
}
|
|
26
|
+
function p(e) {
|
|
27
|
+
let t = {};
|
|
28
|
+
return new FormData(e).forEach((e, n) => {
|
|
29
|
+
let r = t[n];
|
|
30
|
+
t[n] = r === void 0 ? e : Array.isArray(r) ? [...r, e] : [r, e];
|
|
31
|
+
}), t;
|
|
32
|
+
}
|
|
33
|
+
function m(e, n, r) {
|
|
34
|
+
let i = e instanceof HTMLInputElement && e.type === "email" && e.value && !e.multiple && !t(e.value.trim()), a = e instanceof HTMLInputElement || e instanceof HTMLTextAreaElement ? e : void 0, o = a ? a.value.length : 0, s = a && o > 0 && a.minLength > 0 && o < a.minLength ? n.tooShort(a.minLength) : a && a.maxLength >= 0 && o > a.maxLength ? n.tooLong(a.maxLength) : void 0, c = e.validity;
|
|
35
|
+
if (c.valid && !i && !s) return;
|
|
36
|
+
if (c.customError) return e.validationMessage;
|
|
37
|
+
if (c.valueMissing) return n.required;
|
|
38
|
+
let l = e instanceof HTMLInputElement ? e : void 0;
|
|
39
|
+
if (c.typeMismatch || i) return l?.type === "email" ? n.email : l?.type === "url" ? n.url : n.invalid;
|
|
40
|
+
if (c.badInput) return l?.type === "number" ? n.number : n.invalid;
|
|
41
|
+
if (c.patternMismatch) return l?.title || n.pattern;
|
|
42
|
+
if (s) return s;
|
|
43
|
+
let u = (e) => l && (l.type === "number" || l.type === "range") && e !== "" && !Number.isNaN(Number(e)) ? new Intl.NumberFormat(r).format(Number(e)) : e;
|
|
44
|
+
return c.rangeUnderflow && l ? n.min(u(l.min)) : c.rangeOverflow && l ? n.max(u(l.max)) : c.stepMismatch ? n.step : n.invalid;
|
|
45
|
+
}
|
|
46
|
+
var h = (e, t) => e.length === t.length && e.every((e, n) => e.name === t[n].name && e.message === t[n].message && e.source === t[n].source);
|
|
47
|
+
function g(e, t) {
|
|
48
|
+
if (!t) return e;
|
|
49
|
+
let n = (e) => {
|
|
50
|
+
let n = f(e.name, t);
|
|
51
|
+
return n ? Array.from(t.querySelectorAll("*")).indexOf(n) : 2 ** 53 - 1;
|
|
52
|
+
}, r = new Map(e.map((e) => [e, n(e)]));
|
|
53
|
+
return [...e].sort((e, t) => r.get(e) - r.get(t));
|
|
54
|
+
}
|
|
55
|
+
function _(t = {}) {
|
|
56
|
+
let { rules: s = {}, onValid: c, focusOnError: l = !0 } = t, { messages: u, locale: _ } = e(), v = a(null), y = a(null), [b, x] = o([]), [S, C] = o(0), [w, T] = o(!1), [E, D] = o(0), O = a({
|
|
57
|
+
rules: s,
|
|
58
|
+
onValid: c,
|
|
59
|
+
messages: u.validation,
|
|
60
|
+
locale: _
|
|
61
|
+
});
|
|
62
|
+
O.current = {
|
|
63
|
+
rules: s,
|
|
64
|
+
onValid: c,
|
|
65
|
+
messages: u.validation,
|
|
66
|
+
locale: _
|
|
67
|
+
};
|
|
68
|
+
let k = n((e, t, n) => ({
|
|
69
|
+
name: e,
|
|
70
|
+
message: t,
|
|
71
|
+
source: n,
|
|
72
|
+
get id() {
|
|
73
|
+
let t = v.current;
|
|
74
|
+
return t && f(e, t)?.id || void 0;
|
|
75
|
+
},
|
|
76
|
+
focus: () => {
|
|
77
|
+
let t = v.current;
|
|
78
|
+
(t && f(e, t))?.focus();
|
|
79
|
+
}
|
|
80
|
+
}), []), A = n((e) => {
|
|
81
|
+
let t = v.current, n = /* @__PURE__ */ new Map();
|
|
82
|
+
if (!t) return n;
|
|
83
|
+
let { rules: r, messages: i, locale: a } = O.current, o = (t) => !e || e.includes(t);
|
|
84
|
+
for (let e of Array.from(t.elements)) {
|
|
85
|
+
if (!("validity" in e) || !e.willValidate || e.disabled) continue;
|
|
86
|
+
let r = d(e, t);
|
|
87
|
+
if (!r || !o(r) || n.has(r)) continue;
|
|
88
|
+
let s = m(e, i, a);
|
|
89
|
+
s && n.set(r, s);
|
|
90
|
+
}
|
|
91
|
+
let s = p(t);
|
|
92
|
+
for (let [e, t] of Object.entries(r)) if (o(e) && !n.has(e)) for (let r of Array.isArray(t) ? t : [t]) {
|
|
93
|
+
let t = r(s[e], {
|
|
94
|
+
name: e,
|
|
95
|
+
values: s,
|
|
96
|
+
messages: i
|
|
97
|
+
});
|
|
98
|
+
if (t) {
|
|
99
|
+
n.set(e, t);
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return n;
|
|
104
|
+
}, []), j = n((e, t, { onlyClear: n = !1 } = {}) => {
|
|
105
|
+
x((r) => {
|
|
106
|
+
let i = (e) => !t || t.includes(e), a = [];
|
|
107
|
+
for (let t of r) i(t.name) ? n && e.has(t.name) && a.push(t) : a.push(t);
|
|
108
|
+
if (!n) for (let [t, n] of e) a.push(k(t, n, "client"));
|
|
109
|
+
let o = g(a, v.current);
|
|
110
|
+
return h(r, o) ? r : o;
|
|
111
|
+
});
|
|
112
|
+
}, [k]), M = n((e) => {
|
|
113
|
+
let t = A(e);
|
|
114
|
+
return j(t, e), t.size === 0;
|
|
115
|
+
}, [A, j]), N = n((e) => {
|
|
116
|
+
let t = Object.entries(e).filter(([, e]) => e);
|
|
117
|
+
t.length && (x((n) => g([...n.filter((t) => !(t.name in e)), ...t.map(([e, t]) => k(e, t, "server"))], v.current)), l && D((e) => e + 1));
|
|
118
|
+
}, [k, l]), P = n((e) => {
|
|
119
|
+
x((t) => e ? t.filter((t) => !e.includes(t.name)) : []);
|
|
120
|
+
}, []), F = n(() => v.current ? p(v.current) : {}, []);
|
|
121
|
+
r(() => {
|
|
122
|
+
E && l && (y.current && y.current.isConnected ? y.current.focus() : b[0]?.focus());
|
|
123
|
+
}, [E]);
|
|
124
|
+
let I = n((e) => {
|
|
125
|
+
C((e) => e + 1);
|
|
126
|
+
let t = A();
|
|
127
|
+
if (j(t), t.size > 0) {
|
|
128
|
+
e.preventDefault(), l && D((e) => e + 1);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
let n = O.current.onValid;
|
|
132
|
+
if (!n) return;
|
|
133
|
+
e.preventDefault();
|
|
134
|
+
let r = n(p(e.currentTarget), e);
|
|
135
|
+
r && typeof r.then == "function" ? (T(!0), r.then((e) => {
|
|
136
|
+
e && N(e);
|
|
137
|
+
}).finally(() => T(!1))) : r && N(r);
|
|
138
|
+
}, [
|
|
139
|
+
A,
|
|
140
|
+
j,
|
|
141
|
+
N,
|
|
142
|
+
l
|
|
143
|
+
]), L = (e) => {
|
|
144
|
+
let t = v.current, n = e.target;
|
|
145
|
+
if (t && S !== 0 && n instanceof Element) return d(n, t);
|
|
146
|
+
}, R = (e) => {
|
|
147
|
+
if (e.target instanceof HTMLSelectElement) return;
|
|
148
|
+
let t = L(e);
|
|
149
|
+
t && (x((e) => e.some((e) => e.name === t && e.source === "server") ? e.filter((e) => e.name !== t || e.source !== "server") : e), j(A([t]), [t], { onlyClear: !0 }));
|
|
150
|
+
}, z = (e) => {
|
|
151
|
+
let t = L(e);
|
|
152
|
+
if (!t) return;
|
|
153
|
+
let n = b.filter((e) => e.source === "client").map((e) => e.name), r = Array.from(/* @__PURE__ */ new Set([t, ...n]));
|
|
154
|
+
j(A(r), r);
|
|
155
|
+
}, B = i(() => Object.fromEntries(b.map((e) => [e.name, e.message])), [b]);
|
|
156
|
+
return {
|
|
157
|
+
formProps: {
|
|
158
|
+
ref: (e) => {
|
|
159
|
+
v.current = e;
|
|
160
|
+
},
|
|
161
|
+
noValidate: !0,
|
|
162
|
+
onSubmit: I,
|
|
163
|
+
onInput: R,
|
|
164
|
+
onChange: (e) => {
|
|
165
|
+
let t = e.target;
|
|
166
|
+
t instanceof HTMLTextAreaElement || t instanceof HTMLInputElement && ![
|
|
167
|
+
"checkbox",
|
|
168
|
+
"radio",
|
|
169
|
+
"file"
|
|
170
|
+
].includes(t.type) || z(e);
|
|
171
|
+
},
|
|
172
|
+
onBlur: z
|
|
173
|
+
},
|
|
174
|
+
formRef: v,
|
|
175
|
+
errors: B,
|
|
176
|
+
errorList: b,
|
|
177
|
+
summaryRef: y,
|
|
178
|
+
isSubmitting: w,
|
|
179
|
+
submitCount: S,
|
|
180
|
+
validate: M,
|
|
181
|
+
setErrors: N,
|
|
182
|
+
clearErrors: P,
|
|
183
|
+
getValues: F
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
//#endregion
|
|
187
|
+
export { _ as useFormValidation };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../utils/hotkeys.cjs.js");let t=require("react");var n=e=>e.meta||e.ctrl||e.alt;function r(t,r){let i=e.detectPlatform();for(let[a,o,s={}]of t)for(let t of a.split(`,`)){let a=e.parseHotkey(t.trim(),i);if(a&&e.matchesHotkey(r,a)&&(!e.isTypingTarget(r.target)||n(a)||s.allowInInputs)){s.preventDefault!==!1&&r.preventDefault(),o(r);return}}}function i(e,{enabled:n=!0,target:i}={}){let a=(0,t.useRef)(e);a.current=e,(0,t.useEffect)(()=>{if(!n)return;let e=i??(typeof document<`u`?document:void 0);if(!e)return;let t=e=>r(a.current,e);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)},[n,i])}function a(e){return t=>{let n=`nativeEvent`in t?t.nativeEvent:t;r(e.map(([e,t,n])=>[e,t,{allowInInputs:!0,...n}]),n)}}exports.getHotkeyHandler=a,exports.useHotkeys=i;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { KeyboardEvent as ReactKeyboardEvent } from 'react';
|
|
2
|
+
/** One shortcut: the keys, the handler, and per-shortcut options. */
|
|
3
|
+
export type HotkeyItem = [
|
|
4
|
+
hotkey: string,
|
|
5
|
+
handler: (event: KeyboardEvent) => void,
|
|
6
|
+
options?: HotkeyItemOptions
|
|
7
|
+
];
|
|
8
|
+
export interface HotkeyItemOptions {
|
|
9
|
+
/** Call `preventDefault()` when the shortcut matches. @default true */
|
|
10
|
+
preventDefault?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Also fire while typing in a text field. By default, shortcuts with ⌘,
|
|
13
|
+
* Ctrl, or Alt fire anywhere, and plain keys (`"/"`, `"?"`, `"g"`) don't
|
|
14
|
+
* fire while typing, so they never steal characters.
|
|
15
|
+
*/
|
|
16
|
+
allowInInputs?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface UseHotkeysOptions {
|
|
19
|
+
/** Turn every shortcut off (e.g. while a dialog is open). @default true */
|
|
20
|
+
enabled?: boolean;
|
|
21
|
+
/** Listen on this element instead of the whole document. */
|
|
22
|
+
target?: EventTarget | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Keyboard shortcuts for the whole page (or one element). `mod` is ⌘ on Mac
|
|
26
|
+
* and Ctrl elsewhere; separate alternatives with commas (`"mod+k, /"`).
|
|
27
|
+
* Shortcuts with ⌘, Ctrl, or Alt work everywhere; plain keys don't fire while
|
|
28
|
+
* typing in a text field. Show each shortcut to users (`Kbd`,
|
|
29
|
+
* `aria-keyshortcuts`) so it can be found, and avoid single-key shortcuts that
|
|
30
|
+
* screen readers or browsers use, or let users turn them off (WCAG 2.1.4).
|
|
31
|
+
*
|
|
32
|
+
* ```tsx
|
|
33
|
+
* useHotkeys([
|
|
34
|
+
* ["mod+k", () => setPaletteOpen(true)],
|
|
35
|
+
* ["/", () => searchRef.current?.focus()],
|
|
36
|
+
* ["shift+?", () => setHelpOpen(true)],
|
|
37
|
+
* ]);
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function useHotkeys(hotkeys: HotkeyItem[], { enabled, target }?: UseHotkeysOptions): void;
|
|
41
|
+
/**
|
|
42
|
+
* A `keydown` handler for one element (an editor, a list): pass it to
|
|
43
|
+
* `onKeyDown`. Same shortcut format as `useHotkeys`; shortcuts fire while
|
|
44
|
+
* typing in that element.
|
|
45
|
+
*
|
|
46
|
+
* ```tsx
|
|
47
|
+
* <Textarea onKeyDown={getHotkeyHandler([["mod+enter", send]])} />
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function getHotkeyHandler(hotkeys: HotkeyItem[]): (event: ReactKeyboardEvent | KeyboardEvent) => void;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { detectPlatform as e, isTypingTarget as t, matchesHotkey as n, parseHotkey as r } from "../utils/hotkeys.mjs";
|
|
2
|
+
import { useEffect as i, useRef as a } from "react";
|
|
3
|
+
//#region src/hooks/useHotkeys.ts
|
|
4
|
+
var o = (e) => e.meta || e.ctrl || e.alt;
|
|
5
|
+
function s(i, a) {
|
|
6
|
+
let s = e();
|
|
7
|
+
for (let [e, c, l = {}] of i) for (let i of e.split(",")) {
|
|
8
|
+
let e = r(i.trim(), s);
|
|
9
|
+
if (e && n(a, e) && (!t(a.target) || o(e) || l.allowInInputs)) {
|
|
10
|
+
l.preventDefault !== !1 && a.preventDefault(), c(a);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function c(e, { enabled: t = !0, target: n } = {}) {
|
|
16
|
+
let r = a(e);
|
|
17
|
+
r.current = e, i(() => {
|
|
18
|
+
if (!t) return;
|
|
19
|
+
let e = n ?? (typeof document < "u" ? document : void 0);
|
|
20
|
+
if (!e) return;
|
|
21
|
+
let i = (e) => s(r.current, e);
|
|
22
|
+
return e.addEventListener("keydown", i), () => e.removeEventListener("keydown", i);
|
|
23
|
+
}, [t, n]);
|
|
24
|
+
}
|
|
25
|
+
function l(e) {
|
|
26
|
+
return (t) => {
|
|
27
|
+
let n = "nativeEvent" in t ? t.nativeEvent : t;
|
|
28
|
+
s(e.map(([e, t, n]) => [
|
|
29
|
+
e,
|
|
30
|
+
t,
|
|
31
|
+
{
|
|
32
|
+
allowInInputs: !0,
|
|
33
|
+
...n
|
|
34
|
+
}
|
|
35
|
+
]), n);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { l as getHotkeyHandler, c as useHotkeys };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./elementSource.cjs.js"),t=require("./useOverlayLayer.cjs.js");let n=require("react");var r=new Map,i=new Set([`SCRIPT`,`STYLE`,`TEMPLATE`,`LINK`,`META`,`NOSCRIPT`]),a=`[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']`;function o(e){let t=r.get(e);if(t){t.count+=1;return}r.set(e,{count:1,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}),e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}function s(e){let t=r.get(e);t&&(--t.count,!(t.count>0)&&(r.delete(e),e.inert=t.inert,t.ariaHidden===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,t.ariaHidden)))}function c(e){if(typeof document>`u`)return()=>{};let t=(Array.isArray(e)?e:[e]).filter(e=>!!e&&e.isConnected);if(t.length===0)return()=>{};let n=document.body,r=Array.from(n.querySelectorAll(a)).filter(e=>!e.closest(`[inert]`)),c=new Set([...t,...r]),l=new Set;c.forEach(e=>{let t=e.parentElement;for(;t&&t!==n;)l.add(t),t=t.parentElement});let u=[],d=e=>{for(let t of Array.from(e.children))c.has(t)||i.has(t.tagName)||(l.has(t)?d(t):t instanceof HTMLElement&&u.push(t))};d(n),u.forEach(o);let f=!1;return()=>{f||(f=!0,u.forEach(s))}}function l(e,n){if(typeof document>`u`)return()=>{};let r=Array.isArray(n)?n:[n],i=()=>c([...r,...t.getChildLayerElements(e),...t.getLayerElementsAbove(e)]),a=i(),o=t.subscribeOverlayLayers(()=>{let e=i();a(),a=e}),s=!1;return()=>{s||(s=!0,o(),a())}}function u(t,r,i){let a=i?.id,o=(0,n.useRef)({key:[],release:null});(0,n.useLayoutEffect)(()=>{let n=r?t.map(t=>e.resolveElement(t)).filter(e=>!!e):[],i=o.current.key;if(n.length===i.length&&n.every((e,t)=>e===i[t]))return;o.current.release?.();let s=n.length===0?null:a?l(a,n):c(n);o.current={key:n,release:s}}),(0,n.useLayoutEffect)(()=>()=>{o.current.release?.(),o.current={key:[],release:null}},[])}exports.inertOutside=c,exports.inertOutsideLayer=l,exports.useInertOutside=u;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ElementSource } from './elementSource';
|
|
2
|
+
/**
|
|
3
|
+
* Marks everything outside `keep` as inert. Returns a function that
|
|
4
|
+
* restores exactly what it changed (safe to call twice).
|
|
5
|
+
*/
|
|
6
|
+
export declare function inertOutside(keep: HTMLElement | Array<HTMLElement | null | undefined>): () => void;
|
|
7
|
+
/**
|
|
8
|
+
* Like `inertOutside`, but also keeps reachable the elements of every open
|
|
9
|
+
* child layer of `layerId` (a Tooltip or Popover portaled out of the modal
|
|
10
|
+
* surface, even one that mounted in the same commit) and of every layer
|
|
11
|
+
* stacked above it (a Modal opened from elsewhere on top of this one),
|
|
12
|
+
* re-applying the marks whenever the layer stack changes. Returns the
|
|
13
|
+
* release function.
|
|
14
|
+
*/
|
|
15
|
+
export declare function inertOutsideLayer(layerId: string, keep: HTMLElement | HTMLElement[]): () => void;
|
|
16
|
+
/**
|
|
17
|
+
* Makes everything outside `elements` inert while `active`. Pass the
|
|
18
|
+
* overlay's `layer` so its child layers stay reachable. Run it only for
|
|
19
|
+
* the topmost modal layer's session (Modal and Drawer apply it while open).
|
|
20
|
+
*/
|
|
21
|
+
export declare function useInertOutside(elements: ElementSource[], active: boolean, layer?: {
|
|
22
|
+
id: string;
|
|
23
|
+
}): void;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { resolveElement as e } from "./elementSource.mjs";
|
|
2
|
+
import { getChildLayerElements as t, getLayerElementsAbove as n, subscribeOverlayLayers as r } from "./useOverlayLayer.mjs";
|
|
3
|
+
import { useLayoutEffect as i, useRef as a } from "react";
|
|
4
|
+
//#region src/hooks/useInertOutside.ts
|
|
5
|
+
var o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set([
|
|
6
|
+
"SCRIPT",
|
|
7
|
+
"STYLE",
|
|
8
|
+
"TEMPLATE",
|
|
9
|
+
"LINK",
|
|
10
|
+
"META",
|
|
11
|
+
"NOSCRIPT"
|
|
12
|
+
]), c = "[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']";
|
|
13
|
+
function l(e) {
|
|
14
|
+
let t = o.get(e);
|
|
15
|
+
if (t) {
|
|
16
|
+
t.count += 1;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
o.set(e, {
|
|
20
|
+
count: 1,
|
|
21
|
+
inert: e.inert,
|
|
22
|
+
ariaHidden: e.getAttribute("aria-hidden")
|
|
23
|
+
}), e.inert = !0, e.setAttribute("aria-hidden", "true");
|
|
24
|
+
}
|
|
25
|
+
function u(e) {
|
|
26
|
+
let t = o.get(e);
|
|
27
|
+
t && (--t.count, !(t.count > 0) && (o.delete(e), e.inert = t.inert, t.ariaHidden === null ? e.removeAttribute("aria-hidden") : e.setAttribute("aria-hidden", t.ariaHidden)));
|
|
28
|
+
}
|
|
29
|
+
function d(e) {
|
|
30
|
+
if (typeof document > "u") return () => {};
|
|
31
|
+
let t = (Array.isArray(e) ? e : [e]).filter((e) => !!e && e.isConnected);
|
|
32
|
+
if (t.length === 0) return () => {};
|
|
33
|
+
let n = document.body, r = Array.from(n.querySelectorAll(c)).filter((e) => !e.closest("[inert]")), i = /* @__PURE__ */ new Set([...t, ...r]), a = /* @__PURE__ */ new Set();
|
|
34
|
+
i.forEach((e) => {
|
|
35
|
+
let t = e.parentElement;
|
|
36
|
+
for (; t && t !== n;) a.add(t), t = t.parentElement;
|
|
37
|
+
});
|
|
38
|
+
let o = [], d = (e) => {
|
|
39
|
+
for (let t of Array.from(e.children)) i.has(t) || s.has(t.tagName) || (a.has(t) ? d(t) : t instanceof HTMLElement && o.push(t));
|
|
40
|
+
};
|
|
41
|
+
d(n), o.forEach(l);
|
|
42
|
+
let f = !1;
|
|
43
|
+
return () => {
|
|
44
|
+
f || (f = !0, o.forEach(u));
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function f(e, i) {
|
|
48
|
+
if (typeof document > "u") return () => {};
|
|
49
|
+
let a = Array.isArray(i) ? i : [i], o = () => d([
|
|
50
|
+
...a,
|
|
51
|
+
...t(e),
|
|
52
|
+
...n(e)
|
|
53
|
+
]), s = o(), c = r(() => {
|
|
54
|
+
let e = o();
|
|
55
|
+
s(), s = e;
|
|
56
|
+
}), l = !1;
|
|
57
|
+
return () => {
|
|
58
|
+
l || (l = !0, c(), s());
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function p(t, n, r) {
|
|
62
|
+
let o = r?.id, s = a({
|
|
63
|
+
key: [],
|
|
64
|
+
release: null
|
|
65
|
+
});
|
|
66
|
+
i(() => {
|
|
67
|
+
let r = n ? t.map((t) => e(t)).filter((e) => !!e) : [], i = s.current.key;
|
|
68
|
+
if (r.length === i.length && r.every((e, t) => e === i[t])) return;
|
|
69
|
+
s.current.release?.();
|
|
70
|
+
let a = r.length === 0 ? null : o ? f(o, r) : d(r);
|
|
71
|
+
s.current = {
|
|
72
|
+
key: r,
|
|
73
|
+
release: a
|
|
74
|
+
};
|
|
75
|
+
}), i(() => () => {
|
|
76
|
+
s.current.release?.(), s.current = {
|
|
77
|
+
key: [],
|
|
78
|
+
release: null
|
|
79
|
+
};
|
|
80
|
+
}, []);
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
export { d as inertOutside, f as inertOutsideLayer, p as useInertOutside };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("react");var t=()=>typeof window<`u`&&typeof window.matchMedia==`function`;function n(n,r=!1){let i=(0,e.useCallback)(e=>{if(!n||!t())return()=>{};let r=window.matchMedia(n);return r.addEventListener(`change`,e),()=>r.removeEventListener(`change`,e)},[n]);return(0,e.useSyncExternalStore)(i,()=>n&&t()?window.matchMedia(n).matches:r,()=>r)}exports.useMediaQuery=n;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a CSS media query matches, kept in sync as the viewport or user
|
|
3
|
+
* preferences change. Returns `serverValue` (default `false`) during server
|
|
4
|
+
* rendering, when `query` is undefined, or where `matchMedia` is missing.
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const wide = useMediaQuery("(min-width: 768px)");
|
|
8
|
+
* const reduceMotion = useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export declare function useMediaQuery(query: string | undefined, serverValue?: boolean): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useCallback as e, useSyncExternalStore as t } from "react";
|
|
2
|
+
//#region src/hooks/useMediaQuery.ts
|
|
3
|
+
var n = () => typeof window < "u" && typeof window.matchMedia == "function";
|
|
4
|
+
function r(r, i = !1) {
|
|
5
|
+
let a = e((e) => {
|
|
6
|
+
if (!r || !n()) return () => {};
|
|
7
|
+
let t = window.matchMedia(r);
|
|
8
|
+
return t.addEventListener("change", e), () => t.removeEventListener("change", e);
|
|
9
|
+
}, [r]);
|
|
10
|
+
return t(a, () => r && n() ? window.matchMedia(r).matches : i, () => i);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { r as useMediaQuery };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../utils/refs.cjs.js");let t=require("react");function n(...n){return(0,t.useMemo)(()=>e.mergeRefs(...n),n)}exports.useMergedRef=n;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Ref, RefCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A callback ref that writes to every given ref (callback or object), stable
|
|
4
|
+
* while the refs are. Use it to combine a component's own ref with the
|
|
5
|
+
* consumer's `ref` prop (or a slot child's ref).
|
|
6
|
+
*/
|
|
7
|
+
export declare function useMergedRef<T>(...refs: Array<Ref<T> | undefined | null>): RefCallback<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./elementSource.cjs.js");let t=require("react");var n=[],r=new Map,i=new Set;function a(){i.forEach(e=>e())}function o(e){return i.add(e),()=>{i.delete(e)}}function s(e){return e===null?void 0:n.find(t=>t.id===e)}function c(e,t){let n=e,r=new Set;for(;n&&!r.has(n.id);){if(n.id===t||n.parentId===t)return!0;r.add(n.id),n=s(n.parentId)}return!1}function l(e){let t=new Set,n=[],r=new Map(e.map(e=>[e.id,e])),i=(e,a)=>{if(t.has(e.id)||a.has(e.id))return;a.add(e.id);let o=e.parentId?r.get(e.parentId):void 0;o&&i(o,a),t.add(e.id),n.push(e)};return e.forEach(e=>i(e,new Set)),n}function u(t,n){let i=r.get(t);if(!i)return!1;for(let t of i){let r=t.current.elements?.()??[];for(let t of r)if(e.resolveElement(t)?.contains(n))return!0}return!1}function d(t){let n=[];for(let i of r.get(t)??[])for(let t of i.current.elements?.()??[]){let r=e.resolveElement(t);r&&!n.includes(r)&&n.push(r)}return n}function f(e){return n.filter(t=>t.id!==e&&c(t,e)).flatMap(e=>d(e.id))}function p(e){let t=n.findIndex(t=>t.id===e);return t===-1?[]:n.slice(t+1).flatMap(e=>d(e.id))}function m(e){return o(e)}function h(e,t){return t?n.some(n=>n.id!==e&&c(n,e)&&u(n.id,t)):!1}function g(e,t){return t?u(e,t)||h(e,t):!1}function _(e){return Array.from(r.get(e)??[],e=>e.current)}function v(e){if(e.key!==`Escape`||e.defaultPrevented||e.isComposing)return;let t=n[n.length-1];if(t)for(let n of _(t.id))n.onEscape?.(e)}function y(e){if(e.defaultPrevented)return;let t=e.target instanceof Node?e.target:null;if(!t)return;let r=[...n];for(let n=r.length-1;n>=0;--n){let i=r[n];if(g(i.id,t))break;for(let t of _(i.id))t.onOutsidePress?.(e);if(i.modal)break}}var b=!1;function x(){typeof document>`u`||(n.length>0&&!b?(document.addEventListener(`keydown`,v),document.addEventListener(`pointerdown`,y),b=!0):n.length===0&&b&&(document.removeEventListener(`keydown`,v),document.removeEventListener(`pointerdown`,y),b=!1))}function S(e){return n=l([...n.filter(t=>t.id!==e.id),e]),x(),a(),()=>{n=n.filter(t=>t!==e),x(),a()}}function C(e,t){let n=r.get(e);return n||(n=new Set,r.set(e,n)),n.add(t),()=>{let n=r.get(e);n?.delete(t),n&&n.size===0&&r.delete(e)}}function w(e){return n.length>0&&n[n.length-1].id===e}function T(e){let t=n.findIndex(t=>t.id===e);return t!==-1&&n.slice(t+1).some(e=>e.modal)}function E(){return n.map(({id:e,parentId:t,modal:n})=>({id:e,parentId:t,modal:n}))}var D=(0,t.createContext)(null);function O(){return(0,t.useContext)(D)}function k({layer:e,children:n}){return(0,t.createElement)(D.Provider,{value:e.id},n)}function A({active:e,modal:n=!1,parentId:r,onEscape:i,onOutsidePress:a,elements:s}){let c=`layer-${(0,t.useId)()}`,l=(0,t.useContext)(D),u=r===void 0?l:r,d=(0,t.useRef)({});d.current={onEscape:i,onOutsidePress:a,elements:s},(0,t.useLayoutEffect)(()=>C(c,d),[c]),(0,t.useLayoutEffect)(()=>{if(e)return S({id:c,parentId:u??null,modal:n})},[e,c,u,n]);let f=(0,t.useSyncExternalStore)(o,()=>e&&w(c),()=>!1),p=(0,t.useSyncExternalStore)(o,()=>e&&T(c),()=>!1),m=(0,t.useCallback)(()=>w(c),[c]),_=(0,t.useCallback)(e=>g(c,e),[c]),v=(0,t.useCallback)(e=>h(c,e),[c]),y=(0,t.useCallback)(e=>C(c,e),[c]);return(0,t.useMemo)(()=>({id:c,parentId:u??null,isTopmost:f,hasModalAbove:p,getIsTopmost:m,contains:_,childContains:v,addHandlers:y}),[c,u,f,p,m,_,v,y])}exports.OverlayLayerProvider=k,exports.childLayerContains=h,exports.getChildLayerElements=f,exports.getLayerElementsAbove=p,exports.getOverlayLayerStack=E,exports.layerContains=g,exports.subscribeOverlayLayers=m,exports.useOverlayLayer=A,exports.useParentOverlayLayer=O;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ElementSource } from './elementSource';
|
|
3
|
+
/** What a layer does when it is dismissed. Read at event time. */
|
|
4
|
+
export interface LayerHandlers {
|
|
5
|
+
/** Called when Escape is pressed and this layer is topmost. */
|
|
6
|
+
onEscape?: (event: KeyboardEvent) => void;
|
|
7
|
+
/** Called when a press lands outside this layer and its child layers. */
|
|
8
|
+
onOutsidePress?: (event: PointerEvent) => void;
|
|
9
|
+
/** Extra elements that count as inside this layer (trigger, anchor). */
|
|
10
|
+
elements?: () => ElementSource[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Elements of every open descendant layer of layer `id` (for example a
|
|
14
|
+
* Tooltip or Popover portaled out of a Modal). A modal surface keeps these
|
|
15
|
+
* out of its inert marks.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getChildLayerElements(id: string): HTMLElement[];
|
|
18
|
+
/**
|
|
19
|
+
* Elements of every open layer stacked above layer `id`, related or not
|
|
20
|
+
* (for example a page-level Modal opened while this one stays open). A
|
|
21
|
+
* modal surface keeps these out of its inert marks; the topmost modal
|
|
22
|
+
* inerts everything below it on its own.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getLayerElementsAbove(id: string): HTMLElement[];
|
|
25
|
+
/** Subscribes to every change of the layer stack. Returns the unsubscribe function. */
|
|
26
|
+
export declare function subscribeOverlayLayers(listener: () => void): () => void;
|
|
27
|
+
/** True when `node` is inside one of the (open) child layers of layer `id`. */
|
|
28
|
+
export declare function childLayerContains(id: string, node: Node | null): boolean;
|
|
29
|
+
/** True when `node` is inside layer `id` or inside any of its child layers. */
|
|
30
|
+
export declare function layerContains(id: string, node: Node | null): boolean;
|
|
31
|
+
/** Ids of the open layers, bottom first. Useful for debugging and tests. */
|
|
32
|
+
export declare function getOverlayLayerStack(): ReadonlyArray<{
|
|
33
|
+
id: string;
|
|
34
|
+
parentId: string | null;
|
|
35
|
+
modal: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
/** The id of the nearest enclosing overlay layer, or null at the page level. */
|
|
38
|
+
export declare function useParentOverlayLayer(): string | null;
|
|
39
|
+
export interface OverlayLayerProviderProps {
|
|
40
|
+
/** The layer that overlays rendered inside `children` belong to. */
|
|
41
|
+
layer: Pick<OverlayLayer, "id">;
|
|
42
|
+
children?: ReactNode;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Makes `layer` the parent of every overlay rendered inside. Wrap an
|
|
46
|
+
* overlay's content with it (inside the Portal is fine: context crosses
|
|
47
|
+
* portals), so a Popover or Tooltip inside it counts as a child layer.
|
|
48
|
+
*/
|
|
49
|
+
export declare function OverlayLayerProvider({ layer, children }: OverlayLayerProviderProps): import('react').FunctionComponentElement<import('react').ProviderProps<string | null>>;
|
|
50
|
+
export interface UseOverlayLayerOptions extends LayerHandlers {
|
|
51
|
+
/** Registered on the stack only while active (usually while open and mounted). */
|
|
52
|
+
active: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* A modal layer blocks the layers below it: they stop trapping focus, and
|
|
55
|
+
* outside presses don't reach them. @default false
|
|
56
|
+
*/
|
|
57
|
+
modal?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Parent layer id. Defaults to the nearest `OverlayLayerProvider`. Pass
|
|
60
|
+
* `null` to make this a top-level layer.
|
|
61
|
+
*/
|
|
62
|
+
parentId?: string | null;
|
|
63
|
+
}
|
|
64
|
+
export interface OverlayLayer {
|
|
65
|
+
/** Stable id of this layer. */
|
|
66
|
+
id: string;
|
|
67
|
+
/** Id of the parent layer, or null. */
|
|
68
|
+
parentId: string | null;
|
|
69
|
+
/** True while this layer is the topmost open layer (reactive). */
|
|
70
|
+
isTopmost: boolean;
|
|
71
|
+
/** True while a modal layer is open above this one (reactive). Traps should pause. */
|
|
72
|
+
hasModalAbove: boolean;
|
|
73
|
+
/** Live (non-reactive) topmost check, for use inside event handlers. */
|
|
74
|
+
getIsTopmost: () => boolean;
|
|
75
|
+
/** True when `node` is inside this layer's elements or any child layer. */
|
|
76
|
+
contains: (node: Node | null) => boolean;
|
|
77
|
+
/** True when `node` is inside one of this layer's open child layers (not its own elements). */
|
|
78
|
+
childContains: (node: Node | null) => boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Adds dismiss handlers and inside elements to this layer. `useDismiss`
|
|
81
|
+
* calls this when given `layer`. Returns the remover.
|
|
82
|
+
*/
|
|
83
|
+
addHandlers: (ref: {
|
|
84
|
+
current: LayerHandlers;
|
|
85
|
+
}) => () => void;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Registers an overlay on the shared layer stack while `active`. Render
|
|
89
|
+
* `<OverlayLayerProvider layer={layer}>` around the overlay's content so
|
|
90
|
+
* nested overlays become child layers.
|
|
91
|
+
*/
|
|
92
|
+
export declare function useOverlayLayer({ active, modal, parentId: parentIdOption, onEscape, onOutsidePress, elements, }: UseOverlayLayerOptions): OverlayLayer;
|