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.
Files changed (200) hide show
  1. package/README.md +42 -0
  2. package/dist/_virtual/_plugin-vue_export-helper.cjs +1 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  4. package/dist/components/st-button/index.d.ts +162 -0
  5. package/dist/components/st-button/st-button.vue.cjs +1 -0
  6. package/dist/components/st-button/st-button.vue.d.ts +29 -0
  7. package/dist/components/st-button/st-button.vue.js +5 -0
  8. package/dist/components/st-button/st-button.vue_vue_type_script_setup_true_lang.cjs +1 -0
  9. package/dist/components/st-button/st-button.vue_vue_type_script_setup_true_lang.js +81 -0
  10. package/dist/components/st-button/types.d.ts +49 -0
  11. package/dist/components/st-button.cjs +1 -0
  12. package/dist/components/st-button.js +6 -0
  13. package/dist/components/st-checkbox/index.d.ts +153 -0
  14. package/dist/components/st-checkbox/st-checkbox.vue.cjs +1 -0
  15. package/dist/components/st-checkbox/st-checkbox.vue.d.ts +27 -0
  16. package/dist/components/st-checkbox/st-checkbox.vue.js +5 -0
  17. package/dist/components/st-checkbox/st-checkbox.vue_vue_type_script_setup_true_lang.cjs +1 -0
  18. package/dist/components/st-checkbox/st-checkbox.vue_vue_type_script_setup_true_lang.js +109 -0
  19. package/dist/components/st-checkbox/types.d.ts +20 -0
  20. package/dist/components/st-checkbox-group/index.d.ts +171 -0
  21. package/dist/components/st-checkbox-group/st-checkbox-group.vue.cjs +1 -0
  22. package/dist/components/st-checkbox-group/st-checkbox-group.vue.d.ts +29 -0
  23. package/dist/components/st-checkbox-group/st-checkbox-group.vue.js +5 -0
  24. package/dist/components/st-checkbox-group/st-checkbox-group.vue_vue_type_script_setup_true_lang.cjs +1 -0
  25. package/dist/components/st-checkbox-group/st-checkbox-group.vue_vue_type_script_setup_true_lang.js +63 -0
  26. package/dist/components/st-checkbox-group/types.d.ts +43 -0
  27. package/dist/components/st-checkbox-group.cjs +1 -0
  28. package/dist/components/st-checkbox-group.js +6 -0
  29. package/dist/components/st-checkbox.cjs +1 -0
  30. package/dist/components/st-checkbox.js +6 -0
  31. package/dist/components/st-dialog/index.d.ts +243 -0
  32. package/dist/components/st-dialog/st-dialog.vue.cjs +1 -0
  33. package/dist/components/st-dialog/st-dialog.vue.d.ts +41 -0
  34. package/dist/components/st-dialog/st-dialog.vue.js +5 -0
  35. package/dist/components/st-dialog/st-dialog.vue_vue_type_script_setup_true_lang.cjs +1 -0
  36. package/dist/components/st-dialog/st-dialog.vue_vue_type_script_setup_true_lang.js +175 -0
  37. package/dist/components/st-dialog/types.d.ts +29 -0
  38. package/dist/components/st-dialog.cjs +1 -0
  39. package/dist/components/st-dialog.js +6 -0
  40. package/dist/components/st-input/index.d.ts +315 -0
  41. package/dist/components/st-input/st-input.vue.cjs +1 -0
  42. package/dist/components/st-input/st-input.vue.d.ts +48 -0
  43. package/dist/components/st-input/st-input.vue.js +7 -0
  44. package/dist/components/st-input/st-input.vue_vue_type_script_setup_true_lang.cjs +1 -0
  45. package/dist/components/st-input/st-input.vue_vue_type_script_setup_true_lang.js +146 -0
  46. package/dist/components/st-input/types.d.ts +68 -0
  47. package/dist/components/st-input.cjs +1 -0
  48. package/dist/components/st-input.js +6 -0
  49. package/dist/components/st-menu/index.d.ts +217 -0
  50. package/dist/components/st-menu/st-menu-node.vue.cjs +1 -0
  51. package/dist/components/st-menu/st-menu-node.vue.d.ts +14 -0
  52. package/dist/components/st-menu/st-menu-node.vue.js +5 -0
  53. package/dist/components/st-menu/st-menu-node.vue_vue_type_script_setup_true_lang.cjs +1 -0
  54. package/dist/components/st-menu/st-menu-node.vue_vue_type_script_setup_true_lang.js +107 -0
  55. package/dist/components/st-menu/st-menu.vue.cjs +1 -0
  56. package/dist/components/st-menu/st-menu.vue.d.ts +26 -0
  57. package/dist/components/st-menu/st-menu.vue.js +5 -0
  58. package/dist/components/st-menu/st-menu.vue_vue_type_script_setup_true_lang.cjs +1 -0
  59. package/dist/components/st-menu/st-menu.vue_vue_type_script_setup_true_lang.js +86 -0
  60. package/dist/components/st-menu/types.d.ts +82 -0
  61. package/dist/components/st-menu.cjs +1 -0
  62. package/dist/components/st-menu.js +7 -0
  63. package/dist/components/st-popover/index.d.ts +243 -0
  64. package/dist/components/st-popover/st-popover.vue.cjs +1 -0
  65. package/dist/components/st-popover/st-popover.vue.d.ts +37 -0
  66. package/dist/components/st-popover/st-popover.vue.js +5 -0
  67. package/dist/components/st-popover/st-popover.vue_vue_type_script_setup_true_lang.cjs +1 -0
  68. package/dist/components/st-popover/st-popover.vue_vue_type_script_setup_true_lang.js +355 -0
  69. package/dist/components/st-popover/types.d.ts +103 -0
  70. package/dist/components/st-popover.cjs +1 -0
  71. package/dist/components/st-popover.js +6 -0
  72. package/dist/components/st-radio/index.d.ts +135 -0
  73. package/dist/components/st-radio/st-radio.vue.cjs +1 -0
  74. package/dist/components/st-radio/st-radio.vue.d.ts +28 -0
  75. package/dist/components/st-radio/st-radio.vue.js +5 -0
  76. package/dist/components/st-radio/st-radio.vue_vue_type_script_setup_true_lang.cjs +1 -0
  77. package/dist/components/st-radio/st-radio.vue_vue_type_script_setup_true_lang.js +88 -0
  78. package/dist/components/st-radio/types.d.ts +15 -0
  79. package/dist/components/st-radio-group/index.d.ts +180 -0
  80. package/dist/components/st-radio-group/st-radio-group.vue.cjs +1 -0
  81. package/dist/components/st-radio-group/st-radio-group.vue.d.ts +35 -0
  82. package/dist/components/st-radio-group/st-radio-group.vue.js +5 -0
  83. package/dist/components/st-radio-group/st-radio-group.vue_vue_type_script_setup_true_lang.cjs +1 -0
  84. package/dist/components/st-radio-group/st-radio-group.vue_vue_type_script_setup_true_lang.js +66 -0
  85. package/dist/components/st-radio-group/types.d.ts +43 -0
  86. package/dist/components/st-radio-group.cjs +1 -0
  87. package/dist/components/st-radio-group.js +6 -0
  88. package/dist/components/st-radio.cjs +1 -0
  89. package/dist/components/st-radio.js +6 -0
  90. package/dist/components/st-select/index.d.ts +306 -0
  91. package/dist/components/st-select/st-select.vue.cjs +1 -0
  92. package/dist/components/st-select/st-select.vue.d.ts +47 -0
  93. package/dist/components/st-select/st-select.vue.js +5 -0
  94. package/dist/components/st-select/st-select.vue_vue_type_script_setup_true_lang.cjs +1 -0
  95. package/dist/components/st-select/st-select.vue_vue_type_script_setup_true_lang.js +200 -0
  96. package/dist/components/st-select/types.d.ts +85 -0
  97. package/dist/components/st-select.cjs +1 -0
  98. package/dist/components/st-select.js +6 -0
  99. package/dist/components/st-sidebar/index.d.ts +63 -0
  100. package/dist/components/st-sidebar/st-sidebar.vue.cjs +1 -0
  101. package/dist/components/st-sidebar/st-sidebar.vue.d.ts +11 -0
  102. package/dist/components/st-sidebar/st-sidebar.vue.js +5 -0
  103. package/dist/components/st-sidebar/st-sidebar.vue_vue_type_script_setup_true_lang.cjs +1 -0
  104. package/dist/components/st-sidebar/st-sidebar.vue_vue_type_script_setup_true_lang.js +108 -0
  105. package/dist/components/st-sidebar/types.d.ts +56 -0
  106. package/dist/components/st-sidebar-item/index.d.ts +63 -0
  107. package/dist/components/st-sidebar-item/st-sidebar-item.vue.cjs +1 -0
  108. package/dist/components/st-sidebar-item/st-sidebar-item.vue.d.ts +11 -0
  109. package/dist/components/st-sidebar-item/st-sidebar-item.vue.js +5 -0
  110. package/dist/components/st-sidebar-item/st-sidebar-item.vue_vue_type_script_setup_true_lang.cjs +1 -0
  111. package/dist/components/st-sidebar-item/st-sidebar-item.vue_vue_type_script_setup_true_lang.js +38 -0
  112. package/dist/components/st-sidebar-item/types.d.ts +19 -0
  113. package/dist/components/st-sidebar-item.cjs +1 -0
  114. package/dist/components/st-sidebar-item.js +6 -0
  115. package/dist/components/st-sidebar.cjs +1 -0
  116. package/dist/components/st-sidebar.js +6 -0
  117. package/dist/components/st-splitter/index.d.ts +88 -0
  118. package/dist/components/st-splitter/st-splitter.vue.cjs +1 -0
  119. package/dist/components/st-splitter/st-splitter.vue.d.ts +16 -0
  120. package/dist/components/st-splitter/st-splitter.vue.js +5 -0
  121. package/dist/components/st-splitter/st-splitter.vue_vue_type_script_setup_true_lang.cjs +1 -0
  122. package/dist/components/st-splitter/st-splitter.vue_vue_type_script_setup_true_lang.js +29 -0
  123. package/dist/components/st-splitter/types.d.ts +192 -0
  124. package/dist/components/st-splitter/useSplitter.cjs +1 -0
  125. package/dist/components/st-splitter/useSplitter.d.ts +24 -0
  126. package/dist/components/st-splitter/useSplitter.js +129 -0
  127. package/dist/components/st-splitter-panel/index.d.ts +180 -0
  128. package/dist/components/st-splitter-panel/st-splitter-panel.vue.cjs +1 -0
  129. package/dist/components/st-splitter-panel/st-splitter-panel.vue.d.ts +33 -0
  130. package/dist/components/st-splitter-panel/st-splitter-panel.vue.js +5 -0
  131. package/dist/components/st-splitter-panel/st-splitter-panel.vue_vue_type_script_setup_true_lang.cjs +1 -0
  132. package/dist/components/st-splitter-panel/st-splitter-panel.vue_vue_type_script_setup_true_lang.js +164 -0
  133. package/dist/components/st-splitter-panel/types.d.ts +27 -0
  134. package/dist/components/st-splitter-panel.cjs +1 -0
  135. package/dist/components/st-splitter-panel.js +6 -0
  136. package/dist/components/st-splitter.cjs +1 -0
  137. package/dist/components/st-splitter.js +7 -0
  138. package/dist/components/st-toggle/index.d.ts +159 -0
  139. package/dist/components/st-toggle/st-toggle.vue.cjs +1 -0
  140. package/dist/components/st-toggle/st-toggle.vue.d.ts +25 -0
  141. package/dist/components/st-toggle/st-toggle.vue.js +5 -0
  142. package/dist/components/st-toggle/st-toggle.vue_vue_type_script_setup_true_lang.cjs +1 -0
  143. package/dist/components/st-toggle/st-toggle.vue_vue_type_script_setup_true_lang.js +62 -0
  144. package/dist/components/st-toggle/types.d.ts +38 -0
  145. package/dist/components/st-toggle.cjs +1 -0
  146. package/dist/components/st-toggle.js +6 -0
  147. package/dist/components/st-tooltip/index.d.ts +183 -0
  148. package/dist/components/st-tooltip/st-tooltip.vue.cjs +1 -0
  149. package/dist/components/st-tooltip/st-tooltip.vue.d.ts +29 -0
  150. package/dist/components/st-tooltip/st-tooltip.vue.js +5 -0
  151. package/dist/components/st-tooltip/st-tooltip.vue_vue_type_script_setup_true_lang.cjs +1 -0
  152. package/dist/components/st-tooltip/st-tooltip.vue_vue_type_script_setup_true_lang.js +71 -0
  153. package/dist/components/st-tooltip/types.d.ts +79 -0
  154. package/dist/components/st-tooltip.cjs +1 -0
  155. package/dist/components/st-tooltip.js +6 -0
  156. package/dist/components/st-tree/index.d.ts +114 -0
  157. package/dist/components/st-tree/st-tree-node.vue.cjs +1 -0
  158. package/dist/components/st-tree/st-tree-node.vue.d.ts +4 -0
  159. package/dist/components/st-tree/st-tree-node.vue.js +5 -0
  160. package/dist/components/st-tree/st-tree-node.vue_vue_type_script_setup_true_lang.cjs +1 -0
  161. package/dist/components/st-tree/st-tree-node.vue_vue_type_script_setup_true_lang.js +87 -0
  162. package/dist/components/st-tree/st-tree.vue.cjs +1 -0
  163. package/dist/components/st-tree/st-tree.vue.d.ts +50 -0
  164. package/dist/components/st-tree/st-tree.vue.js +5 -0
  165. package/dist/components/st-tree/st-tree.vue_vue_type_script_setup_true_lang.cjs +1 -0
  166. package/dist/components/st-tree/st-tree.vue_vue_type_script_setup_true_lang.js +59 -0
  167. package/dist/components/st-tree/types.d.ts +87 -0
  168. package/dist/components/st-tree.cjs +1 -0
  169. package/dist/components/st-tree.js +6 -0
  170. package/dist/components/types.d.ts +41 -0
  171. package/dist/index.cjs +1 -0
  172. package/dist/index.css +2 -0
  173. package/dist/index.d.ts +3005 -0
  174. package/dist/index.js +47 -0
  175. package/dist/utils/cn.cjs +1 -0
  176. package/dist/utils/cn.d.ts +11 -0
  177. package/dist/utils/cn.js +8 -0
  178. package/dist/utils/cva/index.cjs +1 -0
  179. package/dist/utils/cva/index.d.ts +9 -0
  180. package/dist/utils/cva/index.js +25 -0
  181. package/dist/utils/cva/types.d.ts +45 -0
  182. package/dist/utils/directive/index.cjs +1 -0
  183. package/dist/utils/directive/index.d.ts +4 -0
  184. package/dist/utils/directive/index.js +10 -0
  185. package/dist/utils/directive/intersection.cjs +1 -0
  186. package/dist/utils/directive/intersection.d.ts +6 -0
  187. package/dist/utils/directive/intersection.js +20 -0
  188. package/dist/utils/directive/interval.cjs +1 -0
  189. package/dist/utils/directive/interval.d.ts +6 -0
  190. package/dist/utils/directive/interval.js +14 -0
  191. package/dist/utils/directive/move.cjs +1 -0
  192. package/dist/utils/directive/move.d.ts +6 -0
  193. package/dist/utils/directive/move.js +42 -0
  194. package/dist/utils/directive/resize.cjs +1 -0
  195. package/dist/utils/directive/resize.d.ts +6 -0
  196. package/dist/utils/directive/resize.js +17 -0
  197. package/dist/utils/with-install.cjs +1 -0
  198. package/dist/utils/with-install.d.ts +4 -0
  199. package/dist/utils/with-install.js +10 -0
  200. package/package.json +87 -0
