windly-ui 1.0.1 → 1.0.3
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/dist/module.d.mts +3 -0
- package/dist/module.json +8 -0
- package/dist/module.mjs +26 -0
- package/dist/runtime/components/Accordion.d.vue.ts +39 -0
- package/{ui-library → dist/runtime}/components/Accordion.vue +44 -70
- package/dist/runtime/components/Accordion.vue.d.ts +39 -0
- package/dist/runtime/components/Avatar.d.vue.ts +141 -0
- package/dist/runtime/components/Avatar.vue +72 -0
- package/dist/runtime/components/Avatar.vue.d.ts +141 -0
- package/dist/runtime/components/Badge.d.vue.ts +133 -0
- package/dist/runtime/components/Badge.vue +99 -0
- package/dist/runtime/components/Badge.vue.d.ts +133 -0
- package/dist/runtime/components/Breadcrumbs.d.vue.ts +83 -0
- package/{ui-library → dist/runtime}/components/Breadcrumbs.vue +37 -59
- package/dist/runtime/components/Breadcrumbs.vue.d.ts +83 -0
- package/dist/runtime/components/Button.d.vue.ts +199 -0
- package/dist/runtime/components/Button.vue +125 -0
- package/dist/runtime/components/Button.vue.d.ts +199 -0
- package/dist/runtime/components/Card.d.vue.ts +83 -0
- package/{ui-library → dist/runtime}/components/Card.vue +26 -39
- package/dist/runtime/components/Card.vue.d.ts +83 -0
- package/dist/runtime/components/Checkbox.d.vue.ts +190 -0
- package/{ui-library → dist/runtime}/components/Checkbox.vue +45 -68
- package/dist/runtime/components/Checkbox.vue.d.ts +190 -0
- package/dist/runtime/components/CodeBlock.d.vue.ts +16 -0
- package/dist/runtime/components/CodeBlock.vue +75 -0
- package/dist/runtime/components/CodeBlock.vue.d.ts +16 -0
- package/dist/runtime/components/ColorPicker.d.vue.ts +91 -0
- package/dist/runtime/components/ColorPicker.vue +244 -0
- package/dist/runtime/components/ColorPicker.vue.d.ts +91 -0
- package/dist/runtime/components/Date.d.vue.ts +137 -0
- package/dist/runtime/components/Date.vue +201 -0
- package/dist/runtime/components/Date.vue.d.ts +137 -0
- package/dist/runtime/components/Dialog.d.vue.ts +103 -0
- package/{ui-library → dist/runtime}/components/Dialog.vue +30 -65
- package/dist/runtime/components/Dialog.vue.d.ts +103 -0
- package/dist/runtime/components/Divider.d.vue.ts +51 -0
- package/dist/runtime/components/Divider.vue +52 -0
- package/dist/runtime/components/Divider.vue.d.ts +51 -0
- package/dist/runtime/components/Drawer.d.vue.ts +30 -0
- package/dist/runtime/components/Drawer.vue +43 -0
- package/dist/runtime/components/Drawer.vue.d.ts +30 -0
- package/dist/runtime/components/Dropdown.d.vue.ts +34 -0
- package/dist/runtime/components/Dropdown.vue +127 -0
- package/dist/runtime/components/Dropdown.vue.d.ts +34 -0
- package/dist/runtime/components/FileUploader.d.vue.ts +58 -0
- package/dist/runtime/components/FileUploader.vue +202 -0
- package/dist/runtime/components/FileUploader.vue.d.ts +58 -0
- package/dist/runtime/components/Icon.d.vue.ts +41 -0
- package/dist/runtime/components/Icon.vue +66 -0
- package/dist/runtime/components/Icon.vue.d.ts +41 -0
- package/dist/runtime/components/Image.d.vue.ts +77 -0
- package/dist/runtime/components/Image.vue +61 -0
- package/dist/runtime/components/Image.vue.d.ts +77 -0
- package/dist/runtime/components/Input.d.vue.ts +66 -0
- package/dist/runtime/components/Input.vue +233 -0
- package/dist/runtime/components/Input.vue.d.ts +66 -0
- package/dist/runtime/components/Radio.d.vue.ts +41 -0
- package/dist/runtime/components/Radio.vue +222 -0
- package/dist/runtime/components/Radio.vue.d.ts +41 -0
- package/dist/runtime/components/ScrollArea.d.vue.ts +79 -0
- package/dist/runtime/components/ScrollArea.vue +36 -0
- package/dist/runtime/components/ScrollArea.vue.d.ts +79 -0
- package/dist/runtime/components/Select.d.vue.ts +43 -0
- package/dist/runtime/components/Select.vue +200 -0
- package/dist/runtime/components/Select.vue.d.ts +43 -0
- package/dist/runtime/components/Stepper.d.vue.ts +46 -0
- package/dist/runtime/components/Stepper.vue +218 -0
- package/dist/runtime/components/Stepper.vue.d.ts +46 -0
- package/dist/runtime/components/TabPanel.d.vue.ts +17 -0
- package/dist/runtime/components/TabPanel.vue +21 -0
- package/dist/runtime/components/TabPanel.vue.d.ts +17 -0
- package/dist/runtime/components/Table.d.vue.ts +40 -0
- package/dist/runtime/components/Table.vue +92 -0
- package/dist/runtime/components/Table.vue.d.ts +40 -0
- package/dist/runtime/components/Tabs.d.vue.ts +20 -0
- package/dist/runtime/components/Tabs.vue +62 -0
- package/dist/runtime/components/Tabs.vue.d.ts +20 -0
- package/dist/runtime/components/Textarea.d.vue.ts +208 -0
- package/dist/runtime/components/Textarea.vue +185 -0
- package/dist/runtime/components/Textarea.vue.d.ts +208 -0
- package/dist/runtime/components/Toggle.d.vue.ts +36 -0
- package/dist/runtime/components/Toggle.vue +173 -0
- package/dist/runtime/components/Toggle.vue.d.ts +36 -0
- package/dist/runtime/components/Tooltip.d.vue.ts +63 -0
- package/dist/runtime/components/Tooltip.vue +144 -0
- package/dist/runtime/components/Tooltip.vue.d.ts +63 -0
- package/dist/runtime/components/uiProps.d.ts +38 -0
- package/{ui-library/components/uiProps.ts → dist/runtime/components/uiProps.js} +2 -2
- package/dist/runtime/components/useUiClasses.d.ts +43 -0
- package/{ui-library/components/useUiClasses.ts → dist/runtime/components/useUiClasses.js} +25 -60
- package/dist/runtime/composables/plugin.d.ts +2 -0
- package/dist/runtime/composables/plugin.js +3 -0
- package/dist/runtime/tailwind-color.d.ts +2 -0
- package/dist/runtime/tailwind-color.js +5859 -0
- package/dist/types.d.mts +7 -0
- package/package.json +14 -16
- package/README.md +0 -208
- package/ui-library/components/Avatar.vue +0 -121
- package/ui-library/components/Badge.vue +0 -116
- package/ui-library/components/Button.vue +0 -154
- package/ui-library/components/CodeBlock.vue +0 -99
- package/ui-library/components/ColorPicker.vue +0 -302
- package/ui-library/components/Date.vue +0 -240
- package/ui-library/components/Divider.vue +0 -78
- package/ui-library/components/Drawer.vue +0 -67
- package/ui-library/components/Dropdown.vue +0 -248
- package/ui-library/components/FileUploader.vue +0 -330
- package/ui-library/components/Icon.vue +0 -82
- package/ui-library/components/Image.vue +0 -78
- package/ui-library/components/Input.vue +0 -531
- package/ui-library/components/Radio.vue +0 -356
- package/ui-library/components/ScrollArea.vue +0 -43
- package/ui-library/components/Select.vue +0 -309
- package/ui-library/components/Stepper.vue +0 -361
- package/ui-library/components/TabPanel.vue +0 -25
- package/ui-library/components/Table.vue +0 -152
- package/ui-library/components/Tabs.vue +0 -71
- package/ui-library/components/Textarea.vue +0 -233
- package/ui-library/components/Toggle.vue +0 -319
- package/ui-library/components/Tooltip.vue +0 -200
- package/ui-library/components/plugin.ts +0 -8
- package/ui-library/module.ts +0 -20
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
6
|
+
contentClass: {
|
|
7
|
+
readonly type: StringConstructor;
|
|
8
|
+
readonly default: "";
|
|
9
|
+
};
|
|
10
|
+
contentStyle: {
|
|
11
|
+
readonly type: StringConstructor;
|
|
12
|
+
readonly default: "";
|
|
13
|
+
};
|
|
14
|
+
textColor: {
|
|
15
|
+
readonly type: StringConstructor;
|
|
16
|
+
readonly default: "";
|
|
17
|
+
};
|
|
18
|
+
disable: {
|
|
19
|
+
readonly type: BooleanConstructor;
|
|
20
|
+
readonly default: false;
|
|
21
|
+
};
|
|
22
|
+
loading: {
|
|
23
|
+
readonly type: BooleanConstructor;
|
|
24
|
+
readonly default: false;
|
|
25
|
+
};
|
|
26
|
+
color: {
|
|
27
|
+
readonly type: StringConstructor;
|
|
28
|
+
readonly default: "blue-900";
|
|
29
|
+
};
|
|
30
|
+
rounded: {
|
|
31
|
+
readonly type: StringConstructor;
|
|
32
|
+
readonly default: "md";
|
|
33
|
+
};
|
|
34
|
+
size: {
|
|
35
|
+
readonly type: StringConstructor;
|
|
36
|
+
readonly default: "md";
|
|
37
|
+
};
|
|
38
|
+
iconSize: {
|
|
39
|
+
readonly type: StringConstructor;
|
|
40
|
+
readonly default: "lg";
|
|
41
|
+
};
|
|
42
|
+
content: {
|
|
43
|
+
type: StringConstructor;
|
|
44
|
+
default: string;
|
|
45
|
+
};
|
|
46
|
+
icon: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
50
|
+
position: {
|
|
51
|
+
type: StringConstructor;
|
|
52
|
+
default: string;
|
|
53
|
+
};
|
|
54
|
+
show: {
|
|
55
|
+
type: BooleanConstructor;
|
|
56
|
+
default: boolean;
|
|
57
|
+
};
|
|
58
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
59
|
+
contentClass: {
|
|
60
|
+
readonly type: StringConstructor;
|
|
61
|
+
readonly default: "";
|
|
62
|
+
};
|
|
63
|
+
contentStyle: {
|
|
64
|
+
readonly type: StringConstructor;
|
|
65
|
+
readonly default: "";
|
|
66
|
+
};
|
|
67
|
+
textColor: {
|
|
68
|
+
readonly type: StringConstructor;
|
|
69
|
+
readonly default: "";
|
|
70
|
+
};
|
|
71
|
+
disable: {
|
|
72
|
+
readonly type: BooleanConstructor;
|
|
73
|
+
readonly default: false;
|
|
74
|
+
};
|
|
75
|
+
loading: {
|
|
76
|
+
readonly type: BooleanConstructor;
|
|
77
|
+
readonly default: false;
|
|
78
|
+
};
|
|
79
|
+
color: {
|
|
80
|
+
readonly type: StringConstructor;
|
|
81
|
+
readonly default: "blue-900";
|
|
82
|
+
};
|
|
83
|
+
rounded: {
|
|
84
|
+
readonly type: StringConstructor;
|
|
85
|
+
readonly default: "md";
|
|
86
|
+
};
|
|
87
|
+
size: {
|
|
88
|
+
readonly type: StringConstructor;
|
|
89
|
+
readonly default: "md";
|
|
90
|
+
};
|
|
91
|
+
iconSize: {
|
|
92
|
+
readonly type: StringConstructor;
|
|
93
|
+
readonly default: "lg";
|
|
94
|
+
};
|
|
95
|
+
content: {
|
|
96
|
+
type: StringConstructor;
|
|
97
|
+
default: string;
|
|
98
|
+
};
|
|
99
|
+
icon: {
|
|
100
|
+
type: StringConstructor;
|
|
101
|
+
default: string;
|
|
102
|
+
};
|
|
103
|
+
position: {
|
|
104
|
+
type: StringConstructor;
|
|
105
|
+
default: string;
|
|
106
|
+
};
|
|
107
|
+
show: {
|
|
108
|
+
type: BooleanConstructor;
|
|
109
|
+
default: boolean;
|
|
110
|
+
};
|
|
111
|
+
}>> & Readonly<{}>, {
|
|
112
|
+
contentClass: string;
|
|
113
|
+
contentStyle: string;
|
|
114
|
+
textColor: string;
|
|
115
|
+
disable: boolean;
|
|
116
|
+
loading: boolean;
|
|
117
|
+
color: string;
|
|
118
|
+
rounded: string;
|
|
119
|
+
size: string;
|
|
120
|
+
iconSize: string;
|
|
121
|
+
content: string;
|
|
122
|
+
icon: string;
|
|
123
|
+
position: string;
|
|
124
|
+
show: boolean;
|
|
125
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
126
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
127
|
+
declare const _default: typeof __VLS_export;
|
|
128
|
+
export default _default;
|
|
129
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
130
|
+
new (): {
|
|
131
|
+
$slots: S;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
defineOptions({
|
|
3
|
+
inheritAttrs: false
|
|
4
|
+
});
|
|
5
|
+
import { useSlots, computed } from "vue";
|
|
6
|
+
import { useUiClasses } from "./useUiClasses";
|
|
7
|
+
import { uiProps } from "./uiProps";
|
|
8
|
+
const slots = useSlots();
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
content: { type: String, default: "" },
|
|
11
|
+
icon: { type: String, default: "" },
|
|
12
|
+
position: { type: String, default: "superscript" },
|
|
13
|
+
show: { type: Boolean, default: true },
|
|
14
|
+
...uiProps
|
|
15
|
+
});
|
|
16
|
+
const {
|
|
17
|
+
// props
|
|
18
|
+
contentClass,
|
|
19
|
+
contentStyle,
|
|
20
|
+
color,
|
|
21
|
+
size,
|
|
22
|
+
rounded,
|
|
23
|
+
// computed
|
|
24
|
+
colorClass,
|
|
25
|
+
computedContentClass,
|
|
26
|
+
isColorDark,
|
|
27
|
+
isHex,
|
|
28
|
+
isTailwindColor
|
|
29
|
+
} = useUiClasses(props);
|
|
30
|
+
const hasSlots = computed(() => {
|
|
31
|
+
return !!slots.default?.();
|
|
32
|
+
});
|
|
33
|
+
const sizeClass = computed(() => {
|
|
34
|
+
const map = {
|
|
35
|
+
xs: "w-auto min-w-2 h-2.5 text-[7px]",
|
|
36
|
+
sm: "w-auto min-w-3 h-3 text-[10px]",
|
|
37
|
+
md: "w-auto min-w-4 h-4 text-xs",
|
|
38
|
+
lg: "w-auto min-w-6 h-6 text-sm"
|
|
39
|
+
};
|
|
40
|
+
return map[size.value];
|
|
41
|
+
});
|
|
42
|
+
const roundedClass = computed(() => {
|
|
43
|
+
const map = {
|
|
44
|
+
xs: "rounded-xs",
|
|
45
|
+
sm: "rounded-sm",
|
|
46
|
+
md: "rounded",
|
|
47
|
+
lg: "rounded-lg",
|
|
48
|
+
full: "rounded-full"
|
|
49
|
+
};
|
|
50
|
+
return map[rounded.value];
|
|
51
|
+
});
|
|
52
|
+
const positionClasses = computed(
|
|
53
|
+
() => props.position === "superscript" && hasSlots.value ? "absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2" : ""
|
|
54
|
+
);
|
|
55
|
+
const badgeClass = computed(() => {
|
|
56
|
+
return [
|
|
57
|
+
"inline-flex items-center justify-center font-bold",
|
|
58
|
+
computedContentClass.value,
|
|
59
|
+
sizeClass.value,
|
|
60
|
+
roundedClass.value,
|
|
61
|
+
positionClasses.value,
|
|
62
|
+
isColorDark(color.value) ? "text-white" : "text-gray-700",
|
|
63
|
+
isTailwindColor(color.value) ? `bg-${color.value}` : ""
|
|
64
|
+
].filter((c) => !["", "!"].includes(c));
|
|
65
|
+
});
|
|
66
|
+
const badgeStyle = computed(() => {
|
|
67
|
+
const style = contentStyle.value;
|
|
68
|
+
return {
|
|
69
|
+
backgroundColor: isHex(color.value) ? color.value : void 0,
|
|
70
|
+
...typeof style === "object" && style ? style : {}
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
</script>
|
|
74
|
+
|
|
75
|
+
<template>
|
|
76
|
+
<div class="flex">
|
|
77
|
+
<div v-if="hasSlots" class="relative">
|
|
78
|
+
<slot />
|
|
79
|
+
<span v-if="show" :class="[
|
|
80
|
+
badgeClass
|
|
81
|
+
]" :style="[badgeStyle]">
|
|
82
|
+
<span v-if="icon" class="p-1 material-icons">{{ icon }}</span>
|
|
83
|
+
<span v-if="content" class="p-1">{{ content }}</span>
|
|
84
|
+
</span>
|
|
85
|
+
</div>
|
|
86
|
+
<div v-else>
|
|
87
|
+
<span v-if="show" :class="[
|
|
88
|
+
badgeClass
|
|
89
|
+
]" :style="[badgeStyle]">
|
|
90
|
+
<span v-if="icon" class="p-1 material-icons">{{ icon }}</span>
|
|
91
|
+
<span v-if="content" class="p-1">{{ content }}</span>
|
|
92
|
+
</span>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</template>
|
|
96
|
+
|
|
97
|
+
<style scoped>
|
|
98
|
+
.material-icons{font-size:1em}
|
|
99
|
+
</style>
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
declare var __VLS_1: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_1) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
6
|
+
contentClass: {
|
|
7
|
+
readonly type: StringConstructor;
|
|
8
|
+
readonly default: "";
|
|
9
|
+
};
|
|
10
|
+
contentStyle: {
|
|
11
|
+
readonly type: StringConstructor;
|
|
12
|
+
readonly default: "";
|
|
13
|
+
};
|
|
14
|
+
textColor: {
|
|
15
|
+
readonly type: StringConstructor;
|
|
16
|
+
readonly default: "";
|
|
17
|
+
};
|
|
18
|
+
disable: {
|
|
19
|
+
readonly type: BooleanConstructor;
|
|
20
|
+
readonly default: false;
|
|
21
|
+
};
|
|
22
|
+
loading: {
|
|
23
|
+
readonly type: BooleanConstructor;
|
|
24
|
+
readonly default: false;
|
|
25
|
+
};
|
|
26
|
+
color: {
|
|
27
|
+
readonly type: StringConstructor;
|
|
28
|
+
readonly default: "blue-900";
|
|
29
|
+
};
|
|
30
|
+
rounded: {
|
|
31
|
+
readonly type: StringConstructor;
|
|
32
|
+
readonly default: "md";
|
|
33
|
+
};
|
|
34
|
+
size: {
|
|
35
|
+
readonly type: StringConstructor;
|
|
36
|
+
readonly default: "md";
|
|
37
|
+
};
|
|
38
|
+
iconSize: {
|
|
39
|
+
readonly type: StringConstructor;
|
|
40
|
+
readonly default: "lg";
|
|
41
|
+
};
|
|
42
|
+
content: {
|
|
43
|
+
type: StringConstructor;
|
|
44
|
+
default: string;
|
|
45
|
+
};
|
|
46
|
+
icon: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
50
|
+
position: {
|
|
51
|
+
type: StringConstructor;
|
|
52
|
+
default: string;
|
|
53
|
+
};
|
|
54
|
+
show: {
|
|
55
|
+
type: BooleanConstructor;
|
|
56
|
+
default: boolean;
|
|
57
|
+
};
|
|
58
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
59
|
+
contentClass: {
|
|
60
|
+
readonly type: StringConstructor;
|
|
61
|
+
readonly default: "";
|
|
62
|
+
};
|
|
63
|
+
contentStyle: {
|
|
64
|
+
readonly type: StringConstructor;
|
|
65
|
+
readonly default: "";
|
|
66
|
+
};
|
|
67
|
+
textColor: {
|
|
68
|
+
readonly type: StringConstructor;
|
|
69
|
+
readonly default: "";
|
|
70
|
+
};
|
|
71
|
+
disable: {
|
|
72
|
+
readonly type: BooleanConstructor;
|
|
73
|
+
readonly default: false;
|
|
74
|
+
};
|
|
75
|
+
loading: {
|
|
76
|
+
readonly type: BooleanConstructor;
|
|
77
|
+
readonly default: false;
|
|
78
|
+
};
|
|
79
|
+
color: {
|
|
80
|
+
readonly type: StringConstructor;
|
|
81
|
+
readonly default: "blue-900";
|
|
82
|
+
};
|
|
83
|
+
rounded: {
|
|
84
|
+
readonly type: StringConstructor;
|
|
85
|
+
readonly default: "md";
|
|
86
|
+
};
|
|
87
|
+
size: {
|
|
88
|
+
readonly type: StringConstructor;
|
|
89
|
+
readonly default: "md";
|
|
90
|
+
};
|
|
91
|
+
iconSize: {
|
|
92
|
+
readonly type: StringConstructor;
|
|
93
|
+
readonly default: "lg";
|
|
94
|
+
};
|
|
95
|
+
content: {
|
|
96
|
+
type: StringConstructor;
|
|
97
|
+
default: string;
|
|
98
|
+
};
|
|
99
|
+
icon: {
|
|
100
|
+
type: StringConstructor;
|
|
101
|
+
default: string;
|
|
102
|
+
};
|
|
103
|
+
position: {
|
|
104
|
+
type: StringConstructor;
|
|
105
|
+
default: string;
|
|
106
|
+
};
|
|
107
|
+
show: {
|
|
108
|
+
type: BooleanConstructor;
|
|
109
|
+
default: boolean;
|
|
110
|
+
};
|
|
111
|
+
}>> & Readonly<{}>, {
|
|
112
|
+
contentClass: string;
|
|
113
|
+
contentStyle: string;
|
|
114
|
+
textColor: string;
|
|
115
|
+
disable: boolean;
|
|
116
|
+
loading: boolean;
|
|
117
|
+
color: string;
|
|
118
|
+
rounded: string;
|
|
119
|
+
size: string;
|
|
120
|
+
iconSize: string;
|
|
121
|
+
content: string;
|
|
122
|
+
icon: string;
|
|
123
|
+
position: string;
|
|
124
|
+
show: boolean;
|
|
125
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
126
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
127
|
+
declare const _default: typeof __VLS_export;
|
|
128
|
+
export default _default;
|
|
129
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
130
|
+
new (): {
|
|
131
|
+
$slots: S;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
type BreadcrumbItem = {
|
|
2
|
+
label: string;
|
|
3
|
+
icon?: string;
|
|
4
|
+
caption?: string;
|
|
5
|
+
to?: string | object;
|
|
6
|
+
href?: string;
|
|
7
|
+
target?: string;
|
|
8
|
+
tag?: string;
|
|
9
|
+
exact?: boolean;
|
|
10
|
+
replace?: boolean;
|
|
11
|
+
activeClass?: string;
|
|
12
|
+
exactActiveClass?: string;
|
|
13
|
+
disable?: boolean;
|
|
14
|
+
};
|
|
15
|
+
declare var __VLS_7: {};
|
|
16
|
+
type __VLS_Slots = {} & {
|
|
17
|
+
separator?: (props: typeof __VLS_7) => any;
|
|
18
|
+
};
|
|
19
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
20
|
+
items: {
|
|
21
|
+
type: () => BreadcrumbItem[];
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
separator: {
|
|
25
|
+
type: StringConstructor;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
28
|
+
gutter: {
|
|
29
|
+
type: StringConstructor;
|
|
30
|
+
default: string;
|
|
31
|
+
};
|
|
32
|
+
align: {
|
|
33
|
+
type: StringConstructor;
|
|
34
|
+
default: string;
|
|
35
|
+
};
|
|
36
|
+
activeColor: {
|
|
37
|
+
type: StringConstructor;
|
|
38
|
+
default: string;
|
|
39
|
+
};
|
|
40
|
+
separatorColor: {
|
|
41
|
+
type: StringConstructor;
|
|
42
|
+
default: string;
|
|
43
|
+
};
|
|
44
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
45
|
+
items: {
|
|
46
|
+
type: () => BreadcrumbItem[];
|
|
47
|
+
required: true;
|
|
48
|
+
};
|
|
49
|
+
separator: {
|
|
50
|
+
type: StringConstructor;
|
|
51
|
+
default: string;
|
|
52
|
+
};
|
|
53
|
+
gutter: {
|
|
54
|
+
type: StringConstructor;
|
|
55
|
+
default: string;
|
|
56
|
+
};
|
|
57
|
+
align: {
|
|
58
|
+
type: StringConstructor;
|
|
59
|
+
default: string;
|
|
60
|
+
};
|
|
61
|
+
activeColor: {
|
|
62
|
+
type: StringConstructor;
|
|
63
|
+
default: string;
|
|
64
|
+
};
|
|
65
|
+
separatorColor: {
|
|
66
|
+
type: StringConstructor;
|
|
67
|
+
default: string;
|
|
68
|
+
};
|
|
69
|
+
}>> & Readonly<{}>, {
|
|
70
|
+
separator: string;
|
|
71
|
+
gutter: string;
|
|
72
|
+
align: string;
|
|
73
|
+
activeColor: string;
|
|
74
|
+
separatorColor: string;
|
|
75
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
76
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
77
|
+
declare const _default: typeof __VLS_export;
|
|
78
|
+
export default _default;
|
|
79
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
80
|
+
new (): {
|
|
81
|
+
$slots: S;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
@@ -1,93 +1,71 @@
|
|
|
1
|
-
<script setup
|
|
2
|
-
import { computed } from
|
|
3
|
-
import { RouterLink, useRoute } from
|
|
4
|
-
|
|
5
|
-
type BreadcrumbItem = {
|
|
6
|
-
label: string
|
|
7
|
-
icon?: string
|
|
8
|
-
caption?: string
|
|
9
|
-
to?: string | object
|
|
10
|
-
href?: string
|
|
11
|
-
target?: string
|
|
12
|
-
tag?: string
|
|
13
|
-
exact?: boolean
|
|
14
|
-
replace?: boolean
|
|
15
|
-
activeClass?: string
|
|
16
|
-
exactActiveClass?: string
|
|
17
|
-
disable?: boolean
|
|
18
|
-
}
|
|
19
|
-
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { RouterLink, useRoute } from "vue-router";
|
|
20
4
|
const props = defineProps({
|
|
21
5
|
items: {
|
|
22
|
-
type: Array
|
|
23
|
-
required: true
|
|
6
|
+
type: Array,
|
|
7
|
+
required: true
|
|
24
8
|
},
|
|
25
9
|
separator: {
|
|
26
10
|
type: String,
|
|
27
|
-
default:
|
|
11
|
+
default: "/"
|
|
28
12
|
},
|
|
29
13
|
gutter: {
|
|
30
14
|
type: String,
|
|
31
|
-
default:
|
|
15
|
+
default: "0.5rem"
|
|
32
16
|
},
|
|
33
17
|
align: {
|
|
34
18
|
type: String,
|
|
35
|
-
default:
|
|
19
|
+
default: "start"
|
|
20
|
+
// start | center | end
|
|
36
21
|
},
|
|
37
22
|
activeColor: {
|
|
38
23
|
type: String,
|
|
39
|
-
default:
|
|
24
|
+
default: "primary"
|
|
40
25
|
},
|
|
41
26
|
separatorColor: {
|
|
42
27
|
type: String,
|
|
43
|
-
default:
|
|
44
|
-
}
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
const route = useRoute()
|
|
48
|
-
|
|
28
|
+
default: "grey-6"
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
const route = useRoute();
|
|
49
32
|
const alignmentClass = computed(() => {
|
|
50
33
|
switch (props.align) {
|
|
51
|
-
case
|
|
52
|
-
return
|
|
53
|
-
case
|
|
54
|
-
return
|
|
34
|
+
case "center":
|
|
35
|
+
return "justify-center";
|
|
36
|
+
case "end":
|
|
37
|
+
return "justify-end";
|
|
55
38
|
default:
|
|
56
|
-
return
|
|
39
|
+
return "justify-start";
|
|
57
40
|
}
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (item.
|
|
62
|
-
if (item.
|
|
63
|
-
|
|
64
|
-
return item.tag || 'span'
|
|
41
|
+
});
|
|
42
|
+
function resolveTag(item) {
|
|
43
|
+
if (item.disable) return item.tag || "span";
|
|
44
|
+
if (item.href) return "a";
|
|
45
|
+
if (item.to) return RouterLink;
|
|
46
|
+
return item.tag || "span";
|
|
65
47
|
}
|
|
66
|
-
|
|
67
|
-
function resolveProps(item: BreadcrumbItem) {
|
|
48
|
+
function resolveProps(item) {
|
|
68
49
|
if (item.href) {
|
|
69
50
|
return {
|
|
70
51
|
href: item.href,
|
|
71
|
-
target: item.target
|
|
72
|
-
}
|
|
52
|
+
target: item.target
|
|
53
|
+
};
|
|
73
54
|
}
|
|
74
|
-
|
|
75
55
|
if (item.to) {
|
|
76
56
|
return {
|
|
77
57
|
to: item.to,
|
|
78
58
|
exact: item.exact,
|
|
79
59
|
replace: item.replace,
|
|
80
60
|
activeClass: item.activeClass,
|
|
81
|
-
exactActiveClass: item.exactActiveClass
|
|
82
|
-
}
|
|
61
|
+
exactActiveClass: item.exactActiveClass
|
|
62
|
+
};
|
|
83
63
|
}
|
|
84
|
-
|
|
85
|
-
return {}
|
|
64
|
+
return {};
|
|
86
65
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return route.path === item.to
|
|
66
|
+
function isActive(item) {
|
|
67
|
+
if (!item.to) return false;
|
|
68
|
+
return route.path === item.to;
|
|
91
69
|
}
|
|
92
70
|
</script>
|
|
93
71
|
|
|
@@ -104,9 +82,9 @@ function isActive(item: BreadcrumbItem) {
|
|
|
104
82
|
v-bind="resolveProps(item)"
|
|
105
83
|
class="flex items-center gap-1"
|
|
106
84
|
:class="[
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
85
|
+
item.disable && 'opacity-50 pointer-events-none',
|
|
86
|
+
isActive(item) && `text-${activeColor}`
|
|
87
|
+
]"
|
|
110
88
|
>
|
|
111
89
|
<span v-if="item.icon && item.icon !== 'none'" class="material-icons">
|
|
112
90
|
{{ item.icon }}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
type BreadcrumbItem = {
|
|
2
|
+
label: string;
|
|
3
|
+
icon?: string;
|
|
4
|
+
caption?: string;
|
|
5
|
+
to?: string | object;
|
|
6
|
+
href?: string;
|
|
7
|
+
target?: string;
|
|
8
|
+
tag?: string;
|
|
9
|
+
exact?: boolean;
|
|
10
|
+
replace?: boolean;
|
|
11
|
+
activeClass?: string;
|
|
12
|
+
exactActiveClass?: string;
|
|
13
|
+
disable?: boolean;
|
|
14
|
+
};
|
|
15
|
+
declare var __VLS_7: {};
|
|
16
|
+
type __VLS_Slots = {} & {
|
|
17
|
+
separator?: (props: typeof __VLS_7) => any;
|
|
18
|
+
};
|
|
19
|
+
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
20
|
+
items: {
|
|
21
|
+
type: () => BreadcrumbItem[];
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
separator: {
|
|
25
|
+
type: StringConstructor;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
28
|
+
gutter: {
|
|
29
|
+
type: StringConstructor;
|
|
30
|
+
default: string;
|
|
31
|
+
};
|
|
32
|
+
align: {
|
|
33
|
+
type: StringConstructor;
|
|
34
|
+
default: string;
|
|
35
|
+
};
|
|
36
|
+
activeColor: {
|
|
37
|
+
type: StringConstructor;
|
|
38
|
+
default: string;
|
|
39
|
+
};
|
|
40
|
+
separatorColor: {
|
|
41
|
+
type: StringConstructor;
|
|
42
|
+
default: string;
|
|
43
|
+
};
|
|
44
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
45
|
+
items: {
|
|
46
|
+
type: () => BreadcrumbItem[];
|
|
47
|
+
required: true;
|
|
48
|
+
};
|
|
49
|
+
separator: {
|
|
50
|
+
type: StringConstructor;
|
|
51
|
+
default: string;
|
|
52
|
+
};
|
|
53
|
+
gutter: {
|
|
54
|
+
type: StringConstructor;
|
|
55
|
+
default: string;
|
|
56
|
+
};
|
|
57
|
+
align: {
|
|
58
|
+
type: StringConstructor;
|
|
59
|
+
default: string;
|
|
60
|
+
};
|
|
61
|
+
activeColor: {
|
|
62
|
+
type: StringConstructor;
|
|
63
|
+
default: string;
|
|
64
|
+
};
|
|
65
|
+
separatorColor: {
|
|
66
|
+
type: StringConstructor;
|
|
67
|
+
default: string;
|
|
68
|
+
};
|
|
69
|
+
}>> & Readonly<{}>, {
|
|
70
|
+
separator: string;
|
|
71
|
+
gutter: string;
|
|
72
|
+
align: string;
|
|
73
|
+
activeColor: string;
|
|
74
|
+
separatorColor: string;
|
|
75
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
76
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
77
|
+
declare const _default: typeof __VLS_export;
|
|
78
|
+
export default _default;
|
|
79
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
80
|
+
new (): {
|
|
81
|
+
$slots: S;
|
|
82
|
+
};
|
|
83
|
+
};
|