@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,130 +1,130 @@
1
- import { createVar, style, styleVariants } from '@vanilla-extract/css';
2
- import { themeVars } from '../../../styles/theme.css';
3
-
4
- const sizes = {
5
- xs: '16px',
6
- sm: '18px',
7
- md: '20px',
8
- lg: '22px',
9
- xl: '24px'
10
- };
11
-
12
- export const vars = {
13
- height: createVar(),
14
- radius: createVar(),
15
- backgroundColor: createVar(),
16
- borderColor: createVar(),
17
- color: createVar()
18
- };
19
-
20
- export const base = style({
21
- position: 'relative',
22
- display: 'inline-flex',
23
- alignItems: 'center',
24
- cursor: 'pointer',
25
- gap: themeVars.space['1.5']
26
- });
27
-
28
- export const input = style({
29
- position: 'absolute',
30
- opacity: 0,
31
- cursor: 'pointer'
32
- });
33
-
34
- export const checkmark = style({
35
- position: 'absolute',
36
- width: `calc(${vars.height} - 2px)`,
37
- height: `calc(${vars.height} - 2px)`,
38
- top: '50%',
39
- left: '50%',
40
- transform: 'translate(-50%, -50%)',
41
- color: 'white'
42
- });
43
-
44
- export const checkbox = style({
45
- vars: {
46
- [vars.height]: sizes.md,
47
- [vars.radius]: themeVars.rounded.full,
48
- [vars.backgroundColor]: 'white',
49
- [vars.borderColor]: themeVars.color.gray[300],
50
- [vars.color]: themeVars.color.gray[600]
51
- },
52
- position: 'relative',
53
- width: vars.height,
54
- height: vars.height,
55
- borderRadius: vars.radius,
56
- backgroundColor: vars.backgroundColor,
57
- border: `1px solid ${vars.borderColor}`,
58
- color: vars.color,
59
- cursor: 'pointer',
60
- transition: `all 0.125s ${themeVars.transition.default}`
61
- });
62
-
63
- export const checked = style({
64
- vars: {
65
- [vars.borderColor]: themeVars.color.blue[500],
66
- [vars.backgroundColor]: themeVars.color.blue[500]
67
- },
68
- selectors: {
69
- ['&:after']: {
70
- content: '',
71
- position: 'absolute',
72
- top: '50%',
73
- left: '50%',
74
- transform: 'translate(-50%, -50%)',
75
- width: `calc(${vars.height} - 10px)`,
76
- height: `calc(${vars.height} - 10px)`,
77
- borderRadius: themeVars.rounded.full,
78
- backgroundColor: '#FFF'
79
- }
80
- }
81
- });
82
-
83
- export const disabled = style({
84
- opacity: 0.5,
85
- cursor: 'not-allowed'
86
- });
87
-
88
- export const indeterminate = style({
89
- vars: {
90
- [vars.borderColor]: themeVars.color.blue[500],
91
- [vars.backgroundColor]: themeVars.color.blue[500]
92
- }
93
- });
94
-
95
- export const label = style({
96
- marginLeft: themeVars.space['0.5'],
97
- fontWeight: '500',
98
- display: 'inline-block',
99
- fontSize: themeVars.fontSize.base,
100
- wordBreak: 'break-word',
101
- cursor: 'pointer'
102
- });
103
-
104
- export const size = styleVariants({
105
- xs: {
106
- vars: {
107
- [vars.height]: sizes.xs
108
- }
109
- },
110
- sm: {
111
- vars: {
112
- [vars.height]: sizes.sm
113
- }
114
- },
115
- md: {
116
- vars: {
117
- [vars.height]: sizes.md
118
- }
119
- },
120
- lg: {
121
- vars: {
122
- [vars.height]: sizes.lg
123
- }
124
- },
125
- xl: {
126
- vars: {
127
- [vars.height]: sizes.xl
128
- }
129
- }
130
- });
1
+ import { createVar, style, styleVariants } from '@vanilla-extract/css';
2
+ import { themeVars } from '../../../styles/theme.css';
3
+
4
+ const sizes = {
5
+ xs: '16px',
6
+ sm: '18px',
7
+ md: '20px',
8
+ lg: '22px',
9
+ xl: '24px'
10
+ };
11
+
12
+ export const vars = {
13
+ height: createVar(),
14
+ radius: createVar(),
15
+ backgroundColor: createVar(),
16
+ borderColor: createVar(),
17
+ color: createVar()
18
+ };
19
+
20
+ export const base = style({
21
+ position: 'relative',
22
+ display: 'inline-flex',
23
+ alignItems: 'center',
24
+ cursor: 'pointer',
25
+ gap: themeVars.space['1.5']
26
+ });
27
+
28
+ export const input = style({
29
+ position: 'absolute',
30
+ opacity: 0,
31
+ cursor: 'pointer'
32
+ });
33
+
34
+ export const checkmark = style({
35
+ position: 'absolute',
36
+ width: `calc(${vars.height} - 2px)`,
37
+ height: `calc(${vars.height} - 2px)`,
38
+ top: '50%',
39
+ left: '50%',
40
+ transform: 'translate(-50%, -50%)',
41
+ color: 'white'
42
+ });
43
+
44
+ export const checkbox = style({
45
+ vars: {
46
+ [vars.height]: sizes.md,
47
+ [vars.radius]: themeVars.rounded.full,
48
+ [vars.backgroundColor]: 'white',
49
+ [vars.borderColor]: themeVars.color.gray[300],
50
+ [vars.color]: themeVars.color.gray[600]
51
+ },
52
+ position: 'relative',
53
+ width: vars.height,
54
+ height: vars.height,
55
+ borderRadius: vars.radius,
56
+ backgroundColor: vars.backgroundColor,
57
+ border: `1px solid ${vars.borderColor}`,
58
+ color: vars.color,
59
+ cursor: 'pointer',
60
+ transition: `all 0.125s ${themeVars.transition.default}`
61
+ });
62
+
63
+ export const checked = style({
64
+ vars: {
65
+ [vars.borderColor]: themeVars.color.blue[500],
66
+ [vars.backgroundColor]: themeVars.color.blue[500]
67
+ },
68
+ selectors: {
69
+ ['&:after']: {
70
+ content: '',
71
+ position: 'absolute',
72
+ top: '50%',
73
+ left: '50%',
74
+ transform: 'translate(-50%, -50%)',
75
+ width: `calc(${vars.height} - 10px)`,
76
+ height: `calc(${vars.height} - 10px)`,
77
+ borderRadius: themeVars.rounded.full,
78
+ backgroundColor: '#FFF'
79
+ }
80
+ }
81
+ });
82
+
83
+ export const disabled = style({
84
+ opacity: 0.5,
85
+ cursor: 'not-allowed'
86
+ });
87
+
88
+ export const indeterminate = style({
89
+ vars: {
90
+ [vars.borderColor]: themeVars.color.blue[500],
91
+ [vars.backgroundColor]: themeVars.color.blue[500]
92
+ }
93
+ });
94
+
95
+ export const label = style({
96
+ marginLeft: themeVars.space['0.5'],
97
+ fontWeight: '500',
98
+ display: 'inline-block',
99
+ fontSize: themeVars.fontSize.base,
100
+ wordBreak: 'break-word',
101
+ cursor: 'pointer'
102
+ });
103
+
104
+ export const size = styleVariants({
105
+ xs: {
106
+ vars: {
107
+ [vars.height]: sizes.xs
108
+ }
109
+ },
110
+ sm: {
111
+ vars: {
112
+ [vars.height]: sizes.sm
113
+ }
114
+ },
115
+ md: {
116
+ vars: {
117
+ [vars.height]: sizes.md
118
+ }
119
+ },
120
+ lg: {
121
+ vars: {
122
+ [vars.height]: sizes.lg
123
+ }
124
+ },
125
+ xl: {
126
+ vars: {
127
+ [vars.height]: sizes.xl
128
+ }
129
+ }
130
+ });
@@ -1 +1 @@
1
- export * from './Checkbox.css';
1
+ export * from './Checkbox.css';
@@ -1,131 +1,131 @@
1
- <template>
2
- <label :class="computedClasses" :disabled="disabled" @click="handleClick" v-bind="$attrs" :aria-selected="selected" :aria-disabled="disabled">
3
- <input type="radio" :class="computedRadioClasses" :name="name" :value="id" :disabled="disabled">
4
- <span>
5
- <slot />
6
- </span>
7
- </label>
8
- </template>
9
-
10
- <script lang="ts">
11
- import type {PropType} from "vue";
12
- import {computed, defineComponent, inject, ref } from "vue";
13
- import type {Size} from "../../types/props";
14
- import * as style from "./style";
15
- import {useInteractive} from "../../composables/useInteractive";
16
- import {useInput} from "../../composables/useInput";
17
- import {RADIO_BUTTON_GROUP_STATE} from "../radiobuttongroup/symbol";
18
-
19
- export default defineComponent({
20
- name: "MRadioButton",
21
- props: {
22
- ...useInput.props(),
23
- ...useInteractive.props(),
24
- id: {
25
- type: [String, Number],
26
- required: true
27
- },
28
- type: {
29
- type: String,
30
- default: 'button',
31
- },
32
- size: {
33
- type: String as PropType<Size>,
34
- default: 'md'
35
- },
36
- disabled: {
37
- type: Boolean,
38
- default: false
39
- },
40
- icon: {
41
- type: Boolean,
42
- default: false
43
- },
44
- onClick: {
45
- type: Function as PropType<(e: MouseEvent) => void>,
46
- default: () => {
47
- }
48
- }
49
- },
50
- emits: ['update:modelValue'],
51
- setup(props, {emit, expose}) {
52
- const radioRef = ref<HTMLElement | null>(null);
53
- const parentState = inject(RADIO_BUTTON_GROUP_STATE, null);
54
- const value = computed(() => {
55
- return parentState?.modelValue;
56
- });
57
- const sizeValue = computed<Size>(() => {
58
- return parentState?.size || props.size;
59
- });
60
-
61
- const name = computed(() => {
62
- return parentState?.name;
63
- });
64
-
65
- const {focus, blur} = useInteractive(radioRef);
66
-
67
- const {
68
- id,
69
- insideForm,
70
- reset,
71
- validate,
72
- setError,
73
- formError,
74
- formDisabled,
75
- formLoading,
76
- inputListeners
77
- } = useInput(props, {focus, emit});
78
-
79
- const selected = computed(() => {
80
- // @ts-ignore
81
- return value.value === props.id;
82
- });
83
-
84
- const computedClasses = computed(() => {
85
- return [
86
- style.base,
87
- [style.size[sizeValue.value]],
88
- {
89
- [style.icon]: props.icon,
90
- [style.variant.default]: !selected.value,
91
- [style.variant.active]: selected.value,
92
- }
93
- ]
94
- });
95
-
96
- const computedRadioClasses = computed(() => {
97
- return [
98
- style.radio
99
- ]
100
- });
101
-
102
- const handleClick = (e: MouseEvent): void => {
103
- if (props.disabled) {
104
- e.preventDefault();
105
- return;
106
- }
107
-
108
- // @ts-ignore
109
- parentState.doUpdateValue(props.id);
110
- props.onClick(e);
111
- };
112
-
113
- expose({
114
- focus,
115
- blur,
116
- })
117
-
118
- return {
119
- radioRef,
120
- computedClasses,
121
- handleClick,
122
- selected,
123
- value,
124
- name,
125
- focus,
126
- blur,
127
- computedRadioClasses
128
- }
129
- }
130
- })
131
- </script>
1
+ <template>
2
+ <label :class="computedClasses" :disabled="disabled" @click="handleClick" v-bind="$attrs" :aria-selected="selected" :aria-disabled="disabled">
3
+ <input type="radio" :class="computedRadioClasses" :name="name" :value="id" :disabled="disabled">
4
+ <span>
5
+ <slot />
6
+ </span>
7
+ </label>
8
+ </template>
9
+
10
+ <script lang="ts">
11
+ import type {PropType} from "vue";
12
+ import {computed, defineComponent, inject, ref } from "vue";
13
+ import type {Size} from "../../types/props";
14
+ import * as style from "./style";
15
+ import {useInteractive} from "../../composables/useInteractive";
16
+ import {useInput} from "../../composables/useInput";
17
+ import {RADIO_BUTTON_GROUP_STATE} from "../radiobuttongroup/symbol";
18
+
19
+ export default defineComponent({
20
+ name: "MRadioButton",
21
+ props: {
22
+ ...useInput.props(),
23
+ ...useInteractive.props(),
24
+ id: {
25
+ type: [String, Number],
26
+ required: true
27
+ },
28
+ type: {
29
+ type: String,
30
+ default: 'button',
31
+ },
32
+ size: {
33
+ type: String as PropType<Size>,
34
+ default: 'md'
35
+ },
36
+ disabled: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ icon: {
41
+ type: Boolean,
42
+ default: false
43
+ },
44
+ onClick: {
45
+ type: Function as PropType<(e: MouseEvent) => void>,
46
+ default: () => {
47
+ }
48
+ }
49
+ },
50
+ emits: ['update:modelValue'],
51
+ setup(props, {emit, expose}) {
52
+ const radioRef = ref<HTMLElement | null>(null);
53
+ const parentState = inject(RADIO_BUTTON_GROUP_STATE, null);
54
+ const value = computed(() => {
55
+ return parentState?.modelValue;
56
+ });
57
+ const sizeValue = computed<Size>(() => {
58
+ return parentState?.size || props.size;
59
+ });
60
+
61
+ const name = computed(() => {
62
+ return parentState?.name;
63
+ });
64
+
65
+ const {focus, blur} = useInteractive(radioRef);
66
+
67
+ const {
68
+ id,
69
+ insideForm,
70
+ reset,
71
+ validate,
72
+ setError,
73
+ formError,
74
+ formDisabled,
75
+ formLoading,
76
+ inputListeners
77
+ } = useInput(props, {focus, emit});
78
+
79
+ const selected = computed(() => {
80
+ // @ts-ignore
81
+ return value.value === props.id;
82
+ });
83
+
84
+ const computedClasses = computed(() => {
85
+ return [
86
+ style.base,
87
+ [style.size[sizeValue.value]],
88
+ {
89
+ [style.icon]: props.icon,
90
+ [style.variant.default]: !selected.value,
91
+ [style.variant.active]: selected.value,
92
+ }
93
+ ]
94
+ });
95
+
96
+ const computedRadioClasses = computed(() => {
97
+ return [
98
+ style.radio
99
+ ]
100
+ });
101
+
102
+ const handleClick = (e: MouseEvent): void => {
103
+ if (props.disabled) {
104
+ e.preventDefault();
105
+ return;
106
+ }
107
+
108
+ // @ts-ignore
109
+ parentState.doUpdateValue(props.id);
110
+ props.onClick(e);
111
+ };
112
+
113
+ expose({
114
+ focus,
115
+ blur,
116
+ })
117
+
118
+ return {
119
+ radioRef,
120
+ computedClasses,
121
+ handleClick,
122
+ selected,
123
+ value,
124
+ name,
125
+ focus,
126
+ blur,
127
+ computedRadioClasses
128
+ }
129
+ }
130
+ })
131
+ </script>