@bitrix24/b24ui-nuxt 0.5.9 → 0.5.10
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/b24ui/navigation-menu.ts +0 -2
- package/.nuxt/b24ui/popover.ts +1 -1
- package/dist/meta.d.mts +4789 -4897
- package/dist/meta.mjs +4789 -4897
- package/dist/module.json +5 -5
- package/dist/module.mjs +11 -7
- package/dist/runtime/components/Advice.vue +47 -54
- package/dist/runtime/components/Advice.vue.d.ts +170 -0
- package/dist/runtime/components/Alert.vue +71 -96
- package/dist/runtime/components/Alert.vue.d.ts +464 -0
- package/dist/runtime/components/App.vue +37 -34
- package/dist/runtime/components/App.vue.d.ts +23 -0
- package/dist/runtime/components/Avatar.vue +69 -81
- package/dist/runtime/components/Avatar.vue.d.ts +281 -0
- package/dist/runtime/components/AvatarGroup.vue +53 -76
- package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
- package/dist/runtime/components/Badge.vue +83 -83
- package/dist/runtime/components/Badge.vue.d.ts +517 -0
- package/dist/runtime/components/Button.vue +219 -149
- package/dist/runtime/components/Button.vue.d.ts +640 -0
- package/dist/runtime/components/ButtonGroup.vue +35 -51
- package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
- package/dist/runtime/components/Calendar.vue +186 -152
- package/dist/runtime/components/Calendar.vue.d.ts +437 -0
- package/dist/runtime/components/Checkbox.vue +84 -73
- package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
- package/dist/runtime/components/Chip.vue +59 -74
- package/dist/runtime/components/Chip.vue.d.ts +271 -0
- package/dist/runtime/components/Collapsible.vue +44 -41
- package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
- package/dist/runtime/components/Container.vue +18 -27
- package/dist/runtime/components/Container.vue.d.ts +27 -0
- package/dist/runtime/components/Countdown.vue +198 -378
- package/dist/runtime/components/Countdown.vue.d.ts +356 -0
- package/dist/runtime/components/DescriptionList.vue +102 -149
- package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
- package/dist/runtime/components/DropdownMenu.vue +83 -139
- package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
- package/dist/runtime/components/DropdownMenuContent.vue +137 -81
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
- package/dist/runtime/components/Form.vue +162 -216
- package/dist/runtime/components/Form.vue.d.ts +55 -0
- package/dist/runtime/components/FormField.vue +76 -80
- package/dist/runtime/components/FormField.vue.d.ts +282 -0
- package/dist/runtime/components/Input.vue +160 -179
- package/dist/runtime/components/Input.vue.d.ts +755 -0
- package/dist/runtime/components/InputMenu.vue +300 -381
- package/dist/runtime/components/InputMenu.vue.d.ts +1504 -0
- package/dist/runtime/components/InputNumber.vue +178 -175
- package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
- package/dist/runtime/components/Kbd.vue +33 -45
- package/dist/runtime/components/Kbd.vue.d.ts +109 -0
- package/dist/runtime/components/Link.vue +179 -173
- package/dist/runtime/components/Link.vue.d.ts +129 -0
- package/dist/runtime/components/LinkBase.vue +64 -42
- package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
- package/dist/runtime/components/Modal.vue +105 -127
- package/dist/runtime/components/Modal.vue.d.ts +327 -0
- package/dist/runtime/components/ModalDialogClose.vue +4 -8
- package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
- package/dist/runtime/components/Navbar.vue +24 -33
- package/dist/runtime/components/Navbar.vue.d.ts +101 -0
- package/dist/runtime/components/NavbarDivider.vue +24 -33
- package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
- package/dist/runtime/components/NavbarSection.vue +24 -33
- package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
- package/dist/runtime/components/NavbarSpacer.vue +24 -33
- package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
- package/dist/runtime/components/NavigationMenu.vue +152 -216
- package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
- package/dist/runtime/components/OverlayProvider.vue +13 -17
- package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
- package/dist/runtime/components/Popover.vue +81 -81
- package/dist/runtime/components/Popover.vue.d.ts +147 -0
- package/dist/runtime/components/Progress.vue +109 -136
- package/dist/runtime/components/Progress.vue.d.ts +592 -0
- package/dist/runtime/components/RadioGroup.vue +120 -134
- package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
- package/dist/runtime/components/Range.vue +94 -85
- package/dist/runtime/components/Range.vue.d.ts +417 -0
- package/dist/runtime/components/Select.vue +212 -260
- package/dist/runtime/components/Select.vue.d.ts +1200 -0
- package/dist/runtime/components/SelectMenu.vue +272 -366
- package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
- package/dist/runtime/components/Separator.vue +61 -71
- package/dist/runtime/components/Separator.vue.d.ts +400 -0
- package/dist/runtime/components/Sidebar.vue +24 -33
- package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarBody.vue +30 -38
- package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
- package/dist/runtime/components/SidebarFooter.vue +24 -33
- package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarHeader.vue +24 -33
- package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarHeading.vue +24 -33
- package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarLayout.vue +40 -70
- package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
- package/dist/runtime/components/SidebarSection.vue +24 -33
- package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
- package/dist/runtime/components/SidebarSpacer.vue +24 -33
- package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
- package/dist/runtime/components/Skeleton.vue +17 -22
- package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
- package/dist/runtime/components/Slideover.vue +108 -131
- package/dist/runtime/components/Slideover.vue.d.ts +360 -0
- package/dist/runtime/components/StackedLayout.vue +40 -73
- package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
- package/dist/runtime/components/Switch.vue +100 -95
- package/dist/runtime/components/Switch.vue.d.ts +587 -0
- package/dist/runtime/components/Tabs.vue +83 -105
- package/dist/runtime/components/Tabs.vue.d.ts +453 -0
- package/dist/runtime/components/Textarea.vue +177 -201
- package/dist/runtime/components/Textarea.vue.d.ts +601 -0
- package/dist/runtime/components/Toast.vue +94 -105
- package/dist/runtime/components/Toast.vue.d.ts +438 -0
- package/dist/runtime/components/Toaster.vue +94 -111
- package/dist/runtime/components/Toaster.vue.d.ts +219 -0
- package/dist/runtime/components/Tooltip.vue +78 -64
- package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
- package/dist/runtime/components/content/TableWrapper.vue +58 -70
- package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -0
- package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
- package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
- package/dist/runtime/composables/useComponentIcons.d.ts +1 -1
- package/dist/runtime/composables/useFormField.d.ts +1 -1
- package/dist/runtime/prose/A.vue +18 -23
- package/dist/runtime/prose/A.vue.d.ts +84 -0
- package/dist/runtime/prose/Blockquote.vue +18 -23
- package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
- package/dist/runtime/prose/Code.vue +23 -31
- package/dist/runtime/prose/Code.vue.d.ts +97 -0
- package/dist/runtime/prose/Em.vue +18 -23
- package/dist/runtime/prose/Em.vue.d.ts +84 -0
- package/dist/runtime/prose/H1.vue +18 -23
- package/dist/runtime/prose/H1.vue.d.ts +97 -0
- package/dist/runtime/prose/H2.vue +18 -23
- package/dist/runtime/prose/H2.vue.d.ts +123 -0
- package/dist/runtime/prose/H3.vue +18 -23
- package/dist/runtime/prose/H3.vue.d.ts +123 -0
- package/dist/runtime/prose/H4.vue +18 -23
- package/dist/runtime/prose/H4.vue.d.ts +123 -0
- package/dist/runtime/prose/H5.vue +18 -23
- package/dist/runtime/prose/H5.vue.d.ts +123 -0
- package/dist/runtime/prose/H6.vue +18 -23
- package/dist/runtime/prose/H6.vue.d.ts +123 -0
- package/dist/runtime/prose/Hr.vue +18 -19
- package/dist/runtime/prose/Hr.vue.d.ts +74 -0
- package/dist/runtime/prose/Img.vue +18 -23
- package/dist/runtime/prose/Img.vue.d.ts +77 -0
- package/dist/runtime/prose/Li.vue +18 -23
- package/dist/runtime/prose/Li.vue.d.ts +84 -0
- package/dist/runtime/prose/Ol.vue +18 -23
- package/dist/runtime/prose/Ol.vue.d.ts +84 -0
- package/dist/runtime/prose/P.vue +18 -23
- package/dist/runtime/prose/P.vue.d.ts +84 -0
- package/dist/runtime/prose/Pre.vue +28 -33
- package/dist/runtime/prose/Pre.vue.d.ts +117 -0
- package/dist/runtime/prose/Strong.vue +18 -23
- package/dist/runtime/prose/Strong.vue.d.ts +84 -0
- package/dist/runtime/prose/Table.vue +44 -54
- package/dist/runtime/prose/Table.vue.d.ts +144 -0
- package/dist/runtime/prose/Tbody.vue +18 -23
- package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
- package/dist/runtime/prose/Td.vue +18 -23
- package/dist/runtime/prose/Td.vue.d.ts +84 -0
- package/dist/runtime/prose/Th.vue +18 -23
- package/dist/runtime/prose/Th.vue.d.ts +84 -0
- package/dist/runtime/prose/Thead.vue +18 -23
- package/dist/runtime/prose/Thead.vue.d.ts +84 -0
- package/dist/runtime/prose/Tr.vue +18 -23
- package/dist/runtime/prose/Tr.vue.d.ts +84 -0
- package/dist/runtime/prose/Ul.vue +18 -23
- package/dist/runtime/prose/Ul.vue.d.ts +84 -0
- package/dist/runtime/vue/components/Link.vue +201 -202
- package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
- package/dist/runtime/vue/stubs.d.ts +3 -3
- package/dist/shared/{b24ui-nuxt.C1lGF53R.mjs → b24ui-nuxt.CS9Lf0os.mjs} +4 -3
- package/dist/types.d.mts +3 -5
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +59 -32
- package/dist/meta.cjs +0 -72220
- package/dist/meta.d.cts +0 -72218
- package/dist/meta.d.ts +0 -72218
- package/dist/module.cjs +0 -59
- package/dist/module.d.cts +0 -15
- package/dist/module.d.ts +0 -15
- package/dist/shared/b24ui-nuxt.BVg3rkkG.cjs +0 -7720
- package/dist/types.d.ts +0 -7
- package/dist/unplugin.cjs +0 -236
- package/dist/unplugin.d.cts +0 -33
- package/dist/unplugin.d.ts +0 -33
- package/dist/vite.cjs +0 -21
- package/dist/vite.d.cts +0 -14
- package/dist/vite.d.ts +0 -14
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes } from 'vue';
|
|
2
|
+
import type { RouterLinkProps, RouteLocationRaw } from 'vue-router';
|
|
3
|
+
interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
|
|
4
|
+
/**
|
|
5
|
+
* Route Location the link should navigate to when clicked on.
|
|
6
|
+
*/
|
|
7
|
+
to?: RouteLocationRaw;
|
|
8
|
+
/**
|
|
9
|
+
* An alias for `to`. If used with `to`, `href` will be ignored
|
|
10
|
+
*/
|
|
11
|
+
href?: NuxtLinkProps['to'];
|
|
12
|
+
/**
|
|
13
|
+
* Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases
|
|
14
|
+
*/
|
|
15
|
+
external?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Where to display the linked URL as the name for a browsing context.
|
|
18
|
+
*/
|
|
19
|
+
target?: '_blank' | '_parent' | '_self' | '_top' | (string & {}) | null;
|
|
20
|
+
/**
|
|
21
|
+
* A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.
|
|
22
|
+
*/
|
|
23
|
+
rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {}) | null;
|
|
24
|
+
/**
|
|
25
|
+
* If set to true, no rel attribute will be added to the link
|
|
26
|
+
*/
|
|
27
|
+
noRel?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* A class to apply to links that have been prefetched.
|
|
30
|
+
*/
|
|
31
|
+
prefetchedClass?: string;
|
|
32
|
+
/**
|
|
33
|
+
* When enabled will prefetch middleware, layouts and payloads of links in the viewport.
|
|
34
|
+
*/
|
|
35
|
+
prefetch?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility.
|
|
38
|
+
*/
|
|
39
|
+
prefetchOn?: 'visibility' | 'interaction' | Partial<{
|
|
40
|
+
visibility: boolean;
|
|
41
|
+
interaction: boolean;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Escape hatch to disable `prefetch` attribute.
|
|
45
|
+
*/
|
|
46
|
+
noPrefetch?: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface LinkProps extends NuxtLinkProps {
|
|
49
|
+
/**
|
|
50
|
+
* The element or component this component should render as when not a link.
|
|
51
|
+
* @defaultValue 'button'
|
|
52
|
+
*/
|
|
53
|
+
as?: any;
|
|
54
|
+
/**
|
|
55
|
+
* The type of the button when not a link.
|
|
56
|
+
* @defaultValue 'button'
|
|
57
|
+
*/
|
|
58
|
+
type?: ButtonHTMLAttributes['type'];
|
|
59
|
+
disabled?: boolean;
|
|
60
|
+
/** Force the link to be active independent of the current route. */
|
|
61
|
+
active?: boolean;
|
|
62
|
+
/** Will only be active if the current route is an exact match. */
|
|
63
|
+
exact?: boolean;
|
|
64
|
+
/** Allows controlling how the current route query sets the link as active. */
|
|
65
|
+
exactQuery?: boolean | 'partial';
|
|
66
|
+
/** Will only be active if the current route hash is an exact match. */
|
|
67
|
+
exactHash?: boolean;
|
|
68
|
+
/** The class to apply when the link is inactive. */
|
|
69
|
+
inactiveClass?: string;
|
|
70
|
+
custom?: boolean;
|
|
71
|
+
/** When `true`, uses special underlined styling. */
|
|
72
|
+
isAction?: boolean;
|
|
73
|
+
/** When `true`, only styles from `class`, `activeClass`, and `inactiveClass` will be applied. */
|
|
74
|
+
raw?: boolean;
|
|
75
|
+
class?: any;
|
|
76
|
+
}
|
|
77
|
+
export interface LinkSlots {
|
|
78
|
+
default(props: {
|
|
79
|
+
active: boolean;
|
|
80
|
+
}): any;
|
|
81
|
+
}
|
|
82
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
|
|
83
|
+
as: string;
|
|
84
|
+
type: string;
|
|
85
|
+
ariaCurrentValue: string;
|
|
86
|
+
active: undefined;
|
|
87
|
+
isAction: boolean;
|
|
88
|
+
activeClass: string;
|
|
89
|
+
inactiveClass: string;
|
|
90
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
|
|
91
|
+
as: string;
|
|
92
|
+
type: string;
|
|
93
|
+
ariaCurrentValue: string;
|
|
94
|
+
active: undefined;
|
|
95
|
+
isAction: boolean;
|
|
96
|
+
activeClass: string;
|
|
97
|
+
inactiveClass: string;
|
|
98
|
+
}>>> & Readonly<{}>, {
|
|
99
|
+
as: any;
|
|
100
|
+
type: "reset" | "submit" | "button";
|
|
101
|
+
activeClass: string;
|
|
102
|
+
ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
|
|
103
|
+
active: boolean;
|
|
104
|
+
inactiveClass: string;
|
|
105
|
+
isAction: boolean;
|
|
106
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<LinkSlots> & LinkSlots>;
|
|
107
|
+
export default _default;
|
|
108
|
+
type __VLS_WithDefaults<P, D> = {
|
|
109
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
110
|
+
default: D[K];
|
|
111
|
+
}> : P[K];
|
|
112
|
+
};
|
|
113
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
114
|
+
type __VLS_TypePropsToOption<T> = {
|
|
115
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
116
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
117
|
+
} : {
|
|
118
|
+
type: import('vue').PropType<T[K]>;
|
|
119
|
+
required: true;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
123
|
+
new (): {
|
|
124
|
+
$slots: S;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
type __VLS_PrettifyLocal<T> = {
|
|
128
|
+
[K in keyof T]: T[K];
|
|
129
|
+
} & {};
|
|
@@ -1,43 +1,65 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import type { LinkProps } from '../types'
|
|
1
|
+
<script>
|
|
3
2
|
|
|
4
|
-
export interface LinkBaseProps {
|
|
5
|
-
as?: string
|
|
6
|
-
type?: string
|
|
7
|
-
disabled?: boolean
|
|
8
|
-
onClick?: ((e: MouseEvent) => void | Promise<void>) | Array<((e: MouseEvent) => void | Promise<void>)>
|
|
9
|
-
href?: string
|
|
10
|
-
navigate?: (e: MouseEvent) => void
|
|
11
|
-
target?: LinkProps['target']
|
|
12
|
-
rel?: LinkProps['rel']
|
|
13
|
-
active?: boolean
|
|
14
|
-
isExternal?: boolean
|
|
15
|
-
}
|
|
16
3
|
</script>
|
|
17
4
|
|
|
18
|
-
<script setup
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
5
|
+
<script setup>
|
|
6
|
+
const props = defineProps({
|
|
7
|
+
as: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: false,
|
|
10
|
+
default: "button"
|
|
11
|
+
},
|
|
12
|
+
type: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: false,
|
|
15
|
+
default: "button"
|
|
16
|
+
},
|
|
17
|
+
disabled: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
required: false
|
|
20
|
+
},
|
|
21
|
+
onClick: {
|
|
22
|
+
type: [Function, Array],
|
|
23
|
+
required: false
|
|
24
|
+
},
|
|
25
|
+
href: {
|
|
26
|
+
type: String,
|
|
27
|
+
required: false
|
|
28
|
+
},
|
|
29
|
+
navigate: {
|
|
30
|
+
type: Function,
|
|
31
|
+
required: false
|
|
32
|
+
},
|
|
33
|
+
target: {
|
|
34
|
+
type: [String, Object, null],
|
|
35
|
+
required: false
|
|
36
|
+
},
|
|
37
|
+
rel: {
|
|
38
|
+
type: [String, Object, null],
|
|
39
|
+
required: false
|
|
40
|
+
},
|
|
41
|
+
active: {
|
|
42
|
+
type: Boolean,
|
|
43
|
+
required: false
|
|
44
|
+
},
|
|
45
|
+
isExternal: {
|
|
46
|
+
type: Boolean,
|
|
47
|
+
required: false
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
function onClickWrapper(e) {
|
|
27
51
|
if (props.disabled) {
|
|
28
|
-
e.stopPropagation()
|
|
29
|
-
e.preventDefault()
|
|
30
|
-
return
|
|
52
|
+
e.stopPropagation();
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
return;
|
|
31
55
|
}
|
|
32
|
-
|
|
33
56
|
if (props.onClick) {
|
|
34
57
|
for (const onClick of Array.isArray(props.onClick) ? props.onClick : [props.onClick]) {
|
|
35
|
-
onClick(e)
|
|
58
|
+
onClick(e);
|
|
36
59
|
}
|
|
37
60
|
}
|
|
38
|
-
|
|
39
61
|
if (props.href && props.navigate && !props.isExternal) {
|
|
40
|
-
props.navigate(e)
|
|
62
|
+
props.navigate(e);
|
|
41
63
|
}
|
|
42
64
|
}
|
|
43
65
|
</script>
|
|
@@ -45,18 +67,18 @@ function onClickWrapper(e: MouseEvent) {
|
|
|
45
67
|
<template>
|
|
46
68
|
<Primitive
|
|
47
69
|
v-bind="href ? {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
70
|
+
'as': 'a',
|
|
71
|
+
'href': disabled ? void 0 : href,
|
|
72
|
+
'aria-disabled': disabled ? 'true' : void 0,
|
|
73
|
+
'role': disabled ? 'link' : void 0,
|
|
74
|
+
'tabindex': disabled ? -1 : void 0
|
|
75
|
+
} : as === 'button' ? {
|
|
76
|
+
as,
|
|
77
|
+
type,
|
|
78
|
+
disabled
|
|
79
|
+
} : {
|
|
80
|
+
as
|
|
81
|
+
}"
|
|
60
82
|
:rel="rel"
|
|
61
83
|
:target="target"
|
|
62
84
|
@click="onClickWrapper"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { LinkProps } from '../types';
|
|
2
|
+
export interface LinkBaseProps {
|
|
3
|
+
as?: string;
|
|
4
|
+
type?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
onClick?: ((e: MouseEvent) => void | Promise<void>) | Array<((e: MouseEvent) => void | Promise<void>)>;
|
|
7
|
+
href?: string;
|
|
8
|
+
navigate?: (e: MouseEvent) => void;
|
|
9
|
+
target?: LinkProps['target'];
|
|
10
|
+
rel?: LinkProps['rel'];
|
|
11
|
+
active?: boolean;
|
|
12
|
+
isExternal?: boolean;
|
|
13
|
+
}
|
|
14
|
+
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkBaseProps>, {
|
|
15
|
+
as: string;
|
|
16
|
+
type: string;
|
|
17
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkBaseProps>, {
|
|
18
|
+
as: string;
|
|
19
|
+
type: string;
|
|
20
|
+
}>>> & Readonly<{}>, {
|
|
21
|
+
as: string;
|
|
22
|
+
type: string;
|
|
23
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
|
|
24
|
+
default?(_: {}): any;
|
|
25
|
+
}>;
|
|
26
|
+
export default _default;
|
|
27
|
+
type __VLS_WithDefaults<P, D> = {
|
|
28
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
29
|
+
default: D[K];
|
|
30
|
+
}> : P[K];
|
|
31
|
+
};
|
|
32
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
33
|
+
type __VLS_TypePropsToOption<T> = {
|
|
34
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
35
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
36
|
+
} : {
|
|
37
|
+
type: import('vue').PropType<T[K]>;
|
|
38
|
+
required: true;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
42
|
+
new (): {
|
|
43
|
+
$slots: S;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
type __VLS_PrettifyLocal<T> = {
|
|
47
|
+
[K in keyof T]: T[K];
|
|
48
|
+
} & {};
|
|
@@ -1,140 +1,118 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { tv } from '../utils/tv'
|
|
8
|
-
import type { ButtonProps, IconComponent } from '../types'
|
|
9
|
-
import type { EmitsToProps } from '../types/utils'
|
|
10
|
-
|
|
11
|
-
const appConfigModal = _appConfig as AppConfig & { b24ui: { modal: Partial<typeof theme> } }
|
|
12
|
-
|
|
13
|
-
const modal = tv({ extend: tv(theme), ...(appConfigModal.b24ui?.modal || {}) })
|
|
14
|
-
|
|
15
|
-
type ModalVariants = VariantProps<typeof modal>
|
|
16
|
-
|
|
17
|
-
export interface ModalProps extends DialogRootProps {
|
|
18
|
-
title?: string
|
|
19
|
-
description?: string
|
|
20
|
-
/**
|
|
21
|
-
* The content of the modal
|
|
22
|
-
*/
|
|
23
|
-
content?: Omit<DialogContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<DialogContentEmits>>
|
|
24
|
-
/**
|
|
25
|
-
* Render an overlay behind the modal.
|
|
26
|
-
* @defaultValue true
|
|
27
|
-
*/
|
|
28
|
-
overlay?: boolean
|
|
29
|
-
/**
|
|
30
|
-
* Render an overlay blur behind the modal.
|
|
31
|
-
* `auto` use `motion-safe`.
|
|
32
|
-
* @defaultValue 'auto'
|
|
33
|
-
*/
|
|
34
|
-
overlayBlur?: ModalVariants['overlayBlur']
|
|
35
|
-
/**
|
|
36
|
-
* Animate the modal when opening or closing.
|
|
37
|
-
* @defaultValue true
|
|
38
|
-
*/
|
|
39
|
-
transition?: boolean
|
|
40
|
-
/**
|
|
41
|
-
* When `true`, the modal will take up the full screen.
|
|
42
|
-
* @defaultValue false
|
|
43
|
-
*/
|
|
44
|
-
fullscreen?: boolean
|
|
45
|
-
/**
|
|
46
|
-
* Render the modal in a portal.
|
|
47
|
-
* @defaultValue true
|
|
48
|
-
*/
|
|
49
|
-
portal?: boolean
|
|
50
|
-
/**
|
|
51
|
-
* Display a close button to dismiss the modal.
|
|
52
|
-
* `{ size: 'xs', color: 'link' }`{lang="ts"}
|
|
53
|
-
* @defaultValue true
|
|
54
|
-
*/
|
|
55
|
-
close?: boolean | Partial<ButtonProps>
|
|
56
|
-
/**
|
|
57
|
-
* The icon displayed in the close button.
|
|
58
|
-
* @defaultValue icons.close
|
|
59
|
-
* @IconComponent
|
|
60
|
-
*/
|
|
61
|
-
closeIcon?: IconComponent
|
|
62
|
-
/**
|
|
63
|
-
* When `false`, the modal will not close when clicking outside or pressing escape.
|
|
64
|
-
* @defaultValue false
|
|
65
|
-
*/
|
|
66
|
-
dismissible?: boolean
|
|
67
|
-
/**
|
|
68
|
-
* @defaultValue true
|
|
69
|
-
*/
|
|
70
|
-
scrollbarThin?: boolean
|
|
71
|
-
class?: any
|
|
72
|
-
b24ui?: Partial<typeof modal.slots>
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface ModalEmits extends DialogRootEmits {
|
|
76
|
-
'after:leave': []
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface ModalSlots {
|
|
80
|
-
default(props: { open: boolean }): any
|
|
81
|
-
content(props?: {}): any
|
|
82
|
-
header(props?: {}): any
|
|
83
|
-
title(props?: {}): any
|
|
84
|
-
description(props?: {}): any
|
|
85
|
-
close(props: { b24ui: ReturnType<typeof modal> }): any
|
|
86
|
-
body(props?: {}): any
|
|
87
|
-
footer(props?: {}): any
|
|
88
|
-
}
|
|
1
|
+
<script>
|
|
2
|
+
import _appConfig from "#build/app.config";
|
|
3
|
+
import theme from "#build/b24ui/modal";
|
|
4
|
+
import { tv } from "../utils/tv";
|
|
5
|
+
const appConfigModal = _appConfig;
|
|
6
|
+
const modal = tv({ extend: tv(theme), ...appConfigModal.b24ui?.modal || {} });
|
|
89
7
|
</script>
|
|
90
8
|
|
|
91
|
-
<script setup
|
|
92
|
-
import { computed, toRef } from
|
|
93
|
-
import {
|
|
94
|
-
import { reactivePick } from
|
|
95
|
-
import { useLocale } from
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
9
|
+
<script setup>
|
|
10
|
+
import { computed, toRef } from "vue";
|
|
11
|
+
import { useForwardPropsEmits } from "reka-ui";
|
|
12
|
+
import { reactivePick } from "@vueuse/core";
|
|
13
|
+
import { useLocale } from "../composables/useLocale";
|
|
14
|
+
const props = defineProps({
|
|
15
|
+
title: {
|
|
16
|
+
type: String,
|
|
17
|
+
required: false
|
|
18
|
+
},
|
|
19
|
+
description: {
|
|
20
|
+
type: String,
|
|
21
|
+
required: false
|
|
22
|
+
},
|
|
23
|
+
content: {
|
|
24
|
+
type: Object,
|
|
25
|
+
required: false
|
|
26
|
+
},
|
|
27
|
+
overlay: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
required: false,
|
|
30
|
+
default: true
|
|
31
|
+
},
|
|
32
|
+
overlayBlur: {
|
|
33
|
+
type: null,
|
|
34
|
+
required: false,
|
|
35
|
+
default: "auto"
|
|
36
|
+
},
|
|
37
|
+
transition: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
required: false,
|
|
40
|
+
default: true
|
|
41
|
+
},
|
|
42
|
+
fullscreen: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
required: false
|
|
45
|
+
},
|
|
46
|
+
portal: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
required: false,
|
|
49
|
+
default: true
|
|
50
|
+
},
|
|
51
|
+
close: {
|
|
52
|
+
type: [Boolean, Object],
|
|
53
|
+
required: false,
|
|
54
|
+
default: true
|
|
55
|
+
},
|
|
56
|
+
closeIcon: {
|
|
57
|
+
type: [Function, Object],
|
|
58
|
+
required: false
|
|
59
|
+
},
|
|
60
|
+
dismissible: {
|
|
61
|
+
type: Boolean,
|
|
62
|
+
required: false,
|
|
63
|
+
default: true
|
|
64
|
+
},
|
|
65
|
+
scrollbarThin: {
|
|
66
|
+
type: Boolean,
|
|
67
|
+
required: false,
|
|
68
|
+
default: true
|
|
69
|
+
},
|
|
70
|
+
class: {
|
|
71
|
+
type: null,
|
|
72
|
+
required: false
|
|
73
|
+
},
|
|
74
|
+
b24ui: {
|
|
75
|
+
type: Object,
|
|
76
|
+
required: false
|
|
77
|
+
},
|
|
78
|
+
open: {
|
|
79
|
+
type: Boolean,
|
|
80
|
+
required: false
|
|
81
|
+
},
|
|
82
|
+
defaultOpen: {
|
|
83
|
+
type: Boolean,
|
|
84
|
+
required: false
|
|
85
|
+
},
|
|
86
|
+
modal: {
|
|
87
|
+
type: Boolean,
|
|
88
|
+
required: false,
|
|
89
|
+
default: true
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
const emits = defineEmits(["after:leave", "update:open"]);
|
|
93
|
+
const slots = defineSlots();
|
|
94
|
+
const { t } = useLocale();
|
|
95
|
+
const rootProps = useForwardPropsEmits(reactivePick(props, "open", "defaultOpen", "modal"), emits);
|
|
96
|
+
const contentProps = toRef(() => props.content);
|
|
116
97
|
const contentEvents = computed(() => {
|
|
117
98
|
const events = {
|
|
118
|
-
closeAutoFocus: (e
|
|
119
|
-
}
|
|
120
|
-
|
|
99
|
+
closeAutoFocus: (e) => e.preventDefault()
|
|
100
|
+
};
|
|
121
101
|
if (!props.dismissible) {
|
|
122
102
|
return {
|
|
123
|
-
pointerDownOutside: (e
|
|
124
|
-
interactOutside: (e
|
|
125
|
-
escapeKeyDown: (e
|
|
103
|
+
pointerDownOutside: (e) => e.preventDefault(),
|
|
104
|
+
interactOutside: (e) => e.preventDefault(),
|
|
105
|
+
escapeKeyDown: (e) => e.preventDefault(),
|
|
126
106
|
...events
|
|
127
|
-
}
|
|
107
|
+
};
|
|
128
108
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
})
|
|
132
|
-
|
|
109
|
+
return events;
|
|
110
|
+
});
|
|
133
111
|
const b24ui = computed(() => modal({
|
|
134
112
|
transition: props.transition,
|
|
135
113
|
fullscreen: props.fullscreen,
|
|
136
114
|
overlayBlur: props.overlayBlur
|
|
137
|
-
}))
|
|
115
|
+
}));
|
|
138
116
|
</script>
|
|
139
117
|
|
|
140
118
|
<template>
|
|
@@ -147,7 +125,7 @@ const b24ui = computed(() => modal({
|
|
|
147
125
|
<DialogOverlay v-if="overlay" :class="b24ui.overlay({ class: props.b24ui?.overlay })" />
|
|
148
126
|
|
|
149
127
|
<DialogContent :class="b24ui.content({ class: [!slots.default && props.class, props.b24ui?.content] })" v-bind="contentProps" @after-leave="emits('after:leave')" v-on="contentEvents">
|
|
150
|
-
<VisuallyHidden v-if="!!slots.content && (
|
|
128
|
+
<VisuallyHidden v-if="!!slots.content && (title || !!slots.title || (description || !!slots.description))">
|
|
151
129
|
<DialogTitle v-if="title || !!slots.title">
|
|
152
130
|
<slot name="title">
|
|
153
131
|
{{ title }}
|
|
@@ -186,7 +164,7 @@ const b24ui = computed(() => modal({
|
|
|
186
164
|
size="xs"
|
|
187
165
|
color="link"
|
|
188
166
|
:aria-label="t('modal.close')"
|
|
189
|
-
v-bind="
|
|
167
|
+
v-bind="typeof close === 'object' ? close : {}"
|
|
190
168
|
:class="b24ui.close({ class: props.b24ui?.close })"
|
|
191
169
|
/>
|
|
192
170
|
</slot>
|