@@ -0,0 +1,243 @@
1
+ export declare const StPopover: {
2
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
3
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
4
+ "onUpdate:visible"?: (value: boolean) => any;
5
+ onVisibleChange?: (value: boolean) => any;
6
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "update:visible": (value: boolean) => any;
8
+ visibleChange: (value: boolean) => any;
9
+ }, import("vue").PublicProps, {
10
+ gap: number;
11
+ disabled: boolean;
12
+ trigger: import("./types.d.ts").PopoverTrigger;
13
+ placement: import("./types.d.ts").PopoverPlacement;
14
+ visible: boolean;
15
+ offset: number;
16
+ showArrow: boolean;
17
+ closeOnClickOutside: boolean;
18
+ closeOnEsc: boolean;
19
+ openDelay: number;
20
+ closeDelay: number;
21
+ triggerClass: string;
22
+ }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
23
+ P: {};
24
+ B: {};
25
+ D: {};
26
+ C: {};
27
+ M: {};
28
+ Defaults: {};
29
+ }, Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
30
+ "onUpdate:visible"?: (value: boolean) => any;
31
+ onVisibleChange?: (value: boolean) => any;
32
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, {
33
+ gap: number;
34
+ disabled: boolean;
35
+ trigger: import("./types.d.ts").PopoverTrigger;
36
+ placement: import("./types.d.ts").PopoverPlacement;
37
+ visible: boolean;
38
+ offset: number;
39
+ showArrow: boolean;
40
+ closeOnClickOutside: boolean;
41
+ closeOnEsc: boolean;
42
+ openDelay: number;
43
+ closeDelay: number;
44
+ triggerClass: string;
45
+ }>;
46
+ __isFragment?: never;
47
+ __isTeleport?: never;
48
+ __isSuspense?: never;
49
+ } & import("vue").ComponentOptionsBase<Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
50
+ "onUpdate:visible"?: (value: boolean) => any;
51
+ onVisibleChange?: (value: boolean) => any;
52
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
53
+ "update:visible": (value: boolean) => any;
54
+ visibleChange: (value: boolean) => any;
55
+ }, string, {
56
+ gap: number;
57
+ disabled: boolean;
58
+ trigger: import("./types.d.ts").PopoverTrigger;
59
+ placement: import("./types.d.ts").PopoverPlacement;
60
+ visible: boolean;
61
+ offset: number;
62
+ showArrow: boolean;
63
+ closeOnClickOutside: boolean;
64
+ closeOnEsc: boolean;
65
+ openDelay: number;
66
+ closeDelay: number;
67
+ triggerClass: string;
68
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
69
+ $slots: {
70
+ trigger?: (props: {}) => any;
71
+ } & {
72
+ default?: (props: {}) => any;
73
+ } & {
74
+ content?: (props: {}) => any;
75
+ };
76
+ })>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
77
+ [x: string]: any;
78
+ }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
79
+ P: {};
80
+ B: {};
81
+ D: {};
82
+ C: {};
83
+ M: {};
84
+ Defaults: {};
85
+ }, Readonly<import("vue").ExtractPropTypes<{
86
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
87
+ "onUpdate:visible"?: (value: boolean) => any;
88
+ onVisibleChange?: (value: boolean) => any;
89
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
90
+ "update:visible": (value: boolean) => any;
91
+ visibleChange: (value: boolean) => any;
92
+ }, import("vue").PublicProps, {
93
+ gap: number;
94
+ disabled: boolean;
95
+ trigger: import("./types.d.ts").PopoverTrigger;
96
+ placement: import("./types.d.ts").PopoverPlacement;
97
+ visible: boolean;
98
+ offset: number;
99
+ showArrow: boolean;
100
+ closeOnClickOutside: boolean;
101
+ closeOnEsc: boolean;
102
+ openDelay: number;
103
+ closeDelay: number;
104
+ triggerClass: string;
105
+ }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
106
+ P: {};
107
+ B: {};
108
+ D: {};
109
+ C: {};
110
+ M: {};
111
+ Defaults: {};
112
+ }, Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
113
+ "onUpdate:visible"?: (value: boolean) => any;
114
+ onVisibleChange?: (value: boolean) => any;
115
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, {
116
+ gap: number;
117
+ disabled: boolean;
118
+ trigger: import("./types.d.ts").PopoverTrigger;
119
+ placement: import("./types.d.ts").PopoverPlacement;
120
+ visible: boolean;
121
+ offset: number;
122
+ showArrow: boolean;
123
+ closeOnClickOutside: boolean;
124
+ closeOnEsc: boolean;
125
+ openDelay: number;
126
+ closeDelay: number;
127
+ triggerClass: string;
128
+ }>;
129
+ __isFragment?: never;
130
+ __isTeleport?: never;
131
+ __isSuspense?: never;
132
+ } & import("vue").ComponentOptionsBase<Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
133
+ "onUpdate:visible"?: (value: boolean) => any;
134
+ onVisibleChange?: (value: boolean) => any;
135
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
136
+ "update:visible": (value: boolean) => any;
137
+ visibleChange: (value: boolean) => any;
138
+ }, string, {
139
+ gap: number;
140
+ disabled: boolean;
141
+ trigger: import("./types.d.ts").PopoverTrigger;
142
+ placement: import("./types.d.ts").PopoverPlacement;
143
+ visible: boolean;
144
+ offset: number;
145
+ showArrow: boolean;
146
+ closeOnClickOutside: boolean;
147
+ closeOnEsc: boolean;
148
+ openDelay: number;
149
+ closeDelay: number;
150
+ triggerClass: string;
151
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
152
+ $slots: {
153
+ trigger?: (props: {}) => any;
154
+ } & {
155
+ default?: (props: {}) => any;
156
+ } & {
157
+ content?: (props: {}) => any;
158
+ };
159
+ })>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, {
160
+ [x: string]: any;
161
+ }>;
162
+ __isFragment?: never;
163
+ __isTeleport?: never;
164
+ __isSuspense?: never;
165
+ } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
166
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
167
+ "onUpdate:visible"?: (value: boolean) => any;
168
+ onVisibleChange?: (value: boolean) => any;
169
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
170
+ "update:visible": (value: boolean) => any;
171
+ visibleChange: (value: boolean) => any;
172
+ }, import("vue").PublicProps, {
173
+ gap: number;
174
+ disabled: boolean;
175
+ trigger: import("./types.d.ts").PopoverTrigger;
176
+ placement: import("./types.d.ts").PopoverPlacement;
177
+ visible: boolean;
178
+ offset: number;
179
+ showArrow: boolean;
180
+ closeOnClickOutside: boolean;
181
+ closeOnEsc: boolean;
182
+ openDelay: number;
183
+ closeDelay: number;
184
+ triggerClass: string;
185
+ }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
186
+ P: {};
187
+ B: {};
188
+ D: {};
189
+ C: {};
190
+ M: {};
191
+ Defaults: {};
192
+ }, Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
193
+ "onUpdate:visible"?: (value: boolean) => any;
194
+ onVisibleChange?: (value: boolean) => any;
195
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, {
196
+ gap: number;
197
+ disabled: boolean;
198
+ trigger: import("./types.d.ts").PopoverTrigger;
199
+ placement: import("./types.d.ts").PopoverPlacement;
200
+ visible: boolean;
201
+ offset: number;
202
+ showArrow: boolean;
203
+ closeOnClickOutside: boolean;
204
+ closeOnEsc: boolean;
205
+ openDelay: number;
206
+ closeDelay: number;
207
+ triggerClass: string;
208
+ }>;
209
+ __isFragment?: never;
210
+ __isTeleport?: never;
211
+ __isSuspense?: never;
212
+ } & import("vue").ComponentOptionsBase<Readonly<import("./types.d.ts").PopoverProps> & Readonly<{
213
+ "onUpdate:visible"?: (value: boolean) => any;
214
+ onVisibleChange?: (value: boolean) => any;
215
+ }>, import("./types.d.ts").PopoverExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
216
+ "update:visible": (value: boolean) => any;
217
+ visibleChange: (value: boolean) => any;
218
+ }, string, {
219
+ gap: number;
220
+ disabled: boolean;
221
+ trigger: import("./types.d.ts").PopoverTrigger;
222
+ placement: import("./types.d.ts").PopoverPlacement;
223
+ visible: boolean;
224
+ offset: number;
225
+ showArrow: boolean;
226
+ closeOnClickOutside: boolean;
227
+ closeOnEsc: boolean;
228
+ openDelay: number;
229
+ closeDelay: number;
230
+ triggerClass: string;
231
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
232
+ $slots: {
233
+ trigger?: (props: {}) => any;
234
+ } & {
235
+ default?: (props: {}) => any;
236
+ } & {
237
+ content?: (props: {}) => any;
238
+ };
239
+ })>>, {}, {}, import("vue").ComputedOptions, import("vue").MethodOptions, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
240
+ [x: string]: any;
241
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & (import("vue").VNodeProps & (import("vue").AllowedComponentProps & (import("vue").ComponentCustomProps & import("vue").Plugin)));
242
+ export default StPopover;
243
+ export type * from './types.d.ts';
@@ -0,0 +1 @@
1
+ var e=require("./st-popover.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
@@ -0,0 +1,37 @@
1
+ import type { PopoverExpose, PopoverPlacement, PopoverProps } from './types.d.ts';
2
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_19: {};
3
+ type __VLS_Slots = {} & {
4
+ trigger?: (props: typeof __VLS_1) => any;
5
+ } & {
6
+ default?: (props: typeof __VLS_3) => any;
7
+ } & {
8
+ content?: (props: typeof __VLS_19) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<PopoverProps, PopoverExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ "update:visible": (value: boolean) => any;
12
+ visibleChange: (value: boolean) => any;
13
+ }, string, import("vue").PublicProps, Readonly<PopoverProps> & Readonly<{
14
+ "onUpdate:visible"?: (value: boolean) => any;
15
+ onVisibleChange?: (value: boolean) => any;
16
+ }>, {
17
+ gap: number;
18
+ disabled: boolean;
19
+ trigger: import("./types.d.ts").PopoverTrigger;
20
+ placement: PopoverPlacement;
21
+ visible: boolean;
22
+ offset: number;
23
+ showArrow: boolean;
24
+ closeOnClickOutside: boolean;
25
+ closeOnEsc: boolean;
26
+ openDelay: number;
27
+ closeDelay: number;
28
+ triggerClass: string;
29
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
30
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
33
+ type __VLS_WithSlots<T, S> = T & {
34
+ new (): {
35
+ $slots: S;
36
+ };
37
+ };
@@ -0,0 +1,5 @@
1
+ import e from "./st-popover.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/st-popover/st-popover.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1 @@
1
+ const e=require("../../utils/cn.cjs");let t=require("vue");var n={class:`st-popover-content text-foreground`},r=(0,t.defineComponent)({inheritAttrs:!1,__name:`st-popover`,props:{trigger:{default:`hover`},placement:{default:`top-center`},disabled:{type:Boolean,default:!1},visible:{type:Boolean,default:void 0},offset:{default:void 0},gap:{default:0},showArrow:{type:Boolean,default:!0},closeOnClickOutside:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},openDelay:{default:150},closeDelay:{default:200},triggerClass:{default:``}},emits:[`update:visible`,`visibleChange`],setup(r,{expose:i,emit:a}){let o=(0,t.useAttrs)(),s=r,c=a,l=(0,t.ref)(null),u=(0,t.ref)(null),d=(0,t.ref)(null),f=(0,t.ref)(!1),p=(0,t.ref)(s.placement),m=(0,t.ref)({top:0,left:0}),h=(0,t.ref)(`bottom center`),g=(0,t.ref)(!1),_=(0,t.ref)(null),v=null,y=null,b=()=>{v&&=(clearTimeout(v),null),y&&=(clearTimeout(y),null)},x=(0,t.computed)(()=>s.visible!==void 0),S=(0,t.computed)({get:()=>x.value?s.visible:f.value,set:e=>{x.value?c(`update:visible`,e):f.value=e,c(`visibleChange`,e)}}),C=(0,t.computed)(()=>s.offset===void 0?s.gap:s.offset),w=(0,t.computed)(()=>e.cn(`st-popover`,`fixed`,`z-50`,`rounded-radius`,`bg-popover`,`shadow-lg`,`border`,`border-border`,`st-popover--${p.value}`,o.class)),T=(0,t.computed)(()=>{let e={position:`fixed`,top:`${m.value.top}px`,left:`${m.value.left}px`,transformOrigin:h.value};g.value||(e.left=`-9999px`,e.top=`-9999px`,e.opacity=`0`,e.visibility=`hidden`);let t=o.style;return t?{...t,...e}:e}),E=(0,t.computed)(()=>{let[t,n]=p.value.split(`-`),r=[`st-popover-arrow`,`absolute`,`w-2`,`h-2`,`bg-popover`,`border`,`border-border`,`transform`,`rotate-45`],i={top:[`-bottom-1`,`border-t-0`,`border-l-0`],bottom:[`-top-1`,`border-b-0`,`border-r-0`],left:[`-right-1`,`border-l-0`,`border-t-0`],right:[`-left-1`,`border-r-0`,`border-b-0`]},a;if(t===`top`||t===`bottom`)switch(n){case`left`:a=[`left-2`];break;case`center`:a=[`left-1/2`,`-translate-x-1/2`];break;case`right`:a=[`right-2`];break;default:a=[`left-1/2`,`-translate-x-1/2`]}else switch(n){case`top`:a=[`top-2`];break;case`center`:a=[`top-1/2`,`-translate-y-1/2`];break;case`bottom`:a=[`bottom-2`];break;default:a=[`top-1/2`,`-translate-y-1/2`]}return e.cn(r,i[t],a)}),D=e=>({"top-left":`bottom left`,"top-center":`bottom center`,"top-right":`bottom right`,"bottom-left":`top left`,"bottom-center":`top center`,"bottom-right":`top right`,"left-top":`center right`,"left-center":`center right`,"left-bottom":`center right`,"right-top":`center left`,"right-center":`center left`,"right-bottom":`center left`})[e],O=e=>{let[t,n]=e.split(`-`);return`${{top:`bottom`,bottom:`top`,left:`right`,right:`left`}[t]}-${n}`},k=(e,t)=>{let[n,r]=e.split(`-`);return t===`horizontal`?n===`top`||n===`bottom`?`${n}-${{left:`right`,center:`left`,right:`left`}[r]||r}`:`${n}-${{top:`bottom`,center:`top`,bottom:`top`}[r]||r}`:n===`top`||n===`bottom`?e:`${n}-${{top:`bottom`,center:`top`,bottom:`top`}[r]||r}`},A=(e,t=!1)=>{s.disabled||(b(),e&&(_.value=e),s.trigger===`hover`&&!t&&s.openDelay>0?v=setTimeout(()=>{S.value=!0},s.openDelay):S.value=!0)},j=(e=!1)=>{b(),s.trigger===`hover`&&!e&&s.closeDelay>0?y=setTimeout(()=>{S.value=!1},s.closeDelay):S.value=!1},M=()=>{S.value?j():A()},N=()=>{g.value=!1},P=(e,t,n,r)=>{let[i,a]=e.split(`-`),o=0,s=0;switch(i){case`top`:switch(o=t.top-n.height-r,a){case`left`:s=t.left;break;case`center`:s=t.left+(t.width-n.width)/2;break;case`right`:s=t.right-n.width;break}break;case`bottom`:switch(o=t.bottom+r,a){case`left`:s=t.left;break;case`center`:s=t.left+(t.width-n.width)/2;break;case`right`:s=t.right-n.width;break}break;case`left`:switch(s=t.left-n.width-r,a){case`top`:o=t.top;break;case`center`:o=t.top+(t.height-n.height)/2;break;case`bottom`:o=t.bottom-n.height;break}break;case`right`:switch(s=t.right+r,a){case`top`:o=t.top;break;case`center`:o=t.top+(t.height-n.height)/2;break;case`bottom`:o=t.bottom-n.height;break}break}return{top:o,left:s}},F=(e,t,n,r,i)=>{let[a]=e.split(`-`);switch(a){case`top`:return t.top<0;case`bottom`:return t.top+n.height>i;case`left`:return t.left<0;case`right`:return t.left+n.width>r;default:return!1}},I=(e,t,n)=>e.left<0||e.left+t.width>n,L=(e,t,n)=>e.top<0||e.top+t.height>n,R=(e,t,n,r)=>{if(!_.value)return;let i=_.value.clientX,a=_.value.clientY,o=i+r,s=a+r;o+n.width>e&&(o=i-n.width-r),s+n.height>t&&(s=a-n.height-r),o=Math.max(r,Math.min(o,e-n.width-r)),s=Math.max(r,Math.min(s,t-n.height-r)),m.value={top:s,left:o};let c=o<=i+r?`left`:`right`;h.value=`${s<=a+r?`top`:`bottom`} ${c}`,p.value=`bottom-left`},z=async()=>{if(await(0,t.nextTick)(),!u.value||!d.value)return;let e=d.value.getBoundingClientRect(),{innerWidth:n,innerHeight:r}=window,i=C.value;if(s.trigger===`contextmenu`&&_.value){R(n,r,e,i),g.value=!0;return}let a=u.value.getBoundingClientRect(),o=s.placement,c=P(o,a,e,i);if(F(o,c,e,n,r)){let t=O(o),s=P(t,a,e,i);F(t,s,e,n,r)||(o=t,c=s)}if(I(c,e,n)){let t=k(o,`horizontal`),r=P(t,a,e,i);I(r,e,n)||(o=t,c=r)}if(L(c,e,r)){let t=k(o,`vertical`),n=P(t,a,e,i);L(n,e,r)||(o=t,c=n)}let{top:l,left:f}=c;l=Math.max(0,Math.min(l,r-e.height)),f=Math.max(0,Math.min(f,n-e.width)),p.value=o,m.value={top:l,left:f},h.value=D(o),g.value=!0},B=e=>{s.trigger===`click`&&(e.stopPropagation(),M())},V=()=>{s.trigger===`hover`&&(b(),A())},H=()=>{s.trigger===`hover`&&j()},U=()=>{s.trigger===`focus`&&A()},W=()=>{s.trigger===`focus`&&j()},G=e=>{s.trigger===`contextmenu`&&(e.preventDefault(),e.stopPropagation(),_.value=e,A())},K=()=>{s.trigger===`hover`&&b()},q=()=>{s.trigger===`hover`&&j()},J=e=>{if(!s.closeOnClickOutside||!S.value)return;let t=e.target,n=u.value?.contains(t),r=d.value?.contains(t);!n&&!r&&j()},Y=e=>{if(!S.value)return;let t=e.target,n=u.value?.contains(t),r=d.value?.contains(t);n||r||j()},X=e=>{s.closeOnEsc&&e.key===`Escape`&&S.value&&j()},Z=e=>{if(!S.value)return;let t=e.target;d.value?.contains(t)||j()},Q=()=>{S.value&&j()};return(0,t.watch)(S,async e=>{e?(g.value=!1,await(0,t.nextTick)(),await z()):_.value=null}),(0,t.watch)(()=>s.placement,()=>{S.value&&z()}),(0,t.onMounted)(()=>{document.addEventListener(`click`,J,!0),document.addEventListener(`contextmenu`,Y,!0),document.addEventListener(`keydown`,X,!0),window.addEventListener(`resize`,Q,!0),document.addEventListener(`scroll`,Z,!0)}),(0,t.onBeforeUnmount)(()=>{b(),document.removeEventListener(`click`,J,!0),document.removeEventListener(`contextmenu`,Y,!0),document.removeEventListener(`keydown`,X,!0),window.removeEventListener(`resize`,Q,!0),document.removeEventListener(`scroll`,Z,!0)}),i({show:A,hide:j,toggle:M}),(i,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,{ref_key:`wrapperRef`,ref:l,class:`contents`},[(0,t.createElementVNode)(`div`,{ref_key:`triggerRef`,ref:u,class:(0,t.normalizeClass)((0,t.unref)(e.cn)(`st-popover-trigger inline-block`,s.triggerClass)),onBlur:W,onClick:B,onContextmenu:G,onFocus:U,onMouseenter:V,onMouseleave:H},[(0,t.renderSlot)(i.$slots,`trigger`,{},()=>[(0,t.renderSlot)(i.$slots,`default`)])],34)],512),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{"enter-active-class":`transition-[transform,opacity] duration-160 ease-[var(--animate-ease-menu)]`,"enter-from-class":`scale-94 opacity-0`,"leave-active-class":`transition-[transform,opacity] duration-100 ease`,"leave-to-class":`scale-96 opacity-0`,onAfterLeave:N},{default:(0,t.withCtx)(()=>[S.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`popoverRef`,ref:d,class:(0,t.normalizeClass)(w.value),style:(0,t.normalizeStyle)(T.value),onClick:a[0]||=(0,t.withModifiers)(()=>{},[`stop`]),onContextmenu:a[1]||=(0,t.withModifiers)(()=>{},[`prevent`]),onMouseenter:K,onMouseleave:q},[(0,t.createElementVNode)(`div`,n,[(0,t.renderSlot)(i.$slots,`content`)]),r.showArrow?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)(E.value)},null,2)):(0,t.createCommentVNode)(``,!0)],38)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],64))}});exports.default=r;
@@ -0,0 +1,355 @@
1
+ import { cn as e } from "../../utils/cn.js";
2
+ import { Fragment as t, Teleport as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, nextTick as d, normalizeClass as f, normalizeStyle as ee, onBeforeUnmount as te, onMounted as p, openBlock as m, ref as h, renderSlot as g, unref as ne, useAttrs as re, watch as _, withCtx as v, withModifiers as y } from "vue";
3
+ //#region src/components/st-popover/st-popover.vue?vue&type=script&setup=true&lang.ts
4
+ var ie = { class: "st-popover-content text-foreground" }, b = /*@__PURE__*/ u({
5
+ inheritAttrs: !1,
6
+ __name: "st-popover",
7
+ props: {
8
+ trigger: { default: "hover" },
9
+ placement: { default: "top-center" },
10
+ disabled: {
11
+ type: Boolean,
12
+ default: !1
13
+ },
14
+ visible: {
15
+ type: Boolean,
16
+ default: void 0
17
+ },
18
+ offset: { default: void 0 },
19
+ gap: { default: 0 },
20
+ showArrow: {
21
+ type: Boolean,
22
+ default: !0
23
+ },
24
+ closeOnClickOutside: {
25
+ type: Boolean,
26
+ default: !0
27
+ },
28
+ closeOnEsc: {
29
+ type: Boolean,
30
+ default: !0
31
+ },
32
+ openDelay: { default: 150 },
33
+ closeDelay: { default: 200 },
34
+ triggerClass: { default: "" }
35
+ },
36
+ emits: ["update:visible", "visibleChange"],
37
+ setup(u, { expose: b, emit: x }) {
38
+ let S = re(), C = u, w = x, T = h(null), E = h(null), D = h(null), O = h(!1), k = h(C.placement), A = h({
39
+ top: 0,
40
+ left: 0
41
+ }), j = h("bottom center"), M = h(!1), N = h(null), P = null, F = null, I = () => {
42
+ P &&= (clearTimeout(P), null), F &&= (clearTimeout(F), null);
43
+ }, L = i(() => C.visible !== void 0), R = i({
44
+ get: () => L.value ? C.visible : O.value,
45
+ set: (e) => {
46
+ L.value ? w("update:visible", e) : O.value = e, w("visibleChange", e);
47
+ }
48
+ }), ae = i(() => C.offset === void 0 ? C.gap : C.offset), oe = i(() => e("st-popover", "fixed", "z-50", "rounded-radius", "bg-popover", "shadow-lg", "border", "border-border", `st-popover--${k.value}`, S.class)), se = i(() => {
49
+ let e = {
50
+ position: "fixed",
51
+ top: `${A.value.top}px`,
52
+ left: `${A.value.left}px`,
53
+ transformOrigin: j.value
54
+ };
55
+ M.value || (e.left = "-9999px", e.top = "-9999px", e.opacity = "0", e.visibility = "hidden");
56
+ let t = S.style;
57
+ return t ? {
58
+ ...t,
59
+ ...e
60
+ } : e;
61
+ }), ce = i(() => {
62
+ let [t, n] = k.value.split("-"), r = [
63
+ "st-popover-arrow",
64
+ "absolute",
65
+ "w-2",
66
+ "h-2",
67
+ "bg-popover",
68
+ "border",
69
+ "border-border",
70
+ "transform",
71
+ "rotate-45"
72
+ ], i = {
73
+ top: [
74
+ "-bottom-1",
75
+ "border-t-0",
76
+ "border-l-0"
77
+ ],
78
+ bottom: [
79
+ "-top-1",
80
+ "border-b-0",
81
+ "border-r-0"
82
+ ],
83
+ left: [
84
+ "-right-1",
85
+ "border-l-0",
86
+ "border-t-0"
87
+ ],
88
+ right: [
89
+ "-left-1",
90
+ "border-r-0",
91
+ "border-b-0"
92
+ ]
93
+ }, a;
94
+ if (t === "top" || t === "bottom") switch (n) {
95
+ case "left":
96
+ a = ["left-2"];
97
+ break;
98
+ case "center":
99
+ a = ["left-1/2", "-translate-x-1/2"];
100
+ break;
101
+ case "right":
102
+ a = ["right-2"];
103
+ break;
104
+ default: a = ["left-1/2", "-translate-x-1/2"];
105
+ }
106
+ else switch (n) {
107
+ case "top":
108
+ a = ["top-2"];
109
+ break;
110
+ case "center":
111
+ a = ["top-1/2", "-translate-y-1/2"];
112
+ break;
113
+ case "bottom":
114
+ a = ["bottom-2"];
115
+ break;
116
+ default: a = ["top-1/2", "-translate-y-1/2"];
117
+ }
118
+ return e(r, i[t], a);
119
+ }), le = (e) => ({
120
+ "top-left": "bottom left",
121
+ "top-center": "bottom center",
122
+ "top-right": "bottom right",
123
+ "bottom-left": "top left",
124
+ "bottom-center": "top center",
125
+ "bottom-right": "top right",
126
+ "left-top": "center right",
127
+ "left-center": "center right",
128
+ "left-bottom": "center right",
129
+ "right-top": "center left",
130
+ "right-center": "center left",
131
+ "right-bottom": "center left"
132
+ })[e], ue = (e) => {
133
+ let [t, n] = e.split("-");
134
+ return `${{
135
+ top: "bottom",
136
+ bottom: "top",
137
+ left: "right",
138
+ right: "left"
139
+ }[t]}-${n}`;
140
+ }, z = (e, t) => {
141
+ let [n, r] = e.split("-");
142
+ return t === "horizontal" ? n === "top" || n === "bottom" ? `${n}-${{
143
+ left: "right",
144
+ center: "left",
145
+ right: "left"
146
+ }[r] || r}` : `${n}-${{
147
+ top: "bottom",
148
+ center: "top",
149
+ bottom: "top"
150
+ }[r] || r}` : n === "top" || n === "bottom" ? e : `${n}-${{
151
+ top: "bottom",
152
+ center: "top",
153
+ bottom: "top"
154
+ }[r] || r}`;
155
+ }, B = (e, t = !1) => {
156
+ C.disabled || (I(), e && (N.value = e), C.trigger === "hover" && !t && C.openDelay > 0 ? P = setTimeout(() => {
157
+ R.value = !0;
158
+ }, C.openDelay) : R.value = !0);
159
+ }, V = (e = !1) => {
160
+ I(), C.trigger === "hover" && !e && C.closeDelay > 0 ? F = setTimeout(() => {
161
+ R.value = !1;
162
+ }, C.closeDelay) : R.value = !1;
163
+ }, H = () => {
164
+ R.value ? V() : B();
165
+ }, de = () => {
166
+ M.value = !1;
167
+ }, U = (e, t, n, r) => {
168
+ let [i, a] = e.split("-"), o = 0, s = 0;
169
+ switch (i) {
170
+ case "top":
171
+ switch (o = t.top - n.height - r, a) {
172
+ case "left":
173
+ s = t.left;
174
+ break;
175
+ case "center":
176
+ s = t.left + (t.width - n.width) / 2;
177
+ break;
178
+ case "right":
179
+ s = t.right - n.width;
180
+ break;
181
+ }
182
+ break;
183
+ case "bottom":
184
+ switch (o = t.bottom + r, a) {
185
+ case "left":
186
+ s = t.left;
187
+ break;
188
+ case "center":
189
+ s = t.left + (t.width - n.width) / 2;
190
+ break;
191
+ case "right":
192
+ s = t.right - n.width;
193
+ break;
194
+ }
195
+ break;
196
+ case "left":
197
+ switch (s = t.left - n.width - r, a) {
198
+ case "top":
199
+ o = t.top;
200
+ break;
201
+ case "center":
202
+ o = t.top + (t.height - n.height) / 2;
203
+ break;
204
+ case "bottom":
205
+ o = t.bottom - n.height;
206
+ break;
207
+ }
208
+ break;
209
+ case "right":
210
+ switch (s = t.right + r, a) {
211
+ case "top":
212
+ o = t.top;
213
+ break;
214
+ case "center":
215
+ o = t.top + (t.height - n.height) / 2;
216
+ break;
217
+ case "bottom":
218
+ o = t.bottom - n.height;
219
+ break;
220
+ }
221
+ break;
222
+ }
223
+ return {
224
+ top: o,
225
+ left: s
226
+ };
227
+ }, W = (e, t, n, r, i) => {
228
+ let [a] = e.split("-");
229
+ switch (a) {
230
+ case "top": return t.top < 0;
231
+ case "bottom": return t.top + n.height > i;
232
+ case "left": return t.left < 0;
233
+ case "right": return t.left + n.width > r;
234
+ default: return !1;
235
+ }
236
+ }, G = (e, t, n) => e.left < 0 || e.left + t.width > n, K = (e, t, n) => e.top < 0 || e.top + t.height > n, fe = (e, t, n, r) => {
237
+ if (!N.value) return;
238
+ let i = N.value.clientX, a = N.value.clientY, o = i + r, s = a + r;
239
+ o + n.width > e && (o = i - n.width - r), s + n.height > t && (s = a - n.height - r), o = Math.max(r, Math.min(o, e - n.width - r)), s = Math.max(r, Math.min(s, t - n.height - r)), A.value = {
240
+ top: s,
241
+ left: o
242
+ };
243
+ let c = o <= i + r ? "left" : "right";
244
+ j.value = `${s <= a + r ? "top" : "bottom"} ${c}`, k.value = "bottom-left";
245
+ }, q = async () => {
246
+ if (await d(), !E.value || !D.value) return;
247
+ let e = D.value.getBoundingClientRect(), { innerWidth: t, innerHeight: n } = window, r = ae.value;
248
+ if (C.trigger === "contextmenu" && N.value) {
249
+ fe(t, n, e, r), M.value = !0;
250
+ return;
251
+ }
252
+ let i = E.value.getBoundingClientRect(), a = C.placement, o = U(a, i, e, r);
253
+ if (W(a, o, e, t, n)) {
254
+ let s = ue(a), c = U(s, i, e, r);
255
+ W(s, c, e, t, n) || (a = s, o = c);
256
+ }
257
+ if (G(o, e, t)) {
258
+ let n = z(a, "horizontal"), s = U(n, i, e, r);
259
+ G(s, e, t) || (a = n, o = s);
260
+ }
261
+ if (K(o, e, n)) {
262
+ let t = z(a, "vertical"), s = U(t, i, e, r);
263
+ K(s, e, n) || (a = t, o = s);
264
+ }
265
+ let { top: s, left: c } = o;
266
+ s = Math.max(0, Math.min(s, n - e.height)), c = Math.max(0, Math.min(c, t - e.width)), k.value = a, A.value = {
267
+ top: s,
268
+ left: c
269
+ }, j.value = le(a), M.value = !0;
270
+ }, pe = (e) => {
271
+ C.trigger === "click" && (e.stopPropagation(), H());
272
+ }, me = () => {
273
+ C.trigger === "hover" && (I(), B());
274
+ }, he = () => {
275
+ C.trigger === "hover" && V();
276
+ }, ge = () => {
277
+ C.trigger === "focus" && B();
278
+ }, _e = () => {
279
+ C.trigger === "focus" && V();
280
+ }, ve = (e) => {
281
+ C.trigger === "contextmenu" && (e.preventDefault(), e.stopPropagation(), N.value = e, B());
282
+ }, J = () => {
283
+ C.trigger === "hover" && I();
284
+ }, ye = () => {
285
+ C.trigger === "hover" && V();
286
+ }, Y = (e) => {
287
+ if (!C.closeOnClickOutside || !R.value) return;
288
+ let t = e.target, n = E.value?.contains(t), r = D.value?.contains(t);
289
+ !n && !r && V();
290
+ }, X = (e) => {
291
+ if (!R.value) return;
292
+ let t = e.target, n = E.value?.contains(t), r = D.value?.contains(t);
293
+ n || r || V();
294
+ }, Z = (e) => {
295
+ C.closeOnEsc && e.key === "Escape" && R.value && V();
296
+ }, Q = (e) => {
297
+ if (!R.value) return;
298
+ let t = e.target;
299
+ D.value?.contains(t) || V();
300
+ }, $ = () => {
301
+ R.value && V();
302
+ };
303
+ return _(R, async (e) => {
304
+ e ? (M.value = !1, await d(), await q()) : N.value = null;
305
+ }), _(() => C.placement, () => {
306
+ R.value && q();
307
+ }), p(() => {
308
+ document.addEventListener("click", Y, !0), document.addEventListener("contextmenu", X, !0), document.addEventListener("keydown", Z, !0), window.addEventListener("resize", $, !0), document.addEventListener("scroll", Q, !0);
309
+ }), te(() => {
310
+ I(), document.removeEventListener("click", Y, !0), document.removeEventListener("contextmenu", X, !0), document.removeEventListener("keydown", Z, !0), window.removeEventListener("resize", $, !0), document.removeEventListener("scroll", Q, !0);
311
+ }), b({
312
+ show: B,
313
+ hide: V,
314
+ toggle: H
315
+ }), (i, d) => (m(), s(t, null, [c("div", {
316
+ ref_key: "wrapperRef",
317
+ ref: T,
318
+ class: "contents"
319
+ }, [c("div", {
320
+ ref_key: "triggerRef",
321
+ ref: E,
322
+ class: f(ne(e)("st-popover-trigger inline-block", C.triggerClass)),
323
+ onBlur: _e,
324
+ onClick: pe,
325
+ onContextmenu: ve,
326
+ onFocus: ge,
327
+ onMouseenter: me,
328
+ onMouseleave: he
329
+ }, [g(i.$slots, "trigger", {}, () => [g(i.$slots, "default")])], 34)], 512), (m(), a(n, { to: "body" }, [l(r, {
330
+ "enter-active-class": "transition-[transform,opacity] duration-160 ease-[var(--animate-ease-menu)]",
331
+ "enter-from-class": "scale-94 opacity-0",
332
+ "leave-active-class": "transition-[transform,opacity] duration-100 ease",
333
+ "leave-to-class": "scale-96 opacity-0",
334
+ onAfterLeave: de
335
+ }, {
336
+ default: v(() => [R.value ? (m(), s("div", {
337
+ key: 0,
338
+ ref_key: "popoverRef",
339
+ ref: D,
340
+ class: f(oe.value),
341
+ style: ee(se.value),
342
+ onClick: d[0] ||= y(() => {}, ["stop"]),
343
+ onContextmenu: d[1] ||= y(() => {}, ["prevent"]),
344
+ onMouseenter: J,
345
+ onMouseleave: ye
346
+ }, [c("div", ie, [g(i.$slots, "content")]), u.showArrow ? (m(), s("div", {
347
+ key: 0,
348
+ class: f(ce.value)
349
+ }, null, 2)) : o("", !0)], 38)) : o("", !0)]),
350
+ _: 3
351
+ })]))], 64));
352
+ }
353
+ });
354
+ //#endregion
355
+ export { b as default };