@nuxt/ui 4.2.1 → 4.3.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/.nuxt/ui.css +2 -0
- package/README.md +2 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +2 -2
- package/dist/runtime/components/Accordion.d.vue.ts +3 -3
- package/dist/runtime/components/Accordion.vue.d.ts +3 -3
- package/dist/runtime/components/Alert.d.vue.ts +3 -5
- package/dist/runtime/components/Alert.vue.d.ts +3 -5
- package/dist/runtime/components/App.d.vue.ts +3 -1
- package/dist/runtime/components/App.vue.d.ts +3 -1
- package/dist/runtime/components/AuthForm.d.vue.ts +8 -46
- package/dist/runtime/components/AuthForm.vue.d.ts +8 -46
- package/dist/runtime/components/Badge.d.vue.ts +1 -3
- package/dist/runtime/components/Badge.vue.d.ts +1 -3
- package/dist/runtime/components/Banner.d.vue.ts +2 -2
- package/dist/runtime/components/Banner.vue.d.ts +2 -2
- package/dist/runtime/components/BlogPost.d.vue.ts +1 -4
- package/dist/runtime/components/BlogPost.vue +0 -1
- package/dist/runtime/components/BlogPost.vue.d.ts +1 -4
- package/dist/runtime/components/BlogPosts.d.vue.ts +3 -1
- package/dist/runtime/components/BlogPosts.vue.d.ts +3 -1
- package/dist/runtime/components/Breadcrumb.d.vue.ts +3 -1
- package/dist/runtime/components/Breadcrumb.vue.d.ts +3 -1
- package/dist/runtime/components/Calendar.d.vue.ts +8 -11
- package/dist/runtime/components/Calendar.vue.d.ts +8 -11
- package/dist/runtime/components/Carousel.d.vue.ts +6 -6
- package/dist/runtime/components/Carousel.vue +22 -0
- package/dist/runtime/components/Carousel.vue.d.ts +6 -6
- package/dist/runtime/components/ChangelogVersion.d.vue.ts +1 -4
- package/dist/runtime/components/ChangelogVersion.vue +0 -1
- package/dist/runtime/components/ChangelogVersion.vue.d.ts +1 -4
- package/dist/runtime/components/ChangelogVersions.d.vue.ts +3 -1
- package/dist/runtime/components/ChangelogVersions.vue.d.ts +3 -1
- package/dist/runtime/components/ChatMessage.d.vue.ts +1 -3
- package/dist/runtime/components/ChatMessage.vue.d.ts +1 -3
- package/dist/runtime/components/ChatMessages.d.vue.ts +3 -8
- package/dist/runtime/components/ChatMessages.vue.d.ts +3 -8
- package/dist/runtime/components/ChatPrompt.d.vue.ts +2 -7
- package/dist/runtime/components/ChatPrompt.vue.d.ts +2 -7
- package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +3 -11
- package/dist/runtime/components/ChatPromptSubmit.vue +1 -20
- package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +3 -11
- package/dist/runtime/components/CheckboxGroup.d.vue.ts +3 -4
- package/dist/runtime/components/CheckboxGroup.vue.d.ts +3 -4
- package/dist/runtime/components/Chip.d.vue.ts +1 -4
- package/dist/runtime/components/Chip.vue.d.ts +1 -4
- package/dist/runtime/components/Collapsible.d.vue.ts +1 -3
- package/dist/runtime/components/Collapsible.vue.d.ts +1 -3
- package/dist/runtime/components/ColorPicker.d.vue.ts +1 -5
- package/dist/runtime/components/ColorPicker.vue.d.ts +1 -5
- package/dist/runtime/components/CommandPalette.d.vue.ts +9 -14
- package/dist/runtime/components/CommandPalette.vue.d.ts +9 -14
- package/dist/runtime/components/ContextMenu.d.vue.ts +9 -5
- package/dist/runtime/components/ContextMenu.vue.d.ts +9 -5
- package/dist/runtime/components/ContextMenuContent.d.vue.ts +3 -7
- package/dist/runtime/components/ContextMenuContent.vue +2 -2
- package/dist/runtime/components/ContextMenuContent.vue.d.ts +3 -7
- package/dist/runtime/components/DashboardGroup.d.vue.ts +1 -6
- package/dist/runtime/components/DashboardGroup.vue.d.ts +1 -6
- package/dist/runtime/components/DashboardNavbar.d.vue.ts +3 -6
- package/dist/runtime/components/DashboardNavbar.vue.d.ts +3 -6
- package/dist/runtime/components/DashboardPanel.d.vue.ts +1 -4
- package/dist/runtime/components/DashboardPanel.vue.d.ts +1 -4
- package/dist/runtime/components/DashboardSearch.d.vue.ts +4 -9
- package/dist/runtime/components/DashboardSearch.vue.d.ts +4 -9
- package/dist/runtime/components/DashboardSearchButton.d.vue.ts +3 -8
- package/dist/runtime/components/DashboardSearchButton.vue +1 -20
- package/dist/runtime/components/DashboardSearchButton.vue.d.ts +3 -8
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +5 -6
- package/dist/runtime/components/DashboardSidebar.vue.d.ts +5 -6
- package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +3 -7
- package/dist/runtime/components/DashboardSidebarCollapse.vue +1 -20
- package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +3 -7
- package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +3 -7
- package/dist/runtime/components/DashboardSidebarToggle.vue +1 -20
- package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +3 -7
- package/dist/runtime/components/Drawer.d.vue.ts +1 -8
- package/dist/runtime/components/Drawer.vue.d.ts +1 -8
- package/dist/runtime/components/DropdownMenu.d.vue.ts +9 -5
- package/dist/runtime/components/DropdownMenu.vue.d.ts +9 -5
- package/dist/runtime/components/DropdownMenuContent.d.vue.ts +3 -7
- package/dist/runtime/components/DropdownMenuContent.vue +2 -2
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +3 -7
- package/dist/runtime/components/Editor.d.vue.ts +87 -0
- package/dist/runtime/components/Editor.vue +185 -0
- package/dist/runtime/components/Editor.vue.d.ts +87 -0
- package/dist/runtime/components/EditorDragHandle.d.vue.ts +64 -0
- package/dist/runtime/components/EditorDragHandle.vue +127 -0
- package/dist/runtime/components/EditorDragHandle.vue.d.ts +64 -0
- package/dist/runtime/components/EditorEmojiMenu.d.vue.ts +35 -0
- package/dist/runtime/components/EditorEmojiMenu.vue +70 -0
- package/dist/runtime/components/EditorEmojiMenu.vue.d.ts +35 -0
- package/dist/runtime/components/EditorMentionMenu.d.vue.ts +39 -0
- package/dist/runtime/components/EditorMentionMenu.vue +72 -0
- package/dist/runtime/components/EditorMentionMenu.vue.d.ts +39 -0
- package/dist/runtime/components/EditorSuggestionMenu.d.vue.ts +52 -0
- package/dist/runtime/components/EditorSuggestionMenu.vue +80 -0
- package/dist/runtime/components/EditorSuggestionMenu.vue.d.ts +52 -0
- package/dist/runtime/components/EditorToolbar.d.vue.ts +90 -0
- package/dist/runtime/components/EditorToolbar.vue +242 -0
- package/dist/runtime/components/EditorToolbar.vue.d.ts +90 -0
- package/dist/runtime/components/Error.d.vue.ts +2 -5
- package/dist/runtime/components/Error.vue.d.ts +2 -5
- package/dist/runtime/components/FieldGroup.d.vue.ts +1 -3
- package/dist/runtime/components/FieldGroup.vue.d.ts +1 -3
- package/dist/runtime/components/FileUpload.d.vue.ts +5 -6
- package/dist/runtime/components/FileUpload.vue.d.ts +5 -6
- package/dist/runtime/components/Footer.d.vue.ts +1 -3
- package/dist/runtime/components/Footer.vue.d.ts +1 -3
- package/dist/runtime/components/FooterColumns.d.vue.ts +3 -1
- package/dist/runtime/components/FooterColumns.vue.d.ts +3 -1
- package/dist/runtime/components/Form.d.vue.ts +3 -4
- package/dist/runtime/components/Form.vue.d.ts +3 -4
- package/dist/runtime/components/FormField.d.vue.ts +5 -0
- package/dist/runtime/components/FormField.vue +6 -5
- package/dist/runtime/components/FormField.vue.d.ts +5 -0
- package/dist/runtime/components/Header.d.vue.ts +5 -5
- package/dist/runtime/components/Header.vue.d.ts +5 -5
- package/dist/runtime/components/Input.d.vue.ts +5 -7
- package/dist/runtime/components/Input.vue.d.ts +5 -7
- package/dist/runtime/components/InputDate.d.vue.ts +4 -8
- package/dist/runtime/components/InputDate.vue.d.ts +4 -8
- package/dist/runtime/components/InputMenu.d.vue.ts +9 -15
- package/dist/runtime/components/InputMenu.vue +14 -1
- package/dist/runtime/components/InputMenu.vue.d.ts +9 -15
- package/dist/runtime/components/InputNumber.d.vue.ts +7 -9
- package/dist/runtime/components/InputNumber.vue.d.ts +7 -9
- package/dist/runtime/components/InputTags.d.vue.ts +4 -10
- package/dist/runtime/components/InputTags.vue.d.ts +4 -10
- package/dist/runtime/components/InputTime.d.vue.ts +3 -5
- package/dist/runtime/components/InputTime.vue.d.ts +3 -5
- package/dist/runtime/components/Kbd.d.vue.ts +1 -3
- package/dist/runtime/components/Kbd.vue.d.ts +1 -3
- package/dist/runtime/components/Link.d.vue.ts +6 -6
- package/dist/runtime/components/Link.vue.d.ts +6 -6
- package/dist/runtime/components/LinkBase.d.vue.ts +1 -4
- package/dist/runtime/components/LinkBase.vue.d.ts +1 -4
- package/dist/runtime/components/Marquee.d.vue.ts +1 -5
- package/dist/runtime/components/Marquee.vue.d.ts +1 -5
- package/dist/runtime/components/Modal.d.vue.ts +3 -10
- package/dist/runtime/components/Modal.vue.d.ts +3 -10
- package/dist/runtime/components/NavigationMenu.d.vue.ts +3 -3
- package/dist/runtime/components/NavigationMenu.vue.d.ts +3 -3
- package/dist/runtime/components/PageAnchors.d.vue.ts +3 -1
- package/dist/runtime/components/PageAnchors.vue.d.ts +3 -1
- package/dist/runtime/components/PageAside.d.vue.ts +1 -3
- package/dist/runtime/components/PageAside.vue.d.ts +1 -3
- package/dist/runtime/components/PageCTA.d.vue.ts +1 -4
- package/dist/runtime/components/PageCTA.vue.d.ts +1 -4
- package/dist/runtime/components/PageCard.d.vue.ts +1 -3
- package/dist/runtime/components/PageCard.vue.d.ts +1 -3
- package/dist/runtime/components/PageFeature.d.vue.ts +1 -3
- package/dist/runtime/components/PageFeature.vue +2 -2
- package/dist/runtime/components/PageFeature.vue.d.ts +1 -3
- package/dist/runtime/components/PageHero.d.vue.ts +1 -3
- package/dist/runtime/components/PageHero.vue.d.ts +1 -3
- package/dist/runtime/components/PageLinks.d.vue.ts +3 -1
- package/dist/runtime/components/PageLinks.vue.d.ts +3 -1
- package/dist/runtime/components/PageList.d.vue.ts +1 -3
- package/dist/runtime/components/PageList.vue.d.ts +1 -3
- package/dist/runtime/components/PageLogos.d.vue.ts +1 -3
- package/dist/runtime/components/PageLogos.vue.d.ts +1 -3
- package/dist/runtime/components/PageSection.d.vue.ts +1 -4
- package/dist/runtime/components/PageSection.vue.d.ts +1 -4
- package/dist/runtime/components/Pagination.d.vue.ts +1 -12
- package/dist/runtime/components/Pagination.vue.d.ts +1 -12
- package/dist/runtime/components/PinInput.d.vue.ts +4 -7
- package/dist/runtime/components/PinInput.vue +1 -1
- package/dist/runtime/components/PinInput.vue.d.ts +4 -7
- package/dist/runtime/components/Popover.d.vue.ts +3 -4
- package/dist/runtime/components/Popover.vue.d.ts +3 -4
- package/dist/runtime/components/PricingPlan.d.vue.ts +1 -3
- package/dist/runtime/components/PricingPlan.vue.d.ts +1 -3
- package/dist/runtime/components/PricingPlans.d.vue.ts +3 -1
- package/dist/runtime/components/PricingPlans.vue.d.ts +3 -1
- package/dist/runtime/components/PricingTable.d.vue.ts +3 -1
- package/dist/runtime/components/PricingTable.vue.d.ts +3 -1
- package/dist/runtime/components/Progress.d.vue.ts +1 -5
- package/dist/runtime/components/Progress.vue.d.ts +1 -5
- package/dist/runtime/components/RadioGroup.d.vue.ts +3 -4
- package/dist/runtime/components/RadioGroup.vue.d.ts +3 -4
- package/dist/runtime/components/ScrollArea.d.vue.ts +81 -0
- package/dist/runtime/components/ScrollArea.vue +187 -0
- package/dist/runtime/components/ScrollArea.vue.d.ts +81 -0
- package/dist/runtime/components/Select.d.vue.ts +6 -8
- package/dist/runtime/components/Select.vue +14 -1
- package/dist/runtime/components/Select.vue.d.ts +6 -8
- package/dist/runtime/components/SelectMenu.d.vue.ts +9 -14
- package/dist/runtime/components/SelectMenu.vue +14 -1
- package/dist/runtime/components/SelectMenu.vue.d.ts +9 -14
- package/dist/runtime/components/Separator.d.vue.ts +1 -3
- package/dist/runtime/components/Separator.vue.d.ts +1 -3
- package/dist/runtime/components/Slideover.d.vue.ts +8 -11
- package/dist/runtime/components/Slideover.vue +3 -1
- package/dist/runtime/components/Slideover.vue.d.ts +8 -11
- package/dist/runtime/components/Slider.d.vue.ts +3 -4
- package/dist/runtime/components/Slider.vue +2 -2
- package/dist/runtime/components/Slider.vue.d.ts +3 -4
- package/dist/runtime/components/Stepper.d.vue.ts +3 -5
- package/dist/runtime/components/Stepper.vue.d.ts +3 -5
- package/dist/runtime/components/Table.d.vue.ts +5 -16
- package/dist/runtime/components/Table.vue +55 -33
- package/dist/runtime/components/Table.vue.d.ts +5 -16
- package/dist/runtime/components/Tabs.d.vue.ts +3 -3
- package/dist/runtime/components/Tabs.vue.d.ts +3 -3
- package/dist/runtime/components/Textarea.d.vue.ts +5 -7
- package/dist/runtime/components/Textarea.vue.d.ts +5 -7
- package/dist/runtime/components/Timeline.d.vue.ts +3 -3
- package/dist/runtime/components/Timeline.vue.d.ts +3 -3
- package/dist/runtime/components/Toast.d.vue.ts +3 -7
- package/dist/runtime/components/Toast.vue.d.ts +3 -7
- package/dist/runtime/components/Toaster.d.vue.ts +1 -7
- package/dist/runtime/components/Toaster.vue.d.ts +1 -7
- package/dist/runtime/components/Tooltip.d.vue.ts +1 -3
- package/dist/runtime/components/Tooltip.vue.d.ts +1 -3
- package/dist/runtime/components/Tree.d.vue.ts +3 -4
- package/dist/runtime/components/Tree.vue.d.ts +3 -4
- package/dist/runtime/components/User.d.vue.ts +1 -3
- package/dist/runtime/components/User.vue +0 -1
- package/dist/runtime/components/User.vue.d.ts +1 -3
- package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +3 -6
- package/dist/runtime/components/color-mode/ColorModeButton.vue +3 -22
- package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +3 -6
- package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +1 -3
- package/dist/runtime/components/color-mode/ColorModeSelect.vue +1 -0
- package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +1 -3
- package/dist/runtime/components/content/ContentNavigation.d.vue.ts +3 -3
- package/dist/runtime/components/content/ContentNavigation.vue.d.ts +3 -3
- package/dist/runtime/components/content/ContentSearch.d.vue.ts +6 -6
- package/dist/runtime/components/content/ContentSearch.vue.d.ts +6 -6
- package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +3 -8
- package/dist/runtime/components/content/ContentSearchButton.vue +1 -20
- package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +3 -8
- package/dist/runtime/components/content/ContentSurround.d.vue.ts +3 -1
- package/dist/runtime/components/content/ContentSurround.vue.d.ts +3 -1
- package/dist/runtime/components/content/ContentToc.d.vue.ts +3 -4
- package/dist/runtime/components/content/ContentToc.vue.d.ts +3 -4
- package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +1 -5
- package/dist/runtime/components/locale/LocaleSelect.vue +10 -3
- package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +1 -5
- package/dist/runtime/components/prose/Accordion.d.vue.ts +1 -3
- package/dist/runtime/components/prose/Accordion.vue.d.ts +1 -3
- package/dist/runtime/components/prose/Callout.vue +0 -1
- package/dist/runtime/components/prose/Card.vue +0 -1
- package/dist/runtime/components/prose/CodeGroup.d.vue.ts +1 -3
- package/dist/runtime/components/prose/CodeGroup.vue.d.ts +1 -3
- package/dist/runtime/components/prose/CodeTree.d.vue.ts +20 -1
- package/dist/runtime/components/prose/CodeTree.vue +32 -8
- package/dist/runtime/components/prose/CodeTree.vue.d.ts +20 -1
- package/dist/runtime/components/prose/Img.d.vue.ts +1 -3
- package/dist/runtime/components/prose/Img.vue.d.ts +1 -3
- package/dist/runtime/components/prose/Tabs.d.vue.ts +1 -3
- package/dist/runtime/components/prose/Tabs.vue.d.ts +1 -3
- package/dist/runtime/components/prose/callout/Caution.d.vue.ts +2 -2
- package/dist/runtime/components/prose/callout/Caution.vue.d.ts +2 -2
- package/dist/runtime/components/prose/callout/Note.d.vue.ts +2 -2
- package/dist/runtime/components/prose/callout/Note.vue.d.ts +2 -2
- package/dist/runtime/components/prose/callout/Tip.d.vue.ts +2 -2
- package/dist/runtime/components/prose/callout/Tip.vue.d.ts +2 -2
- package/dist/runtime/components/prose/callout/Warning.d.vue.ts +2 -2
- package/dist/runtime/components/prose/callout/Warning.vue.d.ts +2 -2
- package/dist/runtime/composables/defineShortcuts.d.ts +2 -1
- package/dist/runtime/composables/defineShortcuts.js +62 -15
- package/dist/runtime/composables/useEditorMenu.d.ts +64 -0
- package/dist/runtime/composables/useEditorMenu.js +448 -0
- package/dist/runtime/composables/useFileUpload.d.ts +1 -2
- package/dist/runtime/locale/en_gb.d.ts +3 -0
- package/dist/runtime/locale/en_gb.js +7 -0
- package/dist/runtime/locale/eu.d.ts +3 -0
- package/dist/runtime/locale/eu.js +129 -0
- package/dist/runtime/locale/index.d.ts +3 -0
- package/dist/runtime/locale/index.js +3 -0
- package/dist/runtime/locale/lo.d.ts +3 -0
- package/dist/runtime/locale/lo.js +129 -0
- package/dist/runtime/types/editor.d.ts +69 -0
- package/dist/runtime/types/editor.js +0 -0
- package/dist/runtime/types/index.d.ts +8 -0
- package/dist/runtime/types/index.js +8 -0
- package/dist/runtime/utils/content.d.ts +2 -2
- package/dist/runtime/utils/editor.d.ts +69 -0
- package/dist/runtime/utils/editor.js +364 -0
- package/dist/runtime/utils/locale.d.ts +1 -2
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +1 -3
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +1 -0
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +1 -3
- package/dist/runtime/{inertia/components → vue/overrides/inertia}/Link.d.vue.ts +2 -7
- package/dist/runtime/{inertia/components → vue/overrides/inertia}/Link.vue +3 -3
- package/dist/runtime/{inertia/components → vue/overrides/inertia}/Link.vue.d.ts +2 -7
- package/dist/runtime/{inertia/components → vue/overrides/inertia}/LinkBase.d.vue.ts +2 -5
- package/dist/runtime/{inertia/components → vue/overrides/inertia}/LinkBase.vue.d.ts +2 -5
- package/dist/runtime/vue/overrides/none/Link.d.vue.ts +71 -0
- package/dist/runtime/vue/overrides/none/Link.vue +122 -0
- package/dist/runtime/vue/overrides/none/Link.vue.d.ts +71 -0
- package/dist/runtime/vue/{components → overrides/vue-router}/Link.d.vue.ts +2 -7
- package/dist/runtime/vue/{components → overrides/vue-router}/Link.vue +4 -4
- package/dist/runtime/vue/{components → overrides/vue-router}/Link.vue.d.ts +2 -7
- package/dist/runtime/vue/{stubs.d.ts → stubs/base.d.ts} +4 -5
- package/dist/runtime/vue/{stubs.js → stubs/base.js} +4 -5
- package/dist/runtime/vue/stubs/inertia.d.ts +5 -0
- package/dist/runtime/vue/stubs/inertia.js +10 -0
- package/dist/runtime/vue/stubs/none.d.ts +56 -0
- package/dist/runtime/vue/stubs/none.js +48 -0
- package/dist/runtime/vue/stubs/vue-router.d.ts +2 -0
- package/dist/runtime/vue/stubs/vue-router.js +2 -0
- package/dist/shared/{ui.B77q-Dvh.mjs → ui.DegC4tw1.mjs} +282 -60
- package/dist/unplugin.d.mts +14 -0
- package/dist/unplugin.mjs +73 -48
- package/dist/vite.mjs +1 -1
- package/package.json +45 -31
- package/dist/runtime/inertia/stubs.d.ts +0 -44
- package/dist/runtime/inertia/stubs.js +0 -84
- /package/dist/runtime/{inertia/components → vue/overrides/inertia}/LinkBase.vue +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import type { Editor } from '@tiptap/vue-3';
|
|
3
|
+
import type { BubbleMenuPluginProps } from '@tiptap/extension-bubble-menu';
|
|
4
|
+
import type { FloatingMenuPluginProps } from '@tiptap/extension-floating-menu';
|
|
5
|
+
import theme from '#build/ui/editor-toolbar';
|
|
6
|
+
import type { ButtonProps, DropdownMenuProps, DropdownMenuItem, TooltipProps, LinkPropsKeys } from '../types';
|
|
7
|
+
import type { EditorItem, EditorCustomHandlers } from '../types/editor';
|
|
8
|
+
import type { ArrayOrNested, DynamicSlots, MergeTypes, NestedItem } from '../types/utils';
|
|
9
|
+
import type { ComponentConfig } from '../types/tv';
|
|
10
|
+
type EditorToolbar = ComponentConfig<typeof theme, AppConfig, 'editorToolbar'>;
|
|
11
|
+
type ButtonItem = Omit<ButtonProps, 'type'> & {
|
|
12
|
+
'slot'?: string;
|
|
13
|
+
'tooltip'?: TooltipProps;
|
|
14
|
+
'aria-label'?: string;
|
|
15
|
+
};
|
|
16
|
+
type EditorToolbarButtonItem<H extends EditorCustomHandlers = EditorCustomHandlers> = Omit<ButtonItem, LinkPropsKeys> & EditorItem<H>;
|
|
17
|
+
type EditorToolbarDropdownChildItem<H extends EditorCustomHandlers = EditorCustomHandlers> = DropdownMenuItem | (Omit<DropdownMenuItem, 'type'> & EditorItem<H>);
|
|
18
|
+
type EditorToolbarDropdownItem<H extends EditorCustomHandlers = EditorCustomHandlers> = ButtonItem & DropdownMenuProps<ArrayOrNested<EditorToolbarDropdownChildItem<H>>>;
|
|
19
|
+
export type EditorToolbarItem<H extends EditorCustomHandlers = EditorCustomHandlers> = ButtonItem | EditorToolbarButtonItem<H> | EditorToolbarDropdownItem<H>;
|
|
20
|
+
type EditorToolbarBaseProps<T extends ArrayOrNested<EditorToolbarItem> = ArrayOrNested<EditorToolbarItem>> = {
|
|
21
|
+
/**
|
|
22
|
+
* The element or component this component should render as.
|
|
23
|
+
* @defaultValue 'div'
|
|
24
|
+
*/
|
|
25
|
+
as?: any;
|
|
26
|
+
/**
|
|
27
|
+
* The color of the toolbar controls.
|
|
28
|
+
* @defaultValue 'neutral'
|
|
29
|
+
*/
|
|
30
|
+
color?: ButtonProps['color'];
|
|
31
|
+
/**
|
|
32
|
+
* The variant of the toolbar controls.
|
|
33
|
+
* @defaultValue 'ghost'
|
|
34
|
+
*/
|
|
35
|
+
variant?: ButtonProps['variant'];
|
|
36
|
+
/**
|
|
37
|
+
* The color of the active toolbar control.
|
|
38
|
+
* @defaultValue 'primary'
|
|
39
|
+
*/
|
|
40
|
+
activeColor?: ButtonProps['color'];
|
|
41
|
+
/**
|
|
42
|
+
* The variant of the active toolbar control.
|
|
43
|
+
* @defaultValue 'soft'
|
|
44
|
+
*/
|
|
45
|
+
activeVariant?: ButtonProps['variant'];
|
|
46
|
+
/**
|
|
47
|
+
* The size of the toolbar controls.
|
|
48
|
+
* @defaultValue 'sm'
|
|
49
|
+
*/
|
|
50
|
+
size?: ButtonProps['size'];
|
|
51
|
+
items?: T;
|
|
52
|
+
editor: Editor;
|
|
53
|
+
class?: any;
|
|
54
|
+
ui?: EditorToolbar['slots'];
|
|
55
|
+
};
|
|
56
|
+
export type EditorToolbarProps<T extends ArrayOrNested<EditorToolbarItem> = ArrayOrNested<EditorToolbarItem>> = (EditorToolbarBaseProps<T> & {
|
|
57
|
+
layout?: 'fixed';
|
|
58
|
+
}) | (EditorToolbarBaseProps<T> & Partial<Omit<BubbleMenuPluginProps, 'editor' | 'element'>> & {
|
|
59
|
+
layout?: 'bubble';
|
|
60
|
+
}) | (EditorToolbarBaseProps<T> & Partial<Omit<FloatingMenuPluginProps, 'editor' | 'element'>> & {
|
|
61
|
+
layout?: 'floating';
|
|
62
|
+
});
|
|
63
|
+
type SlotPropsProps = {
|
|
64
|
+
index: number;
|
|
65
|
+
isActive: (item: EditorToolbarItem) => boolean;
|
|
66
|
+
isDisabled: (item: EditorToolbarItem) => boolean;
|
|
67
|
+
onClick: (e: MouseEvent, item: EditorToolbarItem) => void;
|
|
68
|
+
};
|
|
69
|
+
type SlotProps<T extends EditorToolbarItem> = (props: {
|
|
70
|
+
item: T;
|
|
71
|
+
} & SlotPropsProps) => any;
|
|
72
|
+
export type EditorToolbarSlots<A extends ArrayOrNested<EditorToolbarItem> = ArrayOrNested<EditorToolbarItem>, T extends NestedItem<A> = NestedItem<A>> = {
|
|
73
|
+
item: SlotProps<T>;
|
|
74
|
+
} & DynamicSlots<MergeTypes<T>, undefined, SlotPropsProps>;
|
|
75
|
+
declare const __VLS_export: <T extends ArrayOrNested<EditorToolbarItem>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
76
|
+
props: __VLS_PrettifyLocal<EditorToolbarProps<T>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
77
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
78
|
+
} ? P : {});
|
|
79
|
+
expose: (exposed: {}) => void;
|
|
80
|
+
attrs: any;
|
|
81
|
+
slots: EditorToolbarSlots<T, NestedItem<T>>;
|
|
82
|
+
emit: {};
|
|
83
|
+
}>) => import("vue").VNode & {
|
|
84
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
85
|
+
};
|
|
86
|
+
declare const _default: typeof __VLS_export;
|
|
87
|
+
export default _default;
|
|
88
|
+
type __VLS_PrettifyLocal<T> = {
|
|
89
|
+
[K in keyof T as K]: T[K];
|
|
90
|
+
} & {};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import theme from "#build/ui/editor-toolbar";
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { computed, inject } from "vue";
|
|
7
|
+
import { Primitive, Separator, useForwardProps } from "reka-ui";
|
|
8
|
+
import { defu } from "defu";
|
|
9
|
+
import { BubbleMenu, FloatingMenu } from "@tiptap/vue-3/menus";
|
|
10
|
+
import { reactiveOmit } from "@vueuse/core";
|
|
11
|
+
import { useAppConfig } from "#imports";
|
|
12
|
+
import { isArrayOfArray, pick, omit } from "../utils";
|
|
13
|
+
import { createHandlers } from "../utils/editor";
|
|
14
|
+
import { tv } from "../utils/tv";
|
|
15
|
+
import UButton from "./Button.vue";
|
|
16
|
+
import UDropdownMenu from "./DropdownMenu.vue";
|
|
17
|
+
import UTooltip from "./Tooltip.vue";
|
|
18
|
+
defineOptions({ inheritAttrs: false });
|
|
19
|
+
const props = defineProps({
|
|
20
|
+
as: { type: null, required: false },
|
|
21
|
+
color: { type: null, required: false, default: "neutral" },
|
|
22
|
+
variant: { type: null, required: false, default: "ghost" },
|
|
23
|
+
activeColor: { type: null, required: false, default: "primary" },
|
|
24
|
+
activeVariant: { type: null, required: false, default: "soft" },
|
|
25
|
+
size: { type: null, required: false, default: "sm" },
|
|
26
|
+
items: { type: null, required: false },
|
|
27
|
+
editor: { type: Object, required: true },
|
|
28
|
+
class: { type: null, required: false },
|
|
29
|
+
ui: { type: null, required: false },
|
|
30
|
+
layout: { type: String, required: false, default: "fixed" },
|
|
31
|
+
pluginKey: { type: [Object, String], required: false },
|
|
32
|
+
updateDelay: { type: Number, required: false },
|
|
33
|
+
resizeDelay: { type: Number, required: false },
|
|
34
|
+
shouldShow: { type: [Function, null], required: false },
|
|
35
|
+
appendTo: { type: Function, required: false, skipCheck: true },
|
|
36
|
+
getReferencedVirtualElement: { type: Function, required: false },
|
|
37
|
+
options: { type: Object, required: false }
|
|
38
|
+
});
|
|
39
|
+
defineSlots();
|
|
40
|
+
const appConfig = useAppConfig();
|
|
41
|
+
const handlers = inject("editorHandlers", computed(() => createHandlers()));
|
|
42
|
+
const Component = computed(() => {
|
|
43
|
+
return {
|
|
44
|
+
bubble: BubbleMenu,
|
|
45
|
+
floating: FloatingMenu,
|
|
46
|
+
fixed: "template"
|
|
47
|
+
}[props.layout];
|
|
48
|
+
});
|
|
49
|
+
const rootProps = useForwardProps(reactiveOmit(props, "as", "color", "variant", "activeColor", "activeVariant", "size", "items", "layout", "editor", "class", "ui"));
|
|
50
|
+
const options = computed(() => defu(props.options, {
|
|
51
|
+
offset: 8,
|
|
52
|
+
shift: { padding: 8 }
|
|
53
|
+
}));
|
|
54
|
+
const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.editorToolbar || {} })({
|
|
55
|
+
layout: props.layout
|
|
56
|
+
}));
|
|
57
|
+
const groups = computed(
|
|
58
|
+
() => props.items?.length ? isArrayOfArray(props.items) ? props.items : [props.items] : []
|
|
59
|
+
);
|
|
60
|
+
function isActive(item) {
|
|
61
|
+
if (!props.editor?.isEditable) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if ("items" in item && item.items?.length) {
|
|
65
|
+
return item.items?.some((item2) => isActive(item2)) || false;
|
|
66
|
+
}
|
|
67
|
+
if (!("kind" in item)) {
|
|
68
|
+
return item.active ?? false;
|
|
69
|
+
}
|
|
70
|
+
const handler = handlers?.value?.[item.kind];
|
|
71
|
+
return handler?.isActive(props.editor, item) || false;
|
|
72
|
+
}
|
|
73
|
+
function isDisabled(item) {
|
|
74
|
+
if (!props.editor?.isEditable) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if ("items" in item && item.items?.length) {
|
|
78
|
+
const items = isArrayOfArray(item.items) ? item.items.flat() : item.items;
|
|
79
|
+
const itemItems = items.filter((item2) => "kind" in item2);
|
|
80
|
+
if (itemItems.length === 0) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
return itemItems.every((item2) => isDisabled(item2));
|
|
84
|
+
}
|
|
85
|
+
if (!("kind" in item)) {
|
|
86
|
+
return item.disabled ?? false;
|
|
87
|
+
}
|
|
88
|
+
const handler = handlers?.value?.[item.kind];
|
|
89
|
+
if (!handler) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
if (handler.isDisabled?.(props.editor, item)) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
return !handler.canExecute(props.editor, item);
|
|
96
|
+
}
|
|
97
|
+
function onClick(e, item) {
|
|
98
|
+
if (!props.editor?.isEditable || isDisabled(item)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if ("items" in item || !("kind" in item)) {
|
|
102
|
+
if ("onClick" in item) {
|
|
103
|
+
for (const onClick2 of Array.isArray(item.onClick) ? item.onClick : [item.onClick]) {
|
|
104
|
+
onClick2?.(e);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const handler = handlers?.value?.[item.kind];
|
|
110
|
+
if (handler) {
|
|
111
|
+
handler.execute(props.editor, item).run();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function getActiveChildItem(item) {
|
|
115
|
+
if (!item.items) {
|
|
116
|
+
return void 0;
|
|
117
|
+
}
|
|
118
|
+
const items = isArrayOfArray(item.items) ? item.items.flat() : item.items;
|
|
119
|
+
return items.find((childItem) => {
|
|
120
|
+
if (!("kind" in childItem)) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
return isActive(childItem);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function getButtonProps(item) {
|
|
127
|
+
const baseProps = omit(item, ["kind", "mark", "align", "level", "href", "src", "pos", "items", "slot", "checkedIcon", "loadingIcon", "externalIcon", "content", "arrow", "portal", "modal", "tooltip"]);
|
|
128
|
+
if ("items" in item && item.items?.length) {
|
|
129
|
+
const activeChild = getActiveChildItem(item);
|
|
130
|
+
if (activeChild?.icon) {
|
|
131
|
+
baseProps.icon = activeChild.icon;
|
|
132
|
+
}
|
|
133
|
+
if (activeChild?.label && baseProps.label !== void 0) {
|
|
134
|
+
baseProps.label = activeChild.label;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return defu(baseProps, {
|
|
138
|
+
color: props.color,
|
|
139
|
+
activeColor: props.activeColor,
|
|
140
|
+
activeVariant: props.activeVariant,
|
|
141
|
+
variant: props.variant,
|
|
142
|
+
size: props.size
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function getDropdownProps(item) {
|
|
146
|
+
const baseProps = pick(item, ["checkedIcon", "loadingIcon", "externalIcon", "content", "arrow", "portal", "modal", "ui"]);
|
|
147
|
+
return defu(baseProps, {
|
|
148
|
+
modal: false
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
function mapDropdownItem(item) {
|
|
152
|
+
const children = "children" in item && Array.isArray(item.children) ? item.children.map(mapDropdownItem) : void 0;
|
|
153
|
+
if (!("kind" in item)) {
|
|
154
|
+
return children ? { ...item, children } : item;
|
|
155
|
+
}
|
|
156
|
+
const editorToolbarItem = item;
|
|
157
|
+
return {
|
|
158
|
+
...editorToolbarItem,
|
|
159
|
+
...children && { children },
|
|
160
|
+
active: isActive(editorToolbarItem),
|
|
161
|
+
disabled: isDisabled(editorToolbarItem),
|
|
162
|
+
onSelect: (e) => onClick(e, editorToolbarItem)
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
function getDropdownItems(item) {
|
|
166
|
+
if (!item.items) {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
return isArrayOfArray(item.items) ? item.items.map((group) => group.map(mapDropdownItem)) : [item.items.map(mapDropdownItem)];
|
|
170
|
+
}
|
|
171
|
+
</script>
|
|
172
|
+
|
|
173
|
+
<template>
|
|
174
|
+
<Primitive
|
|
175
|
+
:as="Component"
|
|
176
|
+
v-bind="Component !== 'template' ? {
|
|
177
|
+
editor,
|
|
178
|
+
tabindex: -1,
|
|
179
|
+
class: ui.root({ class: props.ui?.root }),
|
|
180
|
+
...rootProps,
|
|
181
|
+
options,
|
|
182
|
+
...$attrs
|
|
183
|
+
} : {
|
|
184
|
+
...$attrs
|
|
185
|
+
}"
|
|
186
|
+
>
|
|
187
|
+
<Primitive :as="as" role="toolbar" data-slot="base" :class="ui.base({ class: [props.ui?.base, props.class] })">
|
|
188
|
+
<template v-for="(group, groupIndex) in groups" :key="`group-${groupIndex}`">
|
|
189
|
+
<div role="group" data-slot="group" :class="ui.group({ class: props.ui?.group })">
|
|
190
|
+
<template v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`">
|
|
191
|
+
<slot
|
|
192
|
+
:name="item.slot || 'item'"
|
|
193
|
+
:item="item"
|
|
194
|
+
:index="index"
|
|
195
|
+
:is-active="isActive"
|
|
196
|
+
:is-disabled="isDisabled"
|
|
197
|
+
:on-click="onClick"
|
|
198
|
+
>
|
|
199
|
+
<UDropdownMenu
|
|
200
|
+
v-if="'items' in item && item.items?.length"
|
|
201
|
+
v-bind="getDropdownProps(item)"
|
|
202
|
+
:items="getDropdownItems(item)"
|
|
203
|
+
>
|
|
204
|
+
<UTooltip v-if="item.tooltip" :disabled="isDisabled(item)" v-bind="{ ...item.tooltip || {} }">
|
|
205
|
+
<UButton :active="isActive(item)" :disabled="isDisabled(item)" v-bind="getButtonProps(item)" />
|
|
206
|
+
</UTooltip>
|
|
207
|
+
|
|
208
|
+
<UButton v-else :active="isActive(item)" :disabled="isDisabled(item)" v-bind="getButtonProps(item)" />
|
|
209
|
+
</UDropdownMenu>
|
|
210
|
+
|
|
211
|
+
<UTooltip v-else-if="item.tooltip" :disabled="isDisabled(item)" v-bind="{ ...item.tooltip || {} }">
|
|
212
|
+
<UButton
|
|
213
|
+
:active="isActive(item)"
|
|
214
|
+
:disabled="isDisabled(item)"
|
|
215
|
+
v-bind="getButtonProps(item)"
|
|
216
|
+
:ui="item.ui"
|
|
217
|
+
@click="onClick($event, item)"
|
|
218
|
+
/>
|
|
219
|
+
</UTooltip>
|
|
220
|
+
|
|
221
|
+
<UButton
|
|
222
|
+
v-else
|
|
223
|
+
:active="isActive(item)"
|
|
224
|
+
:disabled="isDisabled(item)"
|
|
225
|
+
v-bind="getButtonProps(item)"
|
|
226
|
+
:ui="item.ui"
|
|
227
|
+
@click="onClick($event, item)"
|
|
228
|
+
/>
|
|
229
|
+
</slot>
|
|
230
|
+
</template>
|
|
231
|
+
</div>
|
|
232
|
+
|
|
233
|
+
<Separator
|
|
234
|
+
v-if="groupIndex < groups.length - 1"
|
|
235
|
+
data-slot="separator"
|
|
236
|
+
:class="ui.separator({ class: props.ui?.separator })"
|
|
237
|
+
orientation="vertical"
|
|
238
|
+
/>
|
|
239
|
+
</template>
|
|
240
|
+
</Primitive>
|
|
241
|
+
</Primitive>
|
|
242
|
+
</template>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import type { Editor } from '@tiptap/vue-3';
|
|
3
|
+
import type { BubbleMenuPluginProps } from '@tiptap/extension-bubble-menu';
|
|
4
|
+
import type { FloatingMenuPluginProps } from '@tiptap/extension-floating-menu';
|
|
5
|
+
import theme from '#build/ui/editor-toolbar';
|
|
6
|
+
import type { ButtonProps, DropdownMenuProps, DropdownMenuItem, TooltipProps, LinkPropsKeys } from '../types';
|
|
7
|
+
import type { EditorItem, EditorCustomHandlers } from '../types/editor';
|
|
8
|
+
import type { ArrayOrNested, DynamicSlots, MergeTypes, NestedItem } from '../types/utils';
|
|
9
|
+
import type { ComponentConfig } from '../types/tv';
|
|
10
|
+
type EditorToolbar = ComponentConfig<typeof theme, AppConfig, 'editorToolbar'>;
|
|
11
|
+
type ButtonItem = Omit<ButtonProps, 'type'> & {
|
|
12
|
+
'slot'?: string;
|
|
13
|
+
'tooltip'?: TooltipProps;
|
|
14
|
+
'aria-label'?: string;
|
|
15
|
+
};
|
|
16
|
+
type EditorToolbarButtonItem<H extends EditorCustomHandlers = EditorCustomHandlers> = Omit<ButtonItem, LinkPropsKeys> & EditorItem<H>;
|
|
17
|
+
type EditorToolbarDropdownChildItem<H extends EditorCustomHandlers = EditorCustomHandlers> = DropdownMenuItem | (Omit<DropdownMenuItem, 'type'> & EditorItem<H>);
|
|
18
|
+
type EditorToolbarDropdownItem<H extends EditorCustomHandlers = EditorCustomHandlers> = ButtonItem & DropdownMenuProps<ArrayOrNested<EditorToolbarDropdownChildItem<H>>>;
|
|
19
|
+
export type EditorToolbarItem<H extends EditorCustomHandlers = EditorCustomHandlers> = ButtonItem | EditorToolbarButtonItem<H> | EditorToolbarDropdownItem<H>;
|
|
20
|
+
type EditorToolbarBaseProps<T extends ArrayOrNested<EditorToolbarItem> = ArrayOrNested<EditorToolbarItem>> = {
|
|
21
|
+
/**
|
|
22
|
+
* The element or component this component should render as.
|
|
23
|
+
* @defaultValue 'div'
|
|
24
|
+
*/
|
|
25
|
+
as?: any;
|
|
26
|
+
/**
|
|
27
|
+
* The color of the toolbar controls.
|
|
28
|
+
* @defaultValue 'neutral'
|
|
29
|
+
*/
|
|
30
|
+
color?: ButtonProps['color'];
|
|
31
|
+
/**
|
|
32
|
+
* The variant of the toolbar controls.
|
|
33
|
+
* @defaultValue 'ghost'
|
|
34
|
+
*/
|
|
35
|
+
variant?: ButtonProps['variant'];
|
|
36
|
+
/**
|
|
37
|
+
* The color of the active toolbar control.
|
|
38
|
+
* @defaultValue 'primary'
|
|
39
|
+
*/
|
|
40
|
+
activeColor?: ButtonProps['color'];
|
|
41
|
+
/**
|
|
42
|
+
* The variant of the active toolbar control.
|
|
43
|
+
* @defaultValue 'soft'
|
|
44
|
+
*/
|
|
45
|
+
activeVariant?: ButtonProps['variant'];
|
|
46
|
+
/**
|
|
47
|
+
* The size of the toolbar controls.
|
|
48
|
+
* @defaultValue 'sm'
|
|
49
|
+
*/
|
|
50
|
+
size?: ButtonProps['size'];
|
|
51
|
+
items?: T;
|
|
52
|
+
editor: Editor;
|
|
53
|
+
class?: any;
|
|
54
|
+
ui?: EditorToolbar['slots'];
|
|
55
|
+
};
|
|
56
|
+
export type EditorToolbarProps<T extends ArrayOrNested<EditorToolbarItem> = ArrayOrNested<EditorToolbarItem>> = (EditorToolbarBaseProps<T> & {
|
|
57
|
+
layout?: 'fixed';
|
|
58
|
+
}) | (EditorToolbarBaseProps<T> & Partial<Omit<BubbleMenuPluginProps, 'editor' | 'element'>> & {
|
|
59
|
+
layout?: 'bubble';
|
|
60
|
+
}) | (EditorToolbarBaseProps<T> & Partial<Omit<FloatingMenuPluginProps, 'editor' | 'element'>> & {
|
|
61
|
+
layout?: 'floating';
|
|
62
|
+
});
|
|
63
|
+
type SlotPropsProps = {
|
|
64
|
+
index: number;
|
|
65
|
+
isActive: (item: EditorToolbarItem) => boolean;
|
|
66
|
+
isDisabled: (item: EditorToolbarItem) => boolean;
|
|
67
|
+
onClick: (e: MouseEvent, item: EditorToolbarItem) => void;
|
|
68
|
+
};
|
|
69
|
+
type SlotProps<T extends EditorToolbarItem> = (props: {
|
|
70
|
+
item: T;
|
|
71
|
+
} & SlotPropsProps) => any;
|
|
72
|
+
export type EditorToolbarSlots<A extends ArrayOrNested<EditorToolbarItem> = ArrayOrNested<EditorToolbarItem>, T extends NestedItem<A> = NestedItem<A>> = {
|
|
73
|
+
item: SlotProps<T>;
|
|
74
|
+
} & DynamicSlots<MergeTypes<T>, undefined, SlotPropsProps>;
|
|
75
|
+
declare const __VLS_export: <T extends ArrayOrNested<EditorToolbarItem>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
76
|
+
props: __VLS_PrettifyLocal<EditorToolbarProps<T>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
77
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
78
|
+
} ? P : {});
|
|
79
|
+
expose: (exposed: {}) => void;
|
|
80
|
+
attrs: any;
|
|
81
|
+
slots: EditorToolbarSlots<T, NestedItem<T>>;
|
|
82
|
+
emit: {};
|
|
83
|
+
}>) => import("vue").VNode & {
|
|
84
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
85
|
+
};
|
|
86
|
+
declare const _default: typeof __VLS_export;
|
|
87
|
+
export default _default;
|
|
88
|
+
type __VLS_PrettifyLocal<T> = {
|
|
89
|
+
[K in keyof T as K]: T[K];
|
|
90
|
+
} & {};
|
|
@@ -23,7 +23,7 @@ export interface ErrorProps {
|
|
|
23
23
|
* `{ size: 'lg', color: 'primary', variant: 'solid', label: 'Back to home' }`{lang="ts-type"}
|
|
24
24
|
* @defaultValue true
|
|
25
25
|
*/
|
|
26
|
-
clear?: boolean |
|
|
26
|
+
clear?: boolean | ButtonProps;
|
|
27
27
|
class?: any;
|
|
28
28
|
ui?: Error['slots'];
|
|
29
29
|
}
|
|
@@ -34,10 +34,7 @@ export interface ErrorSlots {
|
|
|
34
34
|
message(props?: {}): any;
|
|
35
35
|
links(props?: {}): any;
|
|
36
36
|
}
|
|
37
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ErrorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ErrorProps> & Readonly<{}>, {
|
|
38
|
-
redirect: string;
|
|
39
|
-
clear: boolean | Partial<ButtonProps>;
|
|
40
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ErrorSlots>;
|
|
37
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ErrorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ErrorProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ErrorSlots>;
|
|
41
38
|
declare const _default: typeof __VLS_export;
|
|
42
39
|
export default _default;
|
|
43
40
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -23,7 +23,7 @@ export interface ErrorProps {
|
|
|
23
23
|
* `{ size: 'lg', color: 'primary', variant: 'solid', label: 'Back to home' }`{lang="ts-type"}
|
|
24
24
|
* @defaultValue true
|
|
25
25
|
*/
|
|
26
|
-
clear?: boolean |
|
|
26
|
+
clear?: boolean | ButtonProps;
|
|
27
27
|
class?: any;
|
|
28
28
|
ui?: Error['slots'];
|
|
29
29
|
}
|
|
@@ -34,10 +34,7 @@ export interface ErrorSlots {
|
|
|
34
34
|
message(props?: {}): any;
|
|
35
35
|
links(props?: {}): any;
|
|
36
36
|
}
|
|
37
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ErrorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ErrorProps> & Readonly<{}>, {
|
|
38
|
-
redirect: string;
|
|
39
|
-
clear: boolean | Partial<ButtonProps>;
|
|
40
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ErrorSlots>;
|
|
37
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ErrorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ErrorProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ErrorSlots>;
|
|
41
38
|
declare const _default: typeof __VLS_export;
|
|
42
39
|
export default _default;
|
|
43
40
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -23,9 +23,7 @@ export interface FieldGroupProps {
|
|
|
23
23
|
export interface FieldGroupSlots {
|
|
24
24
|
default(props?: {}): any;
|
|
25
25
|
}
|
|
26
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FieldGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FieldGroupProps> & Readonly<{}>, {
|
|
27
|
-
orientation: FieldGroup["variants"]["orientation"];
|
|
28
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FieldGroupSlots>;
|
|
26
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FieldGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FieldGroupProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FieldGroupSlots>;
|
|
29
27
|
declare const _default: typeof __VLS_export;
|
|
30
28
|
export default _default;
|
|
31
29
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -23,9 +23,7 @@ export interface FieldGroupProps {
|
|
|
23
23
|
export interface FieldGroupSlots {
|
|
24
24
|
default(props?: {}): any;
|
|
25
25
|
}
|
|
26
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FieldGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FieldGroupProps> & Readonly<{}>, {
|
|
27
|
-
orientation: FieldGroup["variants"]["orientation"];
|
|
28
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FieldGroupSlots>;
|
|
26
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FieldGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FieldGroupProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FieldGroupSlots>;
|
|
29
27
|
declare const _default: typeof __VLS_export;
|
|
30
28
|
export default _default;
|
|
31
29
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
2
|
import type { UseFileDialogReturn } from '@vueuse/core';
|
|
3
3
|
import theme from '#build/ui/file-upload';
|
|
4
|
-
import type { ButtonProps, IconProps } from '../types';
|
|
4
|
+
import type { ButtonProps, IconProps, LinkPropsKeys } from '../types';
|
|
5
5
|
import type { InputHTMLAttributes } from '../types/html';
|
|
6
6
|
import type { ComponentConfig } from '../types/tv';
|
|
7
7
|
type FileUpload = ComponentConfig<typeof theme, AppConfig, 'fileUpload'>;
|
|
@@ -83,7 +83,7 @@ export interface FileUploadProps<M extends boolean = false> extends /** @vue-ign
|
|
|
83
83
|
* When `layout` is `grid`, the default is `{ color: 'neutral', variant: 'solid', size: 'xs' }`{lang="ts-type"}
|
|
84
84
|
* When `layout` is `list`, the default is `{ color: 'neutral', variant: 'link' }`{lang="ts-type"}
|
|
85
85
|
*/
|
|
86
|
-
fileDelete?: boolean |
|
|
86
|
+
fileDelete?: boolean | Omit<ButtonProps, LinkPropsKeys>;
|
|
87
87
|
/**
|
|
88
88
|
* The icon displayed to delete a file.
|
|
89
89
|
* @defaultValue appConfig.ui.icons.close
|
|
@@ -157,10 +157,9 @@ export interface FileUploadSlots<M extends boolean = false> {
|
|
|
157
157
|
declare const __VLS_export: <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_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
158
158
|
props: __VLS_PrettifyLocal<(FileUploadProps<M> & {
|
|
159
159
|
modelValue?: (M extends true ? File[] : File) | null;
|
|
160
|
-
}) & {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}> & import("vue").PublicProps;
|
|
160
|
+
}) & __VLS_EmitsToProps<__VLS_NormalizeEmits<((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: (M extends true ? File[] : File) | null | undefined) => void)>>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
161
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
162
|
+
} ? P : {});
|
|
164
163
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
165
164
|
inputRef: Readonly<import("vue").Ref<HTMLInputElement, HTMLInputElement>>;
|
|
166
165
|
dropzoneRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AppConfig } from '@nuxt/schema';
|
|
2
2
|
import type { UseFileDialogReturn } from '@vueuse/core';
|
|
3
3
|
import theme from '#build/ui/file-upload';
|
|
4
|
-
import type { ButtonProps, IconProps } from '../types';
|
|
4
|
+
import type { ButtonProps, IconProps, LinkPropsKeys } from '../types';
|
|
5
5
|
import type { InputHTMLAttributes } from '../types/html';
|
|
6
6
|
import type { ComponentConfig } from '../types/tv';
|
|
7
7
|
type FileUpload = ComponentConfig<typeof theme, AppConfig, 'fileUpload'>;
|
|
@@ -83,7 +83,7 @@ export interface FileUploadProps<M extends boolean = false> extends /** @vue-ign
|
|
|
83
83
|
* When `layout` is `grid`, the default is `{ color: 'neutral', variant: 'solid', size: 'xs' }`{lang="ts-type"}
|
|
84
84
|
* When `layout` is `list`, the default is `{ color: 'neutral', variant: 'link' }`{lang="ts-type"}
|
|
85
85
|
*/
|
|
86
|
-
fileDelete?: boolean |
|
|
86
|
+
fileDelete?: boolean | Omit<ButtonProps, LinkPropsKeys>;
|
|
87
87
|
/**
|
|
88
88
|
* The icon displayed to delete a file.
|
|
89
89
|
* @defaultValue appConfig.ui.icons.close
|
|
@@ -157,10 +157,9 @@ export interface FileUploadSlots<M extends boolean = false> {
|
|
|
157
157
|
declare const __VLS_export: <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_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
158
158
|
props: __VLS_PrettifyLocal<(FileUploadProps<M> & {
|
|
159
159
|
modelValue?: (M extends true ? File[] : File) | null;
|
|
160
|
-
}) & {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}> & import("vue").PublicProps;
|
|
160
|
+
}) & __VLS_EmitsToProps<__VLS_NormalizeEmits<((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: (M extends true ? File[] : File) | null | undefined) => void)>>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
161
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
162
|
+
} ? P : {});
|
|
164
163
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
165
164
|
inputRef: Readonly<import("vue").Ref<HTMLInputElement, HTMLInputElement>>;
|
|
166
165
|
dropzoneRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
@@ -18,9 +18,7 @@ export interface FooterSlots {
|
|
|
18
18
|
top(props?: {}): any;
|
|
19
19
|
bottom(props?: {}): any;
|
|
20
20
|
}
|
|
21
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FooterProps> & Readonly<{}>, {
|
|
22
|
-
as: any;
|
|
23
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FooterSlots>;
|
|
21
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FooterProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FooterSlots>;
|
|
24
22
|
declare const _default: typeof __VLS_export;
|
|
25
23
|
export default _default;
|
|
26
24
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -18,9 +18,7 @@ export interface FooterSlots {
|
|
|
18
18
|
top(props?: {}): any;
|
|
19
19
|
bottom(props?: {}): any;
|
|
20
20
|
}
|
|
21
|
-
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FooterProps> & Readonly<{}>, {
|
|
22
|
-
as: any;
|
|
23
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FooterSlots>;
|
|
21
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<FooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FooterProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, FooterSlots>;
|
|
24
22
|
declare const _default: typeof __VLS_export;
|
|
25
23
|
export default _default;
|
|
26
24
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -50,7 +50,9 @@ export interface FooterColumnsSlots<T extends FooterColumnLink = FooterColumnLin
|
|
|
50
50
|
}): any;
|
|
51
51
|
}
|
|
52
52
|
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_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
53
|
-
props: __VLS_PrettifyLocal<FooterColumnsProps<T>> & import("vue").PublicProps
|
|
53
|
+
props: __VLS_PrettifyLocal<FooterColumnsProps<T>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
54
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
55
|
+
} ? P : {});
|
|
54
56
|
expose: (exposed: {}) => void;
|
|
55
57
|
attrs: any;
|
|
56
58
|
slots: FooterColumnsSlots<T>;
|
|
@@ -50,7 +50,9 @@ export interface FooterColumnsSlots<T extends FooterColumnLink = FooterColumnLin
|
|
|
50
50
|
}): any;
|
|
51
51
|
}
|
|
52
52
|
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_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
53
|
-
props: __VLS_PrettifyLocal<FooterColumnsProps<T>> & import("vue").PublicProps
|
|
53
|
+
props: __VLS_PrettifyLocal<FooterColumnsProps<T>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
54
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
55
|
+
} ? P : {});
|
|
54
56
|
expose: (exposed: {}) => void;
|
|
55
57
|
attrs: any;
|
|
56
58
|
slots: FooterColumnsSlots<T>;
|
|
@@ -60,10 +60,9 @@ export interface FormSlots {
|
|
|
60
60
|
}): any;
|
|
61
61
|
}
|
|
62
62
|
declare const __VLS_export: <S extends FormSchema, T extends boolean = true, N 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_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
63
|
-
props: __VLS_PrettifyLocal<FormProps<S, T, N> & {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}> & import("vue").PublicProps;
|
|
63
|
+
props: __VLS_PrettifyLocal<FormProps<S, T, N> & __VLS_EmitsToProps<__VLS_NormalizeEmits<((evt: "error", event: FormErrorEvent) => void) & ((evt: "submit", event: FormSubmitEvent<FormData<S, T>>) => void)>>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
64
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
65
|
+
} ? P : {});
|
|
67
66
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
68
67
|
validate: {
|
|
69
68
|
<T_1 extends boolean>(opts: {
|
|
@@ -60,10 +60,9 @@ export interface FormSlots {
|
|
|
60
60
|
}): any;
|
|
61
61
|
}
|
|
62
62
|
declare const __VLS_export: <S extends FormSchema, T extends boolean = true, N 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_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
63
|
-
props: __VLS_PrettifyLocal<FormProps<S, T, N> & {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}> & import("vue").PublicProps;
|
|
63
|
+
props: __VLS_PrettifyLocal<FormProps<S, T, N> & __VLS_EmitsToProps<__VLS_NormalizeEmits<((evt: "error", event: FormErrorEvent) => void) & ((evt: "submit", event: FormSubmitEvent<FormData<S, T>>) => void)>>> & import("vue").PublicProps & (typeof globalThis extends {
|
|
64
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
65
|
+
} ? P : {});
|
|
67
66
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
68
67
|
validate: {
|
|
69
68
|
<T_1 extends boolean>(opts: {
|
|
@@ -29,6 +29,11 @@ export interface FormFieldProps {
|
|
|
29
29
|
* @defaultValue `300`
|
|
30
30
|
*/
|
|
31
31
|
validateOnInputDelay?: number;
|
|
32
|
+
/**
|
|
33
|
+
* The orientation of the form field.
|
|
34
|
+
* @defaultValue 'vertical'
|
|
35
|
+
*/
|
|
36
|
+
orientation?: FormField['variants']['orientation'];
|
|
32
37
|
class?: any;
|
|
33
38
|
ui?: FormField['slots'];
|
|
34
39
|
}
|