@indielayer/ui 1.0.9 → 1.1.0

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 (429) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/{src/exports/nuxt.js → exports/nuxt.mjs} +1 -1
  4. package/{lib → exports}/nuxt.plugin.js +1 -1
  5. package/lib/_virtual/_plugin-vue_export-helper.js +9 -0
  6. package/lib/common/icons.js +18 -0
  7. package/lib/common/utils.d.ts +4 -0
  8. package/lib/common/utils.js +25 -0
  9. package/lib/components/alert/Alert.theme.d.ts +10 -8
  10. package/lib/components/alert/Alert.theme.js +41 -0
  11. package/lib/components/alert/Alert.vue.d.ts +33 -7
  12. package/lib/components/alert/Alert.vue.js +9 -0
  13. package/lib/components/alert/Alert.vue2.js +62 -0
  14. package/lib/components/alert/Alert.vue3.js +8 -0
  15. package/lib/components/alert/index.d.ts +3 -0
  16. package/lib/components/avatar/Avatar.theme.d.ts +13 -7
  17. package/lib/components/avatar/Avatar.theme.js +25 -0
  18. package/lib/components/avatar/Avatar.vue.d.ts +32 -3
  19. package/lib/components/avatar/Avatar.vue.js +9 -0
  20. package/lib/components/avatar/Avatar.vue2.js +76 -0
  21. package/lib/components/avatar/Avatar.vue3.js +7 -0
  22. package/lib/components/avatar/index.d.ts +3 -0
  23. package/lib/components/badge/Badge.theme.d.ts +10 -8
  24. package/lib/components/badge/Badge.theme.js +12 -0
  25. package/lib/components/badge/Badge.vue.d.ts +54 -9
  26. package/lib/components/badge/Badge.vue.js +94 -0
  27. package/lib/components/badge/Badge.vue2.js +4 -0
  28. package/lib/components/badge/index.d.ts +3 -0
  29. package/lib/components/breadcrumbs/Breadcrumbs.theme.d.ts +10 -8
  30. package/lib/components/breadcrumbs/Breadcrumbs.theme.js +10 -0
  31. package/lib/components/breadcrumbs/Breadcrumbs.vue.d.ts +20 -6
  32. package/lib/components/breadcrumbs/Breadcrumbs.vue.js +79 -0
  33. package/lib/components/breadcrumbs/Breadcrumbs.vue2.js +4 -0
  34. package/lib/components/breadcrumbs/index.d.ts +3 -0
  35. package/lib/components/button/Button.theme.d.ts +12 -9
  36. package/lib/components/button/Button.theme.js +138 -0
  37. package/lib/components/button/Button.vue.d.ts +49 -8
  38. package/lib/components/button/Button.vue.js +9 -0
  39. package/lib/components/button/Button.vue2.js +115 -0
  40. package/lib/components/button/Button.vue3.js +8 -0
  41. package/lib/components/button/ButtonGroup.theme.d.ts +12 -5
  42. package/lib/components/button/ButtonGroup.theme.js +8 -0
  43. package/lib/components/button/ButtonGroup.vue.d.ts +44 -6
  44. package/lib/components/button/ButtonGroup.vue.js +9 -0
  45. package/lib/components/button/ButtonGroup.vue2.js +54 -0
  46. package/lib/components/button/ButtonGroup.vue3.js +7 -0
  47. package/lib/components/button/index.d.ts +6 -0
  48. package/lib/components/card/Card.theme.d.ts +10 -7
  49. package/lib/components/card/Card.theme.js +8 -0
  50. package/lib/components/card/Card.vue.d.ts +17 -1
  51. package/lib/components/card/Card.vue.js +31 -0
  52. package/lib/components/card/Card.vue2.js +4 -0
  53. package/lib/components/card/index.d.ts +3 -0
  54. package/lib/components/checkbox/Checkbox.theme.d.ts +13 -10
  55. package/lib/components/checkbox/Checkbox.theme.js +52 -0
  56. package/lib/components/checkbox/Checkbox.vue.d.ts +46 -7
  57. package/lib/components/checkbox/Checkbox.vue.js +9 -0
  58. package/lib/components/checkbox/Checkbox.vue2.js +108 -0
  59. package/lib/components/checkbox/Checkbox.vue3.js +6 -0
  60. package/lib/components/checkbox/index.d.ts +3 -0
  61. package/lib/components/collapse/Collapse.theme.d.ts +10 -9
  62. package/lib/components/collapse/Collapse.theme.js +10 -0
  63. package/lib/components/collapse/Collapse.vue.d.ts +32 -2
  64. package/lib/components/collapse/Collapse.vue.js +132 -0
  65. package/lib/components/collapse/Collapse.vue2.js +4 -0
  66. package/lib/components/collapse/index.d.ts +3 -0
  67. package/lib/components/container/Container.theme.d.ts +10 -6
  68. package/lib/components/container/Container.theme.js +8 -0
  69. package/lib/components/container/Container.vue.d.ts +16 -1
  70. package/lib/components/container/Container.vue.js +30 -0
  71. package/lib/components/container/Container.vue2.js +4 -0
  72. package/lib/components/container/index.d.ts +3 -0
  73. package/lib/components/divider/Divider.theme.d.ts +10 -9
  74. package/lib/components/divider/Divider.theme.js +10 -0
  75. package/lib/components/divider/Divider.vue.d.ts +7 -1
  76. package/lib/components/divider/Divider.vue.js +53 -0
  77. package/lib/components/divider/Divider.vue2.js +4 -0
  78. package/lib/components/divider/index.d.ts +3 -0
  79. package/lib/components/drawer/Drawer.theme.d.ts +10 -7
  80. package/lib/components/drawer/Drawer.theme.js +9 -0
  81. package/lib/components/drawer/Drawer.vue.d.ts +50 -14
  82. package/lib/components/drawer/Drawer.vue.js +171 -0
  83. package/lib/components/drawer/Drawer.vue2.js +4 -0
  84. package/lib/components/drawer/index.d.ts +3 -0
  85. package/lib/components/form/Form.theme.d.ts +10 -6
  86. package/lib/components/form/Form.theme.js +8 -0
  87. package/lib/components/form/Form.vue.d.ts +34 -6
  88. package/lib/components/form/Form.vue.js +79 -0
  89. package/lib/components/form/Form.vue2.js +4 -0
  90. package/lib/components/form/index.d.ts +3 -0
  91. package/lib/components/helpers/InputError.d.ts +2 -2
  92. package/lib/components/helpers/InputError.js +18 -0
  93. package/lib/components/icon/Icon.theme.d.ts +10 -7
  94. package/lib/components/icon/Icon.theme.js +11 -0
  95. package/lib/components/icon/Icon.vue.d.ts +22 -4
  96. package/lib/components/icon/Icon.vue.js +74 -0
  97. package/lib/components/icon/Icon.vue2.js +4 -0
  98. package/lib/components/icon/index.d.ts +3 -0
  99. package/lib/components/image/Image.theme.d.ts +10 -6
  100. package/lib/components/image/Image.theme.js +8 -0
  101. package/lib/components/image/Image.vue.d.ts +6 -1
  102. package/lib/components/image/Image.vue.js +32 -0
  103. package/lib/components/image/Image.vue2.js +4 -0
  104. package/lib/components/image/index.d.ts +3 -0
  105. package/lib/components/index.d.ts +35 -45
  106. package/lib/components/index.js +92 -0
  107. package/lib/components/input/Input.theme.d.ts +12 -10
  108. package/lib/components/input/Input.theme.js +21 -0
  109. package/lib/components/input/Input.vue.d.ts +73 -22
  110. package/lib/components/input/Input.vue.js +140 -0
  111. package/lib/components/input/Input.vue2.js +4 -0
  112. package/lib/components/input/index.d.ts +3 -0
  113. package/lib/components/link/Link.theme.d.ts +10 -8
  114. package/lib/components/link/Link.theme.js +25 -0
  115. package/lib/components/link/Link.vue.d.ts +25 -2
  116. package/lib/components/link/Link.vue.js +9 -0
  117. package/lib/components/link/Link.vue2.js +48 -0
  118. package/lib/components/link/Link.vue3.js +8 -0
  119. package/lib/components/link/index.d.ts +3 -0
  120. package/lib/components/menu/Menu.theme.d.ts +10 -6
  121. package/lib/components/menu/Menu.theme.js +8 -0
  122. package/lib/components/menu/Menu.vue.d.ts +62 -9
  123. package/lib/components/menu/Menu.vue.js +133 -0
  124. package/lib/components/menu/Menu.vue2.js +4 -0
  125. package/lib/components/menu/MenuItem.theme.d.ts +13 -7
  126. package/lib/components/menu/MenuItem.theme.js +86 -0
  127. package/lib/components/menu/MenuItem.vue.d.ts +63 -14
  128. package/lib/components/menu/MenuItem.vue.js +9 -0
  129. package/lib/components/menu/MenuItem.vue2.js +143 -0
  130. package/lib/components/menu/MenuItem.vue3.js +7 -0
  131. package/lib/components/menu/index.d.ts +6 -0
  132. package/lib/components/modal/Modal.theme.d.ts +10 -13
  133. package/lib/components/modal/Modal.theme.js +17 -0
  134. package/lib/components/modal/Modal.vue.d.ts +24 -2
  135. package/lib/components/modal/Modal.vue.js +127 -0
  136. package/lib/components/modal/Modal.vue2.js +4 -0
  137. package/lib/components/modal/index.d.ts +3 -0
  138. package/lib/components/notifications/Notifications.theme.d.ts +10 -8
  139. package/lib/components/notifications/Notifications.theme.js +10 -0
  140. package/lib/components/notifications/Notifications.vue.d.ts +56 -16
  141. package/lib/components/notifications/Notifications.vue.js +234 -0
  142. package/lib/components/notifications/Notifications.vue2.js +4 -0
  143. package/lib/components/notifications/index.d.ts +3 -0
  144. package/lib/components/pagination/Pagination.theme.d.ts +10 -9
  145. package/lib/components/pagination/Pagination.theme.js +13 -0
  146. package/lib/components/pagination/Pagination.vue.d.ts +28 -5
  147. package/lib/components/pagination/Pagination.vue.js +131 -0
  148. package/lib/components/pagination/Pagination.vue2.js +4 -0
  149. package/lib/components/pagination/PaginationItem.theme.d.ts +10 -7
  150. package/lib/components/pagination/PaginationItem.theme.js +8 -0
  151. package/lib/components/pagination/PaginationItem.vue.d.ts +17 -2
  152. package/lib/components/pagination/PaginationItem.vue.js +48 -0
  153. package/lib/components/pagination/PaginationItem.vue2.js +4 -0
  154. package/lib/components/pagination/index.d.ts +6 -0
  155. package/lib/components/popover/Popover.theme.d.ts +10 -7
  156. package/lib/components/popover/Popover.theme.js +9 -0
  157. package/lib/components/popover/Popover.vue.d.ts +48 -10
  158. package/lib/components/popover/Popover.vue.js +9 -0
  159. package/lib/components/popover/Popover.vue2.js +106 -0
  160. package/lib/components/popover/Popover.vue3.js +15 -0
  161. package/lib/components/popover/PopoverContainer.theme.d.ts +10 -6
  162. package/lib/components/popover/PopoverContainer.theme.js +8 -0
  163. package/lib/components/popover/PopoverContainer.vue.d.ts +16 -1
  164. package/lib/components/popover/PopoverContainer.vue.js +30 -0
  165. package/lib/components/popover/PopoverContainer.vue2.js +4 -0
  166. package/lib/components/popover/index.d.ts +6 -0
  167. package/lib/components/progress/Progress.theme.d.ts +10 -10
  168. package/lib/components/progress/Progress.theme.js +18 -0
  169. package/lib/components/progress/Progress.vue.d.ts +21 -2
  170. package/lib/components/progress/Progress.vue.js +51 -0
  171. package/lib/components/progress/Progress.vue2.js +4 -0
  172. package/lib/components/progress/index.d.ts +3 -0
  173. package/lib/components/radio/Radio.theme.d.ts +13 -11
  174. package/lib/components/radio/Radio.theme.js +67 -0
  175. package/lib/components/radio/Radio.vue.d.ts +48 -9
  176. package/lib/components/radio/Radio.vue.js +9 -0
  177. package/lib/components/radio/Radio.vue2.js +117 -0
  178. package/lib/components/radio/Radio.vue3.js +10 -0
  179. package/lib/components/radio/index.d.ts +3 -0
  180. package/lib/components/scroll/Scroll.theme.d.ts +10 -6
  181. package/lib/components/scroll/Scroll.theme.js +8 -0
  182. package/lib/components/scroll/Scroll.vue.d.ts +20 -2
  183. package/lib/components/scroll/Scroll.vue.js +9 -0
  184. package/lib/components/scroll/Scroll.vue2.js +64 -0
  185. package/lib/components/scroll/Scroll.vue3.js +17 -0
  186. package/lib/components/scroll/index.d.ts +3 -0
  187. package/lib/components/select/Select.theme.d.ts +13 -12
  188. package/lib/components/select/Select.theme.js +23 -0
  189. package/lib/components/select/Select.vue.d.ts +44 -8
  190. package/lib/components/select/Select.vue.js +269 -0
  191. package/lib/components/select/Select.vue2.js +4 -0
  192. package/lib/components/select/index.d.ts +3 -0
  193. package/lib/components/skeleton/Skeleton.theme.d.ts +10 -6
  194. package/lib/components/skeleton/Skeleton.theme.js +8 -0
  195. package/lib/components/skeleton/Skeleton.vue.d.ts +9 -1
  196. package/lib/components/skeleton/Skeleton.vue.js +30 -0
  197. package/lib/components/skeleton/Skeleton.vue2.js +4 -0
  198. package/lib/components/skeleton/index.d.ts +3 -0
  199. package/lib/components/slider/Slider.theme.d.ts +10 -10
  200. package/lib/components/slider/Slider.theme.js +20 -0
  201. package/lib/components/slider/Slider.vue.d.ts +55 -7
  202. package/lib/components/slider/Slider.vue.js +148 -0
  203. package/lib/components/slider/Slider.vue2.js +4 -0
  204. package/lib/components/slider/index.d.ts +2 -0
  205. package/lib/components/spacer/Spacer.d.ts +1 -1
  206. package/lib/components/spacer/Spacer.js +12 -0
  207. package/lib/components/spacer/index.d.ts +1 -0
  208. package/lib/components/spinner/Spinner.vue.d.ts +14 -1
  209. package/lib/components/spinner/Spinner.vue.js +28 -0
  210. package/lib/components/spinner/Spinner.vue2.js +4 -0
  211. package/lib/components/spinner/index.d.ts +2 -0
  212. package/lib/components/tab/Tab.theme.d.ts +12 -9
  213. package/lib/components/tab/Tab.theme.js +13 -0
  214. package/lib/components/tab/Tab.vue.d.ts +44 -9
  215. package/lib/components/tab/Tab.vue.js +129 -0
  216. package/lib/components/tab/Tab.vue2.js +4 -0
  217. package/lib/components/tab/TabGroup.theme.d.ts +10 -10
  218. package/lib/components/tab/TabGroup.theme.js +27 -0
  219. package/lib/components/tab/TabGroup.vue.d.ts +61 -9
  220. package/lib/components/tab/TabGroup.vue.js +133 -0
  221. package/lib/components/tab/TabGroup.vue2.js +4 -0
  222. package/lib/components/tab/index.d.ts +4 -0
  223. package/lib/components/table/Table.theme.d.ts +10 -8
  224. package/lib/components/table/Table.theme.js +12 -0
  225. package/lib/components/table/Table.vue.d.ts +269 -51
  226. package/lib/components/table/Table.vue.js +147 -0
  227. package/lib/components/table/Table.vue2.js +4 -0
  228. package/lib/components/table/TableBody.d.ts +1 -1
  229. package/lib/components/table/TableBody.js +15 -0
  230. package/lib/components/table/TableCell.theme.d.ts +10 -7
  231. package/lib/components/table/TableCell.theme.js +11 -0
  232. package/lib/components/table/TableCell.vue.d.ts +35 -6
  233. package/lib/components/table/TableCell.vue.js +43 -0
  234. package/lib/components/table/TableCell.vue2.js +4 -0
  235. package/lib/components/table/TableHead.d.ts +1 -1
  236. package/lib/components/table/TableHead.js +19 -0
  237. package/lib/components/table/TableHeader.vue.d.ts +34 -9
  238. package/lib/components/table/TableHeader.vue.js +78 -0
  239. package/lib/components/table/TableHeader.vue2.js +4 -0
  240. package/lib/components/table/TableRow.vue.d.ts +8 -1
  241. package/lib/components/table/TableRow.vue.js +32 -0
  242. package/lib/components/table/TableRow.vue2.js +4 -0
  243. package/lib/components/table/index.d.ts +9 -0
  244. package/lib/components/tag/Tag.theme.d.ts +10 -9
  245. package/lib/components/tag/Tag.theme.js +23 -0
  246. package/lib/components/tag/Tag.vue.d.ts +31 -4
  247. package/lib/components/tag/Tag.vue.js +61 -0
  248. package/lib/components/tag/Tag.vue2.js +4 -0
  249. package/lib/components/tag/index.d.ts +2 -0
  250. package/lib/components/textarea/Textarea.theme.d.ts +13 -9
  251. package/lib/components/textarea/Textarea.theme.js +16 -0
  252. package/lib/components/textarea/Textarea.vue.d.ts +59 -17
  253. package/lib/components/textarea/Textarea.vue.js +110 -0
  254. package/lib/components/textarea/Textarea.vue2.js +4 -0
  255. package/lib/components/textarea/index.d.ts +2 -0
  256. package/lib/components/toggle/Toggle.theme.d.ts +10 -11
  257. package/lib/components/toggle/Toggle.theme.js +29 -0
  258. package/lib/components/toggle/Toggle.vue.d.ts +39 -7
  259. package/lib/components/toggle/Toggle.vue.js +110 -0
  260. package/lib/components/toggle/Toggle.vue2.js +4 -0
  261. package/lib/components/toggle/index.d.ts +2 -0
  262. package/lib/components/tooltip/Tooltip.vue.d.ts +12 -1
  263. package/lib/components/tooltip/Tooltip.vue.js +27 -0
  264. package/lib/components/tooltip/Tooltip.vue2.js +4 -0
  265. package/lib/components/tooltip/index.d.ts +2 -0
  266. package/lib/composables/colors-utils.js +19 -0
  267. package/lib/composables/colors.d.ts +6 -4
  268. package/lib/composables/colors.js +52 -0
  269. package/lib/composables/common.d.ts +1 -1
  270. package/lib/composables/common.js +17 -0
  271. package/lib/composables/css.d.ts +1 -1
  272. package/lib/composables/css.js +26 -0
  273. package/lib/composables/inputtable.d.ts +4 -4
  274. package/lib/composables/inputtable.js +78 -0
  275. package/lib/composables/interactive.js +17 -0
  276. package/lib/composables/keys.d.ts +6 -3
  277. package/lib/composables/keys.js +10 -0
  278. package/lib/composables/notifications.d.ts +1 -1
  279. package/lib/composables/notifications.js +9 -0
  280. package/lib/composables/theme.d.ts +13 -7
  281. package/lib/composables/theme.js +59 -0
  282. package/lib/create.d.ts +1 -1
  283. package/lib/create.js +19 -0
  284. package/lib/index.js +121 -0
  285. package/lib/index.umd.js +1 -0
  286. package/lib/install.js +10 -0
  287. package/lib/node_modules/.pnpm/@vueuse_core@10.2.0_vue@3.3.4/node_modules/@vueuse/core/index.js +379 -0
  288. package/lib/node_modules/.pnpm/@vueuse_shared@10.2.0_vue@3.3.4/node_modules/@vueuse/shared/index.js +90 -0
  289. package/lib/version.d.ts +1 -1
  290. package/lib/version.js +4 -0
  291. package/package.json +54 -54
  292. package/src/common/utils.ts +25 -2
  293. package/src/components/alert/Alert.theme.ts +15 -6
  294. package/src/components/alert/Alert.vue +26 -13
  295. package/src/components/alert/index.ts +3 -0
  296. package/src/components/avatar/Avatar.theme.ts +16 -4
  297. package/src/components/avatar/Avatar.vue +20 -15
  298. package/src/components/avatar/index.ts +3 -0
  299. package/src/components/badge/Badge.theme.ts +13 -3
  300. package/src/components/badge/Badge.vue +30 -15
  301. package/src/components/badge/index.ts +3 -0
  302. package/src/components/breadcrumbs/Breadcrumbs.theme.ts +12 -2
  303. package/src/components/breadcrumbs/Breadcrumbs.vue +24 -21
  304. package/src/components/breadcrumbs/index.ts +3 -0
  305. package/src/components/button/Button.theme.ts +23 -19
  306. package/src/components/button/Button.vue +30 -19
  307. package/src/components/button/ButtonGroup.theme.ts +14 -1
  308. package/src/components/button/ButtonGroup.vue +33 -19
  309. package/src/components/button/index.ts +7 -0
  310. package/src/components/card/Card.theme.ts +13 -3
  311. package/src/components/card/Card.vue +12 -7
  312. package/src/components/card/index.ts +3 -0
  313. package/src/components/checkbox/Checkbox.theme.ts +19 -7
  314. package/src/components/checkbox/Checkbox.vue +21 -12
  315. package/src/components/checkbox/index.ts +3 -0
  316. package/src/components/collapse/Collapse.theme.ts +13 -3
  317. package/src/components/collapse/Collapse.vue +28 -24
  318. package/src/components/collapse/index.ts +3 -0
  319. package/src/components/container/Container.theme.ts +12 -2
  320. package/src/components/container/Container.vue +11 -6
  321. package/src/components/container/index.ts +3 -0
  322. package/src/components/divider/Divider.theme.ts +13 -3
  323. package/src/components/divider/Divider.vue +9 -4
  324. package/src/components/divider/index.ts +3 -0
  325. package/src/components/drawer/Drawer.theme.ts +12 -2
  326. package/src/components/drawer/Drawer.vue +50 -41
  327. package/src/components/drawer/index.ts +3 -0
  328. package/src/components/form/Form.theme.ts +12 -2
  329. package/src/components/form/Form.vue +40 -31
  330. package/src/components/form/index.ts +3 -0
  331. package/src/components/helpers/InputError.tsx +2 -2
  332. package/src/components/icon/Icon.theme.ts +13 -3
  333. package/src/components/icon/Icon.vue +24 -15
  334. package/src/components/icon/__tests__/Icon.spec.ts +5 -1
  335. package/src/components/icon/index.ts +3 -0
  336. package/src/components/image/Image.theme.ts +12 -2
  337. package/src/components/image/Image.vue +8 -4
  338. package/src/components/image/index.ts +3 -0
  339. package/src/components/index.ts +35 -45
  340. package/src/components/input/Input.theme.ts +17 -6
  341. package/src/components/input/Input.vue +33 -22
  342. package/src/components/input/index.ts +3 -0
  343. package/src/components/link/Link.theme.ts +13 -3
  344. package/src/components/link/Link.vue +20 -12
  345. package/src/components/link/index.ts +3 -0
  346. package/src/components/menu/Menu.theme.ts +12 -2
  347. package/src/components/menu/Menu.vue +59 -23
  348. package/src/components/menu/MenuItem.theme.ts +17 -5
  349. package/src/components/menu/MenuItem.vue +65 -52
  350. package/src/components/menu/index.ts +7 -0
  351. package/src/components/modal/Modal.theme.ts +13 -3
  352. package/src/components/modal/Modal.vue +23 -12
  353. package/src/components/modal/index.ts +3 -0
  354. package/src/components/notifications/Notifications.theme.ts +12 -2
  355. package/src/components/notifications/Notifications.vue +53 -49
  356. package/src/components/notifications/index.ts +9 -0
  357. package/src/components/pagination/Pagination.theme.ts +15 -5
  358. package/src/components/pagination/Pagination.vue +24 -18
  359. package/src/components/pagination/PaginationItem.theme.ts +13 -3
  360. package/src/components/pagination/PaginationItem.vue +14 -10
  361. package/src/components/pagination/index.ts +7 -0
  362. package/src/components/popover/Popover.theme.ts +12 -2
  363. package/src/components/popover/Popover.vue +56 -46
  364. package/src/components/popover/PopoverContainer.theme.ts +12 -2
  365. package/src/components/popover/PopoverContainer.vue +11 -6
  366. package/src/components/popover/index.ts +7 -0
  367. package/src/components/progress/Progress.theme.ts +14 -4
  368. package/src/components/progress/Progress.vue +16 -16
  369. package/src/components/progress/index.ts +3 -0
  370. package/src/components/radio/Radio.theme.ts +19 -7
  371. package/src/components/radio/Radio.vue +24 -14
  372. package/src/components/radio/index.ts +3 -0
  373. package/src/components/scroll/Scroll.theme.ts +12 -2
  374. package/src/components/scroll/Scroll.vue +37 -26
  375. package/src/components/scroll/index.ts +3 -0
  376. package/src/components/select/Select.theme.ts +20 -6
  377. package/src/components/select/Select.vue +28 -20
  378. package/src/components/select/index.ts +3 -0
  379. package/src/components/skeleton/Skeleton.theme.ts +12 -2
  380. package/src/components/skeleton/Skeleton.vue +11 -6
  381. package/src/components/skeleton/index.ts +3 -0
  382. package/src/components/slider/Slider.theme.ts +14 -4
  383. package/src/components/slider/Slider.vue +24 -16
  384. package/src/components/slider/index.ts +2 -0
  385. package/src/components/spacer/index.ts +1 -0
  386. package/src/components/spinner/Spinner.vue +18 -8
  387. package/src/components/spinner/index.ts +2 -0
  388. package/src/components/tab/Tab.theme.ts +15 -3
  389. package/src/components/tab/Tab.vue +85 -68
  390. package/src/components/tab/TabGroup.theme.ts +15 -5
  391. package/src/components/tab/TabGroup.vue +67 -22
  392. package/src/components/tab/index.ts +5 -0
  393. package/src/components/table/Table.theme.ts +14 -4
  394. package/src/components/table/Table.vue +41 -31
  395. package/src/components/table/TableCell.theme.ts +13 -3
  396. package/src/components/table/TableCell.vue +22 -16
  397. package/src/components/table/TableHeader.vue +20 -17
  398. package/src/components/table/TableRow.vue +1 -1
  399. package/src/components/table/index.ts +10 -0
  400. package/src/components/tag/Tag.theme.ts +14 -4
  401. package/src/components/tag/Tag.vue +22 -13
  402. package/src/components/tag/index.ts +2 -0
  403. package/src/components/textarea/Textarea.theme.ts +18 -30
  404. package/src/components/textarea/Textarea.vue +28 -19
  405. package/src/components/textarea/index.ts +2 -0
  406. package/src/components/toggle/Toggle.theme.ts +16 -6
  407. package/src/components/toggle/Toggle.vue +21 -12
  408. package/src/components/toggle/index.ts +2 -0
  409. package/src/components/tooltip/Tooltip.vue +5 -0
  410. package/src/components/tooltip/index.ts +2 -0
  411. package/src/composables/colors-utils.ts +4 -346
  412. package/src/composables/colors.ts +21 -17
  413. package/src/composables/common.ts +1 -1
  414. package/src/composables/css.ts +4 -4
  415. package/src/composables/inputtable.ts +8 -8
  416. package/src/composables/interactive.ts +2 -2
  417. package/src/composables/keys.ts +6 -3
  418. package/src/composables/theme.ts +30 -27
  419. package/src/create.ts +6 -7
  420. package/src/version.ts +1 -1
  421. package/volar.d.ts +0 -2
  422. package/lib/components/tooltip/Tooltip.theme.d.ts +0 -11
  423. package/lib/index.cjs.js +0 -1
  424. package/lib/index.es.js +0 -7184
  425. package/lib/nuxt.js +0 -33
  426. package/src/components/tooltip/Tooltip.theme.ts +0 -51
  427. package/src/exports/nuxt.plugin.js +0 -8
  428. package/src/exports/tailwind.preset.js +0 -55
  429. /package/{lib → exports}/tailwind.preset.js +0 -0
