@bitrix24/b24ui-nuxt 2.3.0 → 2.4.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/cli/package.json +1 -1
- package/dist/module.d.mts +2 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +3 -2
- package/dist/runtime/air-design-tokens/013_b24_mobile_light.css +1 -0
- package/dist/runtime/air-design-tokens/014_b24_mobile_dark.css +1 -0
- package/dist/runtime/air-design-tokens/015_b24_mobile_edge-light.css +1 -0
- package/dist/runtime/air-design-tokens/016_b24_mobile_edge-dark.css +1 -0
- package/dist/runtime/air-design-tokens/023_b24_desktop_light.css +1 -0
- package/dist/runtime/air-design-tokens/024_b24_desktop_dark.css +1 -0
- package/dist/runtime/air-design-tokens/025_b24_desktop_edge-light.css +1 -0
- package/dist/runtime/air-design-tokens/026_b24_desktop_edge-dark.css +1 -0
- package/dist/runtime/air-design-tokens/design-tokens/app.json +23812 -0
- package/dist/runtime/air-design-tokens/design-tokens/mobileapp.json +7476 -0
- package/dist/runtime/air-design-tokens/index.css +1 -1
- package/dist/runtime/components/Accordion.vue +11 -9
- package/dist/runtime/components/Advice.vue +13 -11
- package/dist/runtime/components/Alert.vue +11 -9
- package/dist/runtime/components/Avatar.vue +6 -4
- package/dist/runtime/components/AvatarGroup.vue +5 -3
- package/dist/runtime/components/Badge.vue +9 -7
- package/dist/runtime/components/Banner.vue +11 -9
- package/dist/runtime/components/Breadcrumb.vue +12 -10
- package/dist/runtime/components/Button.vue +14 -12
- package/dist/runtime/components/Calendar.vue +14 -12
- package/dist/runtime/components/Card.vue +6 -4
- package/dist/runtime/components/ChatMessage.vue +10 -8
- package/dist/runtime/components/ChatMessages.vue +14 -9
- package/dist/runtime/components/ChatPalette.vue +5 -3
- package/dist/runtime/components/ChatPrompt.vue +9 -6
- package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +4 -4
- package/dist/runtime/components/ChatPromptSubmit.vue +4 -2
- package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +4 -4
- package/dist/runtime/components/Checkbox.vue +18 -11
- package/dist/runtime/components/CheckboxGroup.d.vue.ts +2 -2
- package/dist/runtime/components/CheckboxGroup.vue +7 -5
- package/dist/runtime/components/CheckboxGroup.vue.d.ts +2 -2
- package/dist/runtime/components/Chip.d.vue.ts +1 -1
- package/dist/runtime/components/Chip.vue +5 -3
- package/dist/runtime/components/Chip.vue.d.ts +1 -1
- package/dist/runtime/components/Collapsible.vue +4 -2
- package/dist/runtime/components/ColorPicker.vue +9 -7
- package/dist/runtime/components/CommandPalette.d.vue.ts +4 -4
- package/dist/runtime/components/CommandPalette.vue +33 -31
- package/dist/runtime/components/CommandPalette.vue.d.ts +4 -4
- package/dist/runtime/components/Container.d.vue.ts +3 -0
- package/dist/runtime/components/Container.vue +5 -2
- package/dist/runtime/components/Container.vue.d.ts +3 -0
- package/dist/runtime/components/ContextMenu.vue +4 -2
- package/dist/runtime/components/Countdown.vue +11 -9
- package/dist/runtime/components/DashboardGroup.d.vue.ts +7 -2
- package/dist/runtime/components/DashboardGroup.vue +15 -11
- package/dist/runtime/components/DashboardGroup.vue.d.ts +7 -2
- package/dist/runtime/components/DashboardNavbar.d.vue.ts +59 -0
- package/dist/runtime/components/DashboardNavbar.vue +79 -0
- package/dist/runtime/components/DashboardNavbar.vue.d.ts +59 -0
- package/dist/runtime/components/DashboardPanel.d.vue.ts +31 -0
- package/dist/runtime/components/DashboardPanel.vue +66 -0
- package/dist/runtime/components/DashboardPanel.vue.d.ts +31 -0
- package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +22 -0
- package/dist/runtime/components/DashboardResizeHandle.vue +30 -0
- package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +22 -0
- package/dist/runtime/components/DashboardSearch.vue +5 -2
- package/dist/runtime/components/DashboardSearchButton.d.vue.ts +2 -2
- package/dist/runtime/components/DashboardSearchButton.vue +10 -6
- package/dist/runtime/components/DashboardSearchButton.vue.d.ts +2 -2
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +89 -0
- package/dist/runtime/components/DashboardSidebar.vue +169 -0
- package/dist/runtime/components/DashboardSidebar.vue.d.ts +89 -0
- package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +21 -0
- package/dist/runtime/components/DashboardSidebarCollapse.vue +64 -0
- package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +21 -0
- package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +21 -0
- package/dist/runtime/components/DashboardSidebarToggle.vue +65 -0
- package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +21 -0
- package/dist/runtime/components/DashboardToolbar.d.vue.ts +26 -0
- package/dist/runtime/components/DashboardToolbar.vue +34 -0
- package/dist/runtime/components/DashboardToolbar.vue.d.ts +26 -0
- package/dist/runtime/components/DescriptionList.vue +15 -13
- package/dist/runtime/components/Drawer.d.vue.ts +100 -0
- package/dist/runtime/components/Drawer.vue +133 -0
- package/dist/runtime/components/Drawer.vue.d.ts +100 -0
- package/dist/runtime/components/DropdownMenu.vue +6 -9
- package/dist/runtime/components/DropdownMenuContent.vue +3 -1
- package/dist/runtime/components/Editor.d.vue.ts +2 -1
- package/dist/runtime/components/Editor.vue +15 -3
- package/dist/runtime/components/Editor.vue.d.ts +2 -1
- package/dist/runtime/components/EditorDragHandle.d.vue.ts +2 -2
- package/dist/runtime/components/EditorDragHandle.vue +5 -3
- package/dist/runtime/components/EditorDragHandle.vue.d.ts +2 -2
- package/dist/runtime/components/EditorMentionMenu.vue +4 -1
- package/dist/runtime/components/EditorToolbar.vue +6 -4
- package/dist/runtime/components/Empty.vue +11 -9
- package/dist/runtime/components/Error.vue +7 -5
- package/dist/runtime/components/FieldGroup.d.vue.ts +3 -1
- package/dist/runtime/components/FieldGroup.vue +3 -1
- package/dist/runtime/components/FieldGroup.vue.d.ts +3 -1
- package/dist/runtime/components/FileUpload.vue +17 -15
- package/dist/runtime/components/Footer.d.vue.ts +30 -0
- package/dist/runtime/components/Footer.vue +47 -0
- package/dist/runtime/components/Footer.vue.d.ts +30 -0
- package/dist/runtime/components/FooterColumns.d.vue.ts +69 -0
- package/dist/runtime/components/FooterColumns.vue +83 -0
- package/dist/runtime/components/FooterColumns.vue.d.ts +69 -0
- package/dist/runtime/components/Form.d.vue.ts +3 -0
- package/dist/runtime/components/Form.vue +10 -2
- package/dist/runtime/components/Form.vue.d.ts +3 -0
- package/dist/runtime/components/FormField.vue +12 -10
- package/dist/runtime/components/Header.d.vue.ts +81 -0
- package/dist/runtime/components/Header.vue +147 -0
- package/dist/runtime/components/Header.vue.d.ts +81 -0
- package/dist/runtime/components/Input.d.vue.ts +53 -11
- package/dist/runtime/components/Input.vue +16 -12
- package/dist/runtime/components/Input.vue.d.ts +53 -11
- package/dist/runtime/components/InputDate.d.vue.ts +4 -1
- package/dist/runtime/components/InputDate.vue +19 -12
- package/dist/runtime/components/InputDate.vue.d.ts +4 -1
- package/dist/runtime/components/InputMenu.d.vue.ts +154 -26
- package/dist/runtime/components/InputMenu.vue +53 -61
- package/dist/runtime/components/InputMenu.vue.d.ts +154 -26
- package/dist/runtime/components/InputNumber.d.vue.ts +15 -14
- package/dist/runtime/components/InputNumber.vue +19 -11
- package/dist/runtime/components/InputNumber.vue.d.ts +15 -14
- package/dist/runtime/components/InputTags.d.vue.ts +2 -0
- package/dist/runtime/components/InputTags.vue +17 -13
- package/dist/runtime/components/InputTags.vue.d.ts +2 -0
- package/dist/runtime/components/InputTime.d.vue.ts +4 -1
- package/dist/runtime/components/InputTime.vue +17 -10
- package/dist/runtime/components/InputTime.vue.d.ts +4 -1
- package/dist/runtime/components/Kbd.d.vue.ts +1 -0
- package/dist/runtime/components/Kbd.vue +5 -2
- package/dist/runtime/components/Kbd.vue.d.ts +1 -0
- package/dist/runtime/components/Link.d.vue.ts +1 -1
- package/dist/runtime/components/Link.vue +7 -7
- package/dist/runtime/components/Link.vue.d.ts +1 -1
- package/dist/runtime/components/LinkBase.d.vue.ts +1 -1
- package/dist/runtime/components/LinkBase.vue.d.ts +1 -1
- package/dist/runtime/components/Main.d.vue.ts +24 -0
- package/dist/runtime/components/Main.vue +26 -0
- package/dist/runtime/components/Main.vue.d.ts +24 -0
- package/dist/runtime/components/Modal.d.vue.ts +6 -6
- package/dist/runtime/components/Modal.vue +14 -12
- package/dist/runtime/components/Modal.vue.d.ts +6 -6
- package/dist/runtime/components/Navbar.vue +3 -1
- package/dist/runtime/components/NavbarDivider.vue +3 -1
- package/dist/runtime/components/NavbarSection.vue +3 -1
- package/dist/runtime/components/NavbarSpacer.vue +3 -1
- package/dist/runtime/components/NavigationMenu.d.vue.ts +18 -19
- package/dist/runtime/components/NavigationMenu.vue +125 -65
- package/dist/runtime/components/NavigationMenu.vue.d.ts +18 -19
- package/dist/runtime/components/Page.d.vue.ts +26 -0
- package/dist/runtime/components/Page.vue +39 -0
- package/dist/runtime/components/Page.vue.d.ts +26 -0
- package/dist/runtime/components/PageAside.d.vue.ts +28 -0
- package/dist/runtime/components/PageAside.vue +38 -0
- package/dist/runtime/components/PageAside.vue.d.ts +28 -0
- package/dist/runtime/components/PageBody.d.vue.ts +22 -0
- package/dist/runtime/components/PageBody.vue +26 -0
- package/dist/runtime/components/PageBody.vue.d.ts +22 -0
- package/dist/runtime/components/PageCard.vue +12 -10
- package/dist/runtime/components/PageColumns.d.vue.ts +3 -0
- package/dist/runtime/components/PageColumns.vue +5 -2
- package/dist/runtime/components/PageColumns.vue.d.ts +3 -0
- package/dist/runtime/components/PageFeature.d.vue.ts +47 -0
- package/dist/runtime/components/PageFeature.vue +79 -0
- package/dist/runtime/components/PageFeature.vue.d.ts +47 -0
- package/dist/runtime/components/PageGrid.d.vue.ts +3 -0
- package/dist/runtime/components/PageGrid.vue +5 -2
- package/dist/runtime/components/PageGrid.vue.d.ts +3 -0
- package/dist/runtime/components/PageHeader.d.vue.ts +37 -0
- package/dist/runtime/components/PageHeader.vue +67 -0
- package/dist/runtime/components/PageHeader.vue.d.ts +37 -0
- package/dist/runtime/components/PageLinks.vue +11 -9
- package/dist/runtime/components/PageList.d.vue.ts +3 -0
- package/dist/runtime/components/PageList.vue +5 -2
- package/dist/runtime/components/PageList.vue.d.ts +3 -0
- package/dist/runtime/components/PageSection.d.vue.ts +71 -0
- package/dist/runtime/components/PageSection.vue +110 -0
- package/dist/runtime/components/PageSection.vue.d.ts +71 -0
- package/dist/runtime/components/Pagination.d.vue.ts +2 -2
- package/dist/runtime/components/Pagination.vue +10 -8
- package/dist/runtime/components/Pagination.vue.d.ts +2 -2
- package/dist/runtime/components/PinInput.d.vue.ts +4 -1
- package/dist/runtime/components/PinInput.vue +10 -3
- package/dist/runtime/components/PinInput.vue.d.ts +4 -1
- package/dist/runtime/components/Popover.vue +4 -2
- package/dist/runtime/components/Progress.vue +8 -6
- package/dist/runtime/components/RadioGroup.d.vue.ts +2 -2
- package/dist/runtime/components/RadioGroup.vue +12 -10
- package/dist/runtime/components/RadioGroup.vue.d.ts +2 -2
- package/dist/runtime/components/Range.vue +7 -5
- package/dist/runtime/components/ScrollArea.d.vue.ts +7 -0
- package/dist/runtime/components/ScrollArea.vue +34 -10
- package/dist/runtime/components/ScrollArea.vue.d.ts +7 -0
- package/dist/runtime/components/Select.d.vue.ts +64 -20
- package/dist/runtime/components/Select.vue +35 -36
- package/dist/runtime/components/Select.vue.d.ts +64 -20
- package/dist/runtime/components/SelectMenu.d.vue.ts +116 -31
- package/dist/runtime/components/SelectMenu.vue +56 -60
- package/dist/runtime/components/SelectMenu.vue.d.ts +116 -31
- package/dist/runtime/components/Separator.d.vue.ts +2 -2
- package/dist/runtime/components/Separator.vue +9 -7
- package/dist/runtime/components/Separator.vue.d.ts +2 -2
- package/dist/runtime/components/Sidebar.vue +3 -1
- package/dist/runtime/components/SidebarBody.d.vue.ts +0 -3
- package/dist/runtime/components/SidebarBody.vue +3 -1
- package/dist/runtime/components/SidebarBody.vue.d.ts +0 -3
- package/dist/runtime/components/SidebarFooter.d.vue.ts +0 -3
- package/dist/runtime/components/SidebarFooter.vue +3 -1
- package/dist/runtime/components/SidebarFooter.vue.d.ts +0 -3
- package/dist/runtime/components/SidebarHeader.d.vue.ts +0 -3
- package/dist/runtime/components/SidebarHeader.vue +3 -1
- package/dist/runtime/components/SidebarHeader.vue.d.ts +0 -3
- package/dist/runtime/components/SidebarHeading.d.vue.ts +0 -3
- package/dist/runtime/components/SidebarHeading.vue +3 -1
- package/dist/runtime/components/SidebarHeading.vue.d.ts +0 -3
- package/dist/runtime/components/SidebarLayout.d.vue.ts +1 -1
- package/dist/runtime/components/SidebarLayout.vue +21 -19
- package/dist/runtime/components/SidebarLayout.vue.d.ts +1 -1
- package/dist/runtime/components/SidebarSection.d.vue.ts +0 -3
- package/dist/runtime/components/SidebarSection.vue +3 -1
- package/dist/runtime/components/SidebarSection.vue.d.ts +0 -3
- package/dist/runtime/components/SidebarSpacer.d.vue.ts +0 -3
- package/dist/runtime/components/SidebarSpacer.vue +3 -1
- package/dist/runtime/components/SidebarSpacer.vue.d.ts +0 -3
- package/dist/runtime/components/Skeleton.vue +3 -1
- package/dist/runtime/components/Slideover.d.vue.ts +3 -3
- package/dist/runtime/components/Slideover.vue +19 -17
- package/dist/runtime/components/Slideover.vue.d.ts +3 -3
- package/dist/runtime/components/Stepper.vue +14 -12
- package/dist/runtime/components/Switch.vue +19 -13
- package/dist/runtime/components/Table.vue +25 -23
- package/dist/runtime/components/TableWrapper.vue +3 -1
- package/dist/runtime/components/Tabs.d.vue.ts +2 -1
- package/dist/runtime/components/Tabs.vue +17 -12
- package/dist/runtime/components/Tabs.vue.d.ts +2 -1
- package/dist/runtime/components/Textarea.d.vue.ts +53 -11
- package/dist/runtime/components/Textarea.vue +18 -14
- package/dist/runtime/components/Textarea.vue.d.ts +53 -11
- package/dist/runtime/components/Theme.d.vue.ts +17 -0
- package/dist/runtime/components/Theme.vue +17 -0
- package/dist/runtime/components/Theme.vue.d.ts +17 -0
- package/dist/runtime/components/Timeline.vue +11 -9
- package/dist/runtime/components/Toast.vue +15 -15
- package/dist/runtime/components/Toaster.d.vue.ts +1 -1
- package/dist/runtime/components/Toaster.vue +6 -3
- package/dist/runtime/components/Toaster.vue.d.ts +1 -1
- package/dist/runtime/components/Tooltip.vue +8 -6
- package/dist/runtime/components/User.vue +8 -6
- package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +1 -1
- package/dist/runtime/components/color-mode/ColorModeButton.vue +4 -2
- package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +1 -1
- package/dist/runtime/components/color-mode/ColorModeImage.vue +8 -3
- package/dist/runtime/components/color-mode/ColorModeSelect.vue +1 -1
- package/dist/runtime/components/content/ContentSearch.vue +5 -2
- package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +2 -2
- package/dist/runtime/components/content/ContentSearchButton.vue +5 -3
- package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +2 -2
- package/dist/runtime/components/content/ContentSurround.vue +8 -6
- package/dist/runtime/components/content/ContentToc.vue +15 -13
- package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +1 -1
- package/dist/runtime/components/locale/LocaleSelect.vue +1 -1
- package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +1 -1
- package/dist/runtime/components/prose/A.vue +3 -1
- package/dist/runtime/components/prose/Accordion.vue +3 -1
- package/dist/runtime/components/prose/AccordionItem.d.vue.ts +3 -0
- package/dist/runtime/components/prose/AccordionItem.vue +5 -2
- package/dist/runtime/components/prose/AccordionItem.vue.d.ts +3 -0
- package/dist/runtime/components/prose/Badge.d.vue.ts +3 -0
- package/dist/runtime/components/prose/Badge.vue +5 -2
- package/dist/runtime/components/prose/Badge.vue.d.ts +3 -0
- package/dist/runtime/components/prose/Blockquote.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Blockquote.vue +3 -1
- package/dist/runtime/components/prose/Blockquote.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Callout.vue +5 -3
- package/dist/runtime/components/prose/Card.vue +7 -5
- package/dist/runtime/components/prose/CardGroup.d.vue.ts +3 -0
- package/dist/runtime/components/prose/CardGroup.vue +5 -2
- package/dist/runtime/components/prose/CardGroup.vue.d.ts +3 -0
- package/dist/runtime/components/prose/Code.vue +3 -1
- package/dist/runtime/components/prose/CodeCollapse.vue +6 -4
- package/dist/runtime/components/prose/CodeGroup.vue +8 -6
- package/dist/runtime/components/prose/CodePreview.vue +5 -3
- package/dist/runtime/components/prose/Collapsible.vue +6 -4
- package/dist/runtime/components/prose/Em.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Em.vue +3 -1
- package/dist/runtime/components/prose/Em.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Field.vue +9 -7
- package/dist/runtime/components/prose/FieldGroup.d.vue.ts +3 -0
- package/dist/runtime/components/prose/FieldGroup.vue +5 -2
- package/dist/runtime/components/prose/FieldGroup.vue.d.ts +3 -0
- package/dist/runtime/components/prose/H1.vue +4 -2
- package/dist/runtime/components/prose/H2.vue +6 -4
- package/dist/runtime/components/prose/H3.vue +6 -4
- package/dist/runtime/components/prose/H4.vue +6 -4
- package/dist/runtime/components/prose/H5.vue +3 -1
- package/dist/runtime/components/prose/H6.vue +3 -1
- package/dist/runtime/components/prose/Hr.d.vue.ts +0 -6
- package/dist/runtime/components/prose/Hr.vue +3 -1
- package/dist/runtime/components/prose/Hr.vue.d.ts +0 -6
- package/dist/runtime/components/prose/Img.vue +9 -8
- package/dist/runtime/components/prose/Kbd.d.vue.ts +3 -0
- package/dist/runtime/components/prose/Kbd.vue +5 -2
- package/dist/runtime/components/prose/Kbd.vue.d.ts +3 -0
- package/dist/runtime/components/prose/Li.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Li.vue +3 -1
- package/dist/runtime/components/prose/Li.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Ol.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Ol.vue +3 -1
- package/dist/runtime/components/prose/Ol.vue.d.ts +0 -3
- package/dist/runtime/components/prose/P.vue +3 -1
- package/dist/runtime/components/prose/Pre.vue +8 -6
- package/dist/runtime/components/prose/Steps.d.vue.ts +3 -0
- package/dist/runtime/components/prose/Steps.vue +5 -2
- package/dist/runtime/components/prose/Steps.vue.d.ts +3 -0
- package/dist/runtime/components/prose/Strong.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Strong.vue +3 -1
- package/dist/runtime/components/prose/Strong.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Table.vue +4 -2
- package/dist/runtime/components/prose/Tabs.vue +3 -1
- package/dist/runtime/components/prose/TabsItem.d.vue.ts +3 -0
- package/dist/runtime/components/prose/TabsItem.vue +5 -2
- package/dist/runtime/components/prose/TabsItem.vue.d.ts +3 -0
- package/dist/runtime/components/prose/Tbody.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Tbody.vue +3 -1
- package/dist/runtime/components/prose/Tbody.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Td.vue +3 -1
- package/dist/runtime/components/prose/Th.vue +3 -1
- package/dist/runtime/components/prose/Thead.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Thead.vue +3 -1
- package/dist/runtime/components/prose/Thead.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Tr.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Tr.vue +3 -1
- package/dist/runtime/components/prose/Tr.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Ul.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Ul.vue +3 -1
- package/dist/runtime/components/prose/Ul.vue.d.ts +0 -3
- package/dist/runtime/composables/color-mode/useColorMode.d.ts +6 -0
- package/dist/runtime/composables/color-mode/useColorMode.js +15 -6
- package/dist/runtime/composables/defineShortcuts.js +4 -1
- package/dist/runtime/composables/internal/useFilter.d.ts +9 -0
- package/dist/runtime/composables/internal/useFilter.js +60 -0
- package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
- package/dist/runtime/composables/useComponentUI.d.ts +33 -0
- package/dist/runtime/composables/useComponentUI.js +13 -0
- package/dist/runtime/composables/useEditorMenu.d.ts +11 -0
- package/dist/runtime/composables/useEditorMenu.js +144 -166
- package/dist/runtime/composables/useFieldGroup.d.ts +1 -1
- package/dist/runtime/composables/useFormField.d.ts +1 -1
- package/dist/runtime/composables/useLoading.d.ts +3 -0
- package/dist/runtime/composables/useResizable.d.ts +1 -1
- package/dist/runtime/composables/useResizable.js +1 -1
- package/dist/runtime/composables/useToast.d.ts +4 -0
- package/dist/runtime/composables/useToast.js +25 -1
- package/dist/runtime/dictionary/icons.d.ts +3 -0
- package/dist/runtime/dictionary/icons.js +7 -1
- package/dist/runtime/index.css +1 -1
- package/dist/runtime/keyframes.css +1 -1
- package/dist/runtime/plugins/platform.d.ts +34 -0
- package/dist/runtime/plugins/platform.js +31 -0
- package/dist/runtime/plugins/ui-version.d.ts +1 -1
- package/dist/runtime/types/color-mode.d.ts +1 -1
- package/dist/runtime/types/index.d.ts +19 -0
- package/dist/runtime/types/index.js +19 -0
- package/dist/runtime/types/input.d.ts +16 -6
- package/dist/runtime/types/utils.d.ts +10 -8
- package/dist/runtime/utils/dashboard.d.ts +4 -5
- package/dist/runtime/utils/dashboard.js +1 -1
- package/dist/runtime/utils/index.d.ts +2 -1
- package/dist/runtime/utils/index.js +11 -1
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +1 -1
- package/dist/runtime/vue/overrides/inertia/Link.d.vue.ts +1 -1
- package/dist/runtime/vue/overrides/inertia/Link.vue.d.ts +1 -1
- package/dist/runtime/vue/overrides/inertia/LinkBase.d.vue.ts +1 -1
- package/dist/runtime/vue/overrides/inertia/LinkBase.vue.d.ts +1 -1
- package/dist/runtime/vue/overrides/none/Link.d.vue.ts +1 -1
- package/dist/runtime/vue/overrides/none/Link.vue.d.ts +1 -1
- package/dist/runtime/vue/overrides/vue-router/Link.d.vue.ts +1 -1
- package/dist/runtime/vue/overrides/vue-router/Link.vue.d.ts +1 -1
- package/dist/runtime/vue/stubs/base.d.ts +9 -13
- package/dist/runtime/vue/stubs/base.js +11 -33
- package/dist/shared/{b24ui-nuxt.DEyBXBFe.mjs → b24ui-nuxt.DstlkmYO.mjs} +653 -51
- package/dist/unplugin.d.mts +2 -1
- package/dist/unplugin.mjs +2 -1
- package/dist/vite.mjs +1 -1
- package/package.json +50 -52
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ComponentPublicInstance } from 'vue';
|
|
1
2
|
import type { PinInputRootEmits, PinInputRootProps } from 'reka-ui';
|
|
2
3
|
import type { AppConfig } from '@nuxt/schema';
|
|
3
4
|
import theme from '#build/b24ui/pin-input';
|
|
@@ -41,6 +42,8 @@ export interface PinInputProps<T extends PinInputType = 'text'> extends Pick<Pin
|
|
|
41
42
|
autofocus?: boolean;
|
|
42
43
|
autofocusDelay?: number;
|
|
43
44
|
highlight?: boolean;
|
|
45
|
+
/** Keep the mobile text size on all breakpoints. (Left for backward compatibility.) */
|
|
46
|
+
fixed?: boolean;
|
|
44
47
|
class?: any;
|
|
45
48
|
b24ui?: PinInput['slots'];
|
|
46
49
|
}
|
|
@@ -60,7 +63,7 @@ declare const __VLS_export: <T extends PinInputType>(__VLS_props: NonNullable<Aw
|
|
|
60
63
|
__VLS_PROPS_FALLBACK: infer P;
|
|
61
64
|
} ? P : {});
|
|
62
65
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
63
|
-
inputsRef: import("vue").Ref<
|
|
66
|
+
inputsRef: import("vue").Ref<ComponentPublicInstance[], ComponentPublicInstance[]>;
|
|
64
67
|
}>) => void;
|
|
65
68
|
attrs: any;
|
|
66
69
|
slots: {};
|
|
@@ -9,6 +9,7 @@ import { useForwardPropsEmits } from "reka-ui";
|
|
|
9
9
|
import { Popover, HoverCard } from "reka-ui/namespaced";
|
|
10
10
|
import { reactivePick } from "@vueuse/core";
|
|
11
11
|
import { useAppConfig } from "#imports";
|
|
12
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
12
13
|
import { usePortal } from "../composables/usePortal";
|
|
13
14
|
import { pointerDownOutside } from "../utils/overlay";
|
|
14
15
|
import { tv } from "../utils/tv";
|
|
@@ -30,6 +31,7 @@ const props = defineProps({
|
|
|
30
31
|
const emits = defineEmits(["close:prevent", "update:open"]);
|
|
31
32
|
const slots = defineSlots();
|
|
32
33
|
const appConfig = useAppConfig();
|
|
34
|
+
const uiProp = useComponentUI("popover", props);
|
|
33
35
|
const pick = props.mode === "hover" ? reactivePick(props, "defaultOpen", "open", "openDelay", "closeDelay") : reactivePick(props, "defaultOpen", "open", "modal");
|
|
34
36
|
const rootProps = useForwardPropsEmits(pick, emits);
|
|
35
37
|
const portalProps = usePortal(toRef(() => props.portal));
|
|
@@ -72,10 +74,10 @@ const Component = computed(() => props.mode === "hover" ? HoverCard : Popover);
|
|
|
72
74
|
</Component.Anchor>
|
|
73
75
|
|
|
74
76
|
<Component.Portal v-bind="portalProps">
|
|
75
|
-
<Component.Content v-bind="contentProps" data-slot="content" :class="b24ui.content({ class: [!slots.default && props.class,
|
|
77
|
+
<Component.Content v-bind="contentProps" data-slot="content" :class="b24ui.content({ class: [!slots.default && props.class, uiProp?.content] })" v-on="contentEvents">
|
|
76
78
|
<slot name="content" v-bind="close ? { close } : {}" />
|
|
77
79
|
|
|
78
|
-
<Component.Arrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class:
|
|
80
|
+
<Component.Arrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: uiProp?.arrow })" />
|
|
79
81
|
</Component.Content>
|
|
80
82
|
</Component.Portal>
|
|
81
83
|
</Component.Root>
|
|
@@ -7,6 +7,7 @@ import { computed } from "vue";
|
|
|
7
7
|
import { Primitive, ProgressRoot, ProgressIndicator, useForwardPropsEmits } from "reka-ui";
|
|
8
8
|
import { reactivePick } from "@vueuse/core";
|
|
9
9
|
import { useAppConfig } from "#imports";
|
|
10
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
10
11
|
import { useLocale } from "../composables/useLocale";
|
|
11
12
|
import { tv } from "../utils/tv";
|
|
12
13
|
const props = defineProps({
|
|
@@ -28,6 +29,7 @@ const emits = defineEmits(["update:modelValue", "update:max"]);
|
|
|
28
29
|
const slots = defineSlots();
|
|
29
30
|
const { dir } = useLocale();
|
|
30
31
|
const appConfig = useAppConfig();
|
|
32
|
+
const uiProp = useComponentUI("progress", props);
|
|
31
33
|
const rootProps = useForwardPropsEmits(reactivePick(props, "getValueLabel", "getValueText", "modelValue"), emits);
|
|
32
34
|
const isIndeterminate = computed(() => rootProps.value.modelValue === null);
|
|
33
35
|
const hasSteps = computed(() => Array.isArray(props.max));
|
|
@@ -110,19 +112,19 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.progres
|
|
|
110
112
|
</script>
|
|
111
113
|
|
|
112
114
|
<template>
|
|
113
|
-
<Primitive :as="as" :data-orientation="orientation" data-slot="root" :class="b24ui.root({ class: [
|
|
114
|
-
<div v-if="!isIndeterminate && (status || !!slots.status)" data-slot="status" :class="b24ui.status({ class:
|
|
115
|
+
<Primitive :as="as" :data-orientation="orientation" data-slot="root" :class="b24ui.root({ class: [uiProp?.root, props.class] })">
|
|
116
|
+
<div v-if="!isIndeterminate && (status || !!slots.status)" data-slot="status" :class="b24ui.status({ class: uiProp?.status })" :style="statusStyle">
|
|
115
117
|
<slot name="status" :percent="percent">
|
|
116
118
|
{{ percent }}%
|
|
117
119
|
</slot>
|
|
118
120
|
</div>
|
|
119
121
|
|
|
120
|
-
<ProgressRoot v-bind="rootProps" :max="realMax" data-slot="base" :class="b24ui.base({ class:
|
|
121
|
-
<ProgressIndicator data-slot="indicator" :class="b24ui.indicator({ class:
|
|
122
|
+
<ProgressRoot v-bind="rootProps" :max="realMax" data-slot="base" :class="b24ui.base({ class: uiProp?.base })" style="transform: translateZ(0)">
|
|
123
|
+
<ProgressIndicator data-slot="indicator" :class="b24ui.indicator({ class: uiProp?.indicator })" :style="indicatorStyle" />
|
|
122
124
|
</ProgressRoot>
|
|
123
125
|
|
|
124
|
-
<div v-if="hasSteps" data-slot="steps" :class="b24ui.steps({ class:
|
|
125
|
-
<div v-for="(step, index) in max" :key="index" data-slot="step" :class="b24ui.step({ class:
|
|
126
|
+
<div v-if="hasSteps" data-slot="steps" :class="b24ui.steps({ class: uiProp?.steps })">
|
|
127
|
+
<div v-for="(step, index) in max" :key="index" data-slot="step" :class="b24ui.step({ class: uiProp?.step, step: stepVariant(index) })">
|
|
126
128
|
<slot :name="`step-${index}`" :step="step">
|
|
127
129
|
{{ step }}
|
|
128
130
|
</slot>
|
|
@@ -86,14 +86,14 @@ export default _default;
|
|
|
86
86
|
declare const __VLS_export: <T extends RadioGroupItem[], VK extends GetItemKeys<T> = "value">(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
87
87
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<RadioGroupProps<T, VK> & {
|
|
88
88
|
onChange?: ((event: Event) => any) | undefined;
|
|
89
|
-
"onUpdate:modelValue"?: ((value: import("../types").GetItemValue<T, VK, import("../types").NestedItem<T>>) => any) | undefined;
|
|
89
|
+
"onUpdate:modelValue"?: ((value: import("../types").GetItemValue<T, VK, undefined, import("../types").NestedItem<T>>) => any) | undefined;
|
|
90
90
|
}> & (typeof globalThis extends {
|
|
91
91
|
__VLS_PROPS_FALLBACK: infer P;
|
|
92
92
|
} ? P : {});
|
|
93
93
|
expose: (exposed: {}) => void;
|
|
94
94
|
attrs: any;
|
|
95
95
|
slots: RadioGroupSlots<T>;
|
|
96
|
-
emit: ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: import("../types").GetItemValue<T, VK, import("../types").NestedItem<T>>) => void);
|
|
96
|
+
emit: ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: import("../types").GetItemValue<T, VK, undefined, import("../types").NestedItem<T>>) => void);
|
|
97
97
|
}>) => import("vue").VNode & {
|
|
98
98
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
99
99
|
};
|
|
@@ -7,6 +7,7 @@ import { computed, useId } from "vue";
|
|
|
7
7
|
import { RadioGroupRoot, RadioGroupItem as RRadioGroupItem, RadioGroupIndicator, Label, useForwardPropsEmits } from "reka-ui";
|
|
8
8
|
import { reactivePick } from "@vueuse/core";
|
|
9
9
|
import { useAppConfig } from "#imports";
|
|
10
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
10
11
|
import { useFormField } from "../composables/useFormField";
|
|
11
12
|
import { get } from "../utils";
|
|
12
13
|
import { tv } from "../utils/tv";
|
|
@@ -34,6 +35,7 @@ const props = defineProps({
|
|
|
34
35
|
const emits = defineEmits(["change", "update:modelValue"]);
|
|
35
36
|
const slots = defineSlots();
|
|
36
37
|
const appConfig = useAppConfig();
|
|
38
|
+
const uiProp = useComponentUI("radioGroup", props);
|
|
37
39
|
const rootProps = useForwardPropsEmits(reactivePick(props, "as", "loop", "required"), emits);
|
|
38
40
|
const { emitFormChange, emitFormInput, color, name, size, id: _id, disabled, ariaAttrs } = useFormField(props, { bind: false });
|
|
39
41
|
const id = _id.value ?? useId();
|
|
@@ -96,11 +98,11 @@ function onUpdate(value) {
|
|
|
96
98
|
:name="name"
|
|
97
99
|
:disabled="disabled"
|
|
98
100
|
data-slot="root"
|
|
99
|
-
:class="b24ui.root({ class: [
|
|
101
|
+
:class="b24ui.root({ class: [uiProp?.root, props.class] })"
|
|
100
102
|
@update:model-value="onUpdate"
|
|
101
103
|
>
|
|
102
|
-
<fieldset data-slot="fieldset" :class="b24ui.fieldset({ class:
|
|
103
|
-
<legend v-if="legend || !!slots.legend" data-slot="legend" :class="b24ui.legend({ class:
|
|
104
|
+
<fieldset data-slot="fieldset" :class="b24ui.fieldset({ class: uiProp?.fieldset })" v-bind="ariaAttrs">
|
|
105
|
+
<legend v-if="legend || !!slots.legend" data-slot="legend" :class="b24ui.legend({ class: uiProp?.legend })">
|
|
104
106
|
<slot name="legend">
|
|
105
107
|
{{ legend }}
|
|
106
108
|
</slot>
|
|
@@ -111,31 +113,31 @@ function onUpdate(value) {
|
|
|
111
113
|
v-for="item in normalizedItems"
|
|
112
114
|
:key="item.value"
|
|
113
115
|
data-slot="item"
|
|
114
|
-
:class="b24ui.item({ class: [
|
|
116
|
+
:class="b24ui.item({ class: [uiProp?.item, item.b24ui?.item, item.class], disabled: item.disabled || disabled })"
|
|
115
117
|
>
|
|
116
|
-
<div data-slot="container" :class="b24ui.container({ class: [
|
|
118
|
+
<div data-slot="container" :class="b24ui.container({ class: [uiProp?.container, item.b24ui?.container] })">
|
|
117
119
|
<RRadioGroupItem
|
|
118
120
|
:id="item.id"
|
|
119
121
|
:value="item.value"
|
|
120
122
|
:disabled="item.disabled || disabled"
|
|
121
123
|
data-slot="base"
|
|
122
|
-
:class="b24ui.base({ class: [
|
|
124
|
+
:class="b24ui.base({ class: [uiProp?.base, item.b24ui?.base], disabled: item.disabled || disabled })"
|
|
123
125
|
>
|
|
124
|
-
<RadioGroupIndicator data-slot="indicator" :class="b24ui.indicator({ class: [
|
|
126
|
+
<RadioGroupIndicator data-slot="indicator" :class="b24ui.indicator({ class: [uiProp?.indicator, item.b24ui?.indicator] })" />
|
|
125
127
|
</RRadioGroupItem>
|
|
126
128
|
</div>
|
|
127
129
|
|
|
128
130
|
<div
|
|
129
131
|
v-if="item.label || !!slots.label || (item.description || !!slots.description)"
|
|
130
132
|
data-slot="wrapper"
|
|
131
|
-
:class="b24ui.wrapper({ class: [
|
|
133
|
+
:class="b24ui.wrapper({ class: [uiProp?.wrapper, item.b24ui?.wrapper] })"
|
|
132
134
|
>
|
|
133
135
|
<component
|
|
134
136
|
:is="!variant || variant === 'list' ? Label : 'p'"
|
|
135
137
|
v-if="item.label || !!slots.label"
|
|
136
138
|
:for="item.id"
|
|
137
139
|
data-slot="label"
|
|
138
|
-
:class="b24ui.label({ class: [
|
|
140
|
+
:class="b24ui.label({ class: [uiProp?.label, item.b24ui?.label], disabled: item.disabled || disabled })"
|
|
139
141
|
>
|
|
140
142
|
<slot name="label" :item="item" :model-value="modelValue">
|
|
141
143
|
{{ item.label }}
|
|
@@ -144,7 +146,7 @@ function onUpdate(value) {
|
|
|
144
146
|
<p
|
|
145
147
|
v-if="item.description || !!slots.description"
|
|
146
148
|
data-slot="description"
|
|
147
|
-
:class="b24ui.description({ class: [
|
|
149
|
+
:class="b24ui.description({ class: [uiProp?.description, item.b24ui?.description], disabled: item.disabled || disabled })"
|
|
148
150
|
>
|
|
149
151
|
<slot name="description" :item="item" :model-value="modelValue">
|
|
150
152
|
{{ item.description }}
|
|
@@ -86,14 +86,14 @@ export default _default;
|
|
|
86
86
|
declare const __VLS_export: <T extends RadioGroupItem[], VK extends GetItemKeys<T> = "value">(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
87
87
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<RadioGroupProps<T, VK> & {
|
|
88
88
|
onChange?: ((event: Event) => any) | undefined;
|
|
89
|
-
"onUpdate:modelValue"?: ((value: import("../types").GetItemValue<T, VK, import("../types").NestedItem<T>>) => any) | undefined;
|
|
89
|
+
"onUpdate:modelValue"?: ((value: import("../types").GetItemValue<T, VK, undefined, import("../types").NestedItem<T>>) => any) | undefined;
|
|
90
90
|
}> & (typeof globalThis extends {
|
|
91
91
|
__VLS_PROPS_FALLBACK: infer P;
|
|
92
92
|
} ? P : {});
|
|
93
93
|
expose: (exposed: {}) => void;
|
|
94
94
|
attrs: any;
|
|
95
95
|
slots: RadioGroupSlots<T>;
|
|
96
|
-
emit: ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: import("../types").GetItemValue<T, VK, import("../types").NestedItem<T>>) => void);
|
|
96
|
+
emit: ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: import("../types").GetItemValue<T, VK, undefined, import("../types").NestedItem<T>>) => void);
|
|
97
97
|
}>) => import("vue").VNode & {
|
|
98
98
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
99
99
|
};
|
|
@@ -7,6 +7,7 @@ import { computed } from "vue";
|
|
|
7
7
|
import { SliderRoot, SliderRange, SliderTrack, SliderThumb, useForwardPropsEmits } from "reka-ui";
|
|
8
8
|
import { reactivePick } from "@vueuse/core";
|
|
9
9
|
import { useAppConfig } from "#imports";
|
|
10
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
10
11
|
import { useFormField } from "../composables/useFormField";
|
|
11
12
|
import { tv } from "../utils/tv";
|
|
12
13
|
import B24Tooltip from "./Tooltip.vue";
|
|
@@ -30,6 +31,7 @@ const props = defineProps({
|
|
|
30
31
|
const emits = defineEmits(["change"]);
|
|
31
32
|
const modelValue = defineModel({ type: null });
|
|
32
33
|
const appConfig = useAppConfig();
|
|
34
|
+
const uiProp = useComponentUI("range", props);
|
|
33
35
|
const rootProps = useForwardPropsEmits(reactivePick(props, "as", "orientation", "min", "max", "step", "minStepsBetweenThumbs", "inverted"), emits);
|
|
34
36
|
const { id, emitFormChange, emitFormInput, size, color, name, disabled, ariaAttrs } = useFormField(props);
|
|
35
37
|
const defaultRangeValue = computed(() => {
|
|
@@ -71,13 +73,13 @@ function onChange(value) {
|
|
|
71
73
|
:name="name"
|
|
72
74
|
:disabled="disabled"
|
|
73
75
|
data-slot="root"
|
|
74
|
-
:class="b24ui.root({ class: [
|
|
76
|
+
:class="b24ui.root({ class: [uiProp?.root, props.class] })"
|
|
75
77
|
:default-value="defaultRangeValue"
|
|
76
78
|
@update:model-value="emitFormInput()"
|
|
77
79
|
@value-commit="onChange"
|
|
78
80
|
>
|
|
79
|
-
<SliderTrack data-slot="track" :class="b24ui.track({ class:
|
|
80
|
-
<SliderRange data-slot="range" :class="b24ui.range({ class:
|
|
81
|
+
<SliderTrack data-slot="track" :class="b24ui.track({ class: uiProp?.track })">
|
|
82
|
+
<SliderRange data-slot="range" :class="b24ui.range({ class: uiProp?.range })" />
|
|
81
83
|
</SliderTrack>
|
|
82
84
|
|
|
83
85
|
<template v-for="thumb in thumbs" :key="thumb">
|
|
@@ -87,9 +89,9 @@ function onChange(value) {
|
|
|
87
89
|
disable-closing-trigger
|
|
88
90
|
v-bind="typeof tooltip === 'object' ? tooltip : {}"
|
|
89
91
|
>
|
|
90
|
-
<SliderThumb data-slot="thumb" :class="b24ui.thumb({ class:
|
|
92
|
+
<SliderThumb data-slot="thumb" :class="b24ui.thumb({ class: uiProp?.thumb })" :aria-label="thumbs === 1 ? 'Thumb' : `Thumb ${thumb} of ${thumbs}`" />
|
|
91
93
|
</B24Tooltip>
|
|
92
|
-
<SliderThumb v-else data-slot="thumb" :class="b24ui.thumb({ class:
|
|
94
|
+
<SliderThumb v-else data-slot="thumb" :class="b24ui.thumb({ class: uiProp?.thumb })" :aria-label="thumbs === 1 ? 'Thumb' : `Thumb ${thumb} of ${thumbs}`" />
|
|
93
95
|
</template>
|
|
94
96
|
</SliderRoot>
|
|
95
97
|
</template>
|
|
@@ -20,6 +20,13 @@ export interface ScrollAreaVirtualizeOptions extends Partial<Omit<VirtualizerOpt
|
|
|
20
20
|
* @defaultValue undefined
|
|
21
21
|
*/
|
|
22
22
|
lanes?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Skip per-item DOM measurement for uniform-height items.
|
|
25
|
+
* When `true`, uses `estimateSize` only — significantly improving performance for uniform items.
|
|
26
|
+
* When `false` (default), measures each item for variable-height layouts (e.g., masonry).
|
|
27
|
+
* @defaultValue false
|
|
28
|
+
*/
|
|
29
|
+
skipMeasurement?: boolean;
|
|
23
30
|
}
|
|
24
31
|
export type ScrollAreaItem = any;
|
|
25
32
|
export interface ScrollAreaProps<T extends ScrollAreaItem = ScrollAreaItem> {
|
|
@@ -3,11 +3,12 @@ import theme from "#build/b24ui/scroll-area";
|
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
5
|
<script setup>
|
|
6
|
-
import { computed, toRef, useTemplateRef, watch } from "vue";
|
|
6
|
+
import { computed, onMounted, onUnmounted, toRef, useTemplateRef, watch } from "vue";
|
|
7
7
|
import { Primitive } from "reka-ui";
|
|
8
8
|
import { defu } from "defu";
|
|
9
9
|
import { useVirtualizer } from "@tanstack/vue-virtual";
|
|
10
10
|
import { useAppConfig } from "#imports";
|
|
11
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
11
12
|
import { tv } from "../utils/tv";
|
|
12
13
|
import { useLocale } from "../composables/useLocale";
|
|
13
14
|
const props = defineProps({
|
|
@@ -22,6 +23,7 @@ defineSlots();
|
|
|
22
23
|
const emits = defineEmits(["scroll"]);
|
|
23
24
|
const { dir } = useLocale();
|
|
24
25
|
const appConfig = useAppConfig();
|
|
26
|
+
const uiProp = useComponentUI("scrollArea", props);
|
|
25
27
|
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.scrollArea || {} })({
|
|
26
28
|
orientation: props.orientation
|
|
27
29
|
}));
|
|
@@ -44,6 +46,9 @@ const lanes = computed(() => {
|
|
|
44
46
|
const value = virtualizerProps.value.lanes;
|
|
45
47
|
return typeof value === "number" ? value : void 0;
|
|
46
48
|
});
|
|
49
|
+
const skipMeasurement = computed(() => {
|
|
50
|
+
return typeof props.virtualize === "object" && props.virtualize.skipMeasurement === true;
|
|
51
|
+
});
|
|
47
52
|
const virtualizer = !!props.virtualize && useVirtualizer({
|
|
48
53
|
...virtualizerProps.value,
|
|
49
54
|
get overscan() {
|
|
@@ -101,13 +106,32 @@ function getVirtualItemStyle(virtualItem) {
|
|
|
101
106
|
transform: isHorizontal.value ? `translateX(${isRtl.value ? -virtualItem.start : virtualItem.start}px)` : `translateY(${virtualItem.start}px)`
|
|
102
107
|
};
|
|
103
108
|
}
|
|
104
|
-
|
|
109
|
+
let resizeObserver = null;
|
|
110
|
+
let rafId = null;
|
|
111
|
+
onMounted(() => {
|
|
105
112
|
if (virtualizer) {
|
|
106
|
-
|
|
113
|
+
const el = rootRef.value?.$el;
|
|
114
|
+
if (el) {
|
|
115
|
+
resizeObserver = new ResizeObserver(() => {
|
|
116
|
+
if (rafId !== null) return;
|
|
117
|
+
rafId = requestAnimationFrame(() => {
|
|
118
|
+
rafId = null;
|
|
119
|
+
virtualizer.value.measure();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
resizeObserver.observe(el);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
onUnmounted(() => {
|
|
127
|
+
if (rafId !== null) {
|
|
128
|
+
cancelAnimationFrame(rafId);
|
|
129
|
+
rafId = null;
|
|
107
130
|
}
|
|
108
|
-
|
|
131
|
+
resizeObserver?.disconnect();
|
|
132
|
+
});
|
|
109
133
|
function measureElement(el) {
|
|
110
|
-
if (el && virtualizer) {
|
|
134
|
+
if (el && virtualizer && !skipMeasurement.value) {
|
|
111
135
|
const element = el instanceof Element ? el : el.$el;
|
|
112
136
|
virtualizer.value.measureElement(element);
|
|
113
137
|
}
|
|
@@ -139,12 +163,12 @@ defineExpose({
|
|
|
139
163
|
:as="as"
|
|
140
164
|
data-slot="root"
|
|
141
165
|
:data-orientation="orientation"
|
|
142
|
-
:class="b24ui.root({ class: [
|
|
166
|
+
:class="b24ui.root({ class: [uiProp?.root, props.class] })"
|
|
143
167
|
>
|
|
144
168
|
<template v-if="virtualizer">
|
|
145
169
|
<div
|
|
146
170
|
data-slot="viewport"
|
|
147
|
-
:class="b24ui.viewport({ class:
|
|
171
|
+
:class="b24ui.viewport({ class: uiProp?.viewport })"
|
|
148
172
|
:style="virtualViewportStyle"
|
|
149
173
|
>
|
|
150
174
|
<div
|
|
@@ -153,7 +177,7 @@ defineExpose({
|
|
|
153
177
|
:ref="measureElement"
|
|
154
178
|
:data-index="virtualItem.index"
|
|
155
179
|
data-slot="item"
|
|
156
|
-
:class="b24ui.item({ class:
|
|
180
|
+
:class="b24ui.item({ class: uiProp?.item })"
|
|
157
181
|
:style="getVirtualItemStyle(virtualItem)"
|
|
158
182
|
>
|
|
159
183
|
<slot
|
|
@@ -166,13 +190,13 @@ defineExpose({
|
|
|
166
190
|
</template>
|
|
167
191
|
|
|
168
192
|
<template v-else>
|
|
169
|
-
<div data-slot="viewport" :class="b24ui.viewport({ class:
|
|
193
|
+
<div data-slot="viewport" :class="b24ui.viewport({ class: uiProp?.viewport })">
|
|
170
194
|
<template v-if="items?.length">
|
|
171
195
|
<div
|
|
172
196
|
v-for="(item, index) in items"
|
|
173
197
|
:key="getItemKey(item, index)"
|
|
174
198
|
data-slot="item"
|
|
175
|
-
:class="b24ui.item({ class:
|
|
199
|
+
:class="b24ui.item({ class: uiProp?.item })"
|
|
176
200
|
>
|
|
177
201
|
<slot :item="item" :index="index" />
|
|
178
202
|
</div>
|
|
@@ -20,6 +20,13 @@ export interface ScrollAreaVirtualizeOptions extends Partial<Omit<VirtualizerOpt
|
|
|
20
20
|
* @defaultValue undefined
|
|
21
21
|
*/
|
|
22
22
|
lanes?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Skip per-item DOM measurement for uniform-height items.
|
|
25
|
+
* When `true`, uses `estimateSize` only — significantly improving performance for uniform items.
|
|
26
|
+
* When `false` (default), measures each item for variable-height layouts (e.g., masonry).
|
|
27
|
+
* @defaultValue false
|
|
28
|
+
*/
|
|
29
|
+
skipMeasurement?: boolean;
|
|
23
30
|
}
|
|
24
31
|
export type ScrollAreaItem = any;
|
|
25
32
|
export interface ScrollAreaProps<T extends ScrollAreaItem = ScrollAreaItem> {
|
|
@@ -3,9 +3,9 @@ import type { AppConfig } from '@nuxt/schema';
|
|
|
3
3
|
import theme from '#build/b24ui/select';
|
|
4
4
|
import type { UseComponentIconsProps } from '../composables/useComponentIcons';
|
|
5
5
|
import type { AvatarProps, ChipProps, BadgeProps, IconComponent } from '../types';
|
|
6
|
-
import type { ModelModifiers } from '../types/input';
|
|
6
|
+
import type { ModelModifiers, ApplyModifiers } from '../types/input';
|
|
7
7
|
import type { ButtonHTMLAttributes } from '../types/html';
|
|
8
|
-
import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue,
|
|
8
|
+
import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, NestedItem, EmitsToProps } from '../types/utils';
|
|
9
9
|
import type { ComponentConfig } from '../types/tv';
|
|
10
10
|
type Select = ComponentConfig<typeof theme, AppConfig, 'select'>;
|
|
11
11
|
export type SelectValue = AcceptableValue;
|
|
@@ -32,7 +32,10 @@ export type SelectItem = SelectValue | {
|
|
|
32
32
|
b24ui?: Pick<Select['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
|
|
33
33
|
[key: string]: any;
|
|
34
34
|
};
|
|
35
|
-
|
|
35
|
+
type ExcludeItem = {
|
|
36
|
+
type: 'label' | 'separator';
|
|
37
|
+
};
|
|
38
|
+
export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
|
|
36
39
|
id?: string;
|
|
37
40
|
/** The placeholder text when the select is empty. */
|
|
38
41
|
placeholder?: string;
|
|
@@ -113,10 +116,10 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
|
|
|
113
116
|
descriptionKey?: GetItemKeys<T>;
|
|
114
117
|
items?: T;
|
|
115
118
|
/** The value of the Select when initially rendered. Use when you do not need to control the state of the Select. */
|
|
116
|
-
defaultValue?: GetModelValue<T, VK, M>;
|
|
119
|
+
defaultValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod>;
|
|
117
120
|
/** The controlled value of the Select. Can be bind as `v-model`. */
|
|
118
|
-
modelValue?: GetModelValue<T, VK, M>;
|
|
119
|
-
modelModifiers?:
|
|
121
|
+
modelValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod>;
|
|
122
|
+
modelModifiers?: Mod;
|
|
120
123
|
/** Whether multiple options can be selected or not. */
|
|
121
124
|
multiple?: M & boolean;
|
|
122
125
|
/** Highlight the ring color like a focus state. */
|
|
@@ -126,29 +129,30 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
|
|
|
126
129
|
class?: any;
|
|
127
130
|
b24ui?: Select['slots'];
|
|
128
131
|
}
|
|
129
|
-
export
|
|
130
|
-
change: [event: Event];
|
|
131
|
-
blur: [event: FocusEvent];
|
|
132
|
-
focus: [event: FocusEvent];
|
|
133
|
-
|
|
132
|
+
export interface SelectEmits<A extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined, M extends boolean, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>> extends Omit<SelectRootEmits, 'update:modelValue'> {
|
|
133
|
+
'change': [event: Event];
|
|
134
|
+
'blur': [event: FocusEvent];
|
|
135
|
+
'focus': [event: FocusEvent];
|
|
136
|
+
'update:modelValue': [value: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>];
|
|
137
|
+
}
|
|
134
138
|
type SlotProps<T extends SelectItem> = (props: {
|
|
135
139
|
item: T;
|
|
136
140
|
index: number;
|
|
137
141
|
b24ui: Select['b24ui'];
|
|
138
142
|
}) => any;
|
|
139
|
-
export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, T extends NestedItem<A> = NestedItem<A>> {
|
|
143
|
+
export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>, T extends NestedItem<A> = NestedItem<A>> {
|
|
140
144
|
'leading'(props: {
|
|
141
|
-
modelValue?: GetModelValue<A, VK, M>;
|
|
145
|
+
modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
|
|
142
146
|
open: boolean;
|
|
143
147
|
b24ui: Select['b24ui'];
|
|
144
148
|
}): any;
|
|
145
149
|
'default'(props: {
|
|
146
|
-
modelValue?: GetModelValue<A, VK, M>;
|
|
150
|
+
modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
|
|
147
151
|
open: boolean;
|
|
148
152
|
b24ui: Select['b24ui'];
|
|
149
153
|
}): any;
|
|
150
154
|
'trailing'(props: {
|
|
151
|
-
modelValue?: GetModelValue<A, VK, M>;
|
|
155
|
+
modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
|
|
152
156
|
open: boolean;
|
|
153
157
|
b24ui: Select['b24ui'];
|
|
154
158
|
}): any;
|
|
@@ -168,13 +172,33 @@ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested
|
|
|
168
172
|
}
|
|
169
173
|
declare const _default: typeof __VLS_export;
|
|
170
174
|
export default _default;
|
|
171
|
-
declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
172
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<SelectProps<T, VK, M> & {
|
|
175
|
+
declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false, Mod extends Omit<ModelModifiers, "lazy"> = Omit<ModelModifiers, "lazy">>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
176
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<SelectProps<T, VK, M, Mod> & {
|
|
173
177
|
onBlur?: ((event: FocusEvent) => any) | undefined;
|
|
174
178
|
onChange?: ((event: Event) => any) | undefined;
|
|
175
179
|
onFocus?: ((event: FocusEvent) => any) | undefined;
|
|
176
180
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
177
|
-
"onUpdate:modelValue"?: ((value:
|
|
181
|
+
"onUpdate:modelValue"?: ((value: Mod extends {
|
|
182
|
+
number: true;
|
|
183
|
+
} ? (Mod extends {
|
|
184
|
+
optional: true;
|
|
185
|
+
} ? (Mod extends {
|
|
186
|
+
nullable: true;
|
|
187
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
|
|
188
|
+
nullable: true;
|
|
189
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
|
|
190
|
+
optional: true;
|
|
191
|
+
} ? (Mod extends {
|
|
192
|
+
nullable: true;
|
|
193
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
|
|
194
|
+
nullable: true;
|
|
195
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
|
|
196
|
+
optional: true;
|
|
197
|
+
} ? (Mod extends {
|
|
198
|
+
nullable: true;
|
|
199
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
|
|
200
|
+
nullable: true;
|
|
201
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) => any) | undefined;
|
|
178
202
|
}> & (typeof globalThis extends {
|
|
179
203
|
__VLS_PROPS_FALLBACK: infer P;
|
|
180
204
|
} ? P : {});
|
|
@@ -183,8 +207,28 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends Get
|
|
|
183
207
|
viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
|
|
184
208
|
}>) => void;
|
|
185
209
|
attrs: any;
|
|
186
|
-
slots: SelectSlots<T, VK, M, NestedItem<T>>;
|
|
187
|
-
emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value:
|
|
210
|
+
slots: SelectSlots<T, VK, M, Mod, NestedItem<T>>;
|
|
211
|
+
emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: Mod extends {
|
|
212
|
+
number: true;
|
|
213
|
+
} ? (Mod extends {
|
|
214
|
+
optional: true;
|
|
215
|
+
} ? (Mod extends {
|
|
216
|
+
nullable: true;
|
|
217
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
|
|
218
|
+
nullable: true;
|
|
219
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
|
|
220
|
+
optional: true;
|
|
221
|
+
} ? (Mod extends {
|
|
222
|
+
nullable: true;
|
|
223
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
|
|
224
|
+
nullable: true;
|
|
225
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
|
|
226
|
+
optional: true;
|
|
227
|
+
} ? (Mod extends {
|
|
228
|
+
nullable: true;
|
|
229
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
|
|
230
|
+
nullable: true;
|
|
231
|
+
} ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) => void);
|
|
188
232
|
}>) => import("vue").VNode & {
|
|
189
233
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
190
234
|
};
|