@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
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/b24ui/footer-columns';
|
|
3
|
+
import type { IconComponent, LinkProps } from '../types';
|
|
4
|
+
import type { ComponentConfig } from '../types/tv';
|
|
5
|
+
type FooterColumns = ComponentConfig<typeof theme, AppConfig, 'footerColumns'>;
|
|
6
|
+
export interface FooterColumnLink extends Omit<LinkProps, 'custom'> {
|
|
7
|
+
label: string;
|
|
8
|
+
/**
|
|
9
|
+
* @IconComponent
|
|
10
|
+
*/
|
|
11
|
+
icon?: IconComponent;
|
|
12
|
+
class?: any;
|
|
13
|
+
b24ui?: Pick<FooterColumns['slots'], 'item' | 'link' | 'linkLabel' | 'linkLabelExternalIcon' | 'linkLeadingIcon'>;
|
|
14
|
+
}
|
|
15
|
+
export interface FooterColumn<T extends FooterColumnLink = FooterColumnLink> {
|
|
16
|
+
label: string;
|
|
17
|
+
children?: T[];
|
|
18
|
+
}
|
|
19
|
+
export interface FooterColumnsProps<T extends FooterColumnLink = FooterColumnLink> {
|
|
20
|
+
/**
|
|
21
|
+
* The element or component this component should render as.
|
|
22
|
+
* @defaultValue 'div'
|
|
23
|
+
*/
|
|
24
|
+
as?: any;
|
|
25
|
+
class?: any;
|
|
26
|
+
columns?: FooterColumn<T>[];
|
|
27
|
+
b24ui?: FooterColumns['slots'];
|
|
28
|
+
}
|
|
29
|
+
type SlotProps<T> = (props: {
|
|
30
|
+
link: T;
|
|
31
|
+
active: boolean;
|
|
32
|
+
b24ui: FooterColumns['b24ui'];
|
|
33
|
+
}) => any;
|
|
34
|
+
export interface FooterColumnsSlots<T extends FooterColumnLink = FooterColumnLink> {
|
|
35
|
+
'left'(props?: {}): any;
|
|
36
|
+
'default'(props?: {}): any;
|
|
37
|
+
'right'(props?: {}): any;
|
|
38
|
+
'column-label'?: (props: {
|
|
39
|
+
column: FooterColumn<T>;
|
|
40
|
+
}) => any;
|
|
41
|
+
'link': SlotProps<T>;
|
|
42
|
+
'link-leading': SlotProps<T>;
|
|
43
|
+
'link-label'(props: {
|
|
44
|
+
link: T;
|
|
45
|
+
active: boolean;
|
|
46
|
+
}): any;
|
|
47
|
+
'link-trailing'(props: {
|
|
48
|
+
link: T;
|
|
49
|
+
active: boolean;
|
|
50
|
+
}): any;
|
|
51
|
+
}
|
|
52
|
+
declare const _default: typeof __VLS_export;
|
|
53
|
+
export default _default;
|
|
54
|
+
declare const __VLS_export: <T extends FooterColumnLink>(__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<{
|
|
55
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<FooterColumnsProps<T>> & (typeof globalThis extends {
|
|
56
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
57
|
+
} ? P : {});
|
|
58
|
+
expose: (exposed: {}) => void;
|
|
59
|
+
attrs: any;
|
|
60
|
+
slots: FooterColumnsSlots<T>;
|
|
61
|
+
emit: {};
|
|
62
|
+
}>) => import("vue").VNode & {
|
|
63
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
64
|
+
};
|
|
65
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
66
|
+
[K in keyof T]: T[K];
|
|
67
|
+
} : {
|
|
68
|
+
[K in keyof T as K]: T[K];
|
|
69
|
+
}) & {};
|
|
@@ -47,6 +47,9 @@ export type FormProps<S extends FormSchema, T extends boolean = true, N extends
|
|
|
47
47
|
*/
|
|
48
48
|
loadingAuto?: boolean;
|
|
49
49
|
class?: any;
|
|
50
|
+
b24ui?: {
|
|
51
|
+
base?: any;
|
|
52
|
+
};
|
|
50
53
|
onSubmit?: ((event: FormSubmitEvent<FormData<S, T>>) => void | Promise<void>) | (() => void | Promise<void>);
|
|
51
54
|
} & /** @vue-ignore */ Omit<FormHTMLAttributes, 'name'>;
|
|
52
55
|
export interface FormEmits<S extends FormSchema, T extends boolean = true> {
|
|
@@ -3,9 +3,10 @@ import theme from "#build/b24ui/form";
|
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
5
|
<script setup>
|
|
6
|
-
import { provide, inject, nextTick, ref, onUnmounted, onMounted, computed, useId, readonly, reactive } from "vue";
|
|
6
|
+
import { provide, inject, nextTick, ref, onUnmounted, onMounted, computed, useId, readonly, reactive, useTemplateRef } from "vue";
|
|
7
7
|
import { useEventBus } from "@vueuse/core";
|
|
8
8
|
import { useAppConfig } from "#imports";
|
|
9
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
9
10
|
import { formOptionsInjectionKey, formInputsInjectionKey, formBusInjectionKey, formLoadingInjectionKey, formErrorsInjectionKey, formStateInjectionKey } from "../composables/useFormField";
|
|
10
11
|
import { tv } from "../utils/tv";
|
|
11
12
|
import { validateSchema, getAtPath, setAtPath } from "../utils/form";
|
|
@@ -25,13 +26,16 @@ const props = defineProps({
|
|
|
25
26
|
nested: { type: Boolean, required: false },
|
|
26
27
|
loadingAuto: { type: Boolean, required: false, default: true },
|
|
27
28
|
class: { type: null, required: false },
|
|
29
|
+
b24ui: { type: Object, required: false },
|
|
28
30
|
onSubmit: { type: Function, required: false }
|
|
29
31
|
});
|
|
30
32
|
const emits = defineEmits(["submit", "error"]);
|
|
31
33
|
defineSlots();
|
|
32
34
|
const appConfig = useAppConfig();
|
|
35
|
+
const uiProp = useComponentUI("form", props);
|
|
33
36
|
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.form || {} }));
|
|
34
37
|
const formId = props.id ?? useId();
|
|
38
|
+
const formRef = useTemplateRef("formRef");
|
|
35
39
|
const bus = useEventBus(`form-${formId}`);
|
|
36
40
|
const parentBus = props.nested === true && inject(
|
|
37
41
|
formBusInjectionKey,
|
|
@@ -252,6 +256,9 @@ const api = {
|
|
|
252
256
|
}
|
|
253
257
|
},
|
|
254
258
|
async submit() {
|
|
259
|
+
if (formRef.value instanceof HTMLFormElement && formRef.value.reportValidity() === false) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
255
262
|
await onSubmitWrapper(new Event("submit"));
|
|
256
263
|
},
|
|
257
264
|
getErrors(name) {
|
|
@@ -285,7 +292,8 @@ defineExpose(api);
|
|
|
285
292
|
<component
|
|
286
293
|
:is="parentBus ? 'div' : 'form'"
|
|
287
294
|
:id="formId"
|
|
288
|
-
|
|
295
|
+
ref="formRef"
|
|
296
|
+
:class="b24ui({ class: [uiProp?.base, props.class] })"
|
|
289
297
|
@submit.prevent="onSubmitWrapper"
|
|
290
298
|
>
|
|
291
299
|
<slot :errors="errors" :loading="loading" />
|
|
@@ -47,6 +47,9 @@ export type FormProps<S extends FormSchema, T extends boolean = true, N extends
|
|
|
47
47
|
*/
|
|
48
48
|
loadingAuto?: boolean;
|
|
49
49
|
class?: any;
|
|
50
|
+
b24ui?: {
|
|
51
|
+
base?: any;
|
|
52
|
+
};
|
|
50
53
|
onSubmit?: ((event: FormSubmitEvent<FormData<S, T>>) => void | Promise<void>) | (() => void | Promise<void>);
|
|
51
54
|
} & /** @vue-ignore */ Omit<FormHTMLAttributes, 'name'>;
|
|
52
55
|
export interface FormEmits<S extends FormSchema, T extends boolean = true> {
|
|
@@ -6,6 +6,7 @@ import theme from "#build/b24ui/form-field";
|
|
|
6
6
|
import { computed, ref, inject, provide, useId, watch } from "vue";
|
|
7
7
|
import { Primitive, Label } from "reka-ui";
|
|
8
8
|
import { useAppConfig } from "#imports";
|
|
9
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
9
10
|
import { formFieldInjectionKey, inputIdInjectionKey, formErrorsInjectionKey, formInputsInjectionKey } from "../composables/useFormField";
|
|
10
11
|
import { tv } from "../utils/tv";
|
|
11
12
|
import WarningIcon from "@bitrix24/b24icons-vue/main/WarningIcon";
|
|
@@ -28,6 +29,7 @@ const props = defineProps({
|
|
|
28
29
|
});
|
|
29
30
|
const slots = defineSlots();
|
|
30
31
|
const appConfig = useAppConfig();
|
|
32
|
+
const uiProp = useComponentUI("formField", props);
|
|
31
33
|
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.formField || {} })({
|
|
32
34
|
size: props.size,
|
|
33
35
|
required: props.required,
|
|
@@ -60,40 +62,40 @@ provide(formFieldInjectionKey, computed(() => ({
|
|
|
60
62
|
</script>
|
|
61
63
|
|
|
62
64
|
<template>
|
|
63
|
-
<Primitive :as="as" :data-orientation="orientation" data-slot="root" :class="b24ui.root({ class: [
|
|
64
|
-
<div data-slot="wrapper" :class="b24ui.wrapper({ class:
|
|
65
|
-
<div v-if="label || !!slots.label" data-slot="root" :class="b24ui.labelWrapper({ class:
|
|
66
|
-
<Label :for="id" data-slot="label" :class="b24ui.label({ class:
|
|
65
|
+
<Primitive :as="as" :data-orientation="orientation" data-slot="root" :class="b24ui.root({ class: [uiProp?.root, props.class] })">
|
|
66
|
+
<div data-slot="wrapper" :class="b24ui.wrapper({ class: uiProp?.wrapper })">
|
|
67
|
+
<div v-if="label || !!slots.label" data-slot="root" :class="b24ui.labelWrapper({ class: uiProp?.labelWrapper })">
|
|
68
|
+
<Label :for="id" data-slot="label" :class="b24ui.label({ class: uiProp?.label })">
|
|
67
69
|
<slot name="label" :label="label">
|
|
68
70
|
{{ label }}
|
|
69
71
|
</slot>
|
|
70
72
|
</Label>
|
|
71
|
-
<span v-if="hint || !!slots.hint" :id="`${ariaId}-hint`" data-slot="hint" :class="b24ui.hint({ class:
|
|
73
|
+
<span v-if="hint || !!slots.hint" :id="`${ariaId}-hint`" data-slot="hint" :class="b24ui.hint({ class: uiProp?.hint })">
|
|
72
74
|
<slot name="hint" :hint="hint">
|
|
73
75
|
{{ hint }}
|
|
74
76
|
</slot>
|
|
75
77
|
</span>
|
|
76
78
|
</div>
|
|
77
79
|
|
|
78
|
-
<p v-if="description || !!slots.description" :id="`${ariaId}-description`" data-slot="description" :class="b24ui.description({ class:
|
|
80
|
+
<p v-if="description || !!slots.description" :id="`${ariaId}-description`" data-slot="description" :class="b24ui.description({ class: uiProp?.description })">
|
|
79
81
|
<slot name="description" :description="description">
|
|
80
82
|
{{ description }}
|
|
81
83
|
</slot>
|
|
82
84
|
</p>
|
|
83
85
|
</div>
|
|
84
86
|
|
|
85
|
-
<div data-slot="container" :class="[(label || !!slots.label || description || !!slots.description) && b24ui.container({ class:
|
|
87
|
+
<div data-slot="container" :class="[(label || !!slots.label || description || !!slots.description) && b24ui.container({ class: uiProp?.container })]">
|
|
86
88
|
<slot :error="error" />
|
|
87
89
|
|
|
88
|
-
<div v-if="props.error !== false && (typeof error === 'string' && error || !!slots.error)" :id="`${ariaId}-error`" data-slot="error" :class="b24ui.error({ class:
|
|
90
|
+
<div v-if="props.error !== false && (typeof error === 'string' && error || !!slots.error)" :id="`${ariaId}-error`" data-slot="error" :class="b24ui.error({ class: uiProp?.error })">
|
|
89
91
|
<slot name="error" :error="error">
|
|
90
|
-
<div data-slot="errorWrapper" :class="b24ui.errorWrapper({ class:
|
|
92
|
+
<div data-slot="errorWrapper" :class="b24ui.errorWrapper({ class: uiProp?.errorWrapper })">
|
|
91
93
|
<WarningIcon data-slot="errorIcon" :class="b24ui.errorIcon()" />
|
|
92
94
|
<div>{{ error }}</div>
|
|
93
95
|
</div>
|
|
94
96
|
</slot>
|
|
95
97
|
</div>
|
|
96
|
-
<div v-else-if="help || !!slots.help" :id="`${ariaId}-help`" data-slot="help" :class="b24ui.help({ class:
|
|
98
|
+
<div v-else-if="help || !!slots.help" :id="`${ariaId}-help`" data-slot="help" :class="b24ui.help({ class: uiProp?.help })">
|
|
97
99
|
<slot name="help" :help="help">
|
|
98
100
|
{{ help }}
|
|
99
101
|
</slot>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/b24ui/header';
|
|
3
|
+
import type { ButtonProps, DrawerProps, ModalProps, SlideoverProps, LinkPropsKeys } from '../types';
|
|
4
|
+
import type { ComponentConfig } from '../types/tv';
|
|
5
|
+
type Header = ComponentConfig<typeof theme, AppConfig, 'header'>;
|
|
6
|
+
type HeaderMode = 'modal' | 'slideover' | 'drawer';
|
|
7
|
+
type HeaderMenu<T> = T extends 'modal' ? ModalProps : T extends 'slideover' ? SlideoverProps : T extends 'drawer' ? DrawerProps : never;
|
|
8
|
+
export interface HeaderProps<T extends HeaderMode = HeaderMode> {
|
|
9
|
+
/**
|
|
10
|
+
* The element or component this component should render as.
|
|
11
|
+
* @defaultValue 'header'
|
|
12
|
+
*/
|
|
13
|
+
as?: any;
|
|
14
|
+
title?: string;
|
|
15
|
+
to?: string;
|
|
16
|
+
/**
|
|
17
|
+
* The mode of the header menu.
|
|
18
|
+
* @defaultValue 'modal'
|
|
19
|
+
*/
|
|
20
|
+
mode?: T;
|
|
21
|
+
/**
|
|
22
|
+
* The props for the header menu component.
|
|
23
|
+
*/
|
|
24
|
+
menu?: HeaderMenu<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Customize the toggle button to open the header menu displayed when the `content` slot is used.
|
|
27
|
+
* `{ color: 'air-tertiary', size: 'md' }`{lang="ts-type"}
|
|
28
|
+
*/
|
|
29
|
+
toggle?: boolean | Omit<ButtonProps, LinkPropsKeys>;
|
|
30
|
+
/**
|
|
31
|
+
* The side to render the toggle button on.
|
|
32
|
+
* @defaultValue 'left'
|
|
33
|
+
*/
|
|
34
|
+
toggleSide?: 'left' | 'right';
|
|
35
|
+
/**
|
|
36
|
+
* Automatically close when route changes.
|
|
37
|
+
* @defaultValue true
|
|
38
|
+
*/
|
|
39
|
+
autoClose?: boolean;
|
|
40
|
+
class?: any;
|
|
41
|
+
b24ui?: Header['slots'];
|
|
42
|
+
}
|
|
43
|
+
export interface HeaderSlots {
|
|
44
|
+
title(props?: {}): any;
|
|
45
|
+
left(props?: {}): any;
|
|
46
|
+
default(props?: {}): any;
|
|
47
|
+
right(props?: {}): any;
|
|
48
|
+
toggle(props: {
|
|
49
|
+
open: boolean;
|
|
50
|
+
toggle: () => void;
|
|
51
|
+
b24ui: Header['b24ui'];
|
|
52
|
+
}): any;
|
|
53
|
+
top(props?: {}): any;
|
|
54
|
+
bottom(props?: {}): any;
|
|
55
|
+
body(props?: {}): any;
|
|
56
|
+
content(props: {
|
|
57
|
+
close?: () => void;
|
|
58
|
+
}): any;
|
|
59
|
+
}
|
|
60
|
+
declare const _default: typeof __VLS_export;
|
|
61
|
+
export default _default;
|
|
62
|
+
declare const __VLS_export: <T extends HeaderMode>(__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<{
|
|
63
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<(HeaderProps<T> & {
|
|
64
|
+
open?: boolean;
|
|
65
|
+
}) & {
|
|
66
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
67
|
+
}> & (typeof globalThis extends {
|
|
68
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
69
|
+
} ? P : {});
|
|
70
|
+
expose: (exposed: {}) => void;
|
|
71
|
+
attrs: any;
|
|
72
|
+
slots: HeaderSlots;
|
|
73
|
+
emit: (event: "update:open", value: boolean) => void;
|
|
74
|
+
}>) => import("vue").VNode & {
|
|
75
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
76
|
+
};
|
|
77
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
78
|
+
[K in keyof T]: T[K];
|
|
79
|
+
} : {
|
|
80
|
+
[K in keyof T as K]: T[K];
|
|
81
|
+
}) & {};
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/b24ui/header";
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { computed, watch, toRef } from "vue";
|
|
7
|
+
import { Primitive } from "reka-ui";
|
|
8
|
+
import { defu } from "defu";
|
|
9
|
+
import { createReusableTemplate } from "@vueuse/core";
|
|
10
|
+
import { useAppConfig, useRoute } from "#imports";
|
|
11
|
+
import { useComponentUI } from "../composables/useComponentUI";
|
|
12
|
+
import { useLocale } from "../composables/useLocale";
|
|
13
|
+
import { getSlotChildrenText } from "../utils";
|
|
14
|
+
import { tv } from "../utils/tv";
|
|
15
|
+
import icons from "../dictionary/icons";
|
|
16
|
+
import B24Button from "./Button.vue";
|
|
17
|
+
import B24Link from "./Link.vue";
|
|
18
|
+
import B24Container from "./Container.vue";
|
|
19
|
+
import B24Slideover from "./Slideover.vue";
|
|
20
|
+
import B24Modal from "./Modal.vue";
|
|
21
|
+
import B24Drawer from "./Drawer.vue";
|
|
22
|
+
defineOptions({ inheritAttrs: false });
|
|
23
|
+
const props = defineProps({
|
|
24
|
+
as: { type: null, required: false, default: "header" },
|
|
25
|
+
title: { type: String, required: false, default: "Bitrix24 UI" },
|
|
26
|
+
to: { type: String, required: false, default: "/" },
|
|
27
|
+
mode: { type: null, required: false, default: "modal" },
|
|
28
|
+
menu: { type: null, required: false },
|
|
29
|
+
toggle: { type: [Boolean, Object], required: false, default: true },
|
|
30
|
+
toggleSide: { type: String, required: false, default: "left" },
|
|
31
|
+
autoClose: { type: Boolean, required: false, default: true },
|
|
32
|
+
class: { type: null, required: false },
|
|
33
|
+
b24ui: { type: Object, required: false }
|
|
34
|
+
});
|
|
35
|
+
const slots = defineSlots();
|
|
36
|
+
const open = defineModel("open", { type: Boolean, ...{ default: false } });
|
|
37
|
+
const route = useRoute();
|
|
38
|
+
const { t } = useLocale();
|
|
39
|
+
const appConfig = useAppConfig();
|
|
40
|
+
const uiProp = useComponentUI("header", props);
|
|
41
|
+
const [DefineLeftTemplate, ReuseLeftTemplate] = createReusableTemplate();
|
|
42
|
+
const [DefineRightTemplate, ReuseRightTemplate] = createReusableTemplate();
|
|
43
|
+
const [DefineToggleTemplate, ReuseToggleTemplate] = createReusableTemplate();
|
|
44
|
+
const ariaLabel = computed(() => {
|
|
45
|
+
const slotText = slots.title && getSlotChildrenText(slots.title());
|
|
46
|
+
return (slotText || props.title || "Nuxt UI").trim();
|
|
47
|
+
});
|
|
48
|
+
watch(() => route.fullPath, () => {
|
|
49
|
+
if (!props.autoClose) return;
|
|
50
|
+
open.value = false;
|
|
51
|
+
});
|
|
52
|
+
const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.header || {} })());
|
|
53
|
+
const Menu = computed(() => ({
|
|
54
|
+
slideover: B24Slideover,
|
|
55
|
+
modal: B24Modal,
|
|
56
|
+
drawer: B24Drawer
|
|
57
|
+
})[props.mode]);
|
|
58
|
+
const menuProps = toRef(() => defu(props.menu, {
|
|
59
|
+
content: {
|
|
60
|
+
onOpenAutoFocus: (e) => e.preventDefault()
|
|
61
|
+
}
|
|
62
|
+
}, props.mode === "modal" ? { fullscreen: true, transition: false } : {}));
|
|
63
|
+
function toggleOpen() {
|
|
64
|
+
open.value = !open.value;
|
|
65
|
+
}
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<template>
|
|
69
|
+
<DefineToggleTemplate>
|
|
70
|
+
<slot name="toggle" :open="open" :toggle="toggleOpen" :b24ui="b24ui">
|
|
71
|
+
<B24Button
|
|
72
|
+
v-if="toggle"
|
|
73
|
+
color="air-tertiary"
|
|
74
|
+
size="md"
|
|
75
|
+
:aria-label="open ? t('header.close') : t('header.open')"
|
|
76
|
+
:icon="open ? icons.close : icons.menu"
|
|
77
|
+
v-bind="typeof toggle === 'object' ? toggle : {}"
|
|
78
|
+
data-slot="toggle"
|
|
79
|
+
:class="b24ui.toggle({ class: uiProp?.toggle, toggleSide })"
|
|
80
|
+
@click="toggleOpen"
|
|
81
|
+
/>
|
|
82
|
+
</slot>
|
|
83
|
+
</DefineToggleTemplate>
|
|
84
|
+
|
|
85
|
+
<DefineLeftTemplate>
|
|
86
|
+
<div data-slot="left" :class="b24ui.left({ class: uiProp?.left })">
|
|
87
|
+
<ReuseToggleTemplate v-if="toggleSide === 'left'" />
|
|
88
|
+
|
|
89
|
+
<slot name="left">
|
|
90
|
+
<B24Link :to="to" :aria-label="ariaLabel" data-slot="title" :class="b24ui.title({ class: uiProp?.title })">
|
|
91
|
+
<slot name="title">
|
|
92
|
+
{{ title }}
|
|
93
|
+
</slot>
|
|
94
|
+
</B24Link>
|
|
95
|
+
</slot>
|
|
96
|
+
</div>
|
|
97
|
+
</DefineLeftTemplate>
|
|
98
|
+
|
|
99
|
+
<DefineRightTemplate>
|
|
100
|
+
<div data-slot="right" :class="b24ui.right({ class: uiProp?.right })">
|
|
101
|
+
<slot name="right" />
|
|
102
|
+
|
|
103
|
+
<ReuseToggleTemplate v-if="toggleSide === 'right'" />
|
|
104
|
+
</div>
|
|
105
|
+
</DefineRightTemplate>
|
|
106
|
+
|
|
107
|
+
<Primitive :as="as" v-bind="$attrs" data-slot="root" :class="b24ui.root({ class: [uiProp?.root, props.class] })">
|
|
108
|
+
<slot name="top" />
|
|
109
|
+
|
|
110
|
+
<B24Container data-slot="container" :class="b24ui.container({ class: uiProp?.container })">
|
|
111
|
+
<ReuseLeftTemplate />
|
|
112
|
+
|
|
113
|
+
<div data-slot="center" :class="b24ui.center({ class: uiProp?.center })">
|
|
114
|
+
<slot />
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<ReuseRightTemplate />
|
|
118
|
+
</B24Container>
|
|
119
|
+
|
|
120
|
+
<slot name="bottom" />
|
|
121
|
+
</Primitive>
|
|
122
|
+
|
|
123
|
+
<Menu
|
|
124
|
+
v-model:open="open"
|
|
125
|
+
:title="t('header.title')"
|
|
126
|
+
:description="t('header.description')"
|
|
127
|
+
v-bind="menuProps"
|
|
128
|
+
:b24ui="{
|
|
129
|
+
overlay: b24ui.overlay({ class: uiProp?.overlay }),
|
|
130
|
+
content: b24ui.content({ class: uiProp?.content })
|
|
131
|
+
}"
|
|
132
|
+
>
|
|
133
|
+
<template #content="contentData">
|
|
134
|
+
<slot name="content" v-bind="contentData">
|
|
135
|
+
<div v-if="mode !== 'drawer'" data-slot="header" :class="b24ui.header({ class: uiProp?.header })">
|
|
136
|
+
<ReuseLeftTemplate />
|
|
137
|
+
|
|
138
|
+
<ReuseRightTemplate />
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
<div data-slot="body" :class="b24ui.body({ class: uiProp?.body })">
|
|
142
|
+
<slot name="body" />
|
|
143
|
+
</div>
|
|
144
|
+
</slot>
|
|
145
|
+
</template>
|
|
146
|
+
</Menu>
|
|
147
|
+
</template>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/b24ui/header';
|
|
3
|
+
import type { ButtonProps, DrawerProps, ModalProps, SlideoverProps, LinkPropsKeys } from '../types';
|
|
4
|
+
import type { ComponentConfig } from '../types/tv';
|
|
5
|
+
type Header = ComponentConfig<typeof theme, AppConfig, 'header'>;
|
|
6
|
+
type HeaderMode = 'modal' | 'slideover' | 'drawer';
|
|
7
|
+
type HeaderMenu<T> = T extends 'modal' ? ModalProps : T extends 'slideover' ? SlideoverProps : T extends 'drawer' ? DrawerProps : never;
|
|
8
|
+
export interface HeaderProps<T extends HeaderMode = HeaderMode> {
|
|
9
|
+
/**
|
|
10
|
+
* The element or component this component should render as.
|
|
11
|
+
* @defaultValue 'header'
|
|
12
|
+
*/
|
|
13
|
+
as?: any;
|
|
14
|
+
title?: string;
|
|
15
|
+
to?: string;
|
|
16
|
+
/**
|
|
17
|
+
* The mode of the header menu.
|
|
18
|
+
* @defaultValue 'modal'
|
|
19
|
+
*/
|
|
20
|
+
mode?: T;
|
|
21
|
+
/**
|
|
22
|
+
* The props for the header menu component.
|
|
23
|
+
*/
|
|
24
|
+
menu?: HeaderMenu<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Customize the toggle button to open the header menu displayed when the `content` slot is used.
|
|
27
|
+
* `{ color: 'air-tertiary', size: 'md' }`{lang="ts-type"}
|
|
28
|
+
*/
|
|
29
|
+
toggle?: boolean | Omit<ButtonProps, LinkPropsKeys>;
|
|
30
|
+
/**
|
|
31
|
+
* The side to render the toggle button on.
|
|
32
|
+
* @defaultValue 'left'
|
|
33
|
+
*/
|
|
34
|
+
toggleSide?: 'left' | 'right';
|
|
35
|
+
/**
|
|
36
|
+
* Automatically close when route changes.
|
|
37
|
+
* @defaultValue true
|
|
38
|
+
*/
|
|
39
|
+
autoClose?: boolean;
|
|
40
|
+
class?: any;
|
|
41
|
+
b24ui?: Header['slots'];
|
|
42
|
+
}
|
|
43
|
+
export interface HeaderSlots {
|
|
44
|
+
title(props?: {}): any;
|
|
45
|
+
left(props?: {}): any;
|
|
46
|
+
default(props?: {}): any;
|
|
47
|
+
right(props?: {}): any;
|
|
48
|
+
toggle(props: {
|
|
49
|
+
open: boolean;
|
|
50
|
+
toggle: () => void;
|
|
51
|
+
b24ui: Header['b24ui'];
|
|
52
|
+
}): any;
|
|
53
|
+
top(props?: {}): any;
|
|
54
|
+
bottom(props?: {}): any;
|
|
55
|
+
body(props?: {}): any;
|
|
56
|
+
content(props: {
|
|
57
|
+
close?: () => void;
|
|
58
|
+
}): any;
|
|
59
|
+
}
|
|
60
|
+
declare const _default: typeof __VLS_export;
|
|
61
|
+
export default _default;
|
|
62
|
+
declare const __VLS_export: <T extends HeaderMode>(__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<{
|
|
63
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<(HeaderProps<T> & {
|
|
64
|
+
open?: boolean;
|
|
65
|
+
}) & {
|
|
66
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
67
|
+
}> & (typeof globalThis extends {
|
|
68
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
69
|
+
} ? P : {});
|
|
70
|
+
expose: (exposed: {}) => void;
|
|
71
|
+
attrs: any;
|
|
72
|
+
slots: HeaderSlots;
|
|
73
|
+
emit: (event: "update:open", value: boolean) => void;
|
|
74
|
+
}>) => import("vue").VNode & {
|
|
75
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
76
|
+
};
|
|
77
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
78
|
+
[K in keyof T]: T[K];
|
|
79
|
+
} : {
|
|
80
|
+
[K in keyof T as K]: T[K];
|
|
81
|
+
}) & {};
|
|
@@ -3,12 +3,12 @@ import theme from '#build/b24ui/input';
|
|
|
3
3
|
import type { UseComponentIconsProps } from '../composables/useComponentIcons';
|
|
4
4
|
import type { BadgeProps } from '../types';
|
|
5
5
|
import type { InputHTMLAttributes } from '../types/html';
|
|
6
|
-
import type { ModelModifiers } from '../types/input';
|
|
6
|
+
import type { ModelModifiers, ApplyModifiers } from '../types/input';
|
|
7
7
|
import type { AcceptableValue } from '../types/utils';
|
|
8
8
|
import type { ComponentConfig } from '../types/tv';
|
|
9
9
|
type Input = ComponentConfig<typeof theme, AppConfig, 'input'>;
|
|
10
10
|
export type InputValue = AcceptableValue;
|
|
11
|
-
export interface InputProps<T extends InputValue = InputValue> extends UseComponentIconsProps, /** @vue-ignore */ Omit<InputHTMLAttributes, 'name' | 'type' | 'placeholder' | 'required' | 'autocomplete' | 'autofocus' | 'disabled'> {
|
|
11
|
+
export interface InputProps<T extends InputValue = InputValue, Mod extends ModelModifiers = ModelModifiers> extends UseComponentIconsProps, /** @vue-ignore */ Omit<InputHTMLAttributes, 'name' | 'type' | 'placeholder' | 'required' | 'autocomplete' | 'autofocus' | 'disabled'> {
|
|
12
12
|
/**
|
|
13
13
|
* The element or component this component should render as.
|
|
14
14
|
* @defaultValue 'div'
|
|
@@ -74,14 +74,16 @@ export interface InputProps<T extends InputValue = InputValue> extends UseCompon
|
|
|
74
74
|
tagColor?: BadgeProps['color'];
|
|
75
75
|
/** Highlight the ring color like a focus state. */
|
|
76
76
|
highlight?: boolean;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
/** Keep the mobile text size on all breakpoints. (Left for backward compatibility.) */
|
|
78
|
+
fixed?: boolean;
|
|
79
|
+
modelValue?: ApplyModifiers<T, Mod>;
|
|
80
|
+
defaultValue?: ApplyModifiers<T, Mod>;
|
|
81
|
+
modelModifiers?: Mod;
|
|
80
82
|
class?: any;
|
|
81
83
|
b24ui?: Input['slots'];
|
|
82
84
|
}
|
|
83
|
-
export interface InputEmits<T extends InputValue = InputValue> {
|
|
84
|
-
'update:modelValue': [value: T];
|
|
85
|
+
export interface InputEmits<T extends InputValue = InputValue, Mod extends ModelModifiers = ModelModifiers> {
|
|
86
|
+
'update:modelValue': [value: ApplyModifiers<T, Mod>];
|
|
85
87
|
'blur': [event: FocusEvent];
|
|
86
88
|
'change': [event: Event];
|
|
87
89
|
}
|
|
@@ -98,11 +100,31 @@ export interface InputSlots {
|
|
|
98
100
|
}
|
|
99
101
|
declare const _default: typeof __VLS_export;
|
|
100
102
|
export default _default;
|
|
101
|
-
declare const __VLS_export: <T extends InputValue>(__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<{
|
|
102
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<InputProps<T> & {
|
|
103
|
+
declare const __VLS_export: <T extends InputValue, Mod extends ModelModifiers>(__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<{
|
|
104
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<InputProps<T, Mod> & {
|
|
103
105
|
onBlur?: ((event: FocusEvent) => any) | undefined;
|
|
104
106
|
onChange?: ((event: Event) => any) | undefined;
|
|
105
|
-
"onUpdate:modelValue"?: ((value:
|
|
107
|
+
"onUpdate:modelValue"?: ((value: Mod extends {
|
|
108
|
+
number: true;
|
|
109
|
+
} ? (Mod extends {
|
|
110
|
+
optional: true;
|
|
111
|
+
} ? (Mod extends {
|
|
112
|
+
nullable: true;
|
|
113
|
+
} ? T | null : T) | undefined : Mod extends {
|
|
114
|
+
nullable: true;
|
|
115
|
+
} ? T | null : T) extends infer T_1 ? T_1 extends (Mod extends {
|
|
116
|
+
optional: true;
|
|
117
|
+
} ? (Mod extends {
|
|
118
|
+
nullable: true;
|
|
119
|
+
} ? T | null : T) | undefined : Mod extends {
|
|
120
|
+
nullable: true;
|
|
121
|
+
} ? T | null : T) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
|
|
122
|
+
optional: true;
|
|
123
|
+
} ? (Mod extends {
|
|
124
|
+
nullable: true;
|
|
125
|
+
} ? T | null : T) | undefined : Mod extends {
|
|
126
|
+
nullable: true;
|
|
127
|
+
} ? T | null : T) => any) | undefined;
|
|
106
128
|
}> & (typeof globalThis extends {
|
|
107
129
|
__VLS_PROPS_FALLBACK: infer P;
|
|
108
130
|
} ? P : {});
|
|
@@ -111,7 +133,27 @@ declare const __VLS_export: <T extends InputValue>(__VLS_props: NonNullable<Awai
|
|
|
111
133
|
}>) => void;
|
|
112
134
|
attrs: any;
|
|
113
135
|
slots: InputSlots;
|
|
114
|
-
emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value:
|
|
136
|
+
emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: Mod extends {
|
|
137
|
+
number: true;
|
|
138
|
+
} ? (Mod extends {
|
|
139
|
+
optional: true;
|
|
140
|
+
} ? (Mod extends {
|
|
141
|
+
nullable: true;
|
|
142
|
+
} ? T | null : T) | undefined : Mod extends {
|
|
143
|
+
nullable: true;
|
|
144
|
+
} ? T | null : T) extends infer T_1 ? T_1 extends (Mod extends {
|
|
145
|
+
optional: true;
|
|
146
|
+
} ? (Mod extends {
|
|
147
|
+
nullable: true;
|
|
148
|
+
} ? T | null : T) | undefined : Mod extends {
|
|
149
|
+
nullable: true;
|
|
150
|
+
} ? T | null : T) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
|
|
151
|
+
optional: true;
|
|
152
|
+
} ? (Mod extends {
|
|
153
|
+
nullable: true;
|
|
154
|
+
} ? T | null : T) | undefined : Mod extends {
|
|
155
|
+
nullable: true;
|
|
156
|
+
} ? T | null : T) => void);
|
|
115
157
|
}>) => import("vue").VNode & {
|
|
116
158
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
117
159
|
};
|