@@ -1,19 +1,24 @@
1
1
  <script lang="ts">
2
+ const cardProps = {
3
+ tag: {
4
+ type: String,
5
+ default: 'div',
6
+ },
7
+ flat: Boolean,
8
+ }
9
+
10
+ export type CardProps = ExtractPublicPropTypes<typeof cardProps>
11
+
2
12
  export default { name: 'XCard' }
3
13
  </script>
4
14
 
5
15
  <script setup lang="ts">
16
+ import type { ExtractPublicPropTypes } from 'vue'
6
17
  import { useTheme } from '../../composables/theme'
7
18
 
8
19
  import theme from './Card.theme'
9
20
 
10
- const props = defineProps({
11
- tag: {
12
- type: String,
13
- default: 'div',
14
- },
15
- flat: Boolean,
16
- })
21
+ const props = defineProps(cardProps)
17
22
 
18
23
  const { styles, classes, className } = useTheme('card', theme, props)
19
24
  </script>
@@ -0,0 +1,3 @@
1
+ export { default as XCard } from './Card.vue'
2
+ export type { CardProps } from './Card.vue'
3
+ export type { CardTheme } from './Card.theme'
@@ -1,10 +1,20 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { Ref } from 'vue'
2
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
3
+ import type { CheckboxProps } from './Checkbox.vue'
2
4
 
