@teammodlr/ui-kit 2.1.41 → 2.1.44

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 (326) hide show
  1. package/env.d.ts +1 -1
  2. package/lib/components/avatar/Avatar.vue.d.ts +1 -1
  3. package/lib/components/avatargroup/AvatarGroup.vue.d.ts +1 -1
  4. package/lib/components/badge/Badge.vue.d.ts +1 -1
  5. package/lib/components/breadcrumb/Breadcrumb.vue.d.ts +1 -1
  6. package/lib/components/breadcrumb/BreadcrumbItem.vue.d.ts +1 -1
  7. package/lib/components/button/Button.vue.d.ts +1 -1
  8. package/lib/components/buttongroup/ButtonGroup.vue.d.ts +1 -1
  9. package/lib/components/checkbox/Checkbox.vue.d.ts +4 -3
  10. package/lib/components/checkbox/style/Checkbox.css.d.ts +1 -0
  11. package/lib/components/colorpicker/ColorPicker.vue.d.ts +1 -1
  12. package/lib/components/configprovider/ConfigProvider.vue.d.ts +35 -0
  13. package/lib/components/configprovider/types.d.ts +3 -0
  14. package/lib/components/confirm/Confirm.vue.d.ts +1 -1
  15. package/lib/components/confirm/ConfirmProvider.vue.d.ts +1 -1
  16. package/lib/components/dialog/Dialog.vue.d.ts +1 -1
  17. package/lib/components/dropdown/Dropdown.vue.d.ts +1 -1
  18. package/lib/components/dropdown/DropdownHeading.vue.d.ts +1 -1
  19. package/lib/components/dropdown/DropdownItem.vue.d.ts +1 -1
  20. package/lib/components/dropdown/DropdownList.vue.d.ts +1 -1
  21. package/lib/components/dropdown/DropdownSeperator.vue.d.ts +1 -1
  22. package/lib/components/dropdown/DropdownWrapper.vue.d.ts +1 -1
  23. package/lib/components/form/Form.vue.d.ts +1 -1
  24. package/lib/components/image/Image.vue.d.ts +1 -1
  25. package/lib/components/index.d.ts +1 -0
  26. package/lib/components/input/Input.vue.d.ts +2 -2
  27. package/lib/components/link/Link.vue.d.ts +1 -1
  28. package/lib/components/messageprovider/Message.vue.d.ts +1 -1
  29. package/lib/components/messageprovider/MessageProvider.vue.d.ts +1 -1
  30. package/lib/components/modal/Modal.vue.d.ts +1 -1
  31. package/lib/components/pagination/Pagination.vue.d.ts +1 -1
  32. package/lib/components/radio/Radio.vue.d.ts +3 -3
  33. package/lib/components/radiobutton/RadioButton.vue.d.ts +1 -1
  34. package/lib/components/radiobuttongroup/RadioButtonGroup.vue.d.ts +1 -1
  35. package/lib/components/renderer/examlpes/basic.vue.d.ts +1 -1
  36. package/lib/components/renderer/renderer.d.ts +1 -1
  37. package/lib/components/select/Select.vue.d.ts +2 -2
  38. package/lib/components/skeleton/Skeleton.vue.d.ts +1 -1
  39. package/lib/components/slider/Slider.vue.d.ts +1 -1
  40. package/lib/components/switch/Switch.vue.d.ts +3 -3
  41. package/lib/components/tab/Tab.vue.d.ts +1 -1
  42. package/lib/components/tab/TabGroup.vue.d.ts +1 -1
  43. package/lib/components/table/Table.vue.d.ts +1 -1
  44. package/lib/components/table/TableBody.vue.d.ts +1 -1
  45. package/lib/components/table/TableCell.vue.d.ts +1 -1
  46. package/lib/components/table/TableHead.vue.d.ts +1 -1
  47. package/lib/components/table/TableHeadRow.vue.d.ts +1 -1
  48. package/lib/components/table/TableRow.vue.d.ts +1 -1
  49. package/lib/components/tag/Tag.vue.d.ts +1 -1
  50. package/lib/components/textarea/Textarea.vue.d.ts +2 -2
  51. package/lib/components/tooltip/Tooltip.vue.d.ts +1 -1
  52. package/lib/components/transfer/Transfer.vue.d.ts +1 -1
  53. package/lib/components/tree/Tree.vue.d.ts +1 -1
  54. package/lib/components/tree/TreeNode.vue.d.ts +1 -1
  55. package/lib/components/tree/TreeNodeToggle.vue.d.ts +1 -1
  56. package/lib/components/virtualscroll/VirtualScroll.vue.d.ts +1 -1
  57. package/lib/composables/useCachedUid.d.ts +1 -13
  58. package/lib/composables/useInput.d.ts +3 -3
  59. package/lib/index.cjs.js +10 -10
  60. package/lib/index.es.js +1347 -1338
  61. package/lib/nuxt.js +35 -35
  62. package/lib/nuxt.plugin.js +8 -8
  63. package/lib/style.css +1 -1
  64. package/lib/styles/theme.css.d.ts +1 -1
  65. package/package.json +89 -89
  66. package/src/__storybook__/argTypes.ts +53 -53
  67. package/src/__storybook__/createStory.ts +15 -15
  68. package/src/__storybook__/index.ts +2 -2
  69. package/src/call.ts +34 -34
  70. package/src/components/avatar/Avatar.vue +110 -110
  71. package/src/components/avatar/examples/basic.vue +6 -6
  72. package/src/components/avatar/examples/custom-size.vue +7 -7
  73. package/src/components/avatar/examples/index.ts +5 -5
  74. package/src/components/avatar/examples/sizes.vue +33 -33
  75. package/src/components/avatar/examples/slots.vue +8 -8
  76. package/src/components/avatar/examples/variants.vue +18 -18
  77. package/src/components/avatar/style/Avatar.css.ts +92 -92
  78. package/src/components/avatar/style/index.ts +1 -1
  79. package/src/components/avatargroup/AvatarGroup.vue +72 -72
  80. package/src/components/avatargroup/examples/basic.vue +37 -37
  81. package/src/components/avatargroup/examples/index.ts +1 -1
  82. package/src/components/avatargroup/style/AvatarGroup.css.ts +26 -26
  83. package/src/components/avatargroup/style/index.ts +1 -1
  84. package/src/components/avatargroup/symbol.ts +17 -17
  85. package/src/components/badge/Badge.vue +43 -43
  86. package/src/components/badge/examples/basic.vue +10 -10
  87. package/src/components/badge/examples/index.ts +1 -1
  88. package/src/components/badge/style/Badge.css.ts +135 -135
  89. package/src/components/badge/style/index.ts +1 -1
  90. package/src/components/breadcrumb/Breadcrumb.vue +54 -54
  91. package/src/components/breadcrumb/BreadcrumbItem.vue +72 -72
  92. package/src/components/breadcrumb/examples/basic.vue +7 -7
  93. package/src/components/breadcrumb/examples/index.ts +1 -1
  94. package/src/components/breadcrumb/style/Breadcrumb.css.ts +40 -40
  95. package/src/components/breadcrumb/style/index.ts +1 -1
  96. package/src/components/breadcrumb/symbol.ts +18 -18
  97. package/src/components/button/Button.vue +203 -203
  98. package/src/components/button/examples/basic.vue +3 -3
  99. package/src/components/button/examples/disabled.vue +3 -3
  100. package/src/components/button/examples/icon-left.vue +12 -12
  101. package/src/components/button/examples/icon.vue +9 -9
  102. package/src/components/button/examples/index.ts +9 -9
  103. package/src/components/button/examples/link.vue +3 -3
  104. package/src/components/button/examples/rounded.vue +7 -7
  105. package/src/components/button/examples/size.vue +7 -7
  106. package/src/components/button/examples/variants-secondary.vue +10 -10
  107. package/src/components/button/examples/variants.vue +10 -10
  108. package/src/components/button/style/Button.css.ts +695 -695
  109. package/src/components/button/style/index.ts +1 -1
  110. package/src/components/buttongroup/ButtonGroup.vue +36 -36
  111. package/src/components/buttongroup/examples/basic.vue +9 -9
  112. package/src/components/buttongroup/examples/icon-group.vue +21 -21
  113. package/src/components/buttongroup/examples/index.ts +2 -2
  114. package/src/components/buttongroup/style/ButtonGroup.css.ts +42 -42
  115. package/src/components/buttongroup/style/index.ts +1 -1
  116. package/src/components/buttongroup/symbol.ts +9 -9
  117. package/src/components/checkbox/Checkbox.vue +149 -145
  118. package/src/components/checkbox/examples/basic.vue +9 -9
  119. package/src/components/checkbox/examples/index.ts +2 -2
  120. package/src/components/checkbox/examples/slot.vue +14 -11
  121. package/src/components/checkbox/style/Checkbox.css.ts +178 -161
  122. package/src/components/checkbox/style/index.ts +1 -1
  123. package/src/components/colorpicker/ColorPicker.vue +333 -333
  124. package/src/components/colorpicker/examples/basic.vue +2 -2
  125. package/src/components/colorpicker/examples/index.ts +1 -1
  126. package/src/components/colorpicker/style/ColorPicker.css.ts +127 -127
  127. package/src/components/colorpicker/style/index.ts +1 -1
  128. package/src/components/colorpicker/utils.ts +206 -206
  129. package/src/components/configprovider/ConfigProvider.vue +26 -0
  130. package/src/components/configprovider/types.ts +3 -0
  131. package/src/components/confirm/Confirm.vue +65 -65
  132. package/src/components/confirm/ConfirmProvider.vue +83 -83
  133. package/src/components/confirm/examples/basic.vue +48 -48
  134. package/src/components/confirm/examples/index.ts +1 -1
  135. package/src/components/confirm/examples/wrapper.vue +9 -9
  136. package/src/components/confirm/props.ts +24 -24
  137. package/src/components/confirm/providerProps.ts +10 -10
  138. package/src/components/confirm/types.ts +33 -33
  139. package/src/components/confirm/useConfirm.ts +14 -14
  140. package/src/components/dialog/Dialog.vue +118 -118
  141. package/src/components/dialog/examples/basic.vue +16 -16
  142. package/src/components/dialog/examples/index.ts +1 -1
  143. package/src/components/dialog/style/Dialog.css.ts +100 -100
  144. package/src/components/dialog/style/index.ts +1 -1
  145. package/src/components/dropdown/Dropdown.vue +308 -308
  146. package/src/components/dropdown/DropdownHeading.vue +23 -23
  147. package/src/components/dropdown/DropdownItem.vue +151 -151
  148. package/src/components/dropdown/DropdownList.vue +20 -20
  149. package/src/components/dropdown/DropdownSeperator.vue +22 -22
  150. package/src/components/dropdown/DropdownWrapper.vue +18 -18
  151. package/src/components/dropdown/examples/basic.vue +119 -119
  152. package/src/components/dropdown/examples/context.vue +71 -71
  153. package/src/components/dropdown/examples/index.ts +3 -3
  154. package/src/components/dropdown/hooks.ts +30 -30
  155. package/src/components/dropdown/style/Dropdown.css.ts +158 -158
  156. package/src/components/dropdown/style/index.ts +1 -1
  157. package/src/components/dropdown/symbol.ts +9 -9
  158. package/src/components/form/Form.vue +153 -153
  159. package/src/components/form/examples/basic.vue +75 -75
  160. package/src/components/form/examples/index.ts +1 -1
  161. package/src/components/form/style/Form.css.ts +28 -28
  162. package/src/components/form/style/index.ts +2 -2
  163. package/src/components/form/symbol.ts +16 -16
  164. package/src/components/image/Image.vue +71 -71
  165. package/src/components/image/examples/basic.vue +5 -5
  166. package/src/components/image/examples/index.ts +1 -1
  167. package/src/components/index.ts +48 -47
  168. package/src/components/input/Input.vue +233 -233
  169. package/src/components/input/examples/basic.vue +21 -21
  170. package/src/components/input/examples/index.ts +6 -6
  171. package/src/components/input/examples/left-icon.vue +9 -9
  172. package/src/components/input/examples/prefix.vue +5 -5
  173. package/src/components/input/examples/right-icon.vue +9 -9
  174. package/src/components/input/examples/sizes.vue +9 -9
  175. package/src/components/input/examples/suffix.vue +7 -7
  176. package/src/components/input/style/Input.css.ts +294 -294
  177. package/src/components/input/style/index.ts +1 -1
  178. package/src/components/link/Link.vue +53 -53
  179. package/src/components/link/examples/basic.vue +3 -3
  180. package/src/components/link/examples/index.ts +1 -1
  181. package/src/components/messageprovider/Message.vue +135 -135
  182. package/src/components/messageprovider/MessageProvider.vue +156 -156
  183. package/src/components/messageprovider/examples/basic.vue +70 -70
  184. package/src/components/messageprovider/examples/index.ts +2 -2
  185. package/src/components/messageprovider/examples/update.vue +34 -34
  186. package/src/components/messageprovider/examples/wrapper.vue +9 -9
  187. package/src/components/messageprovider/style/Message.css.ts +111 -111
  188. package/src/components/messageprovider/style/index.ts +1 -1
  189. package/src/components/messageprovider/types.ts +56 -56
  190. package/src/components/messageprovider/useMessage.ts +14 -14
  191. package/src/components/modal/Modal.vue +310 -310
  192. package/src/components/modal/examples/basic.vue +80 -80
  193. package/src/components/modal/examples/index.ts +3 -3
  194. package/src/components/modal/examples/modal-form.vue +99 -99
  195. package/src/components/modal/examples/sidebar.vue +79 -79
  196. package/src/components/modal/style/Modal.css.ts +318 -318
  197. package/src/components/modal/style/index.ts +1 -1
  198. package/src/components/pagination/Pagination.vue +296 -296
  199. package/src/components/pagination/examples/basic.vue +17 -17
  200. package/src/components/pagination/examples/index.ts +1 -1
  201. package/src/components/pagination/style/Pagination.css.ts +93 -93
  202. package/src/components/pagination/style/index.ts +1 -1
  203. package/src/components/radio/Radio.vue +136 -136
  204. package/src/components/radio/examples/basic.vue +8 -8
  205. package/src/components/radio/examples/group.vue +15 -15
  206. package/src/components/radio/examples/index.ts +2 -2
  207. package/src/components/radio/style/Checkbox.css.ts +130 -130
  208. package/src/components/radio/style/index.ts +1 -1
  209. package/src/components/radiobutton/RadioButton.vue +131 -131
  210. package/src/components/radiobutton/style/RadioButton.css.ts +189 -189
  211. package/src/components/radiobutton/style/index.ts +1 -1
  212. package/src/components/radiobuttongroup/RadioButtonGroup.vue +74 -74
  213. package/src/components/radiobuttongroup/examples/basic.vue +16 -16
  214. package/src/components/radiobuttongroup/examples/index.ts +1 -1
  215. package/src/components/radiobuttongroup/style/RadioButtonGroup.css.ts +37 -37
  216. package/src/components/radiobuttongroup/style/index.ts +1 -1
  217. package/src/components/radiobuttongroup/symbol.ts +12 -12
  218. package/src/components/renderer/examlpes/basic.vue +23 -23
  219. package/src/components/renderer/examlpes/index.ts +1 -1
  220. package/src/components/renderer/props.ts +14 -14
  221. package/src/components/renderer/renderer.ts +16 -16
  222. package/src/components/select/Select.vue +781 -781
  223. package/src/components/select/examples/basic.vue +21 -21
  224. package/src/components/select/examples/index.ts +3 -3
  225. package/src/components/select/examples/multiple.vue +21 -21
  226. package/src/components/select/examples/searchable.vue +20 -20
  227. package/src/components/select/style/Select.css.ts +368 -368
  228. package/src/components/select/style/index.ts +1 -1
  229. package/src/components/skeleton/Skeleton.vue +55 -55
  230. package/src/components/skeleton/examples/basic.vue +3 -3
  231. package/src/components/skeleton/examples/index.ts +2 -2
  232. package/src/components/skeleton/examples/post.vue +8 -8
  233. package/src/components/skeleton/style/Skeleton.css.ts +72 -72
  234. package/src/components/skeleton/style/index.ts +2 -2
  235. package/src/components/slider/Slider.vue +76 -76
  236. package/src/components/slider/style/Slider.css.ts +50 -50
  237. package/src/components/slider/style/index.ts +1 -1
  238. package/src/components/switch/Switch.vue +132 -132
  239. package/src/components/switch/examples/basic.vue +9 -9
  240. package/src/components/switch/examples/index.ts +2 -2
  241. package/src/components/switch/examples/slot.vue +11 -11
  242. package/src/components/switch/style/Switch.css.ts +135 -135
  243. package/src/components/switch/style/index.ts +1 -1
  244. package/src/components/tab/Tab.css +113 -113
  245. package/src/components/tab/Tab.vue +98 -98
  246. package/src/components/tab/TabGroup.vue +90 -90
  247. package/src/components/tab/examples/basic.vue +19 -19
  248. package/src/components/tab/examples/index.ts +2 -2
  249. package/src/components/tab/examples/vertical.vue +19 -19
  250. package/src/components/table/Table.vue +198 -198
  251. package/src/components/table/TableBody.vue +13 -13
  252. package/src/components/table/TableCell.vue +13 -13
  253. package/src/components/table/TableHead.vue +46 -46
  254. package/src/components/table/TableHeadRow.vue +15 -15
  255. package/src/components/table/TableRow.vue +19 -19
  256. package/src/components/table/examples/basic.vue +61 -61
  257. package/src/components/table/examples/empty.vue +44 -44
  258. package/src/components/table/examples/index.ts +3 -3
  259. package/src/components/table/examples/selected.vue +68 -68
  260. package/src/components/table/style/Table.css.ts +62 -62
  261. package/src/components/table/style/index.ts +1 -1
  262. package/src/components/table/types/index.ts +6 -6
  263. package/src/components/tag/Tag.vue +72 -72
  264. package/src/components/tag/examples/basic.vue +5 -5
  265. package/src/components/tag/examples/index.ts +1 -1
  266. package/src/components/tag/style/Tag.css.ts +83 -83
  267. package/src/components/tag/style/index.ts +1 -1
  268. package/src/components/textarea/Textarea.vue +180 -180
  269. package/src/components/textarea/examples/basic.vue +8 -8
  270. package/src/components/textarea/examples/index.ts +1 -1
  271. package/src/components/textarea/style/Textarea.css.ts +191 -191
  272. package/src/components/textarea/style/index.ts +1 -1
  273. package/src/components/tooltip/Tooltip.vue +196 -196
  274. package/src/components/tooltip/examples/basic.vue +5 -5
  275. package/src/components/tooltip/examples/index.ts +2 -2
  276. package/src/components/tooltip/examples/placement.vue +9 -9
  277. package/src/components/tooltip/style/Tooltip.css.ts +90 -90
  278. package/src/components/tooltip/style/index.ts +1 -1
  279. package/src/components/transfer/Transfer.vue +145 -145
  280. package/src/components/transfer/examples/basic.vue +21 -21
  281. package/src/components/transfer/examples/index.ts +1 -1
  282. package/src/components/transfer/style/Transfer.css.ts +81 -81
  283. package/src/components/transfer/style/index.ts +1 -1
  284. package/src/components/tree/Tree.vue +138 -138
  285. package/src/components/tree/TreeNode.vue +109 -109
  286. package/src/components/tree/TreeNodeToggle.vue +48 -48
  287. package/src/components/tree/examples/basic.vue +458 -458
  288. package/src/components/tree/examples/index.ts +1 -1
  289. package/src/components/tree/props.ts +97 -97
  290. package/src/components/tree/style/Tree.css.ts +75 -75
  291. package/src/components/tree/style/index.ts +1 -1
  292. package/src/components/tree/types.ts +103 -103
  293. package/src/components/virtualscroll/VirtualScroll.css +13 -13
  294. package/src/components/virtualscroll/VirtualScroll.vue +166 -166
  295. package/src/components/virtualscroll/examples/basic.vue +31 -31
  296. package/src/components/virtualscroll/examples/index.ts +1 -1
  297. package/src/components/virtualscroll/style/VirtualScroll.css.ts +17 -17
  298. package/src/components/virtualscroll/style/index.ts +1 -1
  299. package/src/composables/element.ts +13 -13
  300. package/src/composables/index.ts +4 -4
  301. package/src/composables/useCachedUid.ts +17 -49
  302. package/src/composables/useEventListener.ts +19 -19
  303. package/src/composables/useInput.ts +151 -151
  304. package/src/composables/useInteractive.ts +19 -19
  305. package/src/composables/useIsServer.ts +7 -7
  306. package/src/composables/useMergedState.ts +18 -18
  307. package/src/composables/useMount.ts +43 -43
  308. package/src/composables/usePopper.ts +215 -215
  309. package/src/composables/useZIndex.ts +33 -33
  310. package/src/create.ts +38 -38
  311. package/src/css/components.css +16 -16
  312. package/src/css/index.css +4 -4
  313. package/src/css/transitions.css +40 -40
  314. package/src/css/variables.css +80 -80
  315. package/src/examples/cards/sidebar.vue +262 -262
  316. package/src/examples/modal/modal.vue +52 -52
  317. package/src/exports/nuxt.js +35 -35
  318. package/src/exports/nuxt.plugin.js +8 -8
  319. package/src/index.ts +5 -5
  320. package/src/install.ts +8 -8
  321. package/src/shims-vue.d.ts +6 -6
  322. package/src/styles/theme.css.ts +181 -181
  323. package/src/styles/transitions.css.ts +97 -97
  324. package/src/types/props.ts +19 -19
  325. package/src/utils/injection.ts +5 -5
  326. package/volar.d.ts +16 -16
