@nuxt/ui 4.5.1 → 4.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/module.d.mts +7 -0
- package/dist/module.json +2 -2
- package/dist/module.mjs +79 -67
- package/dist/runtime/components/Avatar.vue +10 -12
- package/dist/runtime/components/Banner.vue +1 -1
- package/dist/runtime/components/BlogPost.vue +3 -2
- package/dist/runtime/components/Calendar.d.vue.ts +4 -4
- package/dist/runtime/components/Calendar.vue.d.ts +4 -4
- package/dist/runtime/components/ChangelogVersion.vue +3 -2
- package/dist/runtime/components/ChangelogVersions.vue +1 -1
- package/dist/runtime/components/ChatMessage.d.vue.ts +4 -1
- package/dist/runtime/components/ChatMessage.vue +5 -0
- package/dist/runtime/components/ChatMessage.vue.d.ts +4 -1
- package/dist/runtime/components/ChatMessages.vue +14 -1
- package/dist/runtime/components/ChatPrompt.vue +6 -1
- package/dist/runtime/components/ChatReasoning.d.vue.ts +78 -0
- package/dist/runtime/components/ChatReasoning.vue +162 -0
- package/dist/runtime/components/ChatReasoning.vue.d.ts +78 -0
- package/dist/runtime/components/ChatShimmer.d.vue.ts +34 -0
- package/dist/runtime/components/ChatShimmer.vue +37 -0
- package/dist/runtime/components/ChatShimmer.vue.d.ts +34 -0
- package/dist/runtime/components/ChatTool.d.vue.ts +88 -0
- package/dist/runtime/components/ChatTool.vue +105 -0
- package/dist/runtime/components/ChatTool.vue.d.ts +88 -0
- package/dist/runtime/components/Checkbox.d.vue.ts +22 -19
- package/dist/runtime/components/Checkbox.vue +9 -8
- package/dist/runtime/components/Checkbox.vue.d.ts +22 -19
- package/dist/runtime/components/DashboardGroup.d.vue.ts +1 -1
- package/dist/runtime/components/DashboardGroup.vue.d.ts +1 -1
- package/dist/runtime/components/DashboardSearchButton.vue +2 -2
- package/dist/runtime/components/DashboardSidebar.vue +6 -3
- package/dist/runtime/components/Drawer.vue +6 -4
- package/dist/runtime/components/DropdownMenu.d.vue.ts +29 -3
- package/dist/runtime/components/DropdownMenu.vue +9 -0
- package/dist/runtime/components/DropdownMenu.vue.d.ts +29 -3
- package/dist/runtime/components/DropdownMenuContent.d.vue.ts +9 -3
- package/dist/runtime/components/DropdownMenuContent.vue +62 -9
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +9 -3
- package/dist/runtime/components/EditorDragHandle.d.vue.ts +4 -4
- package/dist/runtime/components/EditorDragHandle.vue.d.ts +4 -4
- package/dist/runtime/components/Error.vue +5 -5
- package/dist/runtime/components/FileUpload.d.vue.ts +6 -0
- package/dist/runtime/components/FileUpload.vue +11 -7
- package/dist/runtime/components/FileUpload.vue.d.ts +6 -0
- package/dist/runtime/components/Icon.d.vue.ts +2 -1
- package/dist/runtime/components/Icon.vue +3 -3
- package/dist/runtime/components/Icon.vue.d.ts +2 -1
- package/dist/runtime/components/InputDate.d.vue.ts +4 -4
- package/dist/runtime/components/InputDate.vue.d.ts +4 -4
- package/dist/runtime/components/InputMenu.d.vue.ts +7 -1
- package/dist/runtime/components/InputMenu.vue +67 -48
- package/dist/runtime/components/InputMenu.vue.d.ts +7 -1
- package/dist/runtime/components/InputTime.d.vue.ts +53 -27
- package/dist/runtime/components/InputTime.vue +52 -27
- package/dist/runtime/components/InputTime.vue.d.ts +53 -27
- package/dist/runtime/components/Kbd.vue +1 -1
- package/dist/runtime/components/Modal.vue +6 -4
- package/dist/runtime/components/NavigationMenu.vue +1 -0
- package/dist/runtime/components/Popover.vue +1 -1
- package/dist/runtime/components/Progress.d.vue.ts +1 -1
- package/dist/runtime/components/Progress.vue.d.ts +1 -1
- package/dist/runtime/components/SelectMenu.d.vue.ts +1 -1
- package/dist/runtime/components/SelectMenu.vue +1 -1
- package/dist/runtime/components/SelectMenu.vue.d.ts +1 -1
- package/dist/runtime/components/Sidebar.d.vue.ts +131 -0
- package/dist/runtime/components/Sidebar.vue +222 -0
- package/dist/runtime/components/Sidebar.vue.d.ts +131 -0
- package/dist/runtime/components/Slideover.vue +6 -4
- package/dist/runtime/components/Switch.d.vue.ts +22 -19
- package/dist/runtime/components/Switch.vue +7 -6
- package/dist/runtime/components/Switch.vue.d.ts +22 -19
- package/dist/runtime/components/Table.d.vue.ts +1 -1
- package/dist/runtime/components/Table.vue +12 -4
- package/dist/runtime/components/Table.vue.d.ts +1 -1
- package/dist/runtime/components/Tooltip.d.vue.ts +2 -0
- package/dist/runtime/components/Tooltip.vue +3 -2
- package/dist/runtime/components/Tooltip.vue.d.ts +2 -0
- package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +1 -1
- package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +1 -1
- package/dist/runtime/components/color-mode/ColorModeSwitch.vue +3 -1
- package/dist/runtime/components/content/ContentNavigation.vue +9 -2
- package/dist/runtime/components/content/ContentSurround.vue +6 -2
- package/dist/runtime/components/content/ContentToc.d.vue.ts +5 -0
- package/dist/runtime/components/content/ContentToc.vue +57 -11
- package/dist/runtime/components/content/ContentToc.vue.d.ts +5 -0
- package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +1 -1
- package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +1 -1
- package/dist/runtime/components/prose/Pre.vue +0 -4
- package/dist/runtime/composables/index.d.ts +12 -0
- package/dist/runtime/composables/index.js +12 -0
- package/dist/runtime/composables/useEditorMenu.js +1 -1
- package/dist/runtime/composables/useFileUpload.d.ts +2 -2
- package/dist/runtime/composables/useFileUpload.js +3 -3
- package/dist/runtime/composables/{internal/useFilter.js → useFilter.js} +1 -1
- package/dist/runtime/composables/useIMEGuard.d.ts +10 -0
- package/dist/runtime/composables/useIMEGuard.js +22 -0
- package/dist/runtime/composables/useScrollShadow.d.ts +23 -0
- package/dist/runtime/composables/useScrollShadow.js +36 -0
- package/dist/runtime/index.css +1 -1
- package/dist/runtime/keyframes.css +1 -1
- package/dist/runtime/locale/ar.js +13 -0
- package/dist/runtime/locale/az.js +13 -0
- package/dist/runtime/locale/be.js +13 -0
- package/dist/runtime/locale/bg.js +13 -0
- package/dist/runtime/locale/bn.js +13 -0
- package/dist/runtime/locale/ca.js +13 -0
- package/dist/runtime/locale/ckb.js +13 -0
- package/dist/runtime/locale/cs.js +13 -0
- package/dist/runtime/locale/da.js +13 -0
- package/dist/runtime/locale/de.js +13 -0
- package/dist/runtime/locale/de_ch.js +13 -0
- package/dist/runtime/locale/el.js +13 -0
- package/dist/runtime/locale/en.js +13 -0
- package/dist/runtime/locale/es.js +13 -0
- package/dist/runtime/locale/et.js +13 -0
- package/dist/runtime/locale/eu.js +13 -0
- package/dist/runtime/locale/fa_ir.js +13 -0
- package/dist/runtime/locale/fi.js +13 -0
- package/dist/runtime/locale/fr.js +13 -0
- package/dist/runtime/locale/gl.js +13 -0
- package/dist/runtime/locale/he.js +13 -0
- package/dist/runtime/locale/hi.js +13 -0
- package/dist/runtime/locale/hr.js +13 -0
- package/dist/runtime/locale/hu.js +13 -0
- package/dist/runtime/locale/hy.js +13 -0
- package/dist/runtime/locale/id.js +13 -0
- package/dist/runtime/locale/index.d.ts +1 -0
- package/dist/runtime/locale/index.js +1 -0
- package/dist/runtime/locale/is.d.ts +3 -0
- package/dist/runtime/locale/is.js +142 -0
- package/dist/runtime/locale/it.js +13 -0
- package/dist/runtime/locale/ja.js +13 -0
- package/dist/runtime/locale/ka.js +13 -0
- package/dist/runtime/locale/kk.js +13 -0
- package/dist/runtime/locale/km.js +13 -0
- package/dist/runtime/locale/ko.js +13 -0
- package/dist/runtime/locale/ky.js +13 -0
- package/dist/runtime/locale/lb.js +13 -0
- package/dist/runtime/locale/lo.js +13 -0
- package/dist/runtime/locale/lt.js +13 -0
- package/dist/runtime/locale/mn.js +13 -0
- package/dist/runtime/locale/ms.js +13 -0
- package/dist/runtime/locale/nb_no.js +13 -0
- package/dist/runtime/locale/nl.js +13 -0
- package/dist/runtime/locale/pl.js +13 -0
- package/dist/runtime/locale/pt.js +13 -0
- package/dist/runtime/locale/pt_br.js +13 -0
- package/dist/runtime/locale/ro.js +13 -0
- package/dist/runtime/locale/ru.js +13 -0
- package/dist/runtime/locale/sk.js +13 -0
- package/dist/runtime/locale/sl.js +13 -0
- package/dist/runtime/locale/sq.js +13 -0
- package/dist/runtime/locale/sv.js +13 -0
- package/dist/runtime/locale/th.js +13 -0
- package/dist/runtime/locale/tj.js +13 -0
- package/dist/runtime/locale/tr.js +13 -0
- package/dist/runtime/locale/ug_cn.js +13 -0
- package/dist/runtime/locale/uk.js +13 -0
- package/dist/runtime/locale/ur.js +13 -0
- package/dist/runtime/locale/uz.js +13 -0
- package/dist/runtime/locale/vi.js +13 -0
- package/dist/runtime/locale/zh_cn.js +13 -0
- package/dist/runtime/locale/zh_tw.js +13 -0
- package/dist/runtime/types/index.d.ts +4 -0
- package/dist/runtime/types/index.js +4 -0
- package/dist/runtime/types/locale.d.ts +13 -0
- package/dist/runtime/utils/ai.d.ts +23 -0
- package/dist/runtime/utils/ai.js +16 -0
- package/dist/runtime/utils/editor.js +17 -5
- package/dist/runtime/vue/components/Icon.d.vue.ts +1 -4
- package/dist/runtime/vue/components/Icon.vue +28 -3
- package/dist/runtime/vue/components/Icon.vue.d.ts +1 -4
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +1 -1
- package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +1 -1
- package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +3 -1
- package/dist/shared/{ui.DI_ypO2T.mjs → ui.DJUbBpE2.mjs} +298 -39
- package/dist/unplugin.d.mts +15 -5
- package/dist/unplugin.mjs +53 -30
- package/dist/vite.d.mts +1 -0
- package/dist/vite.mjs +1 -1
- package/package.json +50 -47
- /package/dist/runtime/composables/{internal/useFilter.d.ts → useFilter.d.ts} +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { VNode } from 'vue';
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema';
|
|
3
|
+
import theme from '#build/ui/sidebar';
|
|
4
|
+
import type { ButtonProps, DrawerProps, IconProps, ModalProps, SlideoverProps, LinkPropsKeys } from '../types';
|
|
5
|
+
import type { ComponentConfig } from '../types/tv';
|
|
6
|
+
type Sidebar = ComponentConfig<typeof theme, AppConfig, 'sidebar'>;
|
|
7
|
+
type SidebarState = 'expanded' | 'collapsed';
|
|
8
|
+
type SidebarMode = 'modal' | 'slideover' | 'drawer';
|
|
9
|
+
type SidebarMenu<T> = T extends 'modal' ? ModalProps : T extends 'slideover' ? SlideoverProps : T extends 'drawer' ? DrawerProps : never;
|
|
10
|
+
export interface SidebarProps<T extends SidebarMode = SidebarMode> {
|
|
11
|
+
/**
|
|
12
|
+
* The element or component this component should render as.
|
|
13
|
+
* @defaultValue 'aside'
|
|
14
|
+
*/
|
|
15
|
+
as?: any;
|
|
16
|
+
/**
|
|
17
|
+
* The visual variant of the sidebar.
|
|
18
|
+
* @defaultValue 'sidebar'
|
|
19
|
+
*/
|
|
20
|
+
variant?: Sidebar['variants']['variant'];
|
|
21
|
+
/**
|
|
22
|
+
* The collapse behavior of the sidebar.
|
|
23
|
+
* - `offcanvas`: The sidebar slides out of view completely.
|
|
24
|
+
* - `icon`: The sidebar shrinks to icon-only width.
|
|
25
|
+
* - `none`: The sidebar is not collapsible.
|
|
26
|
+
* @defaultValue 'offcanvas'
|
|
27
|
+
*/
|
|
28
|
+
collapsible?: Sidebar['variants']['collapsible'];
|
|
29
|
+
/**
|
|
30
|
+
* The side to render the sidebar on.
|
|
31
|
+
* @defaultValue 'left'
|
|
32
|
+
*/
|
|
33
|
+
side?: Sidebar['variants']['side'];
|
|
34
|
+
/**
|
|
35
|
+
* The title displayed in the sidebar header.
|
|
36
|
+
*/
|
|
37
|
+
title?: string;
|
|
38
|
+
/**
|
|
39
|
+
* The description displayed in the sidebar header.
|
|
40
|
+
*/
|
|
41
|
+
description?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Display a close button to collapse the sidebar.
|
|
44
|
+
* Only renders when `collapsible` is not `none`.
|
|
45
|
+
* `{ size: 'md', color: 'neutral', variant: 'ghost' }`{lang="ts-type"}
|
|
46
|
+
* @defaultValue false
|
|
47
|
+
*/
|
|
48
|
+
close?: boolean | Omit<ButtonProps, LinkPropsKeys>;
|
|
49
|
+
/**
|
|
50
|
+
* The icon displayed in the close button.
|
|
51
|
+
* @defaultValue appConfig.ui.icons.close
|
|
52
|
+
* @IconifyIcon
|
|
53
|
+
*/
|
|
54
|
+
closeIcon?: IconProps['name'];
|
|
55
|
+
/**
|
|
56
|
+
* Display a rail on the sidebar edge to toggle collapse.
|
|
57
|
+
* Only renders when `collapsible` is not `none`.
|
|
58
|
+
* @defaultValue false
|
|
59
|
+
*/
|
|
60
|
+
rail?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The mode of the sidebar menu on mobile.
|
|
63
|
+
* @defaultValue 'slideover'
|
|
64
|
+
*/
|
|
65
|
+
mode?: T;
|
|
66
|
+
/**
|
|
67
|
+
* The props for the sidebar menu component on mobile.
|
|
68
|
+
*/
|
|
69
|
+
menu?: SidebarMenu<T>;
|
|
70
|
+
class?: any;
|
|
71
|
+
ui?: Sidebar['slots'];
|
|
72
|
+
}
|
|
73
|
+
export interface SidebarSlots {
|
|
74
|
+
header?(props: {
|
|
75
|
+
state: SidebarState;
|
|
76
|
+
open: boolean;
|
|
77
|
+
close: () => void;
|
|
78
|
+
}): VNode[];
|
|
79
|
+
title?(props: {
|
|
80
|
+
state: SidebarState;
|
|
81
|
+
}): VNode[];
|
|
82
|
+
description?(props: {
|
|
83
|
+
state: SidebarState;
|
|
84
|
+
}): VNode[];
|
|
85
|
+
actions?(props: {
|
|
86
|
+
state: SidebarState;
|
|
87
|
+
}): VNode[];
|
|
88
|
+
close?(props: {
|
|
89
|
+
ui: Sidebar['ui'];
|
|
90
|
+
state: SidebarState;
|
|
91
|
+
}): VNode[];
|
|
92
|
+
default?(props: {
|
|
93
|
+
state: SidebarState;
|
|
94
|
+
open: boolean;
|
|
95
|
+
close: () => void;
|
|
96
|
+
}): VNode[];
|
|
97
|
+
footer?(props: {
|
|
98
|
+
state: SidebarState;
|
|
99
|
+
open: boolean;
|
|
100
|
+
close: () => void;
|
|
101
|
+
}): VNode[];
|
|
102
|
+
rail?(props: {
|
|
103
|
+
ui: Sidebar['ui'];
|
|
104
|
+
state: SidebarState;
|
|
105
|
+
}): VNode[];
|
|
106
|
+
content?(props: {
|
|
107
|
+
close: () => void;
|
|
108
|
+
}): VNode[];
|
|
109
|
+
}
|
|
110
|
+
declare const _default: typeof __VLS_export;
|
|
111
|
+
export default _default;
|
|
112
|
+
declare const __VLS_export: <T extends SidebarMode>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
113
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<(SidebarProps<T> & {
|
|
114
|
+
open?: boolean;
|
|
115
|
+
}) & {
|
|
116
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
117
|
+
}> & (typeof globalThis extends {
|
|
118
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
119
|
+
} ? P : {});
|
|
120
|
+
expose: (exposed: {}) => void;
|
|
121
|
+
attrs: any;
|
|
122
|
+
slots: SidebarSlots;
|
|
123
|
+
emit: (event: "update:open", value: boolean) => void;
|
|
124
|
+
}>) => import("vue").VNode & {
|
|
125
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
126
|
+
};
|
|
127
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
128
|
+
[K in keyof T]: T[K];
|
|
129
|
+
} : {
|
|
130
|
+
[K in keyof T as K]: T[K];
|
|
131
|
+
}) & {};
|
|
@@ -41,7 +41,7 @@ const portalProps = usePortal(toRef(() => props.portal));
|
|
|
41
41
|
const contentProps = toRef(() => props.content);
|
|
42
42
|
const contentEvents = computed(() => {
|
|
43
43
|
if (!props.dismissible) {
|
|
44
|
-
const events = ["
|
|
44
|
+
const events = ["interactOutside", "escapeKeyDown"];
|
|
45
45
|
return events.reduce((acc, curr) => {
|
|
46
46
|
acc[curr] = (e) => {
|
|
47
47
|
e.preventDefault();
|
|
@@ -79,14 +79,16 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.slideover ||
|
|
|
79
79
|
@after-leave="emits('after:leave')"
|
|
80
80
|
v-on="contentEvents"
|
|
81
81
|
>
|
|
82
|
-
<VisuallyHidden v-if="
|
|
83
|
-
<DialogTitle v-if="title
|
|
82
|
+
<VisuallyHidden v-if="!title && !slots.title || !description && !slots.description || !!slots.content">
|
|
83
|
+
<DialogTitle v-if="!title && !slots.title" />
|
|
84
|
+
<DialogTitle v-else-if="!!slots.content">
|
|
84
85
|
<slot name="title">
|
|
85
86
|
{{ title }}
|
|
86
87
|
</slot>
|
|
87
88
|
</DialogTitle>
|
|
88
89
|
|
|
89
|
-
<DialogDescription v-if="description
|
|
90
|
+
<DialogDescription v-if="!description && !slots.description" />
|
|
91
|
+
<DialogDescription v-else-if="!!slots.content">
|
|
90
92
|
<slot name="description">
|
|
91
93
|
{{ description }}
|
|
92
94
|
</slot>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SwitchRootProps } from 'reka-ui';
|
|
1
|
+
import type { SwitchRootProps, SwitchRootEmits } from 'reka-ui';
|
|
2
2
|
import type { VNode } from 'vue';
|
|
3
3
|
import type { AppConfig } from '@nuxt/schema';
|
|
4
4
|
import theme from '#build/ui/switch';
|
|
@@ -6,7 +6,7 @@ import type { IconProps } from '../types';
|
|
|
6
6
|
import type { ButtonHTMLAttributes } from '../types/html';
|
|
7
7
|
import type { ComponentConfig } from '../types/tv';
|
|
8
8
|
type Switch = ComponentConfig<typeof theme, AppConfig, 'switch'>;
|
|
9
|
-
export interface SwitchProps extends Pick<SwitchRootProps
|
|
9
|
+
export interface SwitchProps<T = boolean> extends Pick<SwitchRootProps<T>, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue' | 'modelValue' | 'trueValue' | 'falseValue'>, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
|
|
10
10
|
/**
|
|
11
11
|
* The element or component this component should render as.
|
|
12
12
|
* @defaultValue 'div'
|
|
@@ -43,9 +43,9 @@ export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | '
|
|
|
43
43
|
class?: any;
|
|
44
44
|
ui?: Switch['slots'];
|
|
45
45
|
}
|
|
46
|
-
export
|
|
46
|
+
export interface SwitchEmits<T = boolean> extends SwitchRootEmits<T> {
|
|
47
47
|
change: [event: Event];
|
|
48
|
-
}
|
|
48
|
+
}
|
|
49
49
|
export interface SwitchSlots {
|
|
50
50
|
label?(props: {
|
|
51
51
|
label: string | undefined;
|
|
@@ -56,19 +56,22 @@ export interface SwitchSlots {
|
|
|
56
56
|
}
|
|
57
57
|
declare const _default: typeof __VLS_export;
|
|
58
58
|
export default _default;
|
|
59
|
-
declare const __VLS_export:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
$slots: S;
|
|
73
|
-
};
|
|
59
|
+
declare const __VLS_export: <T = boolean>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
60
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<SwitchProps<T> & {
|
|
61
|
+
onChange?: ((event: Event) => any) | undefined;
|
|
62
|
+
"onUpdate:modelValue"?: ((payload: T) => any) | undefined;
|
|
63
|
+
}> & (typeof globalThis extends {
|
|
64
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
65
|
+
} ? P : {});
|
|
66
|
+
expose: (exposed: {}) => void;
|
|
67
|
+
attrs: any;
|
|
68
|
+
slots: SwitchSlots;
|
|
69
|
+
emit: ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", payload: T) => void);
|
|
70
|
+
}>) => import("vue").VNode & {
|
|
71
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
74
72
|
};
|
|
73
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
74
|
+
[K in keyof T]: T[K];
|
|
75
|
+
} : {
|
|
76
|
+
[K in keyof T as K]: T[K];
|
|
77
|
+
}) & {};
|
|
@@ -4,7 +4,7 @@ import theme from "#build/ui/switch";
|
|
|
4
4
|
|
|
5
5
|
<script setup>
|
|
6
6
|
import { computed, useAttrs, useId } from "vue";
|
|
7
|
-
import { Primitive, SwitchRoot, SwitchThumb,
|
|
7
|
+
import { Primitive, SwitchRoot, SwitchThumb, useForwardPropsEmits, Label } from "reka-ui";
|
|
8
8
|
import { reactivePick } from "@vueuse/core";
|
|
9
9
|
import { useAppConfig } from "#imports";
|
|
10
10
|
import { useComponentUI } from "../composables/useComponentUI";
|
|
@@ -29,14 +29,16 @@ const props = defineProps({
|
|
|
29
29
|
name: { type: String, required: false },
|
|
30
30
|
required: { type: Boolean, required: false },
|
|
31
31
|
value: { type: String, required: false },
|
|
32
|
-
defaultValue: { type:
|
|
32
|
+
defaultValue: { type: null, required: false },
|
|
33
|
+
modelValue: { type: null, required: false },
|
|
34
|
+
trueValue: { type: null, required: false },
|
|
35
|
+
falseValue: { type: null, required: false }
|
|
33
36
|
});
|
|
34
37
|
const slots = defineSlots();
|
|
35
|
-
const emits = defineEmits(["change"]);
|
|
36
|
-
const modelValue = defineModel({ type: Boolean, ...{ default: void 0 } });
|
|
38
|
+
const emits = defineEmits(["change", "update:modelValue"]);
|
|
37
39
|
const appConfig = useAppConfig();
|
|
38
40
|
const uiProp = useComponentUI("switch", props);
|
|
39
|
-
const rootProps =
|
|
41
|
+
const rootProps = useForwardPropsEmits(reactivePick(props, "required", "value", "defaultValue", "modelValue", "trueValue", "falseValue"), emits);
|
|
40
42
|
const { id: _id, emitFormChange, emitFormInput, size, color, name, disabled, ariaAttrs } = useFormField(props);
|
|
41
43
|
const id = _id.value ?? useId();
|
|
42
44
|
const attrs = useAttrs();
|
|
@@ -65,7 +67,6 @@ function onUpdate(value) {
|
|
|
65
67
|
<SwitchRoot
|
|
66
68
|
:id="id"
|
|
67
69
|
v-bind="{ ...rootProps, ...forwardedAttrs, ...ariaAttrs }"
|
|
68
|
-
v-model="modelValue"
|
|
69
70
|
:name="name"
|
|
70
71
|
:disabled="disabled || loading"
|
|
71
72
|
data-slot="base"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SwitchRootProps } from 'reka-ui';
|
|
1
|
+
import type { SwitchRootProps, SwitchRootEmits } from 'reka-ui';
|
|
2
2
|
import type { VNode } from 'vue';
|
|
3
3
|
import type { AppConfig } from '@nuxt/schema';
|
|
4
4
|
import theme from '#build/ui/switch';
|
|
@@ -6,7 +6,7 @@ import type { IconProps } from '../types';
|
|
|
6
6
|
import type { ButtonHTMLAttributes } from '../types/html';
|
|
7
7
|
import type { ComponentConfig } from '../types/tv';
|
|
8
8
|
type Switch = ComponentConfig<typeof theme, AppConfig, 'switch'>;
|
|
9
|
-
export interface SwitchProps extends Pick<SwitchRootProps
|
|
9
|
+
export interface SwitchProps<T = boolean> extends Pick<SwitchRootProps<T>, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue' | 'modelValue' | 'trueValue' | 'falseValue'>, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
|
|
10
10
|
/**
|
|
11
11
|
* The element or component this component should render as.
|
|
12
12
|
* @defaultValue 'div'
|
|
@@ -43,9 +43,9 @@ export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | '
|
|
|
43
43
|
class?: any;
|
|
44
44
|
ui?: Switch['slots'];
|
|
45
45
|
}
|
|
46
|
-
export
|
|
46
|
+
export interface SwitchEmits<T = boolean> extends SwitchRootEmits<T> {
|
|
47
47
|
change: [event: Event];
|
|
48
|
-
}
|
|
48
|
+
}
|
|
49
49
|
export interface SwitchSlots {
|
|
50
50
|
label?(props: {
|
|
51
51
|
label: string | undefined;
|
|
@@ -56,19 +56,22 @@ export interface SwitchSlots {
|
|
|
56
56
|
}
|
|
57
57
|
declare const _default: typeof __VLS_export;
|
|
58
58
|
export default _default;
|
|
59
|
-
declare const __VLS_export:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
$slots: S;
|
|
73
|
-
};
|
|
59
|
+
declare const __VLS_export: <T = boolean>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
60
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<SwitchProps<T> & {
|
|
61
|
+
onChange?: ((event: Event) => any) | undefined;
|
|
62
|
+
"onUpdate:modelValue"?: ((payload: T) => any) | undefined;
|
|
63
|
+
}> & (typeof globalThis extends {
|
|
64
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
65
|
+
} ? P : {});
|
|
66
|
+
expose: (exposed: {}) => void;
|
|
67
|
+
attrs: any;
|
|
68
|
+
slots: SwitchSlots;
|
|
69
|
+
emit: ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", payload: T) => void);
|
|
70
|
+
}>) => import("vue").VNode & {
|
|
71
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
74
72
|
};
|
|
73
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
74
|
+
[K in keyof T]: T[K];
|
|
75
|
+
} : {
|
|
76
|
+
[K in keyof T as K]: T[K];
|
|
77
|
+
}) & {};
|
|
@@ -52,7 +52,7 @@ export interface TableProps<T extends TableData = TableData> extends TableOption
|
|
|
52
52
|
meta?: TableMeta<T>;
|
|
53
53
|
/**
|
|
54
54
|
* Enable virtualization for large datasets.
|
|
55
|
-
* Note: when enabled, the divider between rows and
|
|
55
|
+
* Note: when enabled, the divider between rows, sticky and row pinning properties are not supported.
|
|
56
56
|
* @see https://tanstack.com/virtual/latest/docs/api/virtualizer#options
|
|
57
57
|
* @defaultValue false
|
|
58
58
|
*/
|
|
@@ -220,6 +220,9 @@ const tableApi = useVueTable({
|
|
|
220
220
|
}
|
|
221
221
|
});
|
|
222
222
|
const rows = computed(() => tableApi.getRowModel().rows);
|
|
223
|
+
const topRows = computed(() => props.virtualize ? [] : tableApi.getTopRows());
|
|
224
|
+
const bottomRows = computed(() => props.virtualize ? [] : tableApi.getBottomRows());
|
|
225
|
+
const centerRows = computed(() => topRows.value.length || bottomRows.value.length ? tableApi.getCenterRows() : rows.value);
|
|
223
226
|
const virtualizerProps = toRef(() => defu(typeof props.virtualize === "boolean" ? {} : props.virtualize, {
|
|
224
227
|
estimateSize: 65,
|
|
225
228
|
overscan: 12
|
|
@@ -227,7 +230,7 @@ const virtualizerProps = toRef(() => defu(typeof props.virtualize === "boolean"
|
|
|
227
230
|
const virtualizer = !!props.virtualize && useVirtualizer({
|
|
228
231
|
...virtualizerProps.value,
|
|
229
232
|
get count() {
|
|
230
|
-
return
|
|
233
|
+
return centerRows.value.length;
|
|
231
234
|
},
|
|
232
235
|
getScrollElement: () => rootRef.value?.$el,
|
|
233
236
|
estimateSize: (index) => {
|
|
@@ -311,6 +314,7 @@ defineExpose({
|
|
|
311
314
|
:data-selected="row.getIsSelected()"
|
|
312
315
|
:data-selectable="!!props.onSelect || !!props.onHover || !!props.onContextmenu"
|
|
313
316
|
:data-expanded="row.getIsExpanded()"
|
|
317
|
+
:data-pinned="row.getIsPinned() || void 0"
|
|
314
318
|
:role="props.onSelect ? 'button' : void 0"
|
|
315
319
|
:tabindex="props.onSelect ? 0 : void 0"
|
|
316
320
|
data-slot="tr"
|
|
@@ -401,10 +405,12 @@ defineExpose({
|
|
|
401
405
|
<slot name="body-top" />
|
|
402
406
|
|
|
403
407
|
<template v-if="rows.length">
|
|
408
|
+
<ReuseRowTemplate v-for="row in topRows" :key="row.id" :row="row" />
|
|
409
|
+
|
|
404
410
|
<template v-if="virtualizer">
|
|
405
|
-
<template v-for="(virtualRow, index) in virtualizer.getVirtualItems()" :key="
|
|
411
|
+
<template v-for="(virtualRow, index) in virtualizer.getVirtualItems()" :key="centerRows[virtualRow.index]?.id">
|
|
406
412
|
<ReuseRowTemplate
|
|
407
|
-
:row="
|
|
413
|
+
:row="centerRows[virtualRow.index]"
|
|
408
414
|
:style="{
|
|
409
415
|
height: `${virtualRow.size}px`,
|
|
410
416
|
transform: `translateY(${virtualRow.start - index * virtualRow.size}px)`
|
|
@@ -414,8 +420,10 @@ defineExpose({
|
|
|
414
420
|
</template>
|
|
415
421
|
|
|
416
422
|
<template v-else>
|
|
417
|
-
<ReuseRowTemplate v-for="row in
|
|
423
|
+
<ReuseRowTemplate v-for="row in centerRows" :key="row.id" :row="row" />
|
|
418
424
|
</template>
|
|
425
|
+
|
|
426
|
+
<ReuseRowTemplate v-for="row in bottomRows" :key="row.id" :row="row" />
|
|
419
427
|
</template>
|
|
420
428
|
|
|
421
429
|
<tr v-else-if="loading && !!slots['loading']">
|
|
@@ -52,7 +52,7 @@ export interface TableProps<T extends TableData = TableData> extends TableOption
|
|
|
52
52
|
meta?: TableMeta<T>;
|
|
53
53
|
/**
|
|
54
54
|
* Enable virtualization for large datasets.
|
|
55
|
-
* Note: when enabled, the divider between rows and
|
|
55
|
+
* Note: when enabled, the divider between rows, sticky and row pinning properties are not supported.
|
|
56
56
|
* @see https://tanstack.com/virtual/latest/docs/api/virtualizer#options
|
|
57
57
|
* @defaultValue false
|
|
58
58
|
*/
|
|
@@ -13,6 +13,8 @@ export interface TooltipProps extends TooltipRootProps {
|
|
|
13
13
|
kbds?: KbdProps['value'][] | KbdProps[];
|
|
14
14
|
/**
|
|
15
15
|
* The content of the tooltip.
|
|
16
|
+
*
|
|
17
|
+
* Inherits from the `tooltip.content` of the {@link AppProps} component when not provided.
|
|
16
18
|
* @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8 }
|
|
17
19
|
*/
|
|
18
20
|
content?: Omit<TooltipContentProps, 'as' | 'asChild'> & Partial<EmitsToProps<TooltipContentEmits>>;
|
|
@@ -5,7 +5,7 @@ import theme from "#build/ui/tooltip";
|
|
|
5
5
|
<script setup>
|
|
6
6
|
import { computed, toRef } from "vue";
|
|
7
7
|
import { defu } from "defu";
|
|
8
|
-
import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from "reka-ui";
|
|
8
|
+
import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits, injectTooltipProviderContext } from "reka-ui";
|
|
9
9
|
import { reactivePick } from "@vueuse/core";
|
|
10
10
|
import { useAppConfig } from "#imports";
|
|
11
11
|
import { useComponentUI } from "../composables/useComponentUI";
|
|
@@ -33,9 +33,10 @@ const emits = defineEmits(["update:open"]);
|
|
|
33
33
|
const slots = defineSlots();
|
|
34
34
|
const appConfig = useAppConfig();
|
|
35
35
|
const uiProp = useComponentUI("tooltip", props);
|
|
36
|
+
const providerContext = injectTooltipProviderContext();
|
|
36
37
|
const rootProps = useForwardPropsEmits(reactivePick(props, "defaultOpen", "open", "delayDuration", "disableHoverableContent", "disableClosingTrigger", "ignoreNonKeyboardFocus"), emits);
|
|
37
38
|
const portalProps = usePortal(toRef(() => props.portal));
|
|
38
|
-
const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8 }));
|
|
39
|
+
const contentProps = toRef(() => defu(props.content, providerContext.content.value, { side: "bottom", sideOffset: 8, collisionPadding: 8 }));
|
|
39
40
|
const arrowProps = toRef(() => defu(props.arrow, { rounded: true }));
|
|
40
41
|
const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.tooltip || {} })({
|
|
41
42
|
side: contentProps.value.side
|
|
@@ -13,6 +13,8 @@ export interface TooltipProps extends TooltipRootProps {
|
|
|
13
13
|
kbds?: KbdProps['value'][] | KbdProps[];
|
|
14
14
|
/**
|
|
15
15
|
* The content of the tooltip.
|
|
16
|
+
*
|
|
17
|
+
* Inherits from the `tooltip.content` of the {@link AppProps} component when not provided.
|
|
16
18
|
* @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8 }
|
|
17
19
|
*/
|
|
18
20
|
content?: Omit<TooltipContentProps, 'as' | 'asChild'> & Partial<EmitsToProps<TooltipContentEmits>>;
|
|
@@ -4,5 +4,5 @@ export interface ColorModeSelectProps extends Omit<SelectMenuProps<SelectMenuIte
|
|
|
4
4
|
declare const _default: typeof __VLS_export;
|
|
5
5
|
export default _default;
|
|
6
6
|
declare const __VLS_export: import("vue").DefineComponent<ColorModeSelectProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ColorModeSelectProps> & Readonly<{}>, {
|
|
7
|
-
searchInput: boolean | import("../Input.vue").InputProps
|
|
7
|
+
searchInput: boolean | Omit<import("../Input.vue").InputProps, "modelValue" | "defaultValue">;
|
|
8
8
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -4,5 +4,5 @@ export interface ColorModeSelectProps extends Omit<SelectMenuProps<SelectMenuIte
|
|
|
4
4
|
declare const _default: typeof __VLS_export;
|
|
5
5
|
export default _default;
|
|
6
6
|
declare const __VLS_export: import("vue").DefineComponent<ColorModeSelectProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ColorModeSelectProps> & Readonly<{}>, {
|
|
7
|
-
searchInput: boolean | import("../Input.vue").InputProps
|
|
7
|
+
searchInput: boolean | Omit<import("../Input.vue").InputProps, "modelValue" | "defaultValue">;
|
|
8
8
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -24,7 +24,9 @@ const props = defineProps({
|
|
|
24
24
|
name: { type: String, required: false },
|
|
25
25
|
required: { type: Boolean, required: false },
|
|
26
26
|
value: { type: String, required: false },
|
|
27
|
-
defaultValue: { type:
|
|
27
|
+
defaultValue: { type: null, required: false },
|
|
28
|
+
trueValue: { type: null, required: false },
|
|
29
|
+
falseValue: { type: null, required: false }
|
|
28
30
|
});
|
|
29
31
|
const { t } = useLocale();
|
|
30
32
|
const colorMode = useColorMode();
|
|
@@ -107,12 +107,19 @@ const defaultValue = computed(() => {
|
|
|
107
107
|
<Primitive :as="as" v-bind="$attrs" :as-child="level > 0" data-slot="root" :class="ui.root({ class: [uiProp?.root, props.class] })">
|
|
108
108
|
<AccordionRoot as="ul" :disabled="disabled" v-bind="rootProps" :default-value="defaultValue" :class="level > 0 ? ui.listWithChildren({ class: uiProp?.listWithChildren }) : ui.list({ class: uiProp?.list })">
|
|
109
109
|
<template v-for="(link, index) in navigation" :key="index">
|
|
110
|
-
<AccordionItem
|
|
110
|
+
<AccordionItem
|
|
111
|
+
v-if="link.children?.length"
|
|
112
|
+
as="li"
|
|
113
|
+
:disabled="!!link.disabled"
|
|
114
|
+
data-slot="itemWithChildren"
|
|
115
|
+
:class="ui.itemWithChildren({ class: [uiProp?.itemWithChildren, link.ui?.itemWithChildren], level: level > 0 })"
|
|
116
|
+
:value="String(index)"
|
|
117
|
+
>
|
|
111
118
|
<AccordionTrigger
|
|
112
119
|
as="button"
|
|
113
120
|
:class="[
|
|
114
121
|
ui.link({ class: [uiProp?.link, link.ui?.link, link.class], active: link.active, disabled: !!link.disabled || disabled }),
|
|
115
|
-
ui.trigger({ class: [uiProp?.trigger, link.ui?.trigger], disabled })
|
|
122
|
+
ui.trigger({ class: [uiProp?.trigger, link.ui?.trigger], disabled: !!link.disabled || disabled })
|
|
116
123
|
]"
|
|
117
124
|
>
|
|
118
125
|
<ReuseLinkTemplate :link="link" :active="link.active || false" />
|
|
@@ -8,6 +8,7 @@ import { Primitive } from "reka-ui";
|
|
|
8
8
|
import { createReusableTemplate } from "@vueuse/core";
|
|
9
9
|
import { useAppConfig } from "#imports";
|
|
10
10
|
import { useComponentUI } from "../../composables/useComponentUI";
|
|
11
|
+
import { useLocale } from "../../composables/useLocale";
|
|
11
12
|
import { tv } from "../../utils/tv";
|
|
12
13
|
import ULink from "../Link.vue";
|
|
13
14
|
import UIcon from "../Icon.vue";
|
|
@@ -21,6 +22,7 @@ const props = defineProps({
|
|
|
21
22
|
ui: { type: Object, required: false }
|
|
22
23
|
});
|
|
23
24
|
defineSlots();
|
|
25
|
+
const { dir } = useLocale();
|
|
24
26
|
const appConfig = useAppConfig();
|
|
25
27
|
const uiProp = useComponentUI("contentSurround", props);
|
|
26
28
|
const [DefineLinkTemplate, ReuseLinkTemplate] = createReusableTemplate({
|
|
@@ -31,6 +33,8 @@ const [DefineLinkTemplate, ReuseLinkTemplate] = createReusableTemplate({
|
|
|
31
33
|
}
|
|
32
34
|
});
|
|
33
35
|
const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.contentSurround || {} })());
|
|
36
|
+
const prevIcon = computed(() => props.prevIcon || (dir.value === "rtl" ? appConfig.ui.icons.arrowRight : appConfig.ui.icons.arrowLeft));
|
|
37
|
+
const nextIcon = computed(() => props.nextIcon || (dir.value === "rtl" ? appConfig.ui.icons.arrowLeft : appConfig.ui.icons.arrowRight));
|
|
34
38
|
</script>
|
|
35
39
|
|
|
36
40
|
<template>
|
|
@@ -60,7 +64,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.contentSurrou
|
|
|
60
64
|
</DefineLinkTemplate>
|
|
61
65
|
|
|
62
66
|
<Primitive v-if="surround" :as="as" v-bind="$attrs" data-slot="root" :class="ui.root({ class: [uiProp?.root, props.class] })">
|
|
63
|
-
<ReuseLinkTemplate :link="surround[0]" :icon="prevIcon
|
|
64
|
-
<ReuseLinkTemplate :link="surround[1]" :icon="nextIcon
|
|
67
|
+
<ReuseLinkTemplate :link="surround[0]" :icon="prevIcon" direction="left" />
|
|
68
|
+
<ReuseLinkTemplate :link="surround[1]" :icon="nextIcon" direction="right" />
|
|
65
69
|
</Primitive>
|
|
66
70
|
</template>
|
|
@@ -40,6 +40,11 @@ export interface ContentTocProps<T extends ContentTocLink = ContentTocLink> exte
|
|
|
40
40
|
* @defaultValue 'primary'
|
|
41
41
|
*/
|
|
42
42
|
highlightColor?: ContentToc['variants']['highlightColor'];
|
|
43
|
+
/**
|
|
44
|
+
* The variant of the highlight indicator.
|
|
45
|
+
* @defaultValue 'straight'
|
|
46
|
+
*/
|
|
47
|
+
highlightVariant?: ContentToc['variants']['highlightVariant'];
|
|
43
48
|
links?: T[];
|
|
44
49
|
class?: any;
|
|
45
50
|
ui?: ContentToc['slots'];
|