3
- export default {
5
+ type InternalClasses = 'wrapper' | 'box' | 'icon' | 'label'
6
+ type InternalExtraData = { checked: Ref<boolean>; }
7
+
8
+ interface InternalTheme extends ThemeComponent<CheckboxProps, InternalClasses, InternalExtraData> {}
9
+ export interface CheckboxTheme extends Omit<InternalTheme, 'classes'> {
10
+ classes?: Partial<ThemeClasses<CheckboxProps, InternalClasses, InternalExtraData>>;
11
+ }
12
+
13
+ const theme: InternalTheme = {
4
14
  classes: {
5
15
  wrapper: 'inline-block relative cursor-pointer align-middle',
6
16
 
7
- box: ({ props }: ThemeParams) => {
17
+ box: ({ props }) => {
8
18
  const classes = ['rounded flex justify-center items-center shrink-0 border-2 border-[color:var(--x-checkbox-border)] bg-[color:var(--x-checkbox-bg)] dark:border-[color:var(--x-checkbox-dark-border)] dark:bg-[color:var(--x-checkbox-dark-bg)]']
9
19
 
10
20
  if (props.size === 'xs' || props.size === 'sm') classes.push('h-4 w-4')
@@ -14,7 +24,7 @@ export default {
14
24
  return classes
15
25
  },
16
26
 
17
- icon: ({ props }: ThemeParams) => {
27
+ icon: ({ props }) => {
18
28
  const classes = ['fill-current text-white dark:text-gray-900']
19
29
 
20
30
  if (props.size === 'xs' || props.size === 'sm') classes.push('h-2 w-2')
@@ -24,7 +34,7 @@ export default {
24
34
  return classes
25
35
  },
26
36
 
27
- label: ({ props }: ThemeParams) => {
37
+ label: ({ props }) => {
28
38
  const classes = ['inline-block font-medium text-gray-800 dark:text-gray-200 pl-2']
29
39
 
30
40
  if (props.size === 'xs') classes.push('text-xs')
@@ -36,10 +46,10 @@ export default {
36
46
  },
37
47
  },
38
48
 
39
- styles({ props, colors, css, data }: ThemeParams) {
49
+ styles({ props, colors, css, data }) {
40
50
  const gray = colors.getPalette('gray')
41
51
  const color = colors.getPalette(props.color)
42
- const vars: (object | string)[] = []
52
+ const vars = []
43
53
 
44
54
  if (props.loading) {
45
55
  return css.variables({
@@ -90,3 +100,5 @@ export default {
90
100
  return vars
91
101
  },
92
102
  }
103
+
104
+ export default theme
@@ -1,9 +1,26 @@
1
1
  <script lang="ts">
2
- export default { name: 'XCheckbox' }
2
+ const checkboxProps = {
3
+ ...useCommon.props(),
4
+ ...useColors.props('primary'),
5
+ ...useInteractive.props(),
6
+ ...useInputtable.props(),
7
+ label: String,
8
+ helper: String,
9
+ glow: Boolean,
10
+ }
11
+
12
+ export type CheckboxProps = ExtractPublicPropTypes<typeof checkboxProps>
13
+
14
+ export default {
15
+ name: 'XCheckbox',
16
+ validators: {
17
+ ...useCommon.validators(),
18
+ },
19
+ }
3
20
  </script>
4
21
 
5
22
  <script setup lang="ts">
6
- import { ref, watch } from 'vue'
23
+ import { ref, watch, type ExtractPublicPropTypes } from 'vue'
7
24
  import { useTheme } from '../../composables/theme'
8
25
  import { useCommon } from '../../composables/common'
9
26
  import { useColors } from '../../composables/colors'
@@ -15,15 +32,7 @@ import XInputError from '../helpers/InputError'
15
32
 
16
33
  import theme from './Checkbox.theme'
17
34
 
18
- const props = defineProps({
19
- ...useCommon.props(),
20
- ...useColors.props('primary'),
21
- ...useInteractive.props(),
22
- ...useInputtable.props(),
23
- label: String,
24
- helper: String,
25
- glow: Boolean,
26
- })
35
+ const props = defineProps(checkboxProps)
27
36
 
28
37
  const emit = defineEmits(useInputtable.emits(false))
29
38
 
@@ -112,7 +121,7 @@ defineExpose({ focus, blur, toggle, reset, validate, setError })
112
121
  <style lang="postcss" module>
113
122
  .checkbox {
114
123
  &--glow {
115
- box-shadow: 0 0 #000, 0 0 #000, 0 10px 15px -3px var(--x-checkbox-glow),0 4px 6px -4px var(--x-checkbox-glow);
124
+ box-shadow: 0 0 #000, 0 0 #000, 0 10px 15px -3px var(--x-checkbox-glow), 0 4px 6px -4px var(--x-checkbox-glow);
116
125
  }
117
126
  }
118
127
  </style>
@@ -0,0 +1,3 @@
1
+ export { default as XCheckbox } from './Checkbox.vue'
2
+ export type { CheckboxProps } from './Checkbox.vue'
3
+ export type { CheckboxTheme } from './Checkbox.theme'
@@ -1,11 +1,21 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { CollapseProps } from './Collapse.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'icon' | 'content'
5
+
6
+ interface InternalTheme extends ThemeComponent<CollapseProps, InternalClasses> {}
7
+ export interface CollapseTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<CollapseProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
- wrapper: ({ props }: ThemeParams) => `relative flex items-center ${props.icon ? 'flex-row-reverse' : ''} ${props.disabled ? '' : 'cursor-pointer'}`,
13
+ wrapper: ({ props }) => `relative flex items-center ${props.icon ? 'flex-row-reverse' : ''} ${props.disabled ? '' : 'cursor-pointer'}`,
6
14
 
7
15
  icon: 'absolute top-1/2 transform -translate-y-1/2 right-3',
8
16
 
9
17
  content: 'transition-[height] duration-150 overflow-y-hidden',
10
18
  },
11
19
  }
20
+
21
+ export default theme
@@ -1,9 +1,23 @@
1
1
  <script lang="ts">
2
+ const collapseProps = {
3
+ ...useColors.props(),
4
+ tag: {
5
+ type: String,
6
+ default: 'div',
7
+ },
8
+ disabled: Boolean,
9
+ expanded: Boolean,
10
+ showIcon: Boolean,
11
+ icon: String,
12
+ }
13
+
14
+ export type CollapseProps = ExtractPublicPropTypes<typeof collapseProps>
15
+
2
16
  export default { name: 'XCollapse' }
3
17
  </script>
4
18
 
5
19
  <script setup lang="ts">
6
- import { ref, watch } from 'vue'
20
+ import { ref, watch, type ExtractPublicPropTypes } from 'vue'
7
21
  import { useTheme } from '../../composables/theme'
8
22
  import { useColors } from '../../composables/colors'
9
23
 
@@ -11,17 +25,7 @@ import XIcon from '../../components/icon/Icon.vue'
11
25
 
12
26
  import theme from './Collapse.theme'
13
27
 
14
- const props = defineProps({
15
- ...useColors.props(),
16
- tag: {
17
- type: String,
18
- default: 'div',
19
- },
20
- disabled: Boolean,
21
- expanded: Boolean,
22
- showIcon: Boolean,
23
- icon: String,
24
- })
28
+ const props = defineProps(collapseProps)
25
29
 
26
30
  const emit = defineEmits(['expand'])
27
31
 
@@ -32,48 +36,48 @@ watch(() => props.expanded, () => {
32
36
  collapsed.value = !props.expanded
33
37
  })
34
38
 
35
- function onBeforeEnter(el: HTMLElement) {
36
- if (animated.value) el.style.height = '0px'
39
+ function onBeforeEnter(el: Element) {
40
+ if (animated.value) (el as HTMLElement).style.height = '0px'
37
41
  }
38
42
 
39
- function onEnter(el: HTMLElement, done: ()=> void) {
43
+ function onEnter(el: Element, done: () => void) {
40
44
  if (!animated.value) done()
41
45
  else {
42
46
  el.addEventListener('transitionend', done)
43
47
  setTimeout(() => {
44
- el.style.height = `${el.scrollHeight}px`
48
+ (el as HTMLElement).style.height = `${el.scrollHeight}px`
45
49
  }, 1)
46
50
  }
47
51
  }
48
52
 
49
- function onAfterEnter(el: HTMLElement) {
53
+ function onAfterEnter(el: Element) {
50
54
  if (!animated.value) {
51
55
  animated.value = true
52
56
  } else {
53
- el.style.removeProperty('height')
57
+ (el as HTMLElement).style.removeProperty('height')
54
58
  }
55
59
  }
56
60
 
57
- function onBeforeLeave(el: HTMLElement) {
61
+ function onBeforeLeave(el: Element) {
58
62
  if (!animated.value) return
59
- el.style.height = `${el.scrollHeight}px`
63
+ (el as HTMLElement).style.height = `${el.scrollHeight}px`
60
64
  }
61
65
 
62
- function onLeave(el: HTMLElement ,done: ()=> void) {
66
+ function onLeave(el: Element, done: () => void) {
63
67
  if (!animated.value) done()
64
68
  else {
65
69
  el.addEventListener('transitionend', done)
66
70
  setTimeout(() => {
67
- el.style.height = '0px'
71
+ (el as HTMLElement).style.height = '0px'
68
72
  }, 1)
69
73
  }
70
74
  }
71
75
 
72
- function onAfterLeave(el: HTMLElement) {
76
+ function onAfterLeave(el: Element) {
73
77
  if (!animated.value) {
74
78
  animated.value = true
75
79
  } else {
76
- el.style.removeProperty('height')
80
+ (el as HTMLElement).style.removeProperty('height')
77
81
  }
78
82
  }
79
83
 
@@ -0,0 +1,3 @@
1
+ export { default as XCollapse } from './Collapse.vue'
2
+ export type { CollapseProps } from './Collapse.vue'
3
+ export type { CollapseTheme } from './Collapse.theme'
@@ -1,7 +1,17 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { ContainerProps } from './Container.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper'
5
+
6
+ interface InternalTheme extends ThemeComponent<ContainerProps, InternalClasses> {}
7
+ export interface ContainerTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<ContainerProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: 'max-w-screen-2xl mx-auto px-4 md:px-8',
6
14
  },
7
15
  }
16
+
17
+ export default theme
@@ -1,18 +1,23 @@
1
1
  <script lang="ts">
2
+ const containerProps = {
3
+ tag: {
4
+ type: String,
5
+ default: 'div',
6
+ },
7
+ }
8
+
9
+ export type ContainerProps = ExtractPublicPropTypes<typeof containerProps>
10
+
2
11
  export default { name: 'XContainer' }
3
12
  </script>
4
13
 
5
14
  <script setup lang="ts">
15
+ import type { ExtractPublicPropTypes } from 'vue'
6
16
  import { useTheme } from '../../composables/theme'
7
17
 
8
18
  import theme from './Container.theme'
9
19
 
10
- const props = defineProps({
11
- tag: {
12
- type: String,
13
- default: 'div',
14
- },
15
- })
20
+ const props = defineProps(containerProps)
16
21
 
17
22
  const { styles, classes, className } = useTheme('container', theme, props)
18
23
  </script>
@@ -0,0 +1,3 @@
1
+ export { default as XContainer } from './Container.vue'
2
+ export type { ContainerProps } from './Container.vue'
3
+ export type { ContainerTheme } from './Container.theme'
@@ -1,11 +1,21 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { DividerProps } from './Divider.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'label' | 'line'
5
+
6
+ interface InternalTheme extends ThemeComponent<DividerProps, InternalClasses> {}
7
+ export interface DividerTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<DividerProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
- wrapper: ({ props }: ThemeParams) => `flex justify-center items-center ${props.vertical ? 'h-full flex-col' : 'w-full'}`,
13
+ wrapper: ({ props }) => `flex justify-center items-center ${props.vertical ? 'h-full flex-col' : 'w-full'}`,
6
14
 
7
15
  label: 'font-medium text-sm text-gray-600 dark:text-gray-300',
8
16
 
9
17
  line: 'bg-gray-200 dark:bg-slate-700 flex-grow',
10
18
  },
11
19
  }
20
+
21
+ export default theme
@@ -1,16 +1,21 @@
1
1
  <script lang="ts">
2
+ const dividerProps = {
3
+ label: String,
4
+ vertical: Boolean,
5
+ }
6
+
7
+ export type DividerProps = ExtractPublicPropTypes<typeof dividerProps>
8
+
2
9
  export default { name: 'XDivider' }
3
10
  </script>
4
11
 
5
12
  <script setup lang="ts">
13
+ import type { ExtractPublicPropTypes } from 'vue'
6
14
  import { useTheme } from '../../composables/theme'
7
15
 
8
16
  import theme from './Divider.theme'
9
17
 
10
- const props = defineProps({
11
- label: String,
12
- vertical: Boolean,
13
- })
18
+ const props = defineProps(dividerProps)
14
19
 
15
20
  const { styles, classes, className } = useTheme('divider', theme, props)
16
21
  </script>
@@ -0,0 +1,3 @@
1
+ export { default as XDivider } from './Divider.vue'
2
+ export type { DividerProps } from './Divider.vue'
3
+ export type { DividerTheme } from './Divider.theme'
@@ -1,9 +1,19 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { DrawerProps } from './Drawer.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'backdrop'
5
+
6
+ interface InternalTheme extends ThemeComponent<DrawerProps, InternalClasses> {}
7
+ export interface DrawerTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<DrawerProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: 'flex flex-col max-h-full bg-white dark:bg-gray-800',
6
14
 
7
15
  backdrop: 'duration-150 ease-in-out',
8
16
  },
9
17
  }
18
+
19
+ export default theme
@@ -1,23 +1,9 @@
1
1
  <script lang="ts">
2
- export default {
3
- name: 'XDrawer',
4
- inheritAttrs: false,
5
- }
6
- </script>
7
-
8
- <script setup lang="ts">
9
- import { computed, onMounted, ref, watch, watchEffect, type PropType } from 'vue'
10
- import { breakpointsTailwind, SwipeDirection, useBreakpoints, useEventListener, useSwipe, type Breakpoints } from '@vueuse/core'
11
- import { useTheme } from '../../composables/theme'
12
-
13
- import XScroll from '../../components/scroll/Scroll.vue'
14
-
15
- import theme from './Drawer.theme'
16
-
17
- const props = defineProps({
2
+ const drawerPosition = ['left', 'right', 'top', 'bottom'] as const
3
+ const drawerProps = {
18
4
  modelValue: Boolean,
19
5
  position: {
20
- type: String as PropType<'left' | 'right' | 'top' | 'bottom'>,
6
+ type: String as PropType<DrawerPosition>,
21
7
  default: 'left',
22
8
  },
23
9
  teleportTo: {
@@ -37,7 +23,30 @@ const props = defineProps({
37
23
  type: Boolean,
38
24
  default: true,
39
25
  },
40
- })
26
+ }
27
+
28
+ export type DrawerPosition = typeof drawerPosition[number]
29
+ export type DrawerProps = ExtractPublicPropTypes<typeof drawerProps>
30
+
31
+ export default {
32
+ name: 'XDrawer',
33
+ inheritAttrs: false,
34
+ validators: {
35
+ position: drawerPosition,
36
+ },
37
+ }
38
+ </script>
39
+
40
+ <script setup lang="ts">
41
+ import { computed, onMounted, ref, watch, watchEffect, type PropType, type ExtractPublicPropTypes } from 'vue'
42
+ import { breakpointsTailwind, useBreakpoints, useEventListener, useSwipe, type Breakpoints, type UseSwipeDirection } from '@vueuse/core'
43
+ import { useTheme } from '../../composables/theme'
44
+
45
+ import XScroll from '../../components/scroll/Scroll.vue'
46
+
47
+ import theme from './Drawer.theme'
48
+
49
+ const props = defineProps(drawerProps)
41
50
 
42
51
  const emit = defineEmits(['update:modelValue'])
43
52
 
@@ -86,20 +95,20 @@ const { lengthX, lengthY } = useSwipe(drawerRef, {
86
95
  // left.value = '0'
87
96
  // }
88
97
  // },
89
- // onSwipeEnd(e: TouchEvent, direction: SwipeDirection) {
98
+ // onSwipeEnd(e: TouchEvent, direction: UseSwipeDirection) {
90
99
  // if (lengthX.value < 0 && props.width && (Math.abs(lengthX.value) / props.width) >= 0.5) {
91
100
  // left.value = '100%'
92
101
  // } else {
93
102
  // left.value = '0'
94
103
  // }
95
104
  // },
96
- onSwipeEnd(e: TouchEvent, direction: SwipeDirection) {
105
+ onSwipeEnd(e: TouchEvent, direction: UseSwipeDirection) {
97
106
  if (detached.value) {
98
107
  if (
99
- (props.position === 'left' && direction === 'LEFT') ||
100
- (props.position === 'right' && direction === 'RIGHT') ||
101
- (props.position === 'top' && direction === 'UP') ||
102
- (props.position === 'bottom' && direction === 'DOWN')
108
+ (props.position === 'left' && direction === 'left') ||
109
+ (props.position === 'right' && direction === 'right') ||
110
+ (props.position === 'top' && direction === 'up') ||
111
+ (props.position === 'bottom' && direction === 'down')
103
112
  ) close()
104
113
  }
105
114
  },
@@ -129,15 +138,15 @@ const autoClasses = computed(() => {
129
138
  return c
130
139
  })
131
140
 
132
- function onBeforeEnter(el: HTMLElement) {
141
+ function onBeforeEnter(el: Element) {
133
142
  el.classList.add('inset-0')
134
- if (props.position === 'top') el.style.top = `-${props.height}px`
135
- else if (props.position === 'bottom') el.style.bottom = `-${props.height}px`
136
- else if (props.position === 'left') el.style.left = `-${props.width}px`
137
- else if (props.position === 'right') el.style.right = `-${props.width}px`
143
+ if (props.position === 'top') (el as HTMLElement).style.top = `-${props.height}px`
144
+ else if (props.position === 'bottom') (el as HTMLElement).style.bottom = `-${props.height}px`
145
+ else if (props.position === 'left') (el as HTMLElement).style.left = `-${props.width}px`
146
+ else if (props.position === 'right') (el as HTMLElement).style.right = `-${props.width}px`
138
147
  }
139
148
 
140
- function onEnter(el: HTMLElement, done: ()=> void) {
149
+ function onEnter(el: Element, done: () => void) {
141
150
  if (!detached.value) {
142
151
  done()
143
152
 
@@ -146,27 +155,27 @@ function onEnter(el: HTMLElement, done: ()=> void) {
146
155
  el.addEventListener('transitionend', done)
147
156
  setTimeout(() => {
148
157
  if (props.backdrop) el.classList.add('bg-gray-500/30')
149
- if (props.position === 'top') el.style.top = '0'
150
- else if (props.position === 'bottom') el.style.bottom = '0'
151
- else if (props.position === 'left') el.style.left = '0'
152
- else if (props.position === 'right') el.style.right = '0'
158
+ if (props.position === 'top') (el as HTMLElement).style.top = '0'
159
+ else if (props.position === 'bottom') (el as HTMLElement).style.bottom = '0'
160
+ else if (props.position === 'left') (el as HTMLElement).style.left = '0'
161
+ else if (props.position === 'right') (el as HTMLElement).style.right = '0'
153
162
  }, 1)
154
163
  }
155
164
 
156
- function onBeforeLeave(el: HTMLElement) {}
165
+ function onBeforeLeave(el: Element) {}
157
166
 
158
- function onLeave(el: HTMLElement, done: ()=> void) {
167
+ function onLeave(el: Element, done: () => void) {
159
168
  el.addEventListener('transitionend', done)
160
169
  setTimeout(() => {
161
170
  if (props.backdrop) el.classList.remove('bg-gray-500/30')
162
- if (props.position === 'top') el.style.top = `-${props.height}px`
163
- else if (props.position === 'bottom') el.style.bottom = `-${props.height}px`
164
- else if (props.position === 'left') el.style.left = `-${props.width}px`
165
- else if (props.position === 'right') el.style.right = `-${props.width}px`
171
+ if (props.position === 'top') (el as HTMLElement).style.top = `-${props.height}px`
172
+ else if (props.position === 'bottom') (el as HTMLElement).style.bottom = `-${props.height}px`
173
+ else if (props.position === 'left') (el as HTMLElement).style.left = `-${props.width}px`
174
+ else if (props.position === 'right') (el as HTMLElement).style.right = `-${props.width}px`
166
175
  }, 1)
167
176
  }
168
177
 
169
- function onAfterLeave(el: HTMLElement, done: ()=> void) {
178
+ function onAfterLeave(el: Element) {
170
179
  el.classList.remove('inset-0')
171
180
  }
172
181
 
@@ -0,0 +1,3 @@
1
+ export { default as XDrawer } from './Drawer.vue'
2
+ export type { DrawerProps, DrawerPosition } from './Drawer.vue'
3
+ export type { DrawerTheme } from './Drawer.theme'
@@ -1,7 +1,17 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { FormProps } from './Form.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper'
5
+
6
+ interface InternalTheme extends ThemeComponent<FormProps, InternalClasses> {}
7
+ export interface FormTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<FormProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: '',
6
14
  },
7
15
  }
16
+
17
+ export default theme