straw-ui-vue 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/dist/_virtual/_plugin-vue_export-helper.cjs +1 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
- package/dist/components/st-button/index.d.ts +162 -0
- package/dist/components/st-button/st-button.vue.cjs +1 -0
- package/dist/components/st-button/st-button.vue.d.ts +29 -0
- package/dist/components/st-button/st-button.vue.js +5 -0
- package/dist/components/st-button/st-button.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-button/st-button.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/components/st-button/types.d.ts +49 -0
- package/dist/components/st-button.cjs +1 -0
- package/dist/components/st-button.js +6 -0
- package/dist/components/st-checkbox/index.d.ts +153 -0
- package/dist/components/st-checkbox/st-checkbox.vue.cjs +1 -0
- package/dist/components/st-checkbox/st-checkbox.vue.d.ts +27 -0
- package/dist/components/st-checkbox/st-checkbox.vue.js +5 -0
- package/dist/components/st-checkbox/st-checkbox.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-checkbox/st-checkbox.vue_vue_type_script_setup_true_lang.js +109 -0
- package/dist/components/st-checkbox/types.d.ts +20 -0
- package/dist/components/st-checkbox-group/index.d.ts +171 -0
- package/dist/components/st-checkbox-group/st-checkbox-group.vue.cjs +1 -0
- package/dist/components/st-checkbox-group/st-checkbox-group.vue.d.ts +29 -0
- package/dist/components/st-checkbox-group/st-checkbox-group.vue.js +5 -0
- package/dist/components/st-checkbox-group/st-checkbox-group.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-checkbox-group/st-checkbox-group.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/components/st-checkbox-group/types.d.ts +43 -0
- package/dist/components/st-checkbox-group.cjs +1 -0
- package/dist/components/st-checkbox-group.js +6 -0
- package/dist/components/st-checkbox.cjs +1 -0
- package/dist/components/st-checkbox.js +6 -0
- package/dist/components/st-dialog/index.d.ts +243 -0
- package/dist/components/st-dialog/st-dialog.vue.cjs +1 -0
- package/dist/components/st-dialog/st-dialog.vue.d.ts +41 -0
- package/dist/components/st-dialog/st-dialog.vue.js +5 -0
- package/dist/components/st-dialog/st-dialog.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-dialog/st-dialog.vue_vue_type_script_setup_true_lang.js +175 -0
- package/dist/components/st-dialog/types.d.ts +29 -0
- package/dist/components/st-dialog.cjs +1 -0
- package/dist/components/st-dialog.js +6 -0
- package/dist/components/st-input/index.d.ts +315 -0
- package/dist/components/st-input/st-input.vue.cjs +1 -0
- package/dist/components/st-input/st-input.vue.d.ts +48 -0
- package/dist/components/st-input/st-input.vue.js +7 -0
- package/dist/components/st-input/st-input.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-input/st-input.vue_vue_type_script_setup_true_lang.js +146 -0
- package/dist/components/st-input/types.d.ts +68 -0
- package/dist/components/st-input.cjs +1 -0
- package/dist/components/st-input.js +6 -0
- package/dist/components/st-menu/index.d.ts +217 -0
- package/dist/components/st-menu/st-menu-node.vue.cjs +1 -0
- package/dist/components/st-menu/st-menu-node.vue.d.ts +14 -0
- package/dist/components/st-menu/st-menu-node.vue.js +5 -0
- package/dist/components/st-menu/st-menu-node.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-menu/st-menu-node.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/components/st-menu/st-menu.vue.cjs +1 -0
- package/dist/components/st-menu/st-menu.vue.d.ts +26 -0
- package/dist/components/st-menu/st-menu.vue.js +5 -0
- package/dist/components/st-menu/st-menu.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-menu/st-menu.vue_vue_type_script_setup_true_lang.js +86 -0
- package/dist/components/st-menu/types.d.ts +82 -0
- package/dist/components/st-menu.cjs +1 -0
- package/dist/components/st-menu.js +7 -0
- package/dist/components/st-popover/index.d.ts +243 -0
- package/dist/components/st-popover/st-popover.vue.cjs +1 -0
- package/dist/components/st-popover/st-popover.vue.d.ts +37 -0
- package/dist/components/st-popover/st-popover.vue.js +5 -0
- package/dist/components/st-popover/st-popover.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-popover/st-popover.vue_vue_type_script_setup_true_lang.js +355 -0
- package/dist/components/st-popover/types.d.ts +103 -0
- package/dist/components/st-popover.cjs +1 -0
- package/dist/components/st-popover.js +6 -0
- package/dist/components/st-radio/index.d.ts +135 -0
- package/dist/components/st-radio/st-radio.vue.cjs +1 -0
- package/dist/components/st-radio/st-radio.vue.d.ts +28 -0
- package/dist/components/st-radio/st-radio.vue.js +5 -0
- package/dist/components/st-radio/st-radio.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-radio/st-radio.vue_vue_type_script_setup_true_lang.js +88 -0
- package/dist/components/st-radio/types.d.ts +15 -0
- package/dist/components/st-radio-group/index.d.ts +180 -0
- package/dist/components/st-radio-group/st-radio-group.vue.cjs +1 -0
- package/dist/components/st-radio-group/st-radio-group.vue.d.ts +35 -0
- package/dist/components/st-radio-group/st-radio-group.vue.js +5 -0
- package/dist/components/st-radio-group/st-radio-group.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-radio-group/st-radio-group.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/components/st-radio-group/types.d.ts +43 -0
- package/dist/components/st-radio-group.cjs +1 -0
- package/dist/components/st-radio-group.js +6 -0
- package/dist/components/st-radio.cjs +1 -0
- package/dist/components/st-radio.js +6 -0
- package/dist/components/st-select/index.d.ts +306 -0
- package/dist/components/st-select/st-select.vue.cjs +1 -0
- package/dist/components/st-select/st-select.vue.d.ts +47 -0
- package/dist/components/st-select/st-select.vue.js +5 -0
- package/dist/components/st-select/st-select.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-select/st-select.vue_vue_type_script_setup_true_lang.js +200 -0
- package/dist/components/st-select/types.d.ts +85 -0
- package/dist/components/st-select.cjs +1 -0
- package/dist/components/st-select.js +6 -0
- package/dist/components/st-sidebar/index.d.ts +63 -0
- package/dist/components/st-sidebar/st-sidebar.vue.cjs +1 -0
- package/dist/components/st-sidebar/st-sidebar.vue.d.ts +11 -0
- package/dist/components/st-sidebar/st-sidebar.vue.js +5 -0
- package/dist/components/st-sidebar/st-sidebar.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-sidebar/st-sidebar.vue_vue_type_script_setup_true_lang.js +108 -0
- package/dist/components/st-sidebar/types.d.ts +56 -0
- package/dist/components/st-sidebar-item/index.d.ts +63 -0
- package/dist/components/st-sidebar-item/st-sidebar-item.vue.cjs +1 -0
- package/dist/components/st-sidebar-item/st-sidebar-item.vue.d.ts +11 -0
- package/dist/components/st-sidebar-item/st-sidebar-item.vue.js +5 -0
- package/dist/components/st-sidebar-item/st-sidebar-item.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-sidebar-item/st-sidebar-item.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/components/st-sidebar-item/types.d.ts +19 -0
- package/dist/components/st-sidebar-item.cjs +1 -0
- package/dist/components/st-sidebar-item.js +6 -0
- package/dist/components/st-sidebar.cjs +1 -0
- package/dist/components/st-sidebar.js +6 -0
- package/dist/components/st-splitter/index.d.ts +88 -0
- package/dist/components/st-splitter/st-splitter.vue.cjs +1 -0
- package/dist/components/st-splitter/st-splitter.vue.d.ts +16 -0
- package/dist/components/st-splitter/st-splitter.vue.js +5 -0
- package/dist/components/st-splitter/st-splitter.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-splitter/st-splitter.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/components/st-splitter/types.d.ts +192 -0
- package/dist/components/st-splitter/useSplitter.cjs +1 -0
- package/dist/components/st-splitter/useSplitter.d.ts +24 -0
- package/dist/components/st-splitter/useSplitter.js +129 -0
- package/dist/components/st-splitter-panel/index.d.ts +180 -0
- package/dist/components/st-splitter-panel/st-splitter-panel.vue.cjs +1 -0
- package/dist/components/st-splitter-panel/st-splitter-panel.vue.d.ts +33 -0
- package/dist/components/st-splitter-panel/st-splitter-panel.vue.js +5 -0
- package/dist/components/st-splitter-panel/st-splitter-panel.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-splitter-panel/st-splitter-panel.vue_vue_type_script_setup_true_lang.js +164 -0
- package/dist/components/st-splitter-panel/types.d.ts +27 -0
- package/dist/components/st-splitter-panel.cjs +1 -0
- package/dist/components/st-splitter-panel.js +6 -0
- package/dist/components/st-splitter.cjs +1 -0
- package/dist/components/st-splitter.js +7 -0
- package/dist/components/st-toggle/index.d.ts +159 -0
- package/dist/components/st-toggle/st-toggle.vue.cjs +1 -0
- package/dist/components/st-toggle/st-toggle.vue.d.ts +25 -0
- package/dist/components/st-toggle/st-toggle.vue.js +5 -0
- package/dist/components/st-toggle/st-toggle.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-toggle/st-toggle.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/components/st-toggle/types.d.ts +38 -0
- package/dist/components/st-toggle.cjs +1 -0
- package/dist/components/st-toggle.js +6 -0
- package/dist/components/st-tooltip/index.d.ts +183 -0
- package/dist/components/st-tooltip/st-tooltip.vue.cjs +1 -0
- package/dist/components/st-tooltip/st-tooltip.vue.d.ts +29 -0
- package/dist/components/st-tooltip/st-tooltip.vue.js +5 -0
- package/dist/components/st-tooltip/st-tooltip.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-tooltip/st-tooltip.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/components/st-tooltip/types.d.ts +79 -0
- package/dist/components/st-tooltip.cjs +1 -0
- package/dist/components/st-tooltip.js +6 -0
- package/dist/components/st-tree/index.d.ts +114 -0
- package/dist/components/st-tree/st-tree-node.vue.cjs +1 -0
- package/dist/components/st-tree/st-tree-node.vue.d.ts +4 -0
- package/dist/components/st-tree/st-tree-node.vue.js +5 -0
- package/dist/components/st-tree/st-tree-node.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-tree/st-tree-node.vue_vue_type_script_setup_true_lang.js +87 -0
- package/dist/components/st-tree/st-tree.vue.cjs +1 -0
- package/dist/components/st-tree/st-tree.vue.d.ts +50 -0
- package/dist/components/st-tree/st-tree.vue.js +5 -0
- package/dist/components/st-tree/st-tree.vue_vue_type_script_setup_true_lang.cjs +1 -0
- package/dist/components/st-tree/st-tree.vue_vue_type_script_setup_true_lang.js +59 -0
- package/dist/components/st-tree/types.d.ts +87 -0
- package/dist/components/st-tree.cjs +1 -0
- package/dist/components/st-tree.js +6 -0
- package/dist/components/types.d.ts +41 -0
- package/dist/index.cjs +1 -0
- package/dist/index.css +2 -0
- package/dist/index.d.ts +3005 -0
- package/dist/index.js +47 -0
- package/dist/utils/cn.cjs +1 -0
- package/dist/utils/cn.d.ts +11 -0
- package/dist/utils/cn.js +8 -0
- package/dist/utils/cva/index.cjs +1 -0
- package/dist/utils/cva/index.d.ts +9 -0
- package/dist/utils/cva/index.js +25 -0
- package/dist/utils/cva/types.d.ts +45 -0
- package/dist/utils/directive/index.cjs +1 -0
- package/dist/utils/directive/index.d.ts +4 -0
- package/dist/utils/directive/index.js +10 -0
- package/dist/utils/directive/intersection.cjs +1 -0
- package/dist/utils/directive/intersection.d.ts +6 -0
- package/dist/utils/directive/intersection.js +20 -0
- package/dist/utils/directive/interval.cjs +1 -0
- package/dist/utils/directive/interval.d.ts +6 -0
- package/dist/utils/directive/interval.js +14 -0
- package/dist/utils/directive/move.cjs +1 -0
- package/dist/utils/directive/move.d.ts +6 -0
- package/dist/utils/directive/move.js +42 -0
- package/dist/utils/directive/resize.cjs +1 -0
- package/dist/utils/directive/resize.d.ts +6 -0
- package/dist/utils/directive/resize.js +17 -0
- package/dist/utils/with-install.cjs +1 -0
- package/dist/utils/with-install.d.ts +4 -0
- package/dist/utils/with-install.js +10 -0
- package/package.json +87 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
export declare const StMenu: {
|
|
2
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
|
|
3
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
4
|
+
list: import("./types.d.ts").MenuItem[];
|
|
5
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
6
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
7
|
+
}> & Readonly<{
|
|
8
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
9
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
11
|
+
}, import("vue").PublicProps, {
|
|
12
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
13
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
14
|
+
}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
15
|
+
P: {};
|
|
16
|
+
B: {};
|
|
17
|
+
D: {};
|
|
18
|
+
C: {};
|
|
19
|
+
M: {};
|
|
20
|
+
Defaults: {};
|
|
21
|
+
}, Readonly<{
|
|
22
|
+
list: import("./types.d.ts").MenuItem[];
|
|
23
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
24
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
25
|
+
}> & Readonly<{
|
|
26
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
27
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, {
|
|
28
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
29
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
30
|
+
}>;
|
|
31
|
+
__isFragment?: never;
|
|
32
|
+
__isTeleport?: never;
|
|
33
|
+
__isSuspense?: never;
|
|
34
|
+
} & import("vue").ComponentOptionsBase<Readonly<{
|
|
35
|
+
list: import("./types.d.ts").MenuItem[];
|
|
36
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
37
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
38
|
+
}> & Readonly<{
|
|
39
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
40
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
41
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
42
|
+
}, string, {
|
|
43
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
44
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
45
|
+
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
46
|
+
$slots: {
|
|
47
|
+
default?: (props: {}) => any;
|
|
48
|
+
};
|
|
49
|
+
})>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
|
|
50
|
+
[x: string]: any;
|
|
51
|
+
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
52
|
+
P: {};
|
|
53
|
+
B: {};
|
|
54
|
+
D: {};
|
|
55
|
+
C: {};
|
|
56
|
+
M: {};
|
|
57
|
+
Defaults: {};
|
|
58
|
+
}, Readonly<import("vue").ExtractPropTypes<{
|
|
59
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
60
|
+
list: import("./types.d.ts").MenuItem[];
|
|
61
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
62
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
63
|
+
}> & Readonly<{
|
|
64
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
65
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
66
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
67
|
+
}, import("vue").PublicProps, {
|
|
68
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
69
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
70
|
+
}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
71
|
+
P: {};
|
|
72
|
+
B: {};
|
|
73
|
+
D: {};
|
|
74
|
+
C: {};
|
|
75
|
+
M: {};
|
|
76
|
+
Defaults: {};
|
|
77
|
+
}, Readonly<{
|
|
78
|
+
list: import("./types.d.ts").MenuItem[];
|
|
79
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
80
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
81
|
+
}> & Readonly<{
|
|
82
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
83
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, {
|
|
84
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
85
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
86
|
+
}>;
|
|
87
|
+
__isFragment?: never;
|
|
88
|
+
__isTeleport?: never;
|
|
89
|
+
__isSuspense?: never;
|
|
90
|
+
} & import("vue").ComponentOptionsBase<Readonly<{
|
|
91
|
+
list: import("./types.d.ts").MenuItem[];
|
|
92
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
93
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
94
|
+
}> & Readonly<{
|
|
95
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
96
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
97
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
98
|
+
}, string, {
|
|
99
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
100
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
101
|
+
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
102
|
+
$slots: {
|
|
103
|
+
default?: (props: {}) => any;
|
|
104
|
+
};
|
|
105
|
+
})>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, {
|
|
106
|
+
[x: string]: any;
|
|
107
|
+
}>;
|
|
108
|
+
__isFragment?: never;
|
|
109
|
+
__isTeleport?: never;
|
|
110
|
+
__isSuspense?: never;
|
|
111
|
+
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
|
|
112
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
113
|
+
list: import("./types.d.ts").MenuItem[];
|
|
114
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
115
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
116
|
+
}> & Readonly<{
|
|
117
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
118
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
119
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
120
|
+
}, import("vue").PublicProps, {
|
|
121
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
122
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
123
|
+
}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
124
|
+
P: {};
|
|
125
|
+
B: {};
|
|
126
|
+
D: {};
|
|
127
|
+
C: {};
|
|
128
|
+
M: {};
|
|
129
|
+
Defaults: {};
|
|
130
|
+
}, Readonly<{
|
|
131
|
+
list: import("./types.d.ts").MenuItem[];
|
|
132
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
133
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
134
|
+
}> & Readonly<{
|
|
135
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
136
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, {
|
|
137
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
138
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
139
|
+
}>;
|
|
140
|
+
__isFragment?: never;
|
|
141
|
+
__isTeleport?: never;
|
|
142
|
+
__isSuspense?: never;
|
|
143
|
+
} & import("vue").ComponentOptionsBase<Readonly<{
|
|
144
|
+
list: import("./types.d.ts").MenuItem[];
|
|
145
|
+
placement?: import("./types.d.ts").MenuPlacement;
|
|
146
|
+
trigger?: import("./types.d.ts").MenuTrigger;
|
|
147
|
+
}> & Readonly<{
|
|
148
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
149
|
+
}>, import("./types.d.ts").MenuExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
150
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
151
|
+
}, string, {
|
|
152
|
+
trigger: import("./types.d.ts").MenuTrigger;
|
|
153
|
+
placement: import("./types.d.ts").MenuPlacement;
|
|
154
|
+
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
155
|
+
$slots: {
|
|
156
|
+
default?: (props: {}) => any;
|
|
157
|
+
};
|
|
158
|
+
})>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
|
|
159
|
+
[x: string]: any;
|
|
160
|
+
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & (import("vue").VNodeProps & (import("vue").AllowedComponentProps & (import("vue").ComponentCustomProps & import("vue").Plugin)));
|
|
161
|
+
export declare const StMenuNode: {
|
|
162
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<import("vue").DefineComponent<{
|
|
163
|
+
item: import("./types.d.ts").MenuItem;
|
|
164
|
+
depth?: number;
|
|
165
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
166
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
167
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
168
|
+
item: import("./types.d.ts").MenuItem;
|
|
169
|
+
depth?: number;
|
|
170
|
+
}> & Readonly<{
|
|
171
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
172
|
+
}>, {
|
|
173
|
+
depth: number;
|
|
174
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
|
|
175
|
+
[x: string]: any;
|
|
176
|
+
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
177
|
+
P: {};
|
|
178
|
+
B: {};
|
|
179
|
+
D: {};
|
|
180
|
+
C: {};
|
|
181
|
+
M: {};
|
|
182
|
+
Defaults: {};
|
|
183
|
+
}, Readonly<import("vue").ExtractPropTypes<import("vue").DefineComponent<{
|
|
184
|
+
item: import("./types.d.ts").MenuItem;
|
|
185
|
+
depth?: number;
|
|
186
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
187
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
188
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
189
|
+
item: import("./types.d.ts").MenuItem;
|
|
190
|
+
depth?: number;
|
|
191
|
+
}> & Readonly<{
|
|
192
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
193
|
+
}>, {
|
|
194
|
+
depth: number;
|
|
195
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, {
|
|
196
|
+
[x: string]: any;
|
|
197
|
+
}>;
|
|
198
|
+
__isFragment?: never;
|
|
199
|
+
__isTeleport?: never;
|
|
200
|
+
__isSuspense?: never;
|
|
201
|
+
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<import("vue").DefineComponent<{
|
|
202
|
+
item: import("./types.d.ts").MenuItem;
|
|
203
|
+
depth?: number;
|
|
204
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
205
|
+
select: (item: import("./types.d.ts").MenuItem) => any;
|
|
206
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
207
|
+
item: import("./types.d.ts").MenuItem;
|
|
208
|
+
depth?: number;
|
|
209
|
+
}> & Readonly<{
|
|
210
|
+
onSelect?: (item: import("./types.d.ts").MenuItem) => any;
|
|
211
|
+
}>, {
|
|
212
|
+
depth: number;
|
|
213
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
|
|
214
|
+
[x: string]: any;
|
|
215
|
+
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & (import("vue").VNodeProps & (import("vue").AllowedComponentProps & (import("vue").ComponentCustomProps & import("vue").Plugin)));
|
|
216
|
+
export default StMenu;
|
|
217
|
+
export type * from './types.d.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=require("./st-menu-node.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MenuItem } from './types.d.ts';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: MenuItem;
|
|
4
|
+
depth?: number;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
7
|
+
select: (item: MenuItem) => any;
|
|
8
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
|
+
onSelect?: (item: MenuItem) => any;
|
|
10
|
+
}>, {
|
|
11
|
+
depth: number;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../../utils/cn.cjs"),t=require("../st-popover/st-popover.vue.cjs");let n=require("vue");var r={key:0,class:`h-px my-1 mx-2 bg-border`},i={key:1,class:`block`},a={key:0,class:`px-3 pt-1.5 pb-0.5 text-2.5 font-semibold tracking-wide uppercase text-muted-foreground select-none`},o={class:`flex items-center gap-2 px-3 py-1.25 rounded-radius cursor-pointer transition-colors duration-100 select-none whitespace-nowrap text-3.25 leading-5 text-foreground hover:bg-accent`},s={key:0,class:`inline-flex items-center justify-center w-4.5 h-4.5 text-4 flex-shrink-0`},c={class:`flex-1 min-w-0 min-h-0 truncate`},l={key:1,class:`text-3 text-muted-foreground ml-3 flex-shrink-0`},u={class:`flex items-center gap-2 px-3 py-1.25 rounded-radius cursor-pointer transition-colors duration-100 select-none whitespace-nowrap text-3.25 leading-5 text-foreground hover:bg-accent`},d={key:0,class:`inline-flex items-center justify-center w-4.5 h-4.5 text-4 flex-shrink-0`},f={class:`flex-1 min-w-0 min-h-0 truncate`},p={key:1,class:`text-3 text-muted-foreground ml-3 flex-shrink-0`},m=(0,n.defineComponent)({name:`StMenuNode`,inheritAttrs:!1,__name:`st-menu-node`,props:{item:{},depth:{default:0}},emits:[`select`],setup(m,{emit:h}){let g=(0,n.useAttrs)(),_=m,v=h,y=(0,n.inject)(`st-menu-hide`,()=>{}),b=(0,n.inject)(`st-menu-has-icon`,(0,n.ref)(!1)),x=(0,n.computed)(()=>!!(_.item.children&&_.item.children.length>0));(0,n.provide)(`st-menu-has-icon`,(0,n.computed)(()=>{if(!x.value)return!1;for(let e of _.item.children??[])if(e.type!==`divider`){if(e.type===`group`){for(let t of e.children??[])if(t.icon)return!0}else if(e.icon)return!0}return!1}));let S=(0,n.computed)(()=>e.cn(`relative rounded-radius`,`block`,{"opacity-40 cursor-not-allowed":_.item.disabled},g.class)),C=(0,n.computed)(()=>[`min-w-35`,`max-w-80`,`p-1`,`backdrop-blur-16`]);function w(){_.item.disabled||(_.item.action&&_.item.action(),v(`select`,_.item),y())}function T(e){v(`select`,e)}return(e,h)=>{let g=(0,n.resolveComponent)(`StMenuNode`,!0);return m.item.type===`divider`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,r)):m.item.type===`group`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[m.item.label?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,(0,n.toDisplayString)(m.item.label),1)):(0,n.createCommentVNode)(``,!0),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(m.item.children??[],(e,t)=>((0,n.openBlock)(),(0,n.createBlock)(g,{key:e.key??t,depth:m.depth+1,item:e,onSelect:T},null,8,[`depth`,`item`]))),128))])):x.value?((0,n.openBlock)(),(0,n.createBlock)(t.default,{key:2,class:(0,n.normalizeClass)(C.value),"close-delay":200,"open-delay":150,"show-arrow":!1,"trigger-class":`block`,placement:`right-top`,trigger:`hover`},{trigger:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)(S.value)},[(0,n.createElementVNode)(`div`,o,[(0,n.unref)(b)?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,s,[m.item.icon?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:(0,n.normalizeClass)(m.item.icon)},null,2)):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,c,(0,n.toDisplayString)(m.item.label),1),m.item.shortcut?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,l,(0,n.toDisplayString)(m.item.shortcut),1)):(0,n.createCommentVNode)(``,!0),h[0]||=(0,n.createElementVNode)(`span`,{class:`inline-flex items-center justify-center w-4 h-4 text-3.5 flex-shrink-0 ml-auto opacity-50`},[(0,n.createElementVNode)(`span`,{class:`i-ri-arrow-right-s-line`})],-1)])],2)]),content:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(m.item.children,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)(g,{key:e.key??t,depth:m.depth+1,item:e,onSelect:T},null,8,[`depth`,`item`]))),128))]),_:1},8,[`class`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:3,class:(0,n.normalizeClass)(S.value),onClick:w},[(0,n.createElementVNode)(`div`,u,[(0,n.unref)(b)?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,d,[m.item.icon?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:(0,n.normalizeClass)(m.item.icon)},null,2)):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,f,(0,n.toDisplayString)(m.item.label),1),m.item.shortcut?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,p,(0,n.toDisplayString)(m.item.shortcut),1)):(0,n.createCommentVNode)(``,!0)])],2))}}});exports.default=m;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { cn as e } from "../../utils/cn.js";
|
|
2
|
+
import t from "../st-popover/st-popover.vue.js";
|
|
3
|
+
import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, defineComponent as c, inject as l, normalizeClass as u, openBlock as d, provide as f, ref as p, renderList as m, resolveComponent as h, toDisplayString as g, unref as _, useAttrs as v, withCtx as y } from "vue";
|
|
4
|
+
//#region src/components/st-menu/st-menu-node.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var b = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "h-px my-1 mx-2 bg-border"
|
|
8
|
+
}, x = {
|
|
9
|
+
key: 1,
|
|
10
|
+
class: "block"
|
|
11
|
+
}, S = {
|
|
12
|
+
key: 0,
|
|
13
|
+
class: "px-3 pt-1.5 pb-0.5 text-2.5 font-semibold tracking-wide uppercase text-muted-foreground select-none"
|
|
14
|
+
}, C = { class: "flex items-center gap-2 px-3 py-1.25 rounded-radius cursor-pointer transition-colors duration-100 select-none whitespace-nowrap text-3.25 leading-5 text-foreground hover:bg-accent" }, w = {
|
|
15
|
+
key: 0,
|
|
16
|
+
class: "inline-flex items-center justify-center w-4.5 h-4.5 text-4 flex-shrink-0"
|
|
17
|
+
}, T = { class: "flex-1 min-w-0 min-h-0 truncate" }, E = {
|
|
18
|
+
key: 1,
|
|
19
|
+
class: "text-3 text-muted-foreground ml-3 flex-shrink-0"
|
|
20
|
+
}, D = { class: "flex items-center gap-2 px-3 py-1.25 rounded-radius cursor-pointer transition-colors duration-100 select-none whitespace-nowrap text-3.25 leading-5 text-foreground hover:bg-accent" }, O = {
|
|
21
|
+
key: 0,
|
|
22
|
+
class: "inline-flex items-center justify-center w-4.5 h-4.5 text-4 flex-shrink-0"
|
|
23
|
+
}, k = { class: "flex-1 min-w-0 min-h-0 truncate" }, A = {
|
|
24
|
+
key: 1,
|
|
25
|
+
class: "text-3 text-muted-foreground ml-3 flex-shrink-0"
|
|
26
|
+
}, j = /*@__PURE__*/ c({
|
|
27
|
+
name: "StMenuNode",
|
|
28
|
+
inheritAttrs: !1,
|
|
29
|
+
__name: "st-menu-node",
|
|
30
|
+
props: {
|
|
31
|
+
item: {},
|
|
32
|
+
depth: { default: 0 }
|
|
33
|
+
},
|
|
34
|
+
emits: ["select"],
|
|
35
|
+
setup(c, { emit: j }) {
|
|
36
|
+
let M = v(), N = c, P = j, F = l("st-menu-hide", () => {}), I = l("st-menu-has-icon", p(!1)), L = r(() => !!(N.item.children && N.item.children.length > 0));
|
|
37
|
+
f("st-menu-has-icon", r(() => {
|
|
38
|
+
if (!L.value) return !1;
|
|
39
|
+
for (let e of N.item.children ?? []) if (e.type !== "divider") {
|
|
40
|
+
if (e.type === "group") {
|
|
41
|
+
for (let t of e.children ?? []) if (t.icon) return !0;
|
|
42
|
+
} else if (e.icon) return !0;
|
|
43
|
+
}
|
|
44
|
+
return !1;
|
|
45
|
+
}));
|
|
46
|
+
let R = r(() => e("relative rounded-radius", "block", { "opacity-40 cursor-not-allowed": N.item.disabled }, M.class)), z = r(() => [
|
|
47
|
+
"min-w-35",
|
|
48
|
+
"max-w-80",
|
|
49
|
+
"p-1",
|
|
50
|
+
"backdrop-blur-16"
|
|
51
|
+
]);
|
|
52
|
+
function B() {
|
|
53
|
+
N.item.disabled || (N.item.action && N.item.action(), P("select", N.item), F());
|
|
54
|
+
}
|
|
55
|
+
function V(e) {
|
|
56
|
+
P("select", e);
|
|
57
|
+
}
|
|
58
|
+
return (e, r) => {
|
|
59
|
+
let l = h("StMenuNode", !0);
|
|
60
|
+
return c.item.type === "divider" ? (d(), o("div", b)) : c.item.type === "group" ? (d(), o("div", x, [c.item.label ? (d(), o("div", S, g(c.item.label), 1)) : a("", !0), (d(!0), o(n, null, m(c.item.children ?? [], (e, t) => (d(), i(l, {
|
|
61
|
+
key: e.key ?? t,
|
|
62
|
+
depth: c.depth + 1,
|
|
63
|
+
item: e,
|
|
64
|
+
onSelect: V
|
|
65
|
+
}, null, 8, ["depth", "item"]))), 128))])) : L.value ? (d(), i(t, {
|
|
66
|
+
key: 2,
|
|
67
|
+
class: u(z.value),
|
|
68
|
+
"close-delay": 200,
|
|
69
|
+
"open-delay": 150,
|
|
70
|
+
"show-arrow": !1,
|
|
71
|
+
"trigger-class": "block",
|
|
72
|
+
placement: "right-top",
|
|
73
|
+
trigger: "hover"
|
|
74
|
+
}, {
|
|
75
|
+
trigger: y(() => [s("div", { class: u(R.value) }, [s("div", C, [
|
|
76
|
+
_(I) ? (d(), o("span", w, [c.item.icon ? (d(), o("span", {
|
|
77
|
+
key: 0,
|
|
78
|
+
class: u(c.item.icon)
|
|
79
|
+
}, null, 2)) : a("", !0)])) : a("", !0),
|
|
80
|
+
s("span", T, g(c.item.label), 1),
|
|
81
|
+
c.item.shortcut ? (d(), o("span", E, g(c.item.shortcut), 1)) : a("", !0),
|
|
82
|
+
r[0] ||= s("span", { class: "inline-flex items-center justify-center w-4 h-4 text-3.5 flex-shrink-0 ml-auto opacity-50" }, [s("span", { class: "i-ri-arrow-right-s-line" })], -1)
|
|
83
|
+
])], 2)]),
|
|
84
|
+
content: y(() => [(d(!0), o(n, null, m(c.item.children, (e, t) => (d(), i(l, {
|
|
85
|
+
key: e.key ?? t,
|
|
86
|
+
depth: c.depth + 1,
|
|
87
|
+
item: e,
|
|
88
|
+
onSelect: V
|
|
89
|
+
}, null, 8, ["depth", "item"]))), 128))]),
|
|
90
|
+
_: 1
|
|
91
|
+
}, 8, ["class"])) : (d(), o("div", {
|
|
92
|
+
key: 3,
|
|
93
|
+
class: u(R.value),
|
|
94
|
+
onClick: B
|
|
95
|
+
}, [s("div", D, [
|
|
96
|
+
_(I) ? (d(), o("span", O, [c.item.icon ? (d(), o("span", {
|
|
97
|
+
key: 0,
|
|
98
|
+
class: u(c.item.icon)
|
|
99
|
+
}, null, 2)) : a("", !0)])) : a("", !0),
|
|
100
|
+
s("span", k, g(c.item.label), 1),
|
|
101
|
+
c.item.shortcut ? (d(), o("span", A, g(c.item.shortcut), 1)) : a("", !0)
|
|
102
|
+
])], 2));
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
//#endregion
|
|
107
|
+
export { j as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=require("./st-menu.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { MenuExpose, MenuItem, MenuPlacement, MenuTrigger } from './types.d.ts';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
list: MenuItem[];
|
|
4
|
+
placement?: MenuPlacement;
|
|
5
|
+
trigger?: MenuTrigger;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_10: {};
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
default?: (props: typeof __VLS_10) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, MenuExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
|
+
select: (item: MenuItem) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
14
|
+
onSelect?: (item: MenuItem) => any;
|
|
15
|
+
}>, {
|
|
16
|
+
trigger: MenuTrigger;
|
|
17
|
+
placement: MenuPlacement;
|
|
18
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../../utils/cn.cjs"),t=require("../st-popover/st-popover.vue.cjs"),n=require("./st-menu-node.vue.cjs");let r=require("vue");var i=(0,r.defineComponent)({name:`StMenu`,inheritAttrs:!1,__name:`st-menu`,props:{list:{},placement:{default:`bottom`},trigger:{default:`click`}},emits:[`select`],setup(i,{expose:a,emit:o}){let s=(0,r.useAttrs)(),c=new Set;function l(e){for(let t of c)t!==e&&t()}function u(e){for(let t of e)if(t.type!==`divider`){if(t.type===`group`){if(u(t.children??[]))return!0}else if(t.icon)return!0}return!1}function d(e){return{top:`top-left`,bottom:`bottom-left`,left:`left-top`,right:`right-top`}[e]}let f=i,p=o,m=(0,r.ref)(null);function h(){m.value?.hide(),c.delete(h)}(0,r.provide)(`st-menu-hide`,h),(0,r.provide)(`st-menu-has-icon`,(0,r.computed)(()=>u(f.list)));let g=(0,r.computed)(()=>e.cn([`min-w-35`,`max-w-80`,`p-1`,`rounded-radius`,`bg-popover`,`backdrop-blur-16`,`border`,`border-border`,`shadow-lg`],s.class)),_=(0,r.computed)(()=>f.trigger),v=(0,r.computed)(()=>d(f.placement));function y(e){l(h),m.value?.show(e),c.add(h)}function b(e){p(`select`,e),h()}return a({show:y,hide:h}),(e,a)=>((0,r.openBlock)(),(0,r.createBlock)(t.default,{ref_key:`popoverRef`,ref:m,trigger:_.value,placement:v.value,"show-arrow":!1},{trigger:(0,r.withCtx)(()=>[(0,r.renderSlot)(e.$slots,`default`)]),content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,{class:(0,r.normalizeClass)(g.value),style:(0,r.normalizeStyle)((0,r.unref)(s).style),onClick:a[0]||=(0,r.withModifiers)(()=>{},[`stop`]),onContextmenu:a[1]||=(0,r.withModifiers)(()=>{},[`prevent`])},[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(i.list,(e,t)=>((0,r.openBlock)(),(0,r.createBlock)(n.default,{key:e.key??t,depth:0,item:e,onSelect:b},null,8,[`item`]))),128))],38)]),_:3},8,[`trigger`,`placement`]))}});exports.default=i;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { cn as e } from "../../utils/cn.js";
|
|
2
|
+
import t from "../st-popover/st-popover.vue.js";
|
|
3
|
+
import n from "./st-menu-node.vue.js";
|
|
4
|
+
import { Fragment as r, computed as i, createBlock as a, createElementBlock as o, createElementVNode as s, defineComponent as c, normalizeClass as l, normalizeStyle as u, openBlock as d, provide as f, ref as p, renderList as m, renderSlot as h, unref as g, useAttrs as _, withCtx as v, withModifiers as y } from "vue";
|
|
5
|
+
//#region src/components/st-menu/st-menu.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var b = /*@__PURE__*/ c({
|
|
7
|
+
name: "StMenu",
|
|
8
|
+
inheritAttrs: !1,
|
|
9
|
+
__name: "st-menu",
|
|
10
|
+
props: {
|
|
11
|
+
list: {},
|
|
12
|
+
placement: { default: "bottom" },
|
|
13
|
+
trigger: { default: "click" }
|
|
14
|
+
},
|
|
15
|
+
emits: ["select"],
|
|
16
|
+
setup(c, { expose: b, emit: x }) {
|
|
17
|
+
let S = _(), C = /* @__PURE__ */ new Set();
|
|
18
|
+
function w(e) {
|
|
19
|
+
for (let t of C) t !== e && t();
|
|
20
|
+
}
|
|
21
|
+
function T(e) {
|
|
22
|
+
for (let t of e) if (t.type !== "divider") {
|
|
23
|
+
if (t.type === "group") {
|
|
24
|
+
if (T(t.children ?? [])) return !0;
|
|
25
|
+
} else if (t.icon) return !0;
|
|
26
|
+
}
|
|
27
|
+
return !1;
|
|
28
|
+
}
|
|
29
|
+
function E(e) {
|
|
30
|
+
return {
|
|
31
|
+
top: "top-left",
|
|
32
|
+
bottom: "bottom-left",
|
|
33
|
+
left: "left-top",
|
|
34
|
+
right: "right-top"
|
|
35
|
+
}[e];
|
|
36
|
+
}
|
|
37
|
+
let D = c, O = x, k = p(null);
|
|
38
|
+
function A() {
|
|
39
|
+
k.value?.hide(), C.delete(A);
|
|
40
|
+
}
|
|
41
|
+
f("st-menu-hide", A), f("st-menu-has-icon", i(() => T(D.list)));
|
|
42
|
+
let j = i(() => e([
|
|
43
|
+
"min-w-35",
|
|
44
|
+
"max-w-80",
|
|
45
|
+
"p-1",
|
|
46
|
+
"rounded-radius",
|
|
47
|
+
"bg-popover",
|
|
48
|
+
"backdrop-blur-16",
|
|
49
|
+
"border",
|
|
50
|
+
"border-border",
|
|
51
|
+
"shadow-lg"
|
|
52
|
+
], S.class)), M = i(() => D.trigger), N = i(() => E(D.placement));
|
|
53
|
+
function P(e) {
|
|
54
|
+
w(A), k.value?.show(e), C.add(A);
|
|
55
|
+
}
|
|
56
|
+
function F(e) {
|
|
57
|
+
O("select", e), A();
|
|
58
|
+
}
|
|
59
|
+
return b({
|
|
60
|
+
show: P,
|
|
61
|
+
hide: A
|
|
62
|
+
}), (e, i) => (d(), a(t, {
|
|
63
|
+
ref_key: "popoverRef",
|
|
64
|
+
ref: k,
|
|
65
|
+
trigger: M.value,
|
|
66
|
+
placement: N.value,
|
|
67
|
+
"show-arrow": !1
|
|
68
|
+
}, {
|
|
69
|
+
trigger: v(() => [h(e.$slots, "default")]),
|
|
70
|
+
content: v(() => [s("div", {
|
|
71
|
+
class: l(j.value),
|
|
72
|
+
style: u(g(S).style),
|
|
73
|
+
onClick: i[0] ||= y(() => {}, ["stop"]),
|
|
74
|
+
onContextmenu: i[1] ||= y(() => {}, ["prevent"])
|
|
75
|
+
}, [(d(!0), o(r, null, m(c.list, (e, t) => (d(), a(n, {
|
|
76
|
+
key: e.key ?? t,
|
|
77
|
+
depth: 0,
|
|
78
|
+
item: e,
|
|
79
|
+
onSelect: F
|
|
80
|
+
}, null, 8, ["item"]))), 128))], 38)]),
|
|
81
|
+
_: 3
|
|
82
|
+
}, 8, ["trigger", "placement"]));
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
//#endregion
|
|
86
|
+
export { b as default };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Menu 菜单弹出方向类型
|
|
3
|
+
*/
|
|
4
|
+
export type MenuPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Menu 菜单触发方式类型
|
|
8
|
+
*/
|
|
9
|
+
export type MenuTrigger = 'click' | 'contextmenu';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Menu 菜单项类型
|
|
13
|
+
*/
|
|
14
|
+
export type MenuItemType = 'item' | 'divider' | 'group';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Menu 菜单项接口
|
|
18
|
+
*/
|
|
19
|
+
export interface MenuItem {
|
|
20
|
+
/** 唯一标识 */
|
|
21
|
+
key?: string | number;
|
|
22
|
+
/** 显示标签 */
|
|
23
|
+
label?: string;
|
|
24
|
+
/** 图标类名 */
|
|
25
|
+
icon?: string;
|
|
26
|
+
/** 是否禁用 */
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
/** 点击回调函数 */
|
|
29
|
+
action?: () => void | Promise<void>;
|
|
30
|
+
/** 子菜单项 */
|
|
31
|
+
children?: MenuItem[];
|
|
32
|
+
/** 菜单项类型 */
|
|
33
|
+
type?: MenuItemType;
|
|
34
|
+
/** 快捷键提示 */
|
|
35
|
+
shortcut?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Menu 组件属性接口
|
|
40
|
+
*/
|
|
41
|
+
export interface MenuProps {
|
|
42
|
+
/** 菜单项列表 */
|
|
43
|
+
list: MenuItem[];
|
|
44
|
+
/** 弹出方向 */
|
|
45
|
+
placement?: MenuPlacement;
|
|
46
|
+
/** 触发方式 */
|
|
47
|
+
trigger?: MenuTrigger;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Menu 组件事件接口
|
|
52
|
+
*/
|
|
53
|
+
export interface MenuEmits {
|
|
54
|
+
select: [item: MenuItem];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Menu 组件暴露的方法接口
|
|
59
|
+
*/
|
|
60
|
+
export interface MenuExpose {
|
|
61
|
+
show: (e?: MouseEvent) => void;
|
|
62
|
+
hide: () => void;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* MenuNode 组件属性接口
|
|
67
|
+
*/
|
|
68
|
+
export interface MenuNodeProps {
|
|
69
|
+
/** 菜单项 */
|
|
70
|
+
item: MenuItem;
|
|
71
|
+
/** 嵌套深度 */
|
|
72
|
+
depth?: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* MenuNode 组件事件接口
|
|
77
|
+
*/
|
|
78
|
+
export interface MenuNodeEmits {
|
|
79
|
+
select: [item: MenuItem];
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../utils/with-install.cjs"),t=require("./st-menu/st-menu-node.vue.cjs"),n=require("./st-menu/st-menu.vue.cjs");var r=e.withInstall(n.default),i=e.withInstall(t.default);exports.StMenu=r,exports.default=r,exports.StMenuNode=i;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { withInstall as e } from "../utils/with-install.js";
|
|
2
|
+
import t from "./st-menu/st-menu-node.vue.js";
|
|
3
|
+
import n from "./st-menu/st-menu.vue.js";
|
|
4
|
+
//#region src/components/st-menu/index.ts
|
|
5
|
+
var r = e(n), i = e(t);
|
|
6
|
+
//#endregion
|
|
7
|
+
export { r as StMenu, r as default, i as StMenuNode };
|