@nuxt/ui 4.0.0-alpha.1 → 4.0.0-beta.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/content/content-navigation.ts +2 -1
- package/.nuxt/ui/marquee.ts +1 -1
- package/.nuxt/ui/progress.ts +3 -3
- package/.nuxt/ui/prose/code-tree.ts +1 -1
- package/.nuxt/ui/prose/img.ts +1 -1
- package/.nuxt/ui/tree.ts +1 -1
- package/README.md +14 -1
- package/dist/module.d.mts +6 -6
- package/dist/module.json +2 -2
- package/dist/module.mjs +8 -6
- package/dist/runtime/components/Accordion.d.vue.ts +79 -0
- package/dist/runtime/components/Accordion.vue +3 -3
- package/dist/runtime/components/Accordion.vue.d.ts +2 -2
- package/dist/runtime/components/Alert.d.vue.ts +81 -0
- package/dist/runtime/components/App.d.vue.ts +25 -0
- package/dist/runtime/components/AuthForm.d.vue.ts +128 -0
- package/dist/runtime/components/AuthForm.vue.d.ts +39 -1
- package/dist/runtime/components/Avatar.d.vue.ts +41 -0
- package/dist/runtime/components/AvatarGroup.d.vue.ts +31 -0
- package/dist/runtime/components/Badge.d.vue.ts +43 -0
- package/dist/runtime/components/Banner.d.vue.ts +72 -0
- package/dist/runtime/components/Banner.vue +1 -1
- package/dist/runtime/components/BlogPost.d.vue.ts +60 -0
- package/dist/runtime/components/BlogPosts.d.vue.ts +31 -0
- package/dist/runtime/components/Breadcrumb.d.vue.ts +67 -0
- package/dist/runtime/components/Breadcrumb.vue +1 -1
- package/dist/runtime/components/Breadcrumb.vue.d.ts +2 -2
- package/dist/runtime/components/Button.d.vue.ts +44 -0
- package/dist/runtime/components/Calendar.d.vue.ts +112 -0
- package/dist/runtime/components/Card.d.vue.ts +29 -0
- package/dist/runtime/components/Carousel.d.vue.ts +127 -0
- package/dist/runtime/components/Carousel.vue.d.ts +10 -10
- package/dist/runtime/components/ChangelogVersion.d.vue.ts +59 -0
- package/dist/runtime/components/ChangelogVersions.d.vue.ts +78 -0
- package/dist/runtime/components/ChangelogVersions.vue +2 -2
- package/dist/runtime/components/ChatMessage.d.vue.ts +67 -0
- package/dist/runtime/components/ChatMessages.d.vue.ts +83 -0
- package/dist/runtime/components/ChatMessages.vue +6 -6
- package/dist/runtime/components/ChatPalette.d.vue.ts +24 -0
- package/dist/runtime/components/ChatPrompt.d.vue.ts +61 -0
- package/dist/runtime/components/ChatPrompt.vue +2 -2
- package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +100 -0
- package/dist/runtime/components/Checkbox.d.vue.ts +74 -0
- package/dist/runtime/components/CheckboxGroup.d.vue.ts +89 -0
- package/dist/runtime/components/CheckboxGroup.vue +8 -8
- package/dist/runtime/components/CheckboxGroup.vue.d.ts +20 -16
- package/dist/runtime/components/Chip.d.vue.ts +57 -0
- package/dist/runtime/components/Collapsible.d.vue.ts +35 -0
- package/dist/runtime/components/ColorPicker.d.vue.ts +48 -0
- package/dist/runtime/components/CommandPalette.d.vue.ts +193 -0
- package/dist/runtime/components/CommandPalette.vue +5 -4
- package/dist/runtime/components/CommandPalette.vue.d.ts +2 -1
- package/dist/runtime/components/Container.d.vue.ts +18 -0
- package/dist/runtime/components/ContextMenu.d.vue.ts +110 -0
- package/dist/runtime/components/ContextMenu.vue +2 -2
- package/dist/runtime/components/ContextMenu.vue.d.ts +2 -2
- package/dist/runtime/components/ContextMenuContent.d.vue.ts +50 -0
- package/dist/runtime/components/ContextMenuContent.vue +2 -2
- package/dist/runtime/components/ContextMenuContent.vue.d.ts +2 -2
- package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
- package/dist/runtime/components/DashboardGroup.vue.d.ts +1 -1
- package/dist/runtime/components/DashboardNavbar.d.vue.ts +52 -0
- package/dist/runtime/components/DashboardPanel.d.vue.ts +30 -0
- package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +18 -0
- package/dist/runtime/components/DashboardSearch.d.vue.ts +91 -0
- package/dist/runtime/components/DashboardSearch.vue +2 -2
- package/dist/runtime/components/DashboardSearchButton.d.vue.ts +59 -0
- package/dist/runtime/components/DashboardSearchButton.vue +2 -2
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +75 -0
- package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +19 -0
- package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +19 -0
- package/dist/runtime/components/DashboardToolbar.d.vue.ts +25 -0
- package/dist/runtime/components/Drawer.d.vue.ts +84 -0
- package/dist/runtime/components/DropdownMenu.d.vue.ts +120 -0
- package/dist/runtime/components/DropdownMenu.vue +2 -2
- package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -2
- package/dist/runtime/components/DropdownMenuContent.d.vue.ts +56 -0
- package/dist/runtime/components/DropdownMenuContent.vue +2 -2
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +2 -2
- package/dist/runtime/components/Error.d.vue.ts +47 -0
- package/dist/runtime/components/FieldGroup.d.vue.ts +34 -0
- package/dist/runtime/components/FileUpload.d.vue.ts +166 -0
- package/dist/runtime/components/FileUpload.vue +1 -0
- package/dist/runtime/components/Footer.d.vue.ts +29 -0
- package/dist/runtime/components/FooterColumns.d.vue.ts +57 -0
- package/dist/runtime/components/Form.d.vue.ts +114 -0
- package/dist/runtime/components/Form.vue +144 -60
- package/dist/runtime/components/Form.vue.d.ts +54 -11
- package/dist/runtime/components/FormField.d.vue.ts +61 -0
- package/dist/runtime/components/FormField.vue +9 -3
- package/dist/runtime/components/Header.d.vue.ts +68 -0
- package/dist/runtime/components/Icon.d.vue.ts +8 -0
- package/dist/runtime/components/Input.d.vue.ts +74 -0
- package/dist/runtime/components/Input.vue.d.ts +4 -3
- package/dist/runtime/components/InputMenu.d.vue.ts +330 -0
- package/dist/runtime/components/InputMenu.vue +2 -2
- package/dist/runtime/components/InputMenu.vue.d.ts +4 -4
- package/dist/runtime/components/InputNumber.d.vue.ts +188 -0
- package/dist/runtime/components/InputNumber.vue +2 -2
- package/dist/runtime/components/InputNumber.vue.d.ts +0 -2
- package/dist/runtime/components/InputTags.d.vue.ts +186 -0
- package/dist/runtime/components/InputTags.vue +2 -2
- package/dist/runtime/components/Kbd.d.vue.ts +38 -0
- package/dist/runtime/components/Link.d.vue.ts +91 -0
- package/dist/runtime/components/LinkBase.d.vue.ts +25 -0
- package/dist/runtime/components/Main.d.vue.ts +20 -0
- package/dist/runtime/components/Marquee.d.vue.ts +32 -0
- package/dist/runtime/components/Marquee.vue +1 -1
- package/dist/runtime/components/Modal.d.vue.ts +107 -0
- package/dist/runtime/components/NavigationMenu.d.vue.ts +171 -0
- package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -2
- package/dist/runtime/components/OverlayProvider.d.vue.ts +2 -0
- package/dist/runtime/components/Page.d.vue.ts +25 -0
- package/dist/runtime/components/PageAnchors.d.vue.ts +47 -0
- package/dist/runtime/components/PageAside.d.vue.ts +27 -0
- package/dist/runtime/components/PageBody.d.vue.ts +18 -0
- package/dist/runtime/components/PageCTA.d.vue.ts +56 -0
- package/dist/runtime/components/PageCard.d.vue.ts +72 -0
- package/dist/runtime/components/PageColumns.d.vue.ts +18 -0
- package/dist/runtime/components/PageFeature.d.vue.ts +44 -0
- package/dist/runtime/components/PageGrid.d.vue.ts +18 -0
- package/dist/runtime/components/PageHeader.d.vue.ts +36 -0
- package/dist/runtime/components/PageHero.d.vue.ts +53 -0
- package/dist/runtime/components/PageLinks.d.vue.ts +49 -0
- package/dist/runtime/components/PageList.d.vue.ts +21 -0
- package/dist/runtime/components/PageLogos.d.vue.ts +33 -0
- package/dist/runtime/components/PageSection.d.vue.ts +68 -0
- package/dist/runtime/components/Pagination.d.vue.ts +118 -0
- package/dist/runtime/components/PinInput.d.vue.ts +60 -0
- package/dist/runtime/components/Popover.d.vue.ts +71 -0
- package/dist/runtime/components/PricingPlan.d.vue.ts +112 -0
- package/dist/runtime/components/PricingPlans.d.vue.ts +44 -0
- package/dist/runtime/components/PricingTable.d.vue.ts +105 -0
- package/dist/runtime/components/Progress.d.vue.ts +66 -0
- package/dist/runtime/components/Progress.vue +2 -3
- package/dist/runtime/components/RadioGroup.d.vue.ts +99 -0
- package/dist/runtime/components/RadioGroup.vue +13 -11
- package/dist/runtime/components/RadioGroup.vue.d.ts +17 -13
- package/dist/runtime/components/Select.d.vue.ts +254 -0
- package/dist/runtime/components/Select.vue +3 -3
- package/dist/runtime/components/Select.vue.d.ts +5 -5
- package/dist/runtime/components/SelectMenu.d.vue.ts +303 -0
- package/dist/runtime/components/SelectMenu.vue.d.ts +4 -4
- package/dist/runtime/components/Separator.d.vue.ts +54 -0
- package/dist/runtime/components/Skeleton.d.vue.ts +17 -0
- package/dist/runtime/components/Slideover.d.vue.ts +108 -0
- package/dist/runtime/components/Slider.d.vue.ts +57 -0
- package/dist/runtime/components/Stepper.d.vue.ts +87 -0
- package/dist/runtime/components/Switch.d.vue.ts +71 -0
- package/dist/runtime/components/Table.d.vue.ts +201 -0
- package/dist/runtime/components/Table.vue.d.ts +26 -26
- package/dist/runtime/components/Tabs.d.vue.ts +99 -0
- package/dist/runtime/components/Tabs.vue +12 -5
- package/dist/runtime/components/Tabs.vue.d.ts +2 -2
- package/dist/runtime/components/Textarea.d.vue.ts +74 -0
- package/dist/runtime/components/Timeline.d.vue.ts +71 -0
- package/dist/runtime/components/Toast.d.vue.ts +165 -0
- package/dist/runtime/components/Toaster.d.vue.ts +44 -0
- package/dist/runtime/components/Tooltip.d.vue.ts +57 -0
- package/dist/runtime/components/Tree.d.vue.ts +112 -0
- package/dist/runtime/components/Tree.vue +88 -47
- package/dist/runtime/components/Tree.vue.d.ts +20 -24
- package/dist/runtime/components/User.d.vue.ts +47 -0
- package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +7 -0
- package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +23 -0
- package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +6 -0
- package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
- package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
- package/dist/runtime/components/content/ContentNavigation.d.vue.ts +102 -0
- package/dist/runtime/components/content/ContentNavigation.vue +5 -4
- package/dist/runtime/components/content/ContentNavigation.vue.d.ts +2 -2
- package/dist/runtime/components/content/ContentSearch.d.vue.ts +114 -0
- package/dist/runtime/components/content/ContentSearch.vue +2 -2
- package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +59 -0
- package/dist/runtime/components/content/ContentSearchButton.vue +2 -2
- package/dist/runtime/components/content/ContentSurround.d.vue.ts +59 -0
- package/dist/runtime/components/content/ContentToc.d.vue.ts +88 -0
- package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +15 -0
- package/dist/runtime/components/prose/A.d.vue.ts +15 -0
- package/dist/runtime/components/prose/Accordion.d.vue.ts +16 -0
- package/dist/runtime/components/prose/AccordionItem.d.vue.ts +15 -0
- package/dist/runtime/components/prose/Badge.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Blockquote.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Callout.d.vue.ts +26 -0
- package/dist/runtime/components/prose/Card.d.vue.ts +29 -0
- package/dist/runtime/components/prose/CardGroup.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Code.d.vue.ts +22 -0
- package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +47 -0
- package/dist/runtime/components/prose/CodeGroup.d.vue.ts +37 -0
- package/dist/runtime/components/prose/CodeIcon.d.vue.ts +7 -0
- package/dist/runtime/components/prose/CodePreview.d.vue.ts +19 -0
- package/dist/runtime/components/prose/CodeTree.d.vue.ts +28 -0
- package/dist/runtime/components/prose/CodeTree.vue +38 -31
- package/dist/runtime/components/prose/Collapsible.d.vue.ts +39 -0
- package/dist/runtime/components/prose/Em.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Field.d.vue.ts +39 -0
- package/dist/runtime/components/prose/FieldGroup.d.vue.ts +18 -0
- package/dist/runtime/components/prose/H1.d.vue.ts +19 -0
- package/dist/runtime/components/prose/H2.d.vue.ts +19 -0
- package/dist/runtime/components/prose/H3.d.vue.ts +19 -0
- package/dist/runtime/components/prose/H4.d.vue.ts +19 -0
- package/dist/runtime/components/prose/Hr.d.vue.ts +5 -0
- package/dist/runtime/components/prose/Icon.d.vue.ts +6 -0
- package/dist/runtime/components/prose/Img.d.vue.ts +21 -0
- package/dist/runtime/components/prose/Kbd.d.vue.ts +6 -0
- package/dist/runtime/components/prose/Li.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Ol.d.vue.ts +13 -0
- package/dist/runtime/components/prose/P.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Pre.d.vue.ts +26 -0
- package/dist/runtime/components/prose/Script.d.vue.ts +5 -0
- package/dist/runtime/components/prose/Steps.d.vue.ts +22 -0
- package/dist/runtime/components/prose/Strong.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Table.d.vue.ts +18 -0
- package/dist/runtime/components/prose/Tabs.d.vue.ts +36 -0
- package/dist/runtime/components/prose/TabsItem.d.vue.ts +15 -0
- package/dist/runtime/components/prose/Tbody.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Td.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Th.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Thead.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Tr.d.vue.ts +13 -0
- package/dist/runtime/components/prose/Ul.d.vue.ts +13 -0
- package/dist/runtime/components/prose/callout/Caution.d.vue.ts +14 -0
- package/dist/runtime/components/prose/callout/Note.d.vue.ts +14 -0
- package/dist/runtime/components/prose/callout/Tip.d.vue.ts +14 -0
- package/dist/runtime/components/prose/callout/Warning.d.vue.ts +14 -0
- package/dist/runtime/composables/useFormField.d.ts +1 -0
- package/dist/runtime/composables/useFormField.js +1 -4
- package/dist/runtime/inertia/components/Link.d.vue.ts +63 -0
- package/dist/runtime/inertia/components/LinkBase.d.vue.ts +25 -0
- package/dist/runtime/locale/de_ch.d.ts +3 -0
- package/dist/runtime/locale/de_ch.js +129 -0
- package/dist/runtime/locale/id.js +1 -1
- package/dist/runtime/locale/index.d.ts +2 -0
- package/dist/runtime/locale/index.js +2 -0
- package/dist/runtime/locale/ka.d.ts +3 -0
- package/dist/runtime/locale/ka.js +132 -0
- package/dist/runtime/locale/pt.js +2 -2
- package/dist/runtime/types/form.d.ts +12 -13
- package/dist/runtime/types/form.js +1 -3
- package/dist/runtime/types/index.d.ts +1 -0
- package/dist/runtime/types/index.js +1 -0
- package/dist/runtime/types/tv.d.ts +9 -2
- package/dist/runtime/types/utils.d.ts +7 -3
- package/dist/runtime/utils/form.d.ts +2 -6
- package/dist/runtime/utils/form.js +28 -60
- package/dist/runtime/utils/fuse.d.ts +2 -1
- package/dist/runtime/utils/index.d.ts +3 -3
- package/dist/runtime/utils/index.js +6 -3
- package/dist/runtime/vue/components/Icon.d.vue.ts +6 -0
- package/dist/runtime/vue/components/Link.d.vue.ts +93 -0
- package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +16 -0
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
- package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
- package/dist/shared/{ui.BEZXPd3d.mjs → ui.DGJZ-1aX.mjs} +18 -13
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +27 -40
|
@@ -2,7 +2,7 @@ import type { TreeRootProps, TreeRootEmits } from 'reka-ui';
|
|
|
2
2
|
import type { AppConfig } from '@nuxt/schema';
|
|
3
3
|
import theme from '#build/ui/tree';
|
|
4
4
|
import type { IconProps } from '../types';
|
|
5
|
-
import type { DynamicSlots, GetItemKeys
|
|
5
|
+
import type { DynamicSlots, GetItemKeys } from '../types/utils';
|
|
6
6
|
import type { ComponentConfig } from '../types/tv';
|
|
7
7
|
type Tree = ComponentConfig<typeof theme, AppConfig, 'tree'>;
|
|
8
8
|
export type TreeItem = {
|
|
@@ -17,7 +17,6 @@ export type TreeItem = {
|
|
|
17
17
|
trailingIcon?: IconProps['name'];
|
|
18
18
|
defaultExpanded?: boolean;
|
|
19
19
|
disabled?: boolean;
|
|
20
|
-
value?: string;
|
|
21
20
|
slot?: string;
|
|
22
21
|
children?: TreeItem[];
|
|
23
22
|
onToggle?(e: Event): void;
|
|
@@ -26,7 +25,7 @@ export type TreeItem = {
|
|
|
26
25
|
ui?: Pick<Tree['slots'], 'item' | 'itemWithChildren' | 'link' | 'linkLeadingIcon' | 'linkLabel' | 'linkTrailing' | 'linkTrailingIcon' | 'listWithChildren'>;
|
|
27
26
|
[key: string]: any;
|
|
28
27
|
};
|
|
29
|
-
export interface TreeProps<T extends TreeItem[] = TreeItem[],
|
|
28
|
+
export interface TreeProps<T extends TreeItem[] = TreeItem[], M extends boolean = false> extends Pick<TreeRootProps<T>, 'expanded' | 'defaultExpanded' | 'selectionBehavior' | 'propagateSelect' | 'disabled' | 'bubbleSelect'> {
|
|
30
29
|
/**
|
|
31
30
|
* The element or component this component should render as.
|
|
32
31
|
* @defaultValue 'ul'
|
|
@@ -40,16 +39,13 @@ export interface TreeProps<T extends TreeItem[] = TreeItem[], VK extends GetItem
|
|
|
40
39
|
* @defaultValue 'md'
|
|
41
40
|
*/
|
|
42
41
|
size?: Tree['variants']['size'];
|
|
43
|
-
/**
|
|
44
|
-
|
|
45
|
-
* @defaultValue 'value'
|
|
46
|
-
*/
|
|
47
|
-
valueKey?: VK;
|
|
42
|
+
/** This function is passed the index of each item and should return a unique key for that item */
|
|
43
|
+
getKey?: (val: T[number]) => string;
|
|
48
44
|
/**
|
|
49
45
|
* The key used to get the label from the item.
|
|
50
46
|
* @defaultValue 'label'
|
|
51
47
|
*/
|
|
52
|
-
labelKey?:
|
|
48
|
+
labelKey?: GetItemKeys<T>;
|
|
53
49
|
/**
|
|
54
50
|
* The icon displayed on the right side of a parent node.
|
|
55
51
|
* @defaultValue appConfig.ui.icons.chevronDown
|
|
@@ -70,15 +66,15 @@ export interface TreeProps<T extends TreeItem[] = TreeItem[], VK extends GetItem
|
|
|
70
66
|
collapsedIcon?: IconProps['name'];
|
|
71
67
|
items?: T;
|
|
72
68
|
/** The controlled value of the Tree. Can be bind as `v-model`. */
|
|
73
|
-
modelValue?:
|
|
69
|
+
modelValue?: M extends true ? T[number][] : T[number];
|
|
74
70
|
/** The value of the Tree when initially rendered. Use when you do not need to control the state of the Tree. */
|
|
75
|
-
defaultValue?:
|
|
71
|
+
defaultValue?: M extends true ? T[number][] : T[number];
|
|
76
72
|
/** Whether multiple options can be selected or not. */
|
|
77
73
|
multiple?: M & boolean;
|
|
78
74
|
class?: any;
|
|
79
75
|
ui?: Tree['slots'];
|
|
80
76
|
}
|
|
81
|
-
export type TreeEmits<
|
|
77
|
+
export type TreeEmits<T extends TreeItem[] = TreeItem[], M extends boolean = false> = TreeRootEmits<T[number], M>;
|
|
82
78
|
type SlotProps<T extends TreeItem> = (props: {
|
|
83
79
|
item: T;
|
|
84
80
|
index: number;
|
|
@@ -86,27 +82,27 @@ type SlotProps<T extends TreeItem> = (props: {
|
|
|
86
82
|
expanded: boolean;
|
|
87
83
|
selected: boolean;
|
|
88
84
|
}) => any;
|
|
89
|
-
export type TreeSlots<
|
|
90
|
-
'item-wrapper': SlotProps<T>;
|
|
91
|
-
'item': SlotProps<T>;
|
|
92
|
-
'item-leading': SlotProps<T>;
|
|
93
|
-
'item-label': SlotProps<T>;
|
|
94
|
-
'item-trailing': SlotProps<T>;
|
|
95
|
-
} & DynamicSlots<T, undefined, {
|
|
85
|
+
export type TreeSlots<T extends TreeItem[] = TreeItem[]> = {
|
|
86
|
+
'item-wrapper': SlotProps<T[number]>;
|
|
87
|
+
'item': SlotProps<T[number]>;
|
|
88
|
+
'item-leading': SlotProps<T[number]>;
|
|
89
|
+
'item-label': SlotProps<T[number]>;
|
|
90
|
+
'item-trailing': SlotProps<T[number]>;
|
|
91
|
+
} & DynamicSlots<T[number], undefined, {
|
|
96
92
|
index: number;
|
|
97
93
|
level: number;
|
|
98
94
|
expanded: boolean;
|
|
99
95
|
selected: boolean;
|
|
100
96
|
}>;
|
|
101
|
-
declare const _default: <T extends TreeItem[],
|
|
97
|
+
declare const _default: <T extends TreeItem[], 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<{
|
|
102
98
|
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
103
|
-
readonly "onUpdate:modelValue"?: ((
|
|
99
|
+
readonly "onUpdate:modelValue"?: ((val: M extends true ? T[number][] : T[number]) => any) | undefined;
|
|
104
100
|
readonly "onUpdate:expanded"?: ((val: string[]) => any) | undefined;
|
|
105
|
-
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue" | "onUpdate:expanded"> & TreeProps<T,
|
|
101
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue" | "onUpdate:expanded"> & TreeProps<T, M> & {}> & import("vue").PublicProps;
|
|
106
102
|
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
107
103
|
attrs: any;
|
|
108
|
-
slots: TreeSlots<T
|
|
109
|
-
emit: ((evt: "update:modelValue",
|
|
104
|
+
slots: TreeSlots<T>;
|
|
105
|
+
emit: ((evt: "update:modelValue", val: M extends true ? T[number][] : T[number]) => void) & ((evt: "update:expanded", val: string[]) => void);
|
|
110
106
|
}>) => import("vue").VNode & {
|
|
111
107
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
112
108
|
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/ui/user';
|
|
3
|
+
import type { AvatarProps, ChipProps, LinkProps } from '../types';
|
|
4
|
+
import type { ComponentConfig } from '../types/tv';
|
|
5
|
+
type User = ComponentConfig<typeof theme, AppConfig, 'user'>;
|
|
6
|
+
export interface UserProps {
|
|
7
|
+
/**
|
|
8
|
+
* The element or component this component should render as.
|
|
9
|
+
* @defaultValue 'div'
|
|
10
|
+
*/
|
|
11
|
+
as?: any;
|
|
12
|
+
name?: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
avatar?: Omit<AvatarProps, 'size'> & {
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
};
|
|
17
|
+
chip?: boolean | Omit<ChipProps, 'size' | 'inset'>;
|
|
18
|
+
/**
|
|
19
|
+
* @defaultValue 'md'
|
|
20
|
+
*/
|
|
21
|
+
size?: User['variants']['size'];
|
|
22
|
+
/**
|
|
23
|
+
* The orientation of the user.
|
|
24
|
+
* @defaultValue 'horizontal'
|
|
25
|
+
*/
|
|
26
|
+
orientation?: User['variants']['orientation'];
|
|
27
|
+
to?: LinkProps['to'];
|
|
28
|
+
target?: LinkProps['target'];
|
|
29
|
+
onClick?: (event: MouseEvent) => void | Promise<void>;
|
|
30
|
+
class?: any;
|
|
31
|
+
ui?: User['slots'];
|
|
32
|
+
}
|
|
33
|
+
export interface UserSlots {
|
|
34
|
+
avatar(props?: {}): any;
|
|
35
|
+
name(props?: {}): any;
|
|
36
|
+
description(props?: {}): any;
|
|
37
|
+
default(props?: {}): any;
|
|
38
|
+
}
|
|
39
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<UserProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<UserProps> & Readonly<{}>, {
|
|
40
|
+
orientation: User["variants"]["orientation"];
|
|
41
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, UserSlots>;
|
|
42
|
+
export default _default;
|
|
43
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
44
|
+
new (): {
|
|
45
|
+
$slots: S;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AvatarProps } from '@nuxt/ui';
|
|
2
|
+
export interface ColorModeAvatarProps extends /** @vue-ignore */ Omit<AvatarProps, 'src'> {
|
|
3
|
+
light: string;
|
|
4
|
+
dark: string;
|
|
5
|
+
}
|
|
6
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ButtonProps } from '@nuxt/ui';
|
|
2
|
+
export interface ColorModeButtonProps extends /** @vue-ignore */ Pick<ButtonProps, 'as' | 'size' | 'disabled' | 'ui'> {
|
|
3
|
+
/**
|
|
4
|
+
* @defaultValue 'neutral'
|
|
5
|
+
*/
|
|
6
|
+
color?: ButtonProps['color'];
|
|
7
|
+
/**
|
|
8
|
+
* @defaultValue 'ghost'
|
|
9
|
+
*/
|
|
10
|
+
variant?: ButtonProps['variant'];
|
|
11
|
+
}
|
|
12
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<ColorModeButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ColorModeButtonProps> & Readonly<{}>, {
|
|
13
|
+
color: ButtonProps["color"];
|
|
14
|
+
variant: ButtonProps["variant"];
|
|
15
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
16
|
+
fallback(props?: {}): any;
|
|
17
|
+
}>;
|
|
18
|
+
export default _default;
|
|
19
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
20
|
+
new (): {
|
|
21
|
+
$slots: S;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
dark: string;
|
|
3
|
+
light: string;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SelectMenuProps } from '@nuxt/ui';
|
|
2
|
+
export interface ColorModeSelectProps extends /** @vue-ignore */ Pick<SelectMenuProps<any>, 'color' | 'variant' | 'size' | 'trailingIcon' | 'selectedIcon' | 'content' | 'arrow' | 'portal' | 'disabled' | 'ui'> {
|
|
3
|
+
}
|
|
4
|
+
declare const _default: import("vue").DefineComponent<ColorModeSelectProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ColorModeSelectProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SwitchProps } from '@nuxt/ui';
|
|
2
|
+
export interface ColorModeSwitchProps extends /** @vue-ignore */ Pick<SwitchProps, 'as' | 'color' | 'size' | 'disabled' | 'ui'> {
|
|
3
|
+
}
|
|
4
|
+
declare const _default: import("vue").DefineComponent<ColorModeSwitchProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ColorModeSwitchProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { AccordionRootProps, AccordionRootEmits } from 'reka-ui';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import type { ContentNavigationItem } from '@nuxt/content';
|
|
4
|
+
import theme from '#build/ui/content/content-navigation';
|
|
5
|
+
import type { BadgeProps, IconProps, LinkProps } from '../../types';
|
|
6
|
+
import type { ComponentConfig } from '../../types/tv';
|
|
7
|
+
type ContentNavigation = ComponentConfig<typeof theme, AppConfig, 'contentNavigation'>;
|
|
8
|
+
export interface ContentNavigationLink extends ContentNavigationItem {
|
|
9
|
+
/**
|
|
10
|
+
* @IconifyIcon
|
|
11
|
+
*/
|
|
12
|
+
icon?: IconProps['name'];
|
|
13
|
+
/**
|
|
14
|
+
* Display a badge on the link.
|
|
15
|
+
* `{ color: 'neutral', variant: 'outline', size: 'sm' }`{lang="ts-type"}
|
|
16
|
+
*/
|
|
17
|
+
badge?: string | number | BadgeProps;
|
|
18
|
+
target?: LinkProps['target'];
|
|
19
|
+
/**
|
|
20
|
+
* @IconifyIcon
|
|
21
|
+
*/
|
|
22
|
+
trailingIcon?: IconProps['name'];
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
children?: ContentNavigationLink[];
|
|
25
|
+
defaultOpen?: boolean;
|
|
26
|
+
active?: boolean;
|
|
27
|
+
class?: any;
|
|
28
|
+
ui?: Pick<ContentNavigation['slots'], 'link' | 'linkLeadingIcon' | 'linkTitle' | 'linkTrailing' | 'linkTrailingIcon' | 'linkTrailingBadge' | 'linkTrailingBadgeSize' | 'linkTrailingIcon' | 'linkTitleExternalIcon' | 'trigger' | 'content' | 'item' | 'itemWithChildren'>;
|
|
29
|
+
}
|
|
30
|
+
export interface ContentNavigationProps<T extends ContentNavigationLink = ContentNavigationLink> extends Pick<AccordionRootProps, 'disabled' | 'type' | 'unmountOnHide'> {
|
|
31
|
+
/**
|
|
32
|
+
* The element or component this component should render as.
|
|
33
|
+
* @defaultValue 'nav'
|
|
34
|
+
*/
|
|
35
|
+
as?: any;
|
|
36
|
+
/**
|
|
37
|
+
* When `true`, the tree will be opened based on the current route.
|
|
38
|
+
* When `false`, the tree will be closed.
|
|
39
|
+
* When `undefined` (default), the first item will be opened with `type="single"` and the first level will be opened with `type="multiple"`.
|
|
40
|
+
*/
|
|
41
|
+
defaultOpen?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* The icon displayed to toggle the accordion.
|
|
44
|
+
* @defaultValue appConfig.ui.icons.chevronDown
|
|
45
|
+
* @IconifyIcon
|
|
46
|
+
*/
|
|
47
|
+
trailingIcon?: IconProps['name'];
|
|
48
|
+
/**
|
|
49
|
+
* @defaultValue 'primary'
|
|
50
|
+
*/
|
|
51
|
+
color?: ContentNavigation['variants']['color'];
|
|
52
|
+
/**
|
|
53
|
+
* @defaultValue 'pill'
|
|
54
|
+
*/
|
|
55
|
+
variant?: ContentNavigation['variants']['variant'];
|
|
56
|
+
/**
|
|
57
|
+
* Display a line next to the active link.
|
|
58
|
+
* @defaultValue false
|
|
59
|
+
*/
|
|
60
|
+
highlight?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* @defaultValue 'primary'
|
|
63
|
+
*/
|
|
64
|
+
highlightColor?: ContentNavigation['variants']['highlightColor'];
|
|
65
|
+
/**
|
|
66
|
+
* When type is "single", prevents closing the open item when clicking its trigger.
|
|
67
|
+
* When type is "multiple", disables the collapsible behavior.
|
|
68
|
+
* @defaultValue true
|
|
69
|
+
*/
|
|
70
|
+
collapsible?: boolean;
|
|
71
|
+
level?: number;
|
|
72
|
+
navigation?: T[];
|
|
73
|
+
class?: any;
|
|
74
|
+
ui?: ContentNavigation['slots'];
|
|
75
|
+
}
|
|
76
|
+
export interface ContentNavigationEmits extends AccordionRootEmits {
|
|
77
|
+
}
|
|
78
|
+
type SlotProps<T> = (props: {
|
|
79
|
+
link: T;
|
|
80
|
+
active?: boolean;
|
|
81
|
+
}) => any;
|
|
82
|
+
export interface ContentNavigationSlots<T extends ContentNavigationLink = ContentNavigationLink> {
|
|
83
|
+
'link': SlotProps<T>;
|
|
84
|
+
'link-leading': SlotProps<T>;
|
|
85
|
+
'link-title': SlotProps<T>;
|
|
86
|
+
'link-trailing': SlotProps<T>;
|
|
87
|
+
}
|
|
88
|
+
declare const _default: <T extends ContentNavigationLink>(__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<{
|
|
89
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
90
|
+
readonly "onUpdate:modelValue"?: ((value: string | string[] | undefined) => any) | undefined;
|
|
91
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue"> & ContentNavigationProps<T> & {}> & import("vue").PublicProps;
|
|
92
|
+
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
93
|
+
attrs: any;
|
|
94
|
+
slots: ContentNavigationSlots<T>;
|
|
95
|
+
emit: (evt: "update:modelValue", value: string | string[] | undefined) => void;
|
|
96
|
+
}>) => import("vue").VNode & {
|
|
97
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
98
|
+
};
|
|
99
|
+
export default _default;
|
|
100
|
+
type __VLS_PrettifyLocal<T> = {
|
|
101
|
+
[K in keyof T as K]: T[K];
|
|
102
|
+
} & {};
|
|
@@ -35,7 +35,7 @@ const props = defineProps({
|
|
|
35
35
|
});
|
|
36
36
|
const emits = defineEmits(["update:modelValue"]);
|
|
37
37
|
const slots = defineSlots();
|
|
38
|
-
const rootProps = useForwardPropsEmits(reactivePick(props, "collapsible", "
|
|
38
|
+
const rootProps = useForwardPropsEmits(reactivePick(props, "collapsible", "type", "unmountOnHide"), emits);
|
|
39
39
|
const route = useRoute();
|
|
40
40
|
const appConfig = useAppConfig();
|
|
41
41
|
const [DefineLinkTemplate, ReuseLinkTemplate] = createReusableTemplate();
|
|
@@ -45,6 +45,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.contentNaviga
|
|
|
45
45
|
highlight: props.highlight,
|
|
46
46
|
highlightColor: props.highlightColor || props.color
|
|
47
47
|
}));
|
|
48
|
+
const disabled = computed(() => props.disabled || props.type === "multiple" && props.collapsible === false);
|
|
48
49
|
const defaultValue = computed(() => {
|
|
49
50
|
if (props.defaultOpen === false) {
|
|
50
51
|
return void 0;
|
|
@@ -91,14 +92,14 @@ const defaultValue = computed(() => {
|
|
|
91
92
|
</DefineLinkTemplate>
|
|
92
93
|
|
|
93
94
|
<Primitive :as="as" v-bind="$attrs" :as-child="level > 0" :class="ui.root({ class: [props.ui?.root, props.class] })">
|
|
94
|
-
<AccordionRoot as="ul" v-bind="rootProps" :default-value="defaultValue" :class="level > 0 ? ui.listWithChildren({ class: props.ui?.listWithChildren }) : ui.list({ class: props.ui?.list })">
|
|
95
|
+
<AccordionRoot as="ul" :disabled="disabled" v-bind="rootProps" :default-value="defaultValue" :class="level > 0 ? ui.listWithChildren({ class: props.ui?.listWithChildren }) : ui.list({ class: props.ui?.list })">
|
|
95
96
|
<template v-for="(link, index) in navigation" :key="index">
|
|
96
97
|
<AccordionItem v-if="link.children?.length" as="li" :class="ui.itemWithChildren({ class: [props.ui?.itemWithChildren, link.ui?.itemWithChildren], level: level > 0 })" :value="String(index)">
|
|
97
98
|
<AccordionTrigger
|
|
98
99
|
as="button"
|
|
99
100
|
:class="[
|
|
100
|
-
ui.link({ class: [props.ui?.link, link.ui?.link, link.class], active: link.active, disabled: !!link.disabled }),
|
|
101
|
-
ui.trigger({ class: [props.ui?.trigger, link.ui?.trigger] })
|
|
101
|
+
ui.link({ class: [props.ui?.link, link.ui?.link, link.class], active: link.active, disabled: !!link.disabled || disabled }),
|
|
102
|
+
ui.trigger({ class: [props.ui?.trigger, link.ui?.trigger], disabled })
|
|
102
103
|
]"
|
|
103
104
|
>
|
|
104
105
|
<ReuseLinkTemplate :link="link" :active="link.active" />
|
|
@@ -63,8 +63,8 @@ export interface ContentNavigationProps<T extends ContentNavigationLink = Conten
|
|
|
63
63
|
*/
|
|
64
64
|
highlightColor?: ContentNavigation['variants']['highlightColor'];
|
|
65
65
|
/**
|
|
66
|
-
* When type is "single",
|
|
67
|
-
* When type is "multiple",
|
|
66
|
+
* When type is "single", prevents closing the open item when clicking its trigger.
|
|
67
|
+
* When type is "multiple", disables the collapsible behavior.
|
|
68
68
|
* @defaultValue true
|
|
69
69
|
*/
|
|
70
70
|
collapsible?: boolean;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { ContentNavigationItem } from '@nuxt/content';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import type { UseFuseOptions } from '@vueuse/integrations/useFuse';
|
|
4
|
+
import theme from '#build/ui/content/content-search';
|
|
5
|
+
import type { ButtonProps, InputProps, LinkProps, ModalProps, CommandPaletteProps, CommandPaletteSlots, CommandPaletteGroup, CommandPaletteItem, IconProps } from '../../types';
|
|
6
|
+
import type { ComponentConfig } from '../../types/tv';
|
|
7
|
+
type ContentSearch = ComponentConfig<typeof theme, AppConfig, 'contentSearch'>;
|
|
8
|
+
export interface ContentSearchLink extends Omit<LinkProps, 'custom'> {
|
|
9
|
+
label?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
/**
|
|
12
|
+
* @IconifyIcon
|
|
13
|
+
*/
|
|
14
|
+
icon?: IconProps['name'];
|
|
15
|
+
children?: ContentSearchLink[];
|
|
16
|
+
}
|
|
17
|
+
export interface ContentSearchFile {
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
titles: string[];
|
|
21
|
+
level: number;
|
|
22
|
+
content: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ContentSearchItem extends Omit<LinkProps, 'custom'>, CommandPaletteItem {
|
|
25
|
+
level?: number;
|
|
26
|
+
/**
|
|
27
|
+
* @IconifyIcon
|
|
28
|
+
*/
|
|
29
|
+
icon?: IconProps['name'];
|
|
30
|
+
}
|
|
31
|
+
export interface ContentSearchProps<T extends ContentSearchLink = ContentSearchLink> extends /* @vue-ignore */ Pick<ModalProps, 'title' | 'description' | 'overlay' | 'transition' | 'content' | 'dismissible' | 'fullscreen' | 'modal' | 'portal'> {
|
|
32
|
+
/**
|
|
33
|
+
* The icon displayed in the input.
|
|
34
|
+
* @defaultValue appConfig.ui.icons.search
|
|
35
|
+
* @IconifyIcon
|
|
36
|
+
*/
|
|
37
|
+
icon?: IconProps['name'];
|
|
38
|
+
/**
|
|
39
|
+
* The placeholder text for the input.
|
|
40
|
+
* @defaultValue t('commandPalette.placeholder')
|
|
41
|
+
*/
|
|
42
|
+
placeholder?: InputProps['placeholder'];
|
|
43
|
+
/**
|
|
44
|
+
* Automatically focus the input when component is mounted.
|
|
45
|
+
* @defaultValue true
|
|
46
|
+
*/
|
|
47
|
+
autofocus?: boolean;
|
|
48
|
+
/** When `true`, the loading icon will be displayed. */
|
|
49
|
+
loading?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* The icon when the `loading` prop is `true`.
|
|
52
|
+
* @defaultValue appConfig.ui.icons.loading
|
|
53
|
+
* @IconifyIcon
|
|
54
|
+
*/
|
|
55
|
+
loadingIcon?: IconProps['name'];
|
|
56
|
+
/**
|
|
57
|
+
* Display a close button in the input (useful when inside a Modal for example).
|
|
58
|
+
* `{ size: 'md', color: 'neutral', variant: 'ghost' }`{lang="ts-type"}
|
|
59
|
+
* @emits 'update:open'
|
|
60
|
+
* @defaultValue true
|
|
61
|
+
*/
|
|
62
|
+
close?: boolean | Partial<ButtonProps>;
|
|
63
|
+
/**
|
|
64
|
+
* The icon displayed in the close button.
|
|
65
|
+
* @defaultValue appConfig.ui.icons.close
|
|
66
|
+
* @IconifyIcon
|
|
67
|
+
*/
|
|
68
|
+
closeIcon?: IconProps['name'];
|
|
69
|
+
/**
|
|
70
|
+
* Keyboard shortcut to open the search (used by [`defineShortcuts`](https://ui.nuxt.com/docs/composables/define-shortcuts))
|
|
71
|
+
* @defaultValue 'meta_k'
|
|
72
|
+
*/
|
|
73
|
+
shortcut?: string;
|
|
74
|
+
/** Links group displayed as the first group in the command palette. */
|
|
75
|
+
links?: T[];
|
|
76
|
+
navigation?: ContentNavigationItem[];
|
|
77
|
+
/** Custom groups displayed between navigation and color mode group. */
|
|
78
|
+
groups?: CommandPaletteGroup<ContentSearchItem>[];
|
|
79
|
+
files?: ContentSearchFile[];
|
|
80
|
+
/**
|
|
81
|
+
* Options for [useFuse](https://vueuse.org/integrations/useFuse) passed to the [CommandPalette](https://ui.nuxt.com/docs/components/command-palette).
|
|
82
|
+
* @defaultValue { fuseOptions: { includeMatches: true } }
|
|
83
|
+
*/
|
|
84
|
+
fuse?: UseFuseOptions<T>;
|
|
85
|
+
/**
|
|
86
|
+
* When `true`, the theme command will be added to the groups.
|
|
87
|
+
* @defaultValue true
|
|
88
|
+
*/
|
|
89
|
+
colorMode?: boolean;
|
|
90
|
+
class?: any;
|
|
91
|
+
ui?: ContentSearch['slots'] & CommandPaletteProps<CommandPaletteGroup<ContentSearchItem>, ContentSearchItem>['ui'];
|
|
92
|
+
}
|
|
93
|
+
export type ContentSearchSlots = CommandPaletteSlots<CommandPaletteGroup<ContentSearchItem>, ContentSearchItem> & {
|
|
94
|
+
content(props?: {}): any;
|
|
95
|
+
};
|
|
96
|
+
declare const _default: <T extends ContentSearchLink>(__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<{
|
|
97
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
98
|
+
readonly "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
|
|
99
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:searchTerm"> & (ContentSearchProps<T> & {
|
|
100
|
+
searchTerm?: string;
|
|
101
|
+
}) & {}> & import("vue").PublicProps;
|
|
102
|
+
expose(exposed: import("vue").ShallowUnwrapRef<{
|
|
103
|
+
commandPaletteRef: Readonly<import("vue").ShallowRef<import("vue").ShallowUnwrapRef<{}> | null>>;
|
|
104
|
+
}>): void;
|
|
105
|
+
attrs: any;
|
|
106
|
+
slots: ContentSearchSlots;
|
|
107
|
+
emit: (evt: "update:searchTerm", value: string) => void;
|
|
108
|
+
}>) => import("vue").VNode & {
|
|
109
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
110
|
+
};
|
|
111
|
+
export default _default;
|
|
112
|
+
type __VLS_PrettifyLocal<T> = {
|
|
113
|
+
[K in keyof T as K]: T[K];
|
|
114
|
+
} & {};
|
|
@@ -39,7 +39,7 @@ const { open } = useContentSearch();
|
|
|
39
39
|
const colorMode = useColorMode();
|
|
40
40
|
const appConfig = useAppConfig();
|
|
41
41
|
const commandPaletteProps = useForwardProps(reactivePick(props, "icon", "placeholder", "autofocus", "loading", "loadingIcon", "close", "closeIcon"));
|
|
42
|
-
const
|
|
42
|
+
const getProxySlots = () => omit(slots, ["content"]);
|
|
43
43
|
const fuse = computed(() => defu({}, props.fuse, {
|
|
44
44
|
fuseOptions: {
|
|
45
45
|
includeMatches: true
|
|
@@ -164,7 +164,7 @@ defineExpose({
|
|
|
164
164
|
@update:model-value="onSelect"
|
|
165
165
|
@update:open="open = $event"
|
|
166
166
|
>
|
|
167
|
-
<template v-for="(_, name) in
|
|
167
|
+
<template v-for="(_, name) in getProxySlots()" #[name]="slotData">
|
|
168
168
|
<slot :name="name" v-bind="slotData" />
|
|
169
169
|
</template>
|
|
170
170
|
</UCommandPalette>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
2
|
+
import theme from '#build/ui/content/content-search-button';
|
|
3
|
+
import type { ButtonProps, ButtonSlots, IconProps, KbdProps, TooltipProps } from '../../types';
|
|
4
|
+
import type { ComponentConfig } from '../../types/tv';
|
|
5
|
+
type ContentSearchButton = ComponentConfig<typeof theme, AppConfig, 'contentSearchButton'>;
|
|
6
|
+
export interface ContentSearchButtonProps {
|
|
7
|
+
/**
|
|
8
|
+
* The icon displayed in the button.
|
|
9
|
+
* @defaultValue appConfig.ui.icons.search
|
|
10
|
+
* @IconifyIcon
|
|
11
|
+
*/
|
|
12
|
+
icon?: IconProps['name'];
|
|
13
|
+
/**
|
|
14
|
+
* The label displayed in the button.
|
|
15
|
+
* @defaultValue t('contentSearchButton.label')
|
|
16
|
+
*/
|
|
17
|
+
label?: string;
|
|
18
|
+
/**
|
|
19
|
+
* The color of the button.
|
|
20
|
+
* @defaultValue 'neutral'
|
|
21
|
+
*/
|
|
22
|
+
color?: ButtonProps['color'];
|
|
23
|
+
/**
|
|
24
|
+
* The variant of the button.
|
|
25
|
+
* Defaults to 'outline' when not collapsed, 'ghost' when collapsed.
|
|
26
|
+
*/
|
|
27
|
+
variant?: ButtonProps['variant'];
|
|
28
|
+
size?: ButtonProps['size'];
|
|
29
|
+
/**
|
|
30
|
+
* Whether the button is collapsed.
|
|
31
|
+
* @defaultValue true
|
|
32
|
+
*/
|
|
33
|
+
collapsed?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Display a tooltip on the button when is collapsed with the button label.
|
|
36
|
+
* This has priority over the global `tooltip` prop.
|
|
37
|
+
*/
|
|
38
|
+
tooltip?: boolean | TooltipProps;
|
|
39
|
+
/**
|
|
40
|
+
* The keyboard keys to display in the button.
|
|
41
|
+
* `{ variant: 'subtle' }`{lang="ts-type"}
|
|
42
|
+
* @defaultValue ['meta', 'k']
|
|
43
|
+
*/
|
|
44
|
+
kbds?: KbdProps['value'][] | KbdProps[];
|
|
45
|
+
ui?: ContentSearchButton['slots'] & ButtonProps['ui'];
|
|
46
|
+
class?: any;
|
|
47
|
+
}
|
|
48
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<ContentSearchButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ContentSearchButtonProps> & Readonly<{}>, {
|
|
49
|
+
color: "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral";
|
|
50
|
+
tooltip: boolean | TooltipProps;
|
|
51
|
+
kbds: KbdProps["value"][] | KbdProps[];
|
|
52
|
+
collapsed: boolean;
|
|
53
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ButtonSlots>;
|
|
54
|
+
export default _default;
|
|
55
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
56
|
+
new (): {
|
|
57
|
+
$slots: S;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
@@ -30,7 +30,7 @@ const props = defineProps({
|
|
|
30
30
|
});
|
|
31
31
|
const slots = defineSlots();
|
|
32
32
|
const [DefineButtonTemplate, ReuseButtonTemplate] = createReusableTemplate();
|
|
33
|
-
const
|
|
33
|
+
const getProxySlots = () => omit(slots, ["trailing"]);
|
|
34
34
|
const rootProps = useForwardProps(reactivePick(props, "color", "size"));
|
|
35
35
|
const tooltipProps = toRef(() => defu(typeof props.tooltip === "boolean" ? {} : props.tooltip, { delayDuration: 0, content: { side: "right" } }));
|
|
36
36
|
const { t } = useLocale();
|
|
@@ -58,7 +58,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.contentSearch
|
|
|
58
58
|
:ui="transformUI(ui, props.ui)"
|
|
59
59
|
@click="open = true"
|
|
60
60
|
>
|
|
61
|
-
<template v-for="(_, name) in
|
|
61
|
+
<template v-for="(_, name) in getProxySlots()" #[name]="slotData">
|
|
62
62
|
<slot :name="name" v-bind="slotData" />
|
|
63
63
|
</template>
|
|
64
64
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ContentNavigationItem } from '@nuxt/content';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/ui/content/content-surround';
|
|
4
|
+
import type { IconProps } from '../../types';
|
|
5
|
+
import type { ComponentConfig } from '../../types/tv';
|
|
6
|
+
type ContentSurround = ComponentConfig<typeof theme, AppConfig, 'contentSurround'>;
|
|
7
|
+
export interface ContentSurroundLink extends ContentNavigationItem {
|
|
8
|
+
description?: string;
|
|
9
|
+
/**
|
|
10
|
+
* @IconifyIcon
|
|
11
|
+
*/
|
|
12
|
+
icon?: IconProps['name'];
|
|
13
|
+
class?: any;
|
|
14
|
+
ui?: Pick<ContentSurround['slots'], 'link' | 'linkLeading' | 'linkLeadingIcon' | 'linkTitle' | 'linkDescription'>;
|
|
15
|
+
}
|
|
16
|
+
export interface ContentSurroundProps<T extends ContentSurroundLink = ContentSurroundLink> {
|
|
17
|
+
/**
|
|
18
|
+
* The element or component this component should render as.
|
|
19
|
+
* @defaultValue 'div'
|
|
20
|
+
*/
|
|
21
|
+
as?: any;
|
|
22
|
+
/**
|
|
23
|
+
* The icon displayed in the prev link.
|
|
24
|
+
* @defaultValue appConfig.ui.icons.arrowLeft
|
|
25
|
+
* @IconifyIcon
|
|
26
|
+
*/
|
|
27
|
+
prevIcon?: IconProps['name'];
|
|
28
|
+
/**
|
|
29
|
+
* The icon displayed in the next link.
|
|
30
|
+
* @defaultValue appConfig.ui.icons.arrowRight
|
|
31
|
+
* @IconifyIcon
|
|
32
|
+
*/
|
|
33
|
+
nextIcon?: IconProps['name'];
|
|
34
|
+
surround?: T[];
|
|
35
|
+
class?: any;
|
|
36
|
+
ui?: ContentSurround['slots'];
|
|
37
|
+
}
|
|
38
|
+
type SlotProps<T> = (props: {
|
|
39
|
+
link: T;
|
|
40
|
+
}) => any;
|
|
41
|
+
export interface ContentSurroundSlots<T extends ContentSurroundLink = ContentSurroundLink> {
|
|
42
|
+
'link': SlotProps<T>;
|
|
43
|
+
'link-leading': SlotProps<T>;
|
|
44
|
+
'link-title': SlotProps<T>;
|
|
45
|
+
'link-description': SlotProps<T>;
|
|
46
|
+
}
|
|
47
|
+
declare const _default: <T extends ContentSurroundLink>(__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<{
|
|
48
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & ContentSurroundProps<T> & {}> & import("vue").PublicProps;
|
|
49
|
+
expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
|
|
50
|
+
attrs: any;
|
|
51
|
+
slots: ContentSurroundSlots<T>;
|
|
52
|
+
emit: {};
|
|
53
|
+
}>) => import("vue").VNode & {
|
|
54
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
55
|
+
};
|
|
56
|
+
export default _default;
|
|
57
|
+
type __VLS_PrettifyLocal<T> = {
|
|
58
|
+
[K in keyof T as K]: T[K];
|
|
59
|
+
} & {};
|