@teammodlr/ui-kit 2.3.12 → 2.3.14

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 (278) hide show
  1. package/env.d.ts +1 -1
  2. package/lib/components/colorpicker/ColorPicker.vue.d.ts +11 -1
  3. package/lib/index.cjs.js +1 -1
  4. package/lib/index.es.js +291 -285
  5. package/lib/nuxt.js +35 -35
  6. package/lib/nuxt.plugin.js +8 -8
  7. package/package.json +1 -1
  8. package/src/__storybook__/argTypes.ts +53 -53
  9. package/src/__storybook__/createStory.ts +15 -15
  10. package/src/__storybook__/index.ts +2 -2
  11. package/src/components/avatar/Avatar.vue +110 -110
  12. package/src/components/avatar/examples/basic.vue +6 -6
  13. package/src/components/avatar/examples/custom-size.vue +7 -7
  14. package/src/components/avatar/examples/index.stories.ts +25 -25
  15. package/src/components/avatar/examples/index.ts +5 -5
  16. package/src/components/avatar/examples/sizes.vue +33 -33
  17. package/src/components/avatar/examples/slots.vue +8 -8
  18. package/src/components/avatar/examples/variants.vue +18 -18
  19. package/src/components/avatar/style/Avatar.css.ts +92 -92
  20. package/src/components/avatar/style/index.ts +1 -1
  21. package/src/components/avatargroup/AvatarGroup.vue +72 -72
  22. package/src/components/avatargroup/examples/basic.vue +37 -37
  23. package/src/components/avatargroup/examples/index.stories.ts +19 -19
  24. package/src/components/avatargroup/examples/index.ts +1 -1
  25. package/src/components/avatargroup/style/AvatarGroup.css.ts +26 -26
  26. package/src/components/avatargroup/style/index.ts +1 -1
  27. package/src/components/avatargroup/symbol.ts +17 -17
  28. package/src/components/badge/Badge.vue +43 -43
  29. package/src/components/badge/examples/basic.vue +10 -10
  30. package/src/components/badge/examples/index.stories.ts +19 -19
  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.stories.ts +16 -16
  38. package/src/components/breadcrumb/examples/index.ts +1 -1
  39. package/src/components/breadcrumb/style/Breadcrumb.css.ts +40 -40
  40. package/src/components/breadcrumb/style/index.ts +1 -1
  41. package/src/components/breadcrumb/symbol.ts +18 -18
  42. package/src/components/button/Button.vue +203 -203
  43. package/src/components/button/examples/basic.vue +3 -3
  44. package/src/components/button/examples/disabled.vue +3 -3
  45. package/src/components/button/examples/icon-left.vue +12 -12
  46. package/src/components/button/examples/icon.vue +9 -9
  47. package/src/components/button/examples/index.stories.ts +37 -37
  48. package/src/components/button/examples/index.ts +9 -9
  49. package/src/components/button/examples/link.vue +3 -3
  50. package/src/components/button/examples/rounded.vue +7 -7
  51. package/src/components/button/examples/size.vue +7 -7
  52. package/src/components/button/examples/variants-secondary.vue +10 -10
  53. package/src/components/button/examples/variants.vue +10 -10
  54. package/src/components/button/style/index.ts +1 -1
  55. package/src/components/buttongroup/ButtonGroup.vue +36 -36
  56. package/src/components/buttongroup/examples/basic.vue +9 -9
  57. package/src/components/buttongroup/examples/icon-group.vue +21 -21
  58. package/src/components/buttongroup/examples/index.stories.ts +17 -17
  59. package/src/components/buttongroup/examples/index.ts +2 -2
  60. package/src/components/buttongroup/style/ButtonGroup.css.ts +42 -42
  61. package/src/components/buttongroup/style/index.ts +1 -1
  62. package/src/components/buttongroup/symbol.ts +9 -9
  63. package/src/components/checkbox/Checkbox.vue +149 -149
  64. package/src/components/checkbox/examples/basic.vue +9 -9
  65. package/src/components/checkbox/examples/index.stories.ts +16 -16
  66. package/src/components/checkbox/examples/index.ts +2 -2
  67. package/src/components/checkbox/examples/slot.vue +14 -14
  68. package/src/components/checkbox/style/Checkbox.css.ts +178 -178
  69. package/src/components/checkbox/style/index.ts +1 -1
  70. package/src/components/colorpicker/ColorPicker.vue +15 -4
  71. package/src/components/colorpicker/examples/index.stories.ts +12 -12
  72. package/src/components/colorpicker/examples/index.ts +1 -1
  73. package/src/components/colorpicker/style/index.ts +1 -1
  74. package/src/components/configprovider/ConfigProvider.vue +38 -38
  75. package/src/components/configprovider/types.ts +3 -3
  76. package/src/components/confirm/Confirm.vue +65 -65
  77. package/src/components/confirm/examples/basic.vue +48 -48
  78. package/src/components/confirm/examples/index.stories.ts +26 -26
  79. package/src/components/confirm/examples/index.ts +1 -1
  80. package/src/components/confirm/examples/wrapper.vue +9 -9
  81. package/src/components/confirm/props.ts +24 -24
  82. package/src/components/confirm/providerProps.ts +10 -10
  83. package/src/components/confirm/types.ts +33 -33
  84. package/src/components/confirm/useConfirm.ts +14 -14
  85. package/src/components/dialog/examples/basic.vue +23 -23
  86. package/src/components/dialog/examples/index.stories.ts +14 -14
  87. package/src/components/dialog/examples/index.ts +1 -1
  88. package/src/components/dialog/style/index.ts +1 -1
  89. package/src/components/dialogprovider/examples/index.stories.ts +26 -26
  90. package/src/components/dropdown/DropdownList.vue +20 -20
  91. package/src/components/dropdown/examples/index.stories.ts +26 -26
  92. package/src/components/dropdown/examples/index.ts +3 -3
  93. package/src/components/dropdown/hooks.ts +30 -30
  94. package/src/components/dropdown/style/index.ts +1 -1
  95. package/src/components/dropdown/symbol.ts +9 -9
  96. package/src/components/form/Form.vue +153 -153
  97. package/src/components/form/examples/basic.vue +75 -75
  98. package/src/components/form/examples/index.stories.ts +23 -23
  99. package/src/components/form/examples/index.ts +1 -1
  100. package/src/components/form/style/Form.css.ts +28 -28
  101. package/src/components/form/style/index.ts +2 -2
  102. package/src/components/form/symbol.ts +16 -16
  103. package/src/components/image/Image.vue +71 -71
  104. package/src/components/image/examples/basic.vue +5 -5
  105. package/src/components/image/examples/index.stories.ts +10 -10
  106. package/src/components/image/examples/index.ts +1 -1
  107. package/src/components/input/Input.vue +233 -233
  108. package/src/components/input/examples/basic.vue +21 -21
  109. package/src/components/input/examples/index.stories.ts +26 -26
  110. package/src/components/input/examples/index.ts +6 -6
  111. package/src/components/input/examples/left-icon.vue +9 -9
  112. package/src/components/input/examples/prefix.vue +5 -5
  113. package/src/components/input/examples/right-icon.vue +9 -9
  114. package/src/components/input/examples/sizes.vue +9 -9
  115. package/src/components/input/examples/suffix.vue +7 -7
  116. package/src/components/input/style/Input.css.ts +294 -294
  117. package/src/components/input/style/index.ts +1 -1
  118. package/src/components/link/Link.vue +53 -53
  119. package/src/components/link/examples/basic.vue +3 -3
  120. package/src/components/link/examples/index.stories.ts +15 -15
  121. package/src/components/link/examples/index.ts +1 -1
  122. package/src/components/messageprovider/Message.vue +135 -135
  123. package/src/components/messageprovider/MessageProvider.vue +152 -152
  124. package/src/components/messageprovider/examples/basic.vue +70 -70
  125. package/src/components/messageprovider/examples/index.stories.ts +26 -26
  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.stories.ts +16 -16
  136. package/src/components/modal/examples/index.ts +3 -3
  137. package/src/components/modal/examples/modal-form.vue +99 -99
  138. package/src/components/modal/examples/sidebar.vue +79 -79
  139. package/src/components/modal/style/Modal.css.ts +318 -318
  140. package/src/components/modal/style/index.ts +1 -1
  141. package/src/components/pagination/Pagination.vue +296 -296
  142. package/src/components/pagination/examples/basic.vue +17 -17
  143. package/src/components/pagination/examples/index.stories.ts +11 -11
  144. package/src/components/pagination/examples/index.ts +1 -1
  145. package/src/components/pagination/style/Pagination.css.ts +93 -93
  146. package/src/components/pagination/style/index.ts +1 -1
  147. package/src/components/radio/Radio.vue +136 -136
  148. package/src/components/radio/examples/basic.vue +8 -8
  149. package/src/components/radio/examples/group.vue +15 -15
  150. package/src/components/radio/examples/index.stories.ts +16 -16
  151. package/src/components/radio/examples/index.ts +2 -2
  152. package/src/components/radio/style/Checkbox.css.ts +130 -130
  153. package/src/components/radio/style/index.ts +1 -1
  154. package/src/components/radiobutton/RadioButton.vue +131 -131
  155. package/src/components/radiobutton/style/RadioButton.css.ts +189 -189
  156. package/src/components/radiobutton/style/index.ts +1 -1
  157. package/src/components/radiobuttongroup/RadioButtonGroup.vue +74 -74
  158. package/src/components/radiobuttongroup/examples/basic.vue +16 -16
  159. package/src/components/radiobuttongroup/examples/index.stories.ts +18 -18
  160. package/src/components/radiobuttongroup/examples/index.ts +1 -1
  161. package/src/components/radiobuttongroup/style/RadioButtonGroup.css.ts +37 -37
  162. package/src/components/radiobuttongroup/style/index.ts +1 -1
  163. package/src/components/radiobuttongroup/symbol.ts +12 -12
  164. package/src/components/renderer/examlpes/basic.vue +23 -23
  165. package/src/components/renderer/examlpes/index.stories.ts +14 -14
  166. package/src/components/renderer/examlpes/index.ts +1 -1
  167. package/src/components/renderer/props.ts +14 -14
  168. package/src/components/renderer/renderer.ts +16 -16
  169. package/src/components/select/examples/basic.vue +26 -26
  170. package/src/components/select/examples/index.stories.ts +16 -16
  171. package/src/components/select/examples/index.ts +3 -3
  172. package/src/components/select/examples/multiple.vue +21 -21
  173. package/src/components/select/examples/searchable.vue +20 -20
  174. package/src/components/select/style/index.ts +1 -1
  175. package/src/components/select/types.ts +27 -27
  176. package/src/components/skeleton/Skeleton.vue +55 -55
  177. package/src/components/skeleton/examples/basic.vue +3 -3
  178. package/src/components/skeleton/examples/index.stories.ts +13 -13
  179. package/src/components/skeleton/examples/index.ts +2 -2
  180. package/src/components/skeleton/examples/post.vue +8 -8
  181. package/src/components/skeleton/style/Skeleton.css.ts +72 -72
  182. package/src/components/skeleton/style/index.ts +2 -2
  183. package/src/components/slider/style/Slider.css.ts +50 -50
  184. package/src/components/slider/style/index.ts +1 -1
  185. package/src/components/switch/Switch.vue +132 -132
  186. package/src/components/switch/examples/basic.vue +9 -9
  187. package/src/components/switch/examples/index.stories.ts +15 -15
  188. package/src/components/switch/examples/index.ts +2 -2
  189. package/src/components/switch/examples/slot.vue +11 -11
  190. package/src/components/switch/style/index.ts +1 -1
  191. package/src/components/tab/examples/basic.vue +23 -23
  192. package/src/components/tab/examples/index.ts +2 -2
  193. package/src/components/tab/examples/vertical.vue +19 -19
  194. package/src/components/table/Table.vue +198 -198
  195. package/src/components/table/TableBody.vue +13 -13
  196. package/src/components/table/TableCell.vue +13 -13
  197. package/src/components/table/TableHead.vue +46 -46
  198. package/src/components/table/TableHeadRow.vue +15 -15
  199. package/src/components/table/TableRow.vue +19 -19
  200. package/src/components/table/examples/basic.vue +61 -61
  201. package/src/components/table/examples/empty.vue +44 -44
  202. package/src/components/table/examples/index.stories.ts +17 -17
  203. package/src/components/table/examples/index.ts +3 -3
  204. package/src/components/table/examples/selected.vue +68 -68
  205. package/src/components/table/style/Table.css.ts +62 -62
  206. package/src/components/table/style/index.ts +1 -1
  207. package/src/components/table/types/index.ts +6 -6
  208. package/src/components/tag/Tag.vue +72 -72
  209. package/src/components/tag/examples/basic.vue +5 -5
  210. package/src/components/tag/examples/index.stories.ts +16 -16
  211. package/src/components/tag/examples/index.ts +1 -1
  212. package/src/components/tag/style/Tag.css.ts +83 -83
  213. package/src/components/tag/style/index.ts +1 -1
  214. package/src/components/textarea/Textarea.vue +180 -180
  215. package/src/components/textarea/examples/basic.vue +8 -8
  216. package/src/components/textarea/examples/index.stories.ts +14 -14
  217. package/src/components/textarea/examples/index.ts +1 -1
  218. package/src/components/textarea/style/Textarea.css.ts +191 -191
  219. package/src/components/textarea/style/index.ts +1 -1
  220. package/src/components/tooltip/examples/basic.vue +5 -5
  221. package/src/components/tooltip/examples/index.stories.ts +17 -17
  222. package/src/components/tooltip/examples/index.ts +2 -2
  223. package/src/components/tooltip/examples/placement.vue +9 -9
  224. package/src/components/tooltip/style/Tooltip.css.ts +90 -90
  225. package/src/components/tooltip/style/index.ts +1 -1
  226. package/src/components/transfer/Transfer.vue +145 -145
  227. package/src/components/transfer/examples/basic.vue +21 -21
  228. package/src/components/transfer/examples/index.stories.ts +12 -12
  229. package/src/components/transfer/examples/index.ts +1 -1
  230. package/src/components/transfer/style/Transfer.css.ts +81 -81
  231. package/src/components/transfer/style/index.ts +1 -1
  232. package/src/components/tree/Tree.vue +138 -138
  233. package/src/components/tree/TreeNode.vue +109 -109
  234. package/src/components/tree/TreeNodeToggle.vue +48 -48
  235. package/src/components/tree/examples/basic.vue +458 -458
  236. package/src/components/tree/examples/index.stories.ts +12 -12
  237. package/src/components/tree/examples/index.ts +1 -1
  238. package/src/components/tree/props.ts +97 -97
  239. package/src/components/tree/style/Tree.css.ts +75 -75
  240. package/src/components/tree/style/index.ts +1 -1
  241. package/src/components/tree/types.ts +103 -103
  242. package/src/components/virtualscroll/VirtualScroll.css +13 -13
  243. package/src/components/virtualscroll/VirtualScroll.vue +166 -166
  244. package/src/components/virtualscroll/examples/basic.vue +31 -31
  245. package/src/components/virtualscroll/examples/index.stories.ts +11 -11
  246. package/src/components/virtualscroll/examples/index.ts +1 -1
  247. package/src/components/virtualscroll/style/VirtualScroll.css.ts +17 -17
  248. package/src/components/virtualscroll/style/index.ts +1 -1
  249. package/src/composables/element.ts +13 -13
  250. package/src/composables/index.ts +5 -5
  251. package/src/composables/useCachedUid.ts +15 -15
  252. package/src/composables/useEventListener.ts +19 -19
  253. package/src/composables/useInput.ts +151 -151
  254. package/src/composables/useInteractive.ts +19 -19
  255. package/src/composables/useIsServer.ts +7 -7
  256. package/src/composables/useMergedState.ts +18 -18
  257. package/src/composables/useMount.ts +43 -43
  258. package/src/composables/usePopper.ts +215 -215
  259. package/src/composables/useZIndex.ts +33 -33
  260. package/src/create.ts +38 -38
  261. package/src/css/components.css +16 -16
  262. package/src/css/index.css +4 -4
  263. package/src/css/transitions.css +40 -40
  264. package/src/css/variables.css +80 -80
  265. package/src/examples/cards/cards.stories.ts +9 -9
  266. package/src/examples/cards/sidebar.vue +262 -262
  267. package/src/examples/modal/modal.stories.ts +9 -9
  268. package/src/examples/modal/modal.vue +52 -52
  269. package/src/exports/nuxt.js +35 -35
  270. package/src/exports/nuxt.plugin.js +8 -8
  271. package/src/index.ts +5 -5
  272. package/src/install.ts +8 -8
  273. package/src/shims-vue.d.ts +6 -6
  274. package/src/styles/theme.css.ts +181 -181
  275. package/src/types/props.ts +21 -21
  276. package/src/utils/call.ts +34 -34
  277. package/src/utils/injection.ts +45 -45
  278. package/volar.d.ts +16 -16
