@teammodlr/ui-kit 2.1.39 → 2.1.43

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 (268) hide show
  1. package/env.d.ts +1 -1
  2. package/lib/components/checkbox/Checkbox.vue.d.ts +1 -0
  3. package/lib/components/checkbox/style/Checkbox.css.d.ts +1 -0
  4. package/lib/index.cjs.js +10 -10
  5. package/lib/index.es.js +1950 -1932
  6. package/lib/nuxt.js +35 -35
  7. package/lib/nuxt.plugin.js +8 -8
  8. package/lib/style.css +1 -1
  9. package/package.json +89 -89
  10. package/src/__storybook__/argTypes.ts +53 -53
  11. package/src/__storybook__/createStory.ts +15 -15
  12. package/src/__storybook__/index.ts +2 -2
  13. package/src/call.ts +34 -34
  14. package/src/components/avatar/Avatar.vue +110 -110
  15. package/src/components/avatar/examples/basic.vue +6 -6
  16. package/src/components/avatar/examples/custom-size.vue +7 -7
  17. package/src/components/avatar/examples/index.ts +5 -5
  18. package/src/components/avatar/examples/sizes.vue +33 -33
  19. package/src/components/avatar/examples/slots.vue +8 -8
  20. package/src/components/avatar/examples/variants.vue +18 -18
  21. package/src/components/avatar/style/Avatar.css.ts +92 -92
  22. package/src/components/avatar/style/index.ts +1 -1
  23. package/src/components/avatargroup/AvatarGroup.vue +72 -72
  24. package/src/components/avatargroup/examples/basic.vue +37 -37
  25. package/src/components/avatargroup/examples/index.ts +1 -1
  26. package/src/components/avatargroup/style/AvatarGroup.css.ts +26 -26
  27. package/src/components/avatargroup/style/index.ts +1 -1
  28. package/src/components/avatargroup/symbol.ts +17 -17
  29. package/src/components/badge/Badge.vue +43 -43
  30. package/src/components/badge/examples/basic.vue +10 -10
  31. package/src/components/badge/examples/index.ts +1 -1
  32. package/src/components/badge/style/Badge.css.ts +135 -135
  33. package/src/components/badge/style/index.ts +1 -1
  34. package/src/components/breadcrumb/Breadcrumb.vue +54 -54
  35. package/src/components/breadcrumb/BreadcrumbItem.vue +72 -72
  36. package/src/components/breadcrumb/examples/basic.vue +7 -7
  37. package/src/components/breadcrumb/examples/index.ts +1 -1
  38. package/src/components/breadcrumb/style/Breadcrumb.css.ts +40 -40
  39. package/src/components/breadcrumb/style/index.ts +1 -1
  40. package/src/components/breadcrumb/symbol.ts +18 -18
  41. package/src/components/button/Button.vue +203 -203
  42. package/src/components/button/examples/basic.vue +3 -3
  43. package/src/components/button/examples/disabled.vue +3 -3
  44. package/src/components/button/examples/icon-left.vue +12 -12
  45. package/src/components/button/examples/icon.vue +9 -9
  46. package/src/components/button/examples/index.ts +9 -9
  47. package/src/components/button/examples/link.vue +3 -3
  48. package/src/components/button/examples/rounded.vue +7 -7
  49. package/src/components/button/examples/size.vue +7 -7
  50. package/src/components/button/examples/variants-secondary.vue +10 -10
  51. package/src/components/button/examples/variants.vue +10 -10
  52. package/src/components/button/style/Button.css.ts +695 -695
  53. package/src/components/button/style/index.ts +1 -1
  54. package/src/components/buttongroup/ButtonGroup.vue +36 -36
  55. package/src/components/buttongroup/examples/basic.vue +9 -9
  56. package/src/components/buttongroup/examples/icon-group.vue +21 -21
  57. package/src/components/buttongroup/examples/index.ts +2 -2
  58. package/src/components/buttongroup/style/ButtonGroup.css.ts +42 -42
  59. package/src/components/buttongroup/style/index.ts +1 -1
  60. package/src/components/buttongroup/symbol.ts +9 -9
  61. package/src/components/checkbox/Checkbox.vue +149 -145
  62. package/src/components/checkbox/examples/basic.vue +9 -9
  63. package/src/components/checkbox/examples/index.ts +2 -2
  64. package/src/components/checkbox/examples/slot.vue +14 -11
  65. package/src/components/checkbox/style/Checkbox.css.ts +178 -161
  66. package/src/components/checkbox/style/index.ts +1 -1
  67. package/src/components/colorpicker/ColorPicker.vue +333 -333
  68. package/src/components/colorpicker/examples/basic.vue +2 -2
  69. package/src/components/colorpicker/examples/index.ts +1 -1
  70. package/src/components/colorpicker/style/ColorPicker.css.ts +127 -127
  71. package/src/components/colorpicker/style/index.ts +1 -1
  72. package/src/components/colorpicker/utils.ts +206 -206
  73. package/src/components/confirm/Confirm.vue +65 -65
  74. package/src/components/confirm/ConfirmProvider.vue +83 -83
  75. package/src/components/confirm/examples/basic.vue +48 -48
  76. package/src/components/confirm/examples/index.ts +1 -1
  77. package/src/components/confirm/examples/wrapper.vue +9 -9
  78. package/src/components/confirm/props.ts +24 -24
  79. package/src/components/confirm/providerProps.ts +10 -10
  80. package/src/components/confirm/types.ts +33 -33
  81. package/src/components/confirm/useConfirm.ts +14 -14
  82. package/src/components/dialog/Dialog.vue +118 -118
  83. package/src/components/dialog/examples/basic.vue +16 -16
  84. package/src/components/dialog/examples/index.ts +1 -1
  85. package/src/components/dialog/style/Dialog.css.ts +100 -100
  86. package/src/components/dialog/style/index.ts +1 -1
  87. package/src/components/dropdown/Dropdown.vue +308 -308
  88. package/src/components/dropdown/DropdownHeading.vue +23 -23
  89. package/src/components/dropdown/DropdownItem.vue +151 -151
  90. package/src/components/dropdown/DropdownList.vue +20 -20
  91. package/src/components/dropdown/DropdownSeperator.vue +22 -22
  92. package/src/components/dropdown/DropdownWrapper.vue +18 -18
  93. package/src/components/dropdown/examples/basic.vue +119 -119
  94. package/src/components/dropdown/examples/context.vue +71 -71
  95. package/src/components/dropdown/examples/index.ts +3 -3
  96. package/src/components/dropdown/hooks.ts +30 -30
  97. package/src/components/dropdown/style/Dropdown.css.ts +158 -158
  98. package/src/components/dropdown/style/index.ts +1 -1
  99. package/src/components/dropdown/symbol.ts +9 -9
  100. package/src/components/form/Form.vue +153 -153
  101. package/src/components/form/examples/basic.vue +75 -75
  102. package/src/components/form/examples/index.ts +1 -1
  103. package/src/components/form/style/Form.css.ts +28 -28
  104. package/src/components/form/style/index.ts +2 -2
  105. package/src/components/form/symbol.ts +16 -16
  106. package/src/components/image/Image.vue +71 -71
  107. package/src/components/image/examples/basic.vue +5 -5
  108. package/src/components/image/examples/index.ts +1 -1
  109. package/src/components/index.ts +47 -47
  110. package/src/components/input/Input.vue +233 -233
  111. package/src/components/input/examples/basic.vue +21 -21
  112. package/src/components/input/examples/index.ts +6 -6
  113. package/src/components/input/examples/left-icon.vue +9 -9
  114. package/src/components/input/examples/prefix.vue +5 -5
  115. package/src/components/input/examples/right-icon.vue +9 -9
  116. package/src/components/input/examples/sizes.vue +9 -9
  117. package/src/components/input/examples/suffix.vue +7 -7
  118. package/src/components/input/style/Input.css.ts +294 -294
  119. package/src/components/input/style/index.ts +1 -1
  120. package/src/components/link/Link.vue +53 -53
  121. package/src/components/link/examples/basic.vue +3 -3
  122. package/src/components/link/examples/index.ts +1 -1
  123. package/src/components/messageprovider/Message.vue +135 -135
  124. package/src/components/messageprovider/MessageProvider.vue +156 -156
  125. package/src/components/messageprovider/examples/basic.vue +70 -70
  126. package/src/components/messageprovider/examples/index.ts +2 -2
  127. package/src/components/messageprovider/examples/update.vue +34 -34
  128. package/src/components/messageprovider/examples/wrapper.vue +9 -9
  129. package/src/components/messageprovider/style/Message.css.ts +111 -111
  130. package/src/components/messageprovider/style/index.ts +1 -1
  131. package/src/components/messageprovider/types.ts +56 -56
  132. package/src/components/messageprovider/useMessage.ts +14 -14
  133. package/src/components/modal/Modal.vue +310 -310
  134. package/src/components/modal/examples/basic.vue +80 -80
  135. package/src/components/modal/examples/index.ts +3 -3
  136. package/src/components/modal/examples/modal-form.vue +99 -99
  137. package/src/components/modal/examples/sidebar.vue +79 -79
  138. package/src/components/modal/style/Modal.css.ts +318 -318
  139. package/src/components/modal/style/index.ts +1 -1
  140. package/src/components/pagination/Pagination.vue +296 -296
  141. package/src/components/pagination/examples/basic.vue +17 -17
  142. package/src/components/pagination/examples/index.ts +1 -1
  143. package/src/components/pagination/style/Pagination.css.ts +93 -93
  144. package/src/components/pagination/style/index.ts +1 -1
  145. package/src/components/radio/Radio.vue +136 -136
  146. package/src/components/radio/examples/basic.vue +8 -8
  147. package/src/components/radio/examples/group.vue +15 -15
  148. package/src/components/radio/examples/index.ts +2 -2
  149. package/src/components/radio/style/Checkbox.css.ts +130 -130
  150. package/src/components/radio/style/index.ts +1 -1
  151. package/src/components/radiobutton/RadioButton.vue +131 -131
  152. package/src/components/radiobutton/style/RadioButton.css.ts +189 -189
  153. package/src/components/radiobutton/style/index.ts +1 -1
  154. package/src/components/radiobuttongroup/RadioButtonGroup.vue +74 -74
  155. package/src/components/radiobuttongroup/examples/basic.vue +16 -16
  156. package/src/components/radiobuttongroup/examples/index.ts +1 -1
  157. package/src/components/radiobuttongroup/style/RadioButtonGroup.css.ts +37 -37
  158. package/src/components/radiobuttongroup/style/index.ts +1 -1
  159. package/src/components/radiobuttongroup/symbol.ts +12 -12
  160. package/src/components/renderer/examlpes/basic.vue +23 -23
  161. package/src/components/renderer/examlpes/index.ts +1 -1
  162. package/src/components/renderer/props.ts +14 -14
  163. package/src/components/renderer/renderer.ts +16 -16
  164. package/src/components/select/Select.vue +781 -781
  165. package/src/components/select/examples/basic.vue +21 -21
  166. package/src/components/select/examples/index.ts +3 -3
  167. package/src/components/select/examples/multiple.vue +21 -21
  168. package/src/components/select/examples/searchable.vue +20 -20
  169. package/src/components/select/style/Select.css.ts +368 -368
  170. package/src/components/select/style/index.ts +1 -1
  171. package/src/components/skeleton/Skeleton.vue +55 -55
  172. package/src/components/skeleton/examples/basic.vue +3 -3
  173. package/src/components/skeleton/examples/index.ts +2 -2
  174. package/src/components/skeleton/examples/post.vue +8 -8
  175. package/src/components/skeleton/style/Skeleton.css.ts +72 -72
  176. package/src/components/skeleton/style/index.ts +2 -2
  177. package/src/components/slider/Slider.vue +76 -76
  178. package/src/components/slider/style/Slider.css.ts +50 -50
  179. package/src/components/slider/style/index.ts +1 -1
  180. package/src/components/switch/Switch.vue +132 -132
  181. package/src/components/switch/examples/basic.vue +9 -9
  182. package/src/components/switch/examples/index.ts +2 -2
  183. package/src/components/switch/examples/slot.vue +11 -11
  184. package/src/components/switch/style/Switch.css.ts +135 -135
  185. package/src/components/switch/style/index.ts +1 -1
  186. package/src/components/tab/Tab.css +113 -113
  187. package/src/components/tab/Tab.vue +98 -98
  188. package/src/components/tab/TabGroup.vue +90 -90
  189. package/src/components/tab/examples/basic.vue +19 -19
  190. package/src/components/tab/examples/index.ts +2 -2
  191. package/src/components/tab/examples/vertical.vue +19 -19
  192. package/src/components/table/Table.vue +198 -198
  193. package/src/components/table/TableBody.vue +13 -13
  194. package/src/components/table/TableCell.vue +13 -13
  195. package/src/components/table/TableHead.vue +46 -46
  196. package/src/components/table/TableHeadRow.vue +15 -15
  197. package/src/components/table/TableRow.vue +19 -19
  198. package/src/components/table/examples/basic.vue +61 -61
  199. package/src/components/table/examples/empty.vue +44 -44
  200. package/src/components/table/examples/index.ts +3 -3
  201. package/src/components/table/examples/selected.vue +68 -68
  202. package/src/components/table/style/Table.css.ts +62 -62
  203. package/src/components/table/style/index.ts +1 -1
  204. package/src/components/table/types/index.ts +6 -6
  205. package/src/components/tag/Tag.vue +72 -72
  206. package/src/components/tag/examples/basic.vue +5 -5
  207. package/src/components/tag/examples/index.ts +1 -1
  208. package/src/components/tag/style/Tag.css.ts +83 -83
  209. package/src/components/tag/style/index.ts +1 -1
  210. package/src/components/textarea/Textarea.vue +180 -180
  211. package/src/components/textarea/examples/basic.vue +8 -8
  212. package/src/components/textarea/examples/index.ts +1 -1
  213. package/src/components/textarea/style/Textarea.css.ts +191 -191
  214. package/src/components/textarea/style/index.ts +1 -1
  215. package/src/components/tooltip/Tooltip.vue +196 -196
  216. package/src/components/tooltip/examples/basic.vue +5 -5
  217. package/src/components/tooltip/examples/index.ts +2 -2
  218. package/src/components/tooltip/examples/placement.vue +9 -9
  219. package/src/components/tooltip/style/Tooltip.css.ts +90 -90
  220. package/src/components/tooltip/style/index.ts +1 -1
  221. package/src/components/transfer/Transfer.vue +145 -145
  222. package/src/components/transfer/examples/basic.vue +21 -21
  223. package/src/components/transfer/examples/index.ts +1 -1
  224. package/src/components/transfer/style/Transfer.css.ts +81 -81
  225. package/src/components/transfer/style/index.ts +1 -1
  226. package/src/components/tree/Tree.vue +138 -138
  227. package/src/components/tree/TreeNode.vue +109 -109
  228. package/src/components/tree/TreeNodeToggle.vue +48 -48
  229. package/src/components/tree/examples/basic.vue +458 -458
  230. package/src/components/tree/examples/index.ts +1 -1
  231. package/src/components/tree/props.ts +97 -97
  232. package/src/components/tree/style/Tree.css.ts +75 -75
  233. package/src/components/tree/style/index.ts +1 -1
  234. package/src/components/tree/types.ts +103 -103
  235. package/src/components/virtualscroll/VirtualScroll.css +13 -13
  236. package/src/components/virtualscroll/VirtualScroll.vue +166 -166
  237. package/src/components/virtualscroll/examples/basic.vue +31 -31
  238. package/src/components/virtualscroll/examples/index.ts +1 -1
  239. package/src/components/virtualscroll/style/VirtualScroll.css.ts +17 -17
  240. package/src/components/virtualscroll/style/index.ts +1 -1
  241. package/src/composables/element.ts +13 -13
  242. package/src/composables/index.ts +4 -4
  243. package/src/composables/useCachedUid.ts +49 -49
  244. package/src/composables/useEventListener.ts +19 -19
  245. package/src/composables/useInput.ts +151 -151
  246. package/src/composables/useInteractive.ts +19 -19
  247. package/src/composables/useIsServer.ts +7 -7
  248. package/src/composables/useMergedState.ts +18 -18
  249. package/src/composables/useMount.ts +43 -43
  250. package/src/composables/usePopper.ts +215 -215
  251. package/src/composables/useZIndex.ts +33 -33
  252. package/src/create.ts +38 -38
  253. package/src/css/components.css +16 -16
  254. package/src/css/index.css +4 -4
  255. package/src/css/transitions.css +40 -40
  256. package/src/css/variables.css +80 -80
  257. package/src/examples/cards/sidebar.vue +262 -262
  258. package/src/examples/modal/modal.vue +52 -52
  259. package/src/exports/nuxt.js +35 -35
  260. package/src/exports/nuxt.plugin.js +8 -8
  261. package/src/index.ts +5 -5
  262. package/src/install.ts +8 -8
  263. package/src/shims-vue.d.ts +6 -6
  264. package/src/styles/theme.css.ts +181 -181
  265. package/src/styles/transitions.css.ts +97 -97
  266. package/src/types/props.ts +19 -19
  267. package/src/utils/injection.ts +5 -5
  268. package/volar.d.ts +16 -16
