@teammodlr/ui-kit 2.1.41 → 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 +8 -8
  5. package/lib/index.es.js +1352 -1342
  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,151 +1,151 @@
1
- <template>
2
- <component
3
- :is="computedType"
4
- :href="href"
5
- ref="wrapper"
6
- :class="computedWrapperClasses"
7
- role="menuitem"
8
- tabindex="0"
9
- @click="handleSelect"
10
- v-bind="$attrs">
11
- <div v-if="hasIconLeft" :class="style.menuItemIcon">
12
- <slot name="icon-left" />
13
- </div>
14
- <div :class="style.menuItemTextContainer">
15
- <span :class="style.menuItemText"><slot /></span>
16
- </div>
17
- <!-- <div v-if="hotkey" class="m-dropdown__hotkeys">
18
- <template v-for="key in hotkey.split('+')">
19
- <kbd>{{ key }}</kbd>
20
- </template>
21
- </div> -->
22
- <div v-if="hasIconRight" :class="style.menuItemIcon">
23
- <slot name="icon-right" />
24
- </div>
25
- </component>
26
- </template>
27
-
28
- <script lang="ts">
29
- import {
30
- computed,
31
- defineComponent,
32
- inject,
33
- type PropType,
34
- ref,
35
- toRef
36
- } from 'vue';
37
- import { useLabel } from './hooks';
38
- import * as style from './style';
39
- import type { Variant } from '../../types/props';
40
-
41
- export default defineComponent({
42
- name: 'DropdownItem',
43
- props: {
44
- label: {
45
- type: [String, Number],
46
- default: null
47
- },
48
- disabled: {
49
- type: Boolean,
50
- default: false
51
- },
52
- reference: {
53
- type: Boolean,
54
- default: false
55
- },
56
- onSelect: {
57
- type: Function as PropType<(label: string | number) => void>,
58
- default: () => {}
59
- },
60
- hotkey: {
61
- type: String,
62
- default: null
63
- },
64
- description: {
65
- type: String,
66
- default: null
67
- },
68
- href: {
69
- type: String,
70
- default: null
71
- },
72
- variant: {
73
- type: String as PropType<Variant>,
74
- default: 'default'
75
- }
76
- },
77
- emits: [],
78
- setup(props, { slots }) {
79
- const parentSelect = inject('dropdown-select', null);
80
- // const state = inject(DROPDOWN_STATE, null);
81
- // const keys = useMagicKeys({
82
- // passive: false,
83
- // onEventFired: (event) => {
84
-
85
- // // only fire when the dropdown is open
86
- // if (state?.isOpen.value) {
87
- // event.preventDefault();
88
- // }
89
- // }
90
- // });
91
-
92
- const hasIconLeft = computed(() => !!slots['icon-left']);
93
- const hasIconRight = computed(() => !!slots['icon-right']);
94
-
95
- const wrapper = ref(null);
96
- const label = toRef(props, 'label');
97
- const isReference = ref(props.reference);
98
- const currentLabel = useLabel(label, wrapper);
99
- function handleSelect() {
100
- if (props.disabled || isReference.value) {
101
- return;
102
- }
103
-
104
- if (typeof parentSelect === 'function') {
105
- // @ts-ignore
106
- parentSelect([currentLabel.value!]);
107
- }
108
-
109
- props.onSelect(currentLabel.value!);
110
- }
111
-
112
- // const isOpen = computed(() => {
113
- // return state?.isOpen.value;
114
- // });
115
-
116
- const computedWrapperClasses = computed(() => {
117
- return [style.menuItem, style.variant[props.variant]];
118
- });
119
-
120
- const computedType = computed(() => {
121
- if (props.href) {
122
- return 'a';
123
- }
124
-
125
- return 'li';
126
- });
127
-
128
- // onMounted(() => {
129
- // if (props.hotkey) {
130
- // const combination = keys[props.hotkey];
131
-
132
- // whenever(combination, (v) => {
133
- // if (v && isOpen.value) {
134
- // handleSelect();
135
- // }
136
- // })
137
- // }
138
- // })
139
-
140
- return {
141
- wrapper,
142
- hasIconLeft,
143
- hasIconRight,
144
- handleSelect,
145
- computedWrapperClasses,
146
- style,
147
- computedType
148
- };
149
- }
150
- });
151
- </script>
1
+ <template>
2
+ <component
3
+ :is="computedType"
4
+ :href="href"
5
+ ref="wrapper"
6
+ :class="computedWrapperClasses"
7
+ role="menuitem"
8
+ tabindex="0"
9
+ @click="handleSelect"
10
+ v-bind="$attrs">
11
+ <div v-if="hasIconLeft" :class="style.menuItemIcon">
12
+ <slot name="icon-left" />
13
+ </div>
14
+ <div :class="style.menuItemTextContainer">
15
+ <span :class="style.menuItemText"><slot /></span>
16
+ </div>
17
+ <!-- <div v-if="hotkey" class="m-dropdown__hotkeys">
18
+ <template v-for="key in hotkey.split('+')">
19
+ <kbd>{{ key }}</kbd>
20
+ </template>
21
+ </div> -->
22
+ <div v-if="hasIconRight" :class="style.menuItemIcon">
23
+ <slot name="icon-right" />
24
+ </div>
25
+ </component>
26
+ </template>
27
+
28
+ <script lang="ts">
29
+ import {
30
+ computed,
31
+ defineComponent,
32
+ inject,
33
+ type PropType,
34
+ ref,
35
+ toRef
36
+ } from 'vue';
37
+ import { useLabel } from './hooks';
38
+ import * as style from './style';
39
+ import type { Variant } from '../../types/props';
40
+
41
+ export default defineComponent({
42
+ name: 'DropdownItem',
43
+ props: {
44
+ label: {
45
+ type: [String, Number],
46
+ default: null
47
+ },
48
+ disabled: {
49
+ type: Boolean,
50
+ default: false
51
+ },
52
+ reference: {
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ onSelect: {
57
+ type: Function as PropType<(label: string | number) => void>,
58
+ default: () => {}
59
+ },
60
+ hotkey: {
61
+ type: String,
62
+ default: null
63
+ },
64
+ description: {
65
+ type: String,
66
+ default: null
67
+ },
68
+ href: {
69
+ type: String,
70
+ default: null
71
+ },
72
+ variant: {
73
+ type: String as PropType<Variant>,
74
+ default: 'default'
75
+ }
76
+ },
77
+ emits: [],
78
+ setup(props, { slots }) {
79
+ const parentSelect = inject('dropdown-select', null);
80
+ // const state = inject(DROPDOWN_STATE, null);
81
+ // const keys = useMagicKeys({
82
+ // passive: false,
83
+ // onEventFired: (event) => {
84
+
85
+ // // only fire when the dropdown is open
86
+ // if (state?.isOpen.value) {
87
+ // event.preventDefault();
88
+ // }
89
+ // }
90
+ // });
91
+
92
+ const hasIconLeft = computed(() => !!slots['icon-left']);
93
+ const hasIconRight = computed(() => !!slots['icon-right']);
94
+
95
+ const wrapper = ref(null);
96
+ const label = toRef(props, 'label');
97
+ const isReference = ref(props.reference);
98
+ const currentLabel = useLabel(label, wrapper);
99
+ function handleSelect() {
100
+ if (props.disabled || isReference.value) {
101
+ return;
102
+ }
103
+
104
+ if (typeof parentSelect === 'function') {
105
+ // @ts-ignore
106
+ parentSelect([currentLabel.value!]);
107
+ }
108
+
109
+ props.onSelect(currentLabel.value!);
110
+ }
111
+
112
+ // const isOpen = computed(() => {
113
+ // return state?.isOpen.value;
114
+ // });
115
+
116
+ const computedWrapperClasses = computed(() => {
117
+ return [style.menuItem, style.variant[props.variant]];
118
+ });
119
+
120
+ const computedType = computed(() => {
121
+ if (props.href) {
122
+ return 'a';
123
+ }
124
+
125
+ return 'li';
126
+ });
127
+
128
+ // onMounted(() => {
129
+ // if (props.hotkey) {
130
+ // const combination = keys[props.hotkey];
131
+
132
+ // whenever(combination, (v) => {
133
+ // if (v && isOpen.value) {
134
+ // handleSelect();
135
+ // }
136
+ // })
137
+ // }
138
+ // })
139
+
140
+ return {
141
+ wrapper,
142
+ hasIconLeft,
143
+ hasIconRight,
144
+ handleSelect,
145
+ computedWrapperClasses,
146
+ style,
147
+ computedType
148
+ };
149
+ }
150
+ });
151
+ </script>
@@ -1,20 +1,20 @@
1
- <template>
2
- <ul :class="style.menuItems">
3
- <slot />
4
- </ul>
5
- </template>
6
-
7
- <script lang="ts">
8
- import { defineComponent } from 'vue';
9
- import * as style from "./style";
10
-
11
- export default defineComponent({
12
- name: "DropdownList",
13
- setup() {
14
-
15
- return {
16
- style
17
- }
18
- }
19
- })
20
- </script>
1
+ <template>
2
+ <ul :class="style.menuItems">
3
+ <slot />
4
+ </ul>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ import { defineComponent } from 'vue';
9
+ import * as style from "./style";
10
+
11
+ export default defineComponent({
12
+ name: "DropdownList",
13
+ setup() {
14
+
15
+ return {
16
+ style
17
+ }
18
+ }
19
+ })
20
+ </script>
@@ -1,23 +1,23 @@
1
- <template>
2
- <li :class="computedClasses"></li>
3
- </template>
4
-
5
- <script lang="ts">
6
- import {computed, defineComponent} from "vue";
7
- import * as style from "./style";
8
-
9
- export default defineComponent({
10
- name: "DropdownSeperator",
11
- setup() {
12
- const computedClasses = computed(() => {
13
- return [
14
- style.menuSeperator
15
- ]
16
- });
17
-
18
- return {
19
- computedClasses
20
- }
21
- }
22
- })
1
+ <template>
2
+ <li :class="computedClasses"></li>
3
+ </template>
4
+
5
+ <script lang="ts">
6
+ import {computed, defineComponent} from "vue";
7
+ import * as style from "./style";
8
+
9
+ export default defineComponent({
10
+ name: "DropdownSeperator",
11
+ setup() {
12
+ const computedClasses = computed(() => {
13
+ return [
14
+ style.menuSeperator
15
+ ]
16
+ });
17
+
18
+ return {
19
+ computedClasses
20
+ }
21
+ }
22
+ })
23
23
  </script>
@@ -1,18 +1,18 @@
1
- <template>
2
- <slot />
3
- </template>
4
-
5
- <script lang="ts">
6
- import { defineComponent, inject, provide } from 'vue';
7
- import {DROPDOWN_STATE} from "./symbol";
8
-
9
- export default defineComponent({
10
- name: 'DropdownWrapper',
11
- setup() {
12
- const state = inject(DROPDOWN_STATE, null);
13
-
14
- // @ts-ignore
15
- provide('dropdown-select', state?.handleSelect);
16
- }
17
- })
18
- </script>
1
+ <template>
2
+ <slot />
3
+ </template>
4
+
5
+ <script lang="ts">
6
+ import { defineComponent, inject, provide } from 'vue';
7
+ import {DROPDOWN_STATE} from "./symbol";
8
+
9
+ export default defineComponent({
10
+ name: 'DropdownWrapper',
11
+ setup() {
12
+ const state = inject(DROPDOWN_STATE, null);
13
+
14
+ // @ts-ignore
15
+ provide('dropdown-select', state?.handleSelect);
16
+ }
17
+ })
18
+ </script>
@@ -1,119 +1,119 @@
1
- <template>
2
- <MDropdown>
3
- <MButton> Menu </MButton>
4
-
5
- <template #menu>
6
- <MDropdownList>
7
- <MDropdownHeading> Hello </MDropdownHeading>
8
- <MDropdownItem hotkey="Ctrl+L" @click="handleClick">
9
- Item One
10
- </MDropdownItem>
11
- <MDropdownSeperator />
12
- <MDropdownItem
13
- variant="error"
14
- href="https://google.com"
15
- target="_blank">
16
- Item Two
17
- </MDropdownItem>
18
- <MDropdownItem href="https://google.com" target="_blank">
19
- Item Two
20
- </MDropdownItem>
21
- <MDropdownItem href="https://google.com" target="_blank">
22
- Item Two
23
- </MDropdownItem>
24
- <MDropdownItem href="https://google.com" target="_blank">
25
- Item Two
26
- </MDropdownItem>
27
- <MDropdownItem href="https://google.com" target="_blank">
28
- Item Two
29
- </MDropdownItem>
30
- <MDropdownItem href="https://google.com" target="_blank">
31
- Item Two
32
- </MDropdownItem>
33
- <MDropdownItem href="https://google.com" target="_blank">
34
- Item Two
35
- </MDropdownItem>
36
- <MDropdownItem href="https://google.com" target="_blank">
37
- Item Two
38
- </MDropdownItem>
39
- <MDropdownItem href="https://google.com" target="_blank">
40
- Item Two
41
- </MDropdownItem>
42
- <MDropdownItem href="https://google.com" target="_blank">
43
- Item Two
44
- </MDropdownItem>
45
- <MDropdownItem href="https://google.com" target="_blank">
46
- Item Two
47
- </MDropdownItem>
48
- <MDropdownItem href="https://google.com" target="_blank">
49
- Item Two
50
- </MDropdownItem>
51
- <MDropdownItem href="https://google.com" target="_blank">
52
- Item Two
53
- </MDropdownItem>
54
-
55
- <MDropdown>
56
- <MDropdownItem>
57
- <template #icon-right>
58
- <svg
59
- style="width: 16px; height: 16px"
60
- xmlns="http://www.w3.org/2000/svg"
61
- viewBox="0 0 20 20"
62
- fill="currentColor"
63
- class="w-5 h-5">
64
- <path
65
- fill-rule="evenodd"
66
- d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
67
- clip-rule="evenodd" />
68
- </svg>
69
- </template>
70
- Item Three (Parent)
71
- </MDropdownItem>
72
-
73
- <template #menu>
74
- <MDropdownList>
75
- <MDropdownItem @click="handleClick">
76
- Child One
77
- </MDropdownItem>
78
- <MDropdown>
79
- <MDropdownItem>
80
- <template #icon-right>
81
- <svg
82
- style="width: 16px; height: 16px"
83
- xmlns="http://www.w3.org/2000/svg"
84
- viewBox="0 0 20 20"
85
- fill="currentColor"
86
- class="w-5 h-5">
87
- <path
88
- fill-rule="evenodd"
89
- d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
90
- clip-rule="evenodd" />
91
- </svg>
92
- </template>
93
- Item Three (Parent)
94
- </MDropdownItem>
95
-
96
- <template #menu>
97
- <MDropdownList>
98
- <MDropdownItem @click="handleClick">
99
- Child One
100
- </MDropdownItem>
101
- <MDropdownItem>
102
- Child Two
103
- </MDropdownItem>
104
- </MDropdownList>
105
- </template>
106
- </MDropdown>
107
- </MDropdownList>
108
- </template>
109
- </MDropdown>
110
- </MDropdownList>
111
- </template>
112
- </MDropdown>
113
- </template>
114
-
115
- <script lang="ts" setup>
116
- const handleClick = () => {
117
- alert('hi');
118
- };
119
- </script>
1
+ <template>
2
+ <MDropdown>
3
+ <MButton> Menu </MButton>
4
+
5
+ <template #menu>
6
+ <MDropdownList>
7
+ <MDropdownHeading> Hello </MDropdownHeading>
8
+ <MDropdownItem hotkey="Ctrl+L" @click="handleClick">
9
+ Item One
10
+ </MDropdownItem>
11
+ <MDropdownSeperator />
12
+ <MDropdownItem
13
+ variant="error"
14
+ href="https://google.com"
15
+ target="_blank">
16
+ Item Two
17
+ </MDropdownItem>
18
+ <MDropdownItem href="https://google.com" target="_blank">
19
+ Item Two
20
+ </MDropdownItem>
21
+ <MDropdownItem href="https://google.com" target="_blank">
22
+ Item Two
23
+ </MDropdownItem>
24
+ <MDropdownItem href="https://google.com" target="_blank">
25
+ Item Two
26
+ </MDropdownItem>
27
+ <MDropdownItem href="https://google.com" target="_blank">
28
+ Item Two
29
+ </MDropdownItem>
30
+ <MDropdownItem href="https://google.com" target="_blank">
31
+ Item Two
32
+ </MDropdownItem>
33
+ <MDropdownItem href="https://google.com" target="_blank">
34
+ Item Two
35
+ </MDropdownItem>
36
+ <MDropdownItem href="https://google.com" target="_blank">
37
+ Item Two
38
+ </MDropdownItem>
39
+ <MDropdownItem href="https://google.com" target="_blank">
40
+ Item Two
41
+ </MDropdownItem>
42
+ <MDropdownItem href="https://google.com" target="_blank">
43
+ Item Two
44
+ </MDropdownItem>
45
+ <MDropdownItem href="https://google.com" target="_blank">
46
+ Item Two
47
+ </MDropdownItem>
48
+ <MDropdownItem href="https://google.com" target="_blank">
49
+ Item Two
50
+ </MDropdownItem>
51
+ <MDropdownItem href="https://google.com" target="_blank">
52
+ Item Two
53
+ </MDropdownItem>
54
+
55
+ <MDropdown>
56
+ <MDropdownItem>
57
+ <template #icon-right>
58
+ <svg
59
+ style="width: 16px; height: 16px"
60
+ xmlns="http://www.w3.org/2000/svg"
61
+ viewBox="0 0 20 20"
62
+ fill="currentColor"
63
+ class="w-5 h-5">
64
+ <path
65
+ fill-rule="evenodd"
66
+ d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
67
+ clip-rule="evenodd" />
68
+ </svg>
69
+ </template>
70
+ Item Three (Parent)
71
+ </MDropdownItem>
72
+
73
+ <template #menu>
74
+ <MDropdownList>
75
+ <MDropdownItem @click="handleClick">
76
+ Child One
77
+ </MDropdownItem>
78
+ <MDropdown>
79
+ <MDropdownItem>
80
+ <template #icon-right>
81
+ <svg
82
+ style="width: 16px; height: 16px"
83
+ xmlns="http://www.w3.org/2000/svg"
84
+ viewBox="0 0 20 20"
85
+ fill="currentColor"
86
+ class="w-5 h-5">
87
+ <path
88
+ fill-rule="evenodd"
89
+ d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
90
+ clip-rule="evenodd" />
91
+ </svg>
92
+ </template>
93
+ Item Three (Parent)
94
+ </MDropdownItem>
95
+
96
+ <template #menu>
97
+ <MDropdownList>
98
+ <MDropdownItem @click="handleClick">
99
+ Child One
100
+ </MDropdownItem>
101
+ <MDropdownItem>
102
+ Child Two
103
+ </MDropdownItem>
104
+ </MDropdownList>
105
+ </template>
106
+ </MDropdown>
107
+ </MDropdownList>
108
+ </template>
109
+ </MDropdown>
110
+ </MDropdownList>
111
+ </template>
112
+ </MDropdown>
113
+ </template>
114
+
115
+ <script lang="ts" setup>
116
+ const handleClick = () => {
117
+ alert('hi');
118
+ };
119
+ </script>