@@ -1,54 +1,54 @@
1
- <template>
2
- <component :is="tag" :to="to" :class="computedClasses" :disabled="disabled">
3
- <slot />
4
- </component>
5
- </template>
6
-
7
- <script lang="ts">
8
- import type { Color } from "../../types/props";
9
- import { computed, defineComponent, type PropType } from "vue";
10
-
11
- export default defineComponent({
12
- name: "MLink",
13
- props: {
14
- color: {
15
- type: String as PropType<Color>
16
- },
17
- disabled: {
18
- type: Boolean,
19
- default: false
20
- },
21
- block: {
22
- type: Boolean,
23
- default: false
24
- },
25
- underline: {
26
- type: Boolean,
27
- default: false
28
- },
29
- to: [String, Object]
30
- },
31
- setup(props) {
32
- const computedClasses = computed(() => {
33
- return [
34
- 'm-link',
35
- {
36
- [`m-link--${props.color}`]: props.color,
37
- 'm-link--underline': props.underline,
38
- 'm-link--block': props.block,
39
- 'm-link--disabled': props.disabled,
40
- 'm-link--external': tag.value === 'a'
41
- }
42
- ]
43
- });
44
-
45
- const tag = computed(() => (props.to ? 'router-link' : 'a'));
46
-
47
- return {
48
- computedClasses,
49
- tag
50
- }
51
- }
52
- })
53
- </script>
1
+ <template>
2
+ <component :is="tag" :to="to" :class="computedClasses" :disabled="disabled">
3
+ <slot />
4
+ </component>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import type { Color } from "../../types/props";
9
+ import { computed, defineComponent, type PropType } from "vue";
10
+
11
+ export default defineComponent({
12
+ name: "MLink",
13
+ props: {
14
+ color: {
15
+ type: String as PropType<Color>
16
+ },
17
+ disabled: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ block: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ underline: {
26
+ type: Boolean,
27
+ default: false
28
+ },
29
+ to: [String, Object]
30
+ },
31
+ setup(props) {
32
+ const computedClasses = computed(() => {
33
+ return [
34
+ 'm-link',
35
+ {
36
+ [`m-link--${props.color}`]: props.color,
37
+ 'm-link--underline': props.underline,
38
+ 'm-link--block': props.block,
39
+ 'm-link--disabled': props.disabled,
40
+ 'm-link--external': tag.value === 'a'
41
+ }
42
+ ]
43
+ });
44
+
45
+ const tag = computed(() => (props.to ? 'router-link' : 'a'));
46
+
47
+ return {
48
+ computedClasses,
49
+ tag
50
+ }
51
+ }
52
+ })
53
+ </script>
54
54
 