@@ -1,156 +1,156 @@
1
- <template>
2
- <slot />
3
- <template v-if="messageList.length > 0">
4
- <Teleport to="body">
5
- <transition
6
- type="animation"
7
- :enter-active-class="modalScale.enterActive"
8
- :leave-active-class="modalScale.leaveActive"
9
- :enter-from-class="modalScale.enterFrom"
10
- :leave-to-class="modalScale.leaveTo">
11
- <div :class="classes">
12
- <MMessage
13
- v-for="message in messageList"
14
- :key="message.key"
15
- :internalKey="message.key"
16
- :variant="message.type"
17
- :content="message.content"
18
- :timeout="message.timeout ?? timeout"
19
- ref="messageRefs"
20
- :on-internal-after-leave="onInternalAfterLeave" />
21
- </div>
22
- </transition>
23
- </Teleport>
24
- </template>
25
- </template>
26
-
27
- <script lang="ts">
28
- import {
29
- ref,
30
- reactive,
31
- Teleport,
32
- defineComponent,
33
- provide,
34
- computed
35
- } from 'vue';
36
- import type {
37
- MessageType,
38
- MessageReactive,
39
- MessageOptions,
40
- MessageApiInjection,
41
- ContentType,
42
- MessagePlacement
43
- } from './types';
44
- import type { PropType } from 'vue';
45
- import MMessage from './Message.vue';
46
- import { useCachedUid } from '../../composables/useCachedUid';
47
- import * as style from './style';
48
- import { modalScale } from '../../styles/transitions.css';
49
- import { useIsServer } from '../../composables/useIsServer';
50
- export type MessageProviderInst = MessageApiInjection;
51
-
52
- interface PrivateMessageReactive extends MessageReactive {
53
- key: string;
54
- }
55
-
56
- interface PrivateMessageRef extends MessageReactive {
57
- key: string;
58
- hide: () => void;
59
- }
60
-
61
- export default defineComponent({
62
- name: 'MMessageProvider',
63
- components: {
64
- MMessage
65
- },
66
- props: {
67
- placement: {
68
- type: String as PropType<MessagePlacement>,
69
- default: 'top'
70
- },
71
- timeout: {
72
- type: Number,
73
- default: 3000
74
- }
75
- },
76
- setup(props, { slots }) {
77
- const messageListRef = ref<PrivateMessageReactive[]>([]);
78
- const messageRefs = ref<Record<string, PrivateMessageRef>>({});
79
- const api: MessageApiInjection = {
80
- create(content: ContentType, options?: MessageOptions) {
81
- return create(content, { type: 'default', ...options });
82
- },
83
- info(content: ContentType, options?: MessageOptions) {
84
- return create(content, { ...options, type: 'info' });
85
- },
86
- success(content: ContentType, options?: MessageOptions) {
87
- return create(content, { ...options, type: 'success' });
88
- },
89
- warning(content: ContentType, options?: MessageOptions) {
90
- return create(content, { ...options, type: 'warning' });
91
- },
92
- error(content: ContentType, options?: MessageOptions) {
93
- return create(content, { ...options, type: 'error' });
94
- },
95
- loading(content: ContentType, options?: MessageOptions) {
96
- return create(content, { ...options, type: 'loading' });
97
- },
98
- destroyAll
99
- };
100
-
101
- provide('m-message', api);
102
- function create(
103
- content: ContentType,
104
- options: MessageOptions & { type: MessageType }
105
- ): MessageReactive {
106
- const key = Math.random()
107
- .toString(16)
108
- .slice(2, 2 + 12);
109
- const messageReactive = reactive({
110
- ...options,
111
- content,
112
- key,
113
- destroy: () => {
114
- messageRefs.value[key].hide();
115
- }
116
- });
117
-
118
- messageListRef.value.push(messageReactive);
119
- return messageReactive;
120
- }
121
-
122
- function destroyAll(): void {
123
- //@ts-ignore
124
- Object.values(messageRefs.value).forEach(messageRef => {
125
- messageRef.hide();
126
- });
127
- }
128
-
129
- function onInternalAfterLeave(key: string): void {
130
- messageListRef.value = messageListRef.value.filter(
131
- message => message.key !== key
132
- );
133
- delete messageRefs.value[key];
134
- }
135
-
136
- const classes = computed(() => {
137
- return [
138
- style.wrapper,
139
- // @ts-ignore
140
- [style.placement[props.placement]]
141
- ];
142
- });
143
-
144
- return Object.assign(
145
- {
146
- messageRefs,
147
- messageList: messageListRef,
148
- onInternalAfterLeave,
149
- classes,
150
- modalScale
151
- },
152
- api
153
- );
154
- }
155
- });
156
- </script>
1
+ <template>
2
+ <slot />
3
+ <template v-if="messageList.length > 0">
4
+ <Teleport to="body">
5
+ <transition
6
+ type="animation"
7
+ :enter-active-class="modalScale.enterActive"
8
+ :leave-active-class="modalScale.leaveActive"
9
+ :enter-from-class="modalScale.enterFrom"
10
+ :leave-to-class="modalScale.leaveTo">
11
+ <div :class="classes">
12
+ <MMessage
13
+ v-for="message in messageList"
14
+ :key="message.key"
15
+ :internalKey="message.key"
16
+ :variant="message.type"
17
+ :content="message.content"
18
+ :timeout="message.timeout ?? timeout"
19
+ ref="messageRefs"
20
+ :on-internal-after-leave="onInternalAfterLeave" />
21
+ </div>
22
+ </transition>
23
+ </Teleport>
24
+ </template>
25
+ </template>
26
+
27
+ <script lang="ts">
28
+ import {
29
+ ref,
30
+ reactive,
31
+ Teleport,
32
+ defineComponent,
33
+ provide,
34
+ computed
35
+ } from 'vue';
36
+ import type {
37
+ MessageType,
38
+ MessageReactive,
39
+ MessageOptions,
40
+ MessageApiInjection,
41
+ ContentType,
42
+ MessagePlacement
43
+ } from './types';
44
+ import type { PropType } from 'vue';
45
+ import MMessage from './Message.vue';
46
+ import { useId } from '../../composables/useCachedUid';
47
+ import * as style from './style';
48
+ import { modalScale } from '../../styles/transitions.css';
49
+ import { useIsServer } from '../../composables/useIsServer';
50
+ export type MessageProviderInst = MessageApiInjection;
51
+
52
+ interface PrivateMessageReactive extends MessageReactive {
53
+ key: string;
54
+ }
55
+
56
+ interface PrivateMessageRef extends MessageReactive {
57
+ key: string;
58
+ hide: () => void;
59
+ }
60
+
61
+ export default defineComponent({
62
+ name: 'MMessageProvider',
63
+ components: {
64
+ MMessage
65
+ },
66
+ props: {
67
+ placement: {
68
+ type: String as PropType<MessagePlacement>,
69
+ default: 'top'
70
+ },
71
+ timeout: {
72
+ type: Number,
73
+ default: 3000
74
+ }
75
+ },
76
+ setup(props, { slots }) {
77
+ const messageListRef = ref<PrivateMessageReactive[]>([]);
78
+ const messageRefs = ref<Record<string, PrivateMessageRef>>({});
79
+ const api: MessageApiInjection = {
80
+ create(content: ContentType, options?: MessageOptions) {
81
+ return create(content, { type: 'default', ...options });
82
+ },
83
+ info(content: ContentType, options?: MessageOptions) {
84
+ return create(content, { ...options, type: 'info' });
85
+ },
86
+ success(content: ContentType, options?: MessageOptions) {
87
+ return create(content, { ...options, type: 'success' });
88
+ },
89
+ warning(content: ContentType, options?: MessageOptions) {
90
+ return create(content, { ...options, type: 'warning' });
91
+ },
92
+ error(content: ContentType, options?: MessageOptions) {
93
+ return create(content, { ...options, type: 'error' });
94
+ },
95
+ loading(content: ContentType, options?: MessageOptions) {
96
+ return create(content, { ...options, type: 'loading' });
97
+ },
98
+ destroyAll
99
+ };
100
+
101
+ provide('m-message', api);
102
+ function create(
103
+ content: ContentType,
104
+ options: MessageOptions & { type: MessageType }
105
+ ): MessageReactive {
106
+ const key = Math.random()
107
+ .toString(16)
108
+ .slice(2, 2 + 12);
109
+ const messageReactive = reactive({
110
+ ...options,
111
+ content,
112
+ key,
113
+ destroy: () => {
114
+ messageRefs.value[key].hide();
115
+ }
116
+ });
117
+
118
+ messageListRef.value.push(messageReactive);
119
+ return messageReactive;
120
+ }
121
+
122
+ function destroyAll(): void {
123
+ //@ts-ignore
124
+ Object.values(messageRefs.value).forEach(messageRef => {
125
+ messageRef.hide();
126
+ });
127
+ }
128
+
129
+ function onInternalAfterLeave(key: string): void {
130
+ messageListRef.value = messageListRef.value.filter(
131
+ message => message.key !== key
132
+ );
133
+ delete messageRefs.value[key];
134
+ }
135
+
136
+ const classes = computed(() => {
137
+ return [
138
+ style.wrapper,
139
+ // @ts-ignore
140
+ [style.placement[props.placement]]
141
+ ];
142
+ });
143
+
144
+ return Object.assign(
145
+ {
146
+ messageRefs,
147
+ messageList: messageListRef,
148
+ onInternalAfterLeave,
149
+ classes,
150
+ modalScale
151
+ },
152
+ api
153
+ );
154
+ }
155
+ });
156
+ </script>
@@ -1,70 +1,70 @@
1
- <template>
2
- <div>
3
- <button @click="showSuccess">Success</button>
4
- <button @click="showInfo">Info</button>
5
- <button @click="showWarning">Warning</button>
6
- <button @click="showError">Error</button>
7
- <hr />
8
-
9
- <div>
10
- <button @click="showMessage">Success</button><br />
11
-
12
- <button @click="updateNumber">+1</button>
13
-
14
- </div>
15
- </div>
16
- </template>
17
-
18
- <script lang="ts" setup>
19
- import { ref } from 'vue';
20
- import type { MessageReactive } from '../types';
21
- import { useMessage } from '../useMessage';
22
-
23
- const message = useMessage();
24
-
25
- const number = ref(0);
26
- let msg: MessageReactive | null = null;
27
-
28
- const showMessage = () => {
29
- msg = message.loading(`Loading`, {
30
- timeout: 0
31
- });
32
- };
33
-
34
- function updateNumber() {
35
- if (msg) {
36
- // number.value++;
37
- msg.content = `Saved Successfully`;
38
- msg.type = 'success';
39
- msg.timeout = 3000;
40
- }
41
- }
42
-
43
-
44
- const showSuccess = () => {
45
- message.success(`Hello World`, {
46
- timeout: 3000
47
- });
48
- };
49
-
50
- const showInfo = () => {
51
- message.info(`Hello World`, {
52
- timeout: 3000
53
- });
54
- };
55
-
56
- const showWarning = () => {
57
- message.warning(`Hello World`, {
58
- timeout: 3000
59
- });
60
- };
61
-
62
- const showError = () => {
63
- message.error(`Hello World`, {
64
- timeout: 3000
65
- });
66
- };
67
-
68
-
69
-
70
- </script>
1
+ <template>
2
+ <div>
3
+ <button @click="showSuccess">Success</button>
4
+ <button @click="showInfo">Info</button>
5
+ <button @click="showWarning">Warning</button>
6
+ <button @click="showError">Error</button>
7
+ <hr />
8
+
9
+ <div>
10
+ <button @click="showMessage">Success</button><br />
11
+
12
+ <button @click="updateNumber">+1</button>
13
+
14
+ </div>
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import { ref } from 'vue';
20
+ import type { MessageReactive } from '../types';
21
+ import { useMessage } from '../useMessage';
22
+
23
+ const message = useMessage();
24
+
25
+ const number = ref(0);
26
+ let msg: MessageReactive | null = null;
27
+
28
+ const showMessage = () => {
29
+ msg = message.loading(`Loading`, {
30
+ timeout: 0
31
+ });
32
+ };
33
+
34
+ function updateNumber() {
35
+ if (msg) {
36
+ // number.value++;
37
+ msg.content = `Saved Successfully`;
38
+ msg.type = 'success';
39
+ msg.timeout = 3000;
40
+ }
41
+ }
42
+
43
+
44
+ const showSuccess = () => {
45
+ message.success(`Hello World`, {
46
+ timeout: 3000
47
+ });
48
+ };
49
+
50
+ const showInfo = () => {
51
+ message.info(`Hello World`, {
52
+ timeout: 3000
53
+ });
54
+ };
55
+
56
+ const showWarning = () => {
57
+ message.warning(`Hello World`, {
58
+ timeout: 3000
59
+ });
60
+ };
61
+
62
+ const showError = () => {
63
+ message.error(`Hello World`, {
64
+ timeout: 3000
65
+ });
66
+ };
67
+
68
+
69
+
70
+ </script>
@@ -1,2 +1,2 @@
1
- export { default as MMessageProviderBasic } from './basic.vue';
2
- export { default as MMessageProviderUpdate } from './update.vue';
1
+ export { default as MMessageProviderBasic } from './basic.vue';
2
+ export { default as MMessageProviderUpdate } from './update.vue';
@@ -1,34 +1,34 @@
1
- <template>
2
- <div>
3
- <button @click="showMessage">Success</button><br />
4
-
5
- <button @click="updateNumber">+1</button>
6
-
7
- </div>
8
- </template>
9
-
10
- <script lang="ts" setup>
11
- import { ref } from 'vue';
12
- import type { MessageReactive } from '../types';
13
- import { useMessage } from '../useMessage';
14
-
15
- const message = useMessage();
16
-
17
- const number = ref(0);
18
- let msg: MessageReactive | null = null;
19
-
20
- const showMessage = () => {
21
- msg = message.success(`Hello World`, {
22
- timeout: 3000
23
- });
24
- };
25
-
26
- function updateNumber() {
27
- if (msg) {
28
- number.value++;
29
- msg.content = `Hello World ${number.value}`;
30
- }
31
- }
32
-
33
-
34
- </script>
1
+ <template>
2
+ <div>
3
+ <button @click="showMessage">Success</button><br />
4
+
5
+ <button @click="updateNumber">+1</button>
6
+
7
+ </div>
8
+ </template>
9
+
10
+ <script lang="ts" setup>
11
+ import { ref } from 'vue';
12
+ import type { MessageReactive } from '../types';
13
+ import { useMessage } from '../useMessage';
14
+
15
+ const message = useMessage();
16
+
17
+ const number = ref(0);
18
+ let msg: MessageReactive | null = null;
19
+
20
+ const showMessage = () => {
21
+ msg = message.success(`Hello World`, {
22
+ timeout: 3000
23
+ });
24
+ };
25
+
26
+ function updateNumber() {
27
+ if (msg) {
28
+ number.value++;
29
+ msg.content = `Hello World ${number.value}`;
30
+ }
31
+ }
32
+
33
+
34
+ </script>
@@ -1,9 +1,9 @@
1
- <template>
2
- <m-message-provider placement="top-left">
3
- <slot />
4
- </m-message-provider>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- import MMessageProvider from '../MessageProvider.vue';
9
- </script>
1
+ <template>
2
+ <m-message-provider placement="top-left">
3
+ <slot />
4
+ </m-message-provider>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import MMessageProvider from '../MessageProvider.vue';
9
+ </script>