@@ -1,196 +1,196 @@
1
- <template>
2
- <span
3
- v-bind="$attrs"
4
- style="display: inline-flex"
5
- @mouseenter="show"
6
- @mouseleave="hide"
7
- ref="wrapper">
8
- <span ref="reference">
9
- <slot />
10
- </span>
11
-
12
- <Teleport :to="transferTo">
13
- <Transition
14
- :enter-active-class="fade.enterActive"
15
- :leave-active-class="fade.leaveActive"
16
- :enter-from-class="fade.enterFrom"
17
- :leave-to-class="fade.leaveTo">
18
- <div
19
- role="tooltip"
20
- :class="computedClasses"
21
- ref="popper"
22
- v-if="isOpen"
23
- :style="{ zIndex: zIndex }">
24
- <slot :text="text" name="content">
25
- {{ text }}
26
- </slot>
27
- </div>
28
- </Transition>
29
- </Teleport>
30
- </span>
31
- </template>
32
-
33
- <script lang="ts">
34
- import {
35
- defineComponent,
36
- ref,
37
- toRef,
38
- type PropType,
39
- computed,
40
- watch,
41
- onUnmounted
42
- } from 'vue';
43
- import {
44
- type Placement,
45
- placementWhileList,
46
- usePopper
47
- } from '../../composables/usePopper';
48
- import { fade } from '../../styles/transitions.css';
49
- import * as style from './style';
50
- import { useZIndex } from '../../composables/useZIndex';
51
-
52
- export default defineComponent({
53
- name: 'MTooltip',
54
- props: {
55
- text: {
56
- type: String,
57
- default: ''
58
- },
59
- placement: {
60
- type: String as PropType<Placement>,
61
- default: 'top',
62
- validator: (value: Placement) => placementWhileList.includes(value)
63
- },
64
- transitionName: {
65
- type: String,
66
- default: 'scale'
67
- },
68
- reverse: {
69
- type: Boolean,
70
- default: false
71
- },
72
- transfer: {
73
- type: Boolean,
74
- default: false
75
- },
76
- zIndex: {
77
- type: Number
78
- },
79
- delay: {
80
- type: Number,
81
- default: 500
82
- }
83
- },
84
- setup(props) {
85
- const { nextZIndex } = useZIndex();
86
- const placement = toRef(props, 'placement');
87
- // @ts-ignore
88
- const transfer = toRef(props, 'transfer');
89
- const wrapper = ref<HTMLElement | null>(null);
90
- const reference = ref<HTMLElement | null>(null);
91
- const isOpen = ref(false);
92
- const zIndex = ref(props.zIndex ?? nextZIndex());
93
- const timeout = ref<ReturnType<typeof setTimeout> | null>(null);
94
- const offset = computed(() => {
95
- switch (placement.value) {
96
- case 'top':
97
- return [0, 8];
98
- case 'bottom':
99
- return [0, -8];
100
- case 'left':
101
- return [8, 0];
102
- case 'right':
103
- return [-8, 0];
104
- default:
105
- return [0, 0];
106
- }
107
- });
108
-
109
- const { popper, transferTo, updatePopper } = usePopper({
110
- placement,
111
- transfer,
112
- reference,
113
- wrapper,
114
- // @ts-ignore
115
- offset: offset.value
116
- });
117
-
118
- const computedClasses = computed(() => {
119
- return [
120
- style.tooltip,
121
- {
122
- [style.reverse]: props.reverse
123
- }
124
- ];
125
- });
126
-
127
- watch(
128
- () => isOpen.value,
129
- (value: boolean) => {
130
- if (value) {
131
- updatePopper();
132
- }
133
- }
134
- );
135
-
136
- const toggle = () => {
137
- if (timeout.value) {
138
- clearTimeout(timeout.value);
139
- }
140
-
141
- if (props.delay && !isOpen.value) {
142
- timeout.value = setTimeout(() => {
143
- isOpen.value = !isOpen.value;
144
- }, props.delay);
145
- } else {
146
- isOpen.value = !isOpen.value;
147
- }
148
- };
149
-
150
- function show() {
151
- if (timeout.value) {
152
- clearTimeout(timeout.value);
153
- }
154
-
155
- if (props.delay) {
156
- timeout.value = setTimeout(() => {
157
- isOpen.value = true;
158
- }, props.delay);
159
- } else {
160
- isOpen.value = true;
161
- }
162
- }
163
-
164
- function hide() {
165
- if (timeout.value) {
166
- clearTimeout(timeout.value);
167
- }
168
-
169
- isOpen.value = false;
170
- }
171
-
172
- onUnmounted(() => {
173
- isOpen.value = false;
174
- if (timeout.value) {
175
- clearTimeout(timeout.value);
176
- }
177
- timeout.value = null;
178
- });
179
-
180
- return {
181
- reference,
182
- popper,
183
- transferTo,
184
- isOpen,
185
- show,
186
- hide,
187
- computedClasses,
188
- zIndex,
189
- style,
190
- fade
191
- };
192
- }
193
- });
194
- </script>
195
-
196
- <style scoped></style>
1
+ <template>
2
+ <span
3
+ v-bind="$attrs"
4
+ style="display: inline-flex"
5
+ @mouseenter="show"
6
+ @mouseleave="hide"
7
+ ref="wrapper">
8
+ <span ref="reference">
9
+ <slot />
10
+ </span>
11
+
12
+ <Teleport :to="transferTo">
13
+ <Transition
14
+ :enter-active-class="fade.enterActive"
15
+ :leave-active-class="fade.leaveActive"
16
+ :enter-from-class="fade.enterFrom"
17
+ :leave-to-class="fade.leaveTo">
18
+ <div
19
+ role="tooltip"
20
+ :class="computedClasses"
21
+ ref="popper"
22
+ v-if="isOpen"
23
+ :style="{ zIndex: zIndex }">
24
+ <slot :html="text" name="content">
25
+ <span v-html="text" />
26
+ </slot>
27
+ </div>
28
+ </Transition>
29
+ </Teleport>
30
+ </span>
31
+ </template>
32
+
33
+ <script lang="ts">
34
+ import {
35
+ defineComponent,
36
+ ref,
37
+ toRef,
38
+ type PropType,
39
+ computed,
40
+ watch,
41
+ onUnmounted
42
+ } from 'vue';
43
+ import {
44
+ type Placement,
45
+ placementWhileList,
46
+ usePopper
47
+ } from '../../composables/usePopper';
48
+ import { fade } from '../../styles/transitions.css';
49
+ import * as style from './style';
50
+ import { useZIndex } from '../../composables/useZIndex';
51
+
52
+ export default defineComponent({
53
+ name: 'MTooltip',
54
+ props: {
55
+ text: {
56
+ type: String,
57
+ default: ''
58
+ },
59
+ placement: {
60
+ type: String as PropType<Placement>,
61
+ default: 'top',
62
+ validator: (value: Placement) => placementWhileList.includes(value)
63
+ },
64
+ transitionName: {
65
+ type: String,
66
+ default: 'scale'
67
+ },
68
+ reverse: {
69
+ type: Boolean,
70
+ default: false
71
+ },
72
+ transfer: {
73
+ type: Boolean,
74
+ default: false
75
+ },
76
+ zIndex: {
77
+ type: Number
78
+ },
79
+ delay: {
80
+ type: Number,
81
+ default: 500
82
+ }
83
+ },
84
+ setup(props) {
85
+ const { nextZIndex } = useZIndex();
86
+ const placement = toRef(props, 'placement');
87
+ // @ts-ignore
88
+ const transfer = toRef(props, 'transfer');
89
+ const wrapper = ref<HTMLElement | null>(null);
90
+ const reference = ref<HTMLElement | null>(null);
91
+ const isOpen = ref(false);
92
+ const zIndex = ref(props.zIndex ?? nextZIndex());
93
+ const timeout = ref<ReturnType<typeof setTimeout> | null>(null);
94
+ const offset = computed(() => {
95
+ switch (placement.value) {
96
+ case 'top':
97
+ return [0, 8];
98
+ case 'bottom':
99
+ return [0, -8];
100
+ case 'left':
101
+ return [8, 0];
102
+ case 'right':
103
+ return [-8, 0];
104
+ default:
105
+ return [0, 0];
106
+ }
107
+ });
108
+
109
+ const { popper, transferTo, updatePopper } = usePopper({
110
+ placement,
111
+ transfer,
112
+ reference,
113
+ wrapper,
114
+ // @ts-ignore
115
+ offset: offset.value
116
+ });
117
+
118
+ const computedClasses = computed(() => {
119
+ return [
120
+ style.tooltip,
121
+ {
122
+ [style.reverse]: props.reverse
123
+ }
124
+ ];
125
+ });
126
+
127
+ watch(
128
+ () => isOpen.value,
129
+ (value: boolean) => {
130
+ if (value) {
131
+ updatePopper();
132
+ }
133
+ }
134
+ );
135
+
136
+ const toggle = () => {
137
+ if (timeout.value) {
138
+ clearTimeout(timeout.value);
139
+ }
140
+
141
+ if (props.delay && !isOpen.value) {
142
+ timeout.value = setTimeout(() => {
143
+ isOpen.value = !isOpen.value;
144
+ }, props.delay);
145
+ } else {
146
+ isOpen.value = !isOpen.value;
147
+ }
148
+ };
149
+
150
+ function show() {
151
+ if (timeout.value) {
152
+ clearTimeout(timeout.value);
153
+ }
154
+
155
+ if (props.delay) {
156
+ timeout.value = setTimeout(() => {
157
+ isOpen.value = true;
158
+ }, props.delay);
159
+ } else {
160
+ isOpen.value = true;
161
+ }
162
+ }
163
+
164
+ function hide() {
165
+ if (timeout.value) {
166
+ clearTimeout(timeout.value);
167
+ }
168
+
169
+ isOpen.value = false;
170
+ }
171
+
172
+ onUnmounted(() => {
173
+ isOpen.value = false;
174
+ if (timeout.value) {
175
+ clearTimeout(timeout.value);
176
+ }
177
+ timeout.value = null;
178
+ });
179
+
180
+ return {
181
+ reference,
182
+ popper,
183
+ transferTo,
184
+ isOpen,
185
+ show,
186
+ hide,
187
+ computedClasses,
188
+ zIndex,
189
+ style,
190
+ fade
191
+ };
192
+ }
193
+ });
194
+ </script>
195
+
196
+ <style scoped></style>
@@ -1,5 +1,5 @@
1
- <template>
2
- <MTooltip text="Hello World">
3
- <MButton>Top</MButton>
4
- </MTooltip>
5
- </template>
1
+ <template>
2
+ <MTooltip text="Hello<br />World">
3
+ <MButton>Top</MButton>
4
+ </MTooltip>
5
+ </template>
@@ -1,2 +1,2 @@
1
- export { default as MTooltipBasic } from './basic.vue';
2
- export { default as MTooltipPlacement } from './placement.vue';
1
+ export { default as MTooltipBasic } from './basic.vue';
2
+ export { default as MTooltipPlacement } from './placement.vue';
@@ -1,9 +1,9 @@
1
- <template>
2
- <div style="padding: 200px;">
3
- <MTooltip text="Hello World" placement="top">
4
- <div style="width: 100px; height: 50px; background: red;">
5
-
6
- </div>
7
- </MTooltip>
8
- </div>
9
- </template>
1
+ <template>
2
+ <div style="padding: 200px;">
3
+ <MTooltip text="Hello World" placement="top">
4
+ <div style="width: 100px; height: 50px; background: red;">
5
+
6
+ </div>
7
+ </MTooltip>
8
+ </div>
9
+ </template>
@@ -1,90 +1,90 @@
1
- import { createVar, globalKeyframes, style } from '@vanilla-extract/css';
2
- import { themeVars } from '../../../styles/theme.css';
3
-
4
- export const vars = {
5
- backgroundColor: createVar(),
6
- color: createVar()
7
- };
8
-
9
- export const wrapper = style({
10
- position: 'relative',
11
- display: 'inline-flex'
12
- });
13
-
14
- export const container = style({
15
- zIndex: 50
16
- });
17
-
18
- export const tooltip = style({
19
- vars: {
20
- [vars.backgroundColor]: themeVars.color.gray[900],
21
- [vars.color]: themeVars.color.gray[100]
22
- },
23
- zIndex: 50,
24
- transition: 'opacity 0.3s, ease',
25
- position: 'fixed',
26
- fontSize: '13px',
27
- fontWeight: 'normal',
28
- color: vars.color,
29
- backgroundColor: vars.backgroundColor,
30
- borderRadius: themeVars.rounded.default,
31
- padding: `${themeVars.space[1.5]} ${themeVars.space[2]}`,
32
- pointerEvents: 'none',
33
- width: 'max-content',
34
- maxWidth: '300px',
35
- boxSizing: 'border-box',
36
- selectors: {
37
- '&[data-popper-placement^="top"]': {
38
- margin: `${themeVars.space[1]} 0 ${themeVars.space[3]} 0`
39
- },
40
- '&[data-popper-placement^="bottom"]': {
41
- margin: `${themeVars.space[3]} 0 ${themeVars.space[1]} 0`
42
- },
43
- '&[data-popper-placement^="left"]': {
44
- margin: `0 ${themeVars.space[3]} 0 ${themeVars.space[1]}`
45
- },
46
- '&[data-popper-placement^="right"]': {
47
- margin: `0 ${themeVars.space[1]} 0 ${themeVars.space[3]}`
48
- }
49
- }
50
- });
51
-
52
- export const reverse = style({
53
- vars: {
54
- [vars.backgroundColor]: themeVars.color.gray[100],
55
- [vars.color]: themeVars.color.gray[900]
56
- }
57
- });
58
-
59
- const fadeOutAnimation = 'fade-out-animation';
60
- globalKeyframes(fadeOutAnimation, {
61
- from: {
62
- opacity: 1
63
- },
64
- to: {
65
- opacity: 0
66
- }
67
- });
68
-
69
- const fadeInAnimation = 'fade-in-animation';
70
- globalKeyframes(fadeInAnimation, {
71
- '0%': {
72
- opacity: 0
73
- },
74
- '100%': {
75
- opacity: 1
76
- }
77
- });
78
-
79
- export const fadeEnter = style({
80
- animationName: fadeInAnimation,
81
- animationDuration: '0.125s',
82
- animationTimingFunction: 'ease-in-out',
83
- transition: themeVars.transition.default
84
- });
85
-
86
- export const fadeLeave = style({
87
- animationName: fadeOutAnimation,
88
- animationDuration: '0.2s',
89
- animationTimingFunction: 'ease-in-out'
90
- });
1
+ import { createVar, globalKeyframes, style } from '@vanilla-extract/css';
2
+ import { themeVars } from '../../../styles/theme.css';
3
+
4
+ export const vars = {
5
+ backgroundColor: createVar(),
6
+ color: createVar()
7
+ };
8
+
9
+ export const wrapper = style({
10
+ position: 'relative',
11
+ display: 'inline-flex'
12
+ });
13
+
14
+ export const container = style({
15
+ zIndex: 50
16
+ });
17
+
18
+ export const tooltip = style({
19
+ vars: {
20
+ [vars.backgroundColor]: themeVars.color.gray[900],
21
+ [vars.color]: themeVars.color.gray[100]
22
+ },
23
+ zIndex: 50,
24
+ transition: 'opacity 0.3s, ease',
25
+ position: 'fixed',
26
+ fontSize: '13px',
27
+ fontWeight: 'normal',
28
+ color: vars.color,
29
+ backgroundColor: vars.backgroundColor,
30
+ borderRadius: themeVars.rounded.default,
31
+ padding: `${themeVars.space[1.5]} ${themeVars.space[2]}`,
32
+ pointerEvents: 'none',
33
+ width: 'max-content',
34
+ maxWidth: '300px',
35
+ boxSizing: 'border-box',
36
+ selectors: {
37
+ '&[data-popper-placement^="top"]': {
38
+ margin: `${themeVars.space[1]} 0 ${themeVars.space[3]} 0`
39
+ },
40
+ '&[data-popper-placement^="bottom"]': {
41
+ margin: `${themeVars.space[3]} 0 ${themeVars.space[1]} 0`
42
+ },
43
+ '&[data-popper-placement^="left"]': {
44
+ margin: `0 ${themeVars.space[3]} 0 ${themeVars.space[1]}`
45
+ },
46
+ '&[data-popper-placement^="right"]': {
47
+ margin: `0 ${themeVars.space[1]} 0 ${themeVars.space[3]}`
48
+ }
49
+ }
50
+ });
51
+
52
+ export const reverse = style({
53
+ vars: {
54
+ [vars.backgroundColor]: themeVars.color.gray[100],
55
+ [vars.color]: themeVars.color.gray[900]
56
+ }
57
+ });
58
+
59
+ const fadeOutAnimation = 'fade-out-animation';
60
+ globalKeyframes(fadeOutAnimation, {
61
+ from: {
62
+ opacity: 1
63
+ },
64
+ to: {
65
+ opacity: 0
66
+ }
67
+ });
68
+
69
+ const fadeInAnimation = 'fade-in-animation';
70
+ globalKeyframes(fadeInAnimation, {
71
+ '0%': {
72
+ opacity: 0
73
+ },
74
+ '100%': {
75
+ opacity: 1
76
+ }
77
+ });
78
+
79
+ export const fadeEnter = style({
80
+ animationName: fadeInAnimation,
81
+ animationDuration: '0.125s',
82
+ animationTimingFunction: 'ease-in-out',
83
+ transition: themeVars.transition.default
84
+ });
85
+
86
+ export const fadeLeave = style({
87
+ animationName: fadeOutAnimation,
88
+ animationDuration: '0.2s',
89
+ animationTimingFunction: 'ease-in-out'
90
+ });
@@ -1 +1 @@
1
- export * from './Tooltip.css';
1
+ export * from './Tooltip.css';