@@ -1,3 +1,3 @@
1
- <template>
2
- <MLink href="https://www.google.com">Google</MLink>
3
- </template>
1
+ <template>
2
+ <MLink href="https://www.google.com">Google</MLink>
3
+ </template>
@@ -1,15 +1,15 @@
1
- import MLink from '../Link.vue';
2
-
3
- import { MLinkBasic } from './index';
4
-
5
- import { createStory, colorArgType } from '../../../__storybook__';
6
-
7
- export default {
8
- component: MLink,
9
- title: 'Components/Link',
10
- argTypes: {
11
- ...colorArgType()
12
- }
13
- };
14
-
15
- export const Basic = createStory(MLinkBasic);
1
+ import MLink from '../Link.vue';
2
+
3
+ import { MLinkBasic } from './index';
4
+
5
+ import { createStory, colorArgType } from '../../../__storybook__';
6
+
7
+ export default {
8
+ component: MLink,
9
+ title: 'Components/Link',
10
+ argTypes: {
11
+ ...colorArgType()
12
+ }
13
+ };
14
+
15
+ export const Basic = createStory(MLinkBasic);
@@ -1 +1 @@
1
- export { default as MLinkBasic } from './basic.vue';
1
+ export { default as MLinkBasic } from './basic.vue';
@@ -1,135 +1,135 @@
1
- <template>
2
- <transition
3
- type="animation"
4
- :enter-active-class="scale.enterActive"
5
- :leave-active-class="scale.leaveActive"
6
- :enter-from-class="scale.enterFrom"
7
- :leave-to-class="scale.leaveTo"
8
- appear
9
- mode="out-in"
10
- >
11
- <div v-if="show" :class="classes">
12
- <span :class="iconClasses">
13
- <svg v-if="variant == 'info'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
14
- <path fill-rule="evenodd"
15
- d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z"
16
- clip-rule="evenodd" />
17
- </svg>
18
-
19
- <svg v-else-if="variant == 'success'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
20
- <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" />
21
- </svg>
22
-
23
- <svg v-else-if="variant == 'warning'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
24
- <path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" />
25
- </svg>
26
-
27
- <svg v-else-if="variant == 'error'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
28
- <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" />
29
- </svg>
30
-
31
- <svg v-else-if="variant == 'loading'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
32
- <path fill-rule="evenodd" d="M15.312 11.424a5.5 5.5 0 01-9.201 2.466l-.312-.311h2.433a.75.75 0 000-1.5H3.989a.75.75 0 00-.75.75v4.242a.75.75 0 001.5 0v-2.43l.31.31a7 7 0 0011.712-3.138.75.75 0 00-1.449-.39zm1.23-3.723a.75.75 0 00.219-.53V2.929a.75.75 0 00-1.5 0V5.36l-.31-.31A7 7 0 003.239 8.188a.75.75 0 101.448.389A5.5 5.5 0 0113.89 6.11l.311.31h-2.432a.75.75 0 000 1.5h4.243a.75.75 0 00.53-.219z" clip-rule="evenodd" />
33
- </svg>
34
- </span>
35
-
36
- <div class="m-message">
37
- {{ content }}
38
- </div>
39
- </div>
40
- </transition>
41
- </template>
42
-
43
- <script lang="ts">
44
- import { defineComponent, onMounted, ref, computed, watch } from 'vue';
45
- import type { PropType } from 'vue';
46
- import * as style from './style';
47
- import { scale } from '../../styles/transitions.css';
48
-
49
- type Variant = 'info' | 'success' | 'warning' | 'error' | 'default' | 'loading'
50
-
51
- export default defineComponent({
52
- name: 'MMessage',
53
- props: {
54
- onInternalAfterLeave: Function as PropType<(key: string) => void>,
55
- internalKey: {
56
- type: String,
57
- required: true
58
- },
59
- content: {
60
- type: [String]
61
- },
62
- type: {
63
- type: String,
64
- default: 'default'
65
- },
66
- variant: {
67
- type: String as PropType<Variant>,
68
- default: 'default'
69
- },
70
- timeout: {
71
- type: Number,
72
- default: 10000
73
- },
74
- showClose: {
75
- type: Boolean,
76
- default: true
77
- },
78
- onClose: {
79
- type: Function,
80
- default: () => { }
81
- }
82
- },
83
- setup(props) {
84
- let timerId: number | null = null;
85
- const showRef = ref<boolean>(true);
86
-
87
- onMounted(() => {
88
- setHideTimeout();
89
- });
90
-
91
- function setHideTimeout(): void {
92
- const { timeout } = props;
93
- if (timeout) {
94
- timerId = window.setTimeout(hide, timeout);
95
- }
96
- }
97
-
98
- function hide(): void {
99
- showRef.value = false
100
- if (timerId) {
101
- window.clearTimeout(timerId)
102
- timerId = null
103
- if (props.onInternalAfterLeave) {
104
- props.onInternalAfterLeave(props.internalKey)
105
- }
106
- }
107
- }
108
-
109
- const classes = computed(() => {
110
- return [
111
- style.base,
112
- [style.variant[props.variant]]
113
- ]
114
- })
115
-
116
- const iconClasses = computed(() => {
117
- return [
118
- style.icon
119
- ]
120
- })
121
-
122
- watch(() => props.timeout, () => {
123
- setHideTimeout();
124
- })
125
-
126
- return {
127
- show: showRef,
128
- hide,
129
- classes,
130
- iconClasses,
131
- scale
132
- }
133
- }
134
- })
135
- </script>
1
+ <template>
2
+ <transition
3
+ type="animation"
4
+ :enter-active-class="scale.enterActive"
5
+ :leave-active-class="scale.leaveActive"
6
+ :enter-from-class="scale.enterFrom"
7
+ :leave-to-class="scale.leaveTo"
8
+ appear
9
+ mode="out-in"
10
+ >
11
+ <div v-if="show" :class="classes">
12
+ <span :class="iconClasses">
13
+ <svg v-if="variant == 'info'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
14
+ <path fill-rule="evenodd"
15
+ d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z"
16
+ clip-rule="evenodd" />
17
+ </svg>
18
+
19
+ <svg v-else-if="variant == 'success'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
20
+ <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" />
21
+ </svg>
22
+
23
+ <svg v-else-if="variant == 'warning'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
24
+ <path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" />
25
+ </svg>
26
+
27
+ <svg v-else-if="variant == 'error'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
28
+ <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" />
29
+ </svg>
30
+
31
+ <svg v-else-if="variant == 'loading'" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
32
+ <path fill-rule="evenodd" d="M15.312 11.424a5.5 5.5 0 01-9.201 2.466l-.312-.311h2.433a.75.75 0 000-1.5H3.989a.75.75 0 00-.75.75v4.242a.75.75 0 001.5 0v-2.43l.31.31a7 7 0 0011.712-3.138.75.75 0 00-1.449-.39zm1.23-3.723a.75.75 0 00.219-.53V2.929a.75.75 0 00-1.5 0V5.36l-.31-.31A7 7 0 003.239 8.188a.75.75 0 101.448.389A5.5 5.5 0 0113.89 6.11l.311.31h-2.432a.75.75 0 000 1.5h4.243a.75.75 0 00.53-.219z" clip-rule="evenodd" />
33
+ </svg>
34
+ </span>
35
+
36
+ <div class="m-message">
37
+ {{ content }}
38
+ </div>
39
+ </div>
40
+ </transition>
41
+ </template>
42
+
43
+ <script lang="ts">
44
+ import { defineComponent, onMounted, ref, computed, watch } from 'vue';
45
+ import type { PropType } from 'vue';
46
+ import * as style from './style';
47
+ import { scale } from '../../styles/transitions.css';
48
+
49
+ type Variant = 'info' | 'success' | 'warning' | 'error' | 'default' | 'loading'
50
+
51
+ export default defineComponent({
52
+ name: 'MMessage',
53
+ props: {
54
+ onInternalAfterLeave: Function as PropType<(key: string) => void>,
55
+ internalKey: {
56
+ type: String,
57
+ required: true
58
+ },
59
+ content: {
60
+ type: [String]
61
+ },
62
+ type: {
63
+ type: String,
64
+ default: 'default'
65
+ },
66
+ variant: {
67
+ type: String as PropType<Variant>,
68
+ default: 'default'
69
+ },
70
+ timeout: {
71
+ type: Number,
72
+ default: 10000
73
+ },
74
+ showClose: {
75
+ type: Boolean,
76
+ default: true
77
+ },
78
+ onClose: {
79
+ type: Function,
80
+ default: () => { }
81
+ }
82
+ },
83
+ setup(props) {
84
+ let timerId: number | null = null;
85
+ const showRef = ref<boolean>(true);
86
+
87
+ onMounted(() => {
88
+ setHideTimeout();
89
+ });
90
+
91
+ function setHideTimeout(): void {
92
+ const { timeout } = props;
93
+ if (timeout) {
94
+ timerId = window.setTimeout(hide, timeout);
95
+ }
96
+ }
97
+
98
+ function hide(): void {
99
+ showRef.value = false
100
+ if (timerId) {
101
+ window.clearTimeout(timerId)
102
+ timerId = null
103
+ if (props.onInternalAfterLeave) {
104
+ props.onInternalAfterLeave(props.internalKey)
105
+ }
106
+ }
107
+ }
108
+
109
+ const classes = computed(() => {
110
+ return [
111
+ style.base,
112
+ [style.variant[props.variant]]
113
+ ]
114
+ })
115
+
116
+ const iconClasses = computed(() => {
117
+ return [
118
+ style.icon
119
+ ]
120
+ })
121
+
122
+ watch(() => props.timeout, () => {
123
+ setHideTimeout();
124
+ })
125
+
126
+ return {
127
+ show: showRef,
128
+ hide,
129
+ classes,
130
+ iconClasses,
131
+ scale
132
+ }
133
+ }
134
+ })
135
+ </script>