@indielayer/ui 1.0.10 → 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 (410) hide show
  1. package/lib/_virtual/_plugin-vue_export-helper.js +9 -0
  2. package/lib/common/icons.js +18 -0
  3. package/lib/common/utils.d.ts +4 -0
  4. package/lib/common/utils.js +25 -0
  5. package/lib/components/alert/Alert.theme.d.ts +10 -8
  6. package/lib/components/alert/Alert.theme.js +41 -0
  7. package/lib/components/alert/Alert.vue.d.ts +22 -5
  8. package/lib/components/alert/Alert.vue.js +9 -0
  9. package/lib/components/alert/Alert.vue2.js +62 -0
  10. package/lib/components/alert/Alert.vue3.js +8 -0
  11. package/lib/components/alert/index.d.ts +3 -0
  12. package/lib/components/avatar/Avatar.theme.d.ts +13 -7
  13. package/lib/components/avatar/Avatar.theme.js +25 -0
  14. package/lib/components/avatar/Avatar.vue.d.ts +24 -2
  15. package/lib/components/avatar/Avatar.vue.js +9 -0
  16. package/lib/components/avatar/Avatar.vue2.js +76 -0
  17. package/lib/components/avatar/Avatar.vue3.js +7 -0
  18. package/lib/components/avatar/index.d.ts +3 -0
  19. package/lib/components/badge/Badge.theme.d.ts +10 -8
  20. package/lib/components/badge/Badge.theme.js +12 -0
  21. package/lib/components/badge/Badge.vue.d.ts +45 -8
  22. package/lib/components/badge/Badge.vue.js +94 -0
  23. package/lib/components/badge/Badge.vue2.js +4 -0
  24. package/lib/components/badge/index.d.ts +3 -0
  25. package/lib/components/breadcrumbs/Breadcrumbs.theme.d.ts +10 -8
  26. package/lib/components/breadcrumbs/Breadcrumbs.theme.js +10 -0
  27. package/lib/components/breadcrumbs/Breadcrumbs.vue.d.ts +19 -5
  28. package/lib/components/breadcrumbs/Breadcrumbs.vue.js +79 -0
  29. package/lib/components/breadcrumbs/Breadcrumbs.vue2.js +4 -0
  30. package/lib/components/breadcrumbs/index.d.ts +3 -0
  31. package/lib/components/button/Button.theme.d.ts +12 -9
  32. package/lib/components/button/Button.theme.js +138 -0
  33. package/lib/components/button/Button.vue.d.ts +41 -7
  34. package/lib/components/button/Button.vue.js +9 -0
  35. package/lib/components/button/Button.vue2.js +115 -0
  36. package/lib/components/button/Button.vue3.js +8 -0
  37. package/lib/components/button/ButtonGroup.theme.d.ts +12 -5
  38. package/lib/components/button/ButtonGroup.theme.js +8 -0
  39. package/lib/components/button/ButtonGroup.vue.d.ts +36 -5
  40. package/lib/components/button/ButtonGroup.vue.js +9 -0
  41. package/lib/components/button/ButtonGroup.vue2.js +54 -0
  42. package/lib/components/button/ButtonGroup.vue3.js +7 -0
  43. package/lib/components/button/index.d.ts +6 -0
  44. package/lib/components/card/Card.theme.d.ts +10 -7
  45. package/lib/components/card/Card.theme.js +8 -0
  46. package/lib/components/card/Card.vue.d.ts +9 -0
  47. package/lib/components/card/Card.vue.js +31 -0
  48. package/lib/components/card/Card.vue2.js +4 -0
  49. package/lib/components/card/index.d.ts +3 -0
  50. package/lib/components/checkbox/Checkbox.theme.d.ts +13 -10
  51. package/lib/components/checkbox/Checkbox.theme.js +52 -0
  52. package/lib/components/checkbox/Checkbox.vue.d.ts +35 -4
  53. package/lib/components/checkbox/Checkbox.vue.js +9 -0
  54. package/lib/components/checkbox/Checkbox.vue2.js +108 -0
  55. package/lib/components/checkbox/Checkbox.vue3.js +6 -0
  56. package/lib/components/checkbox/index.d.ts +3 -0
  57. package/lib/components/collapse/Collapse.theme.d.ts +10 -9
  58. package/lib/components/collapse/Collapse.theme.js +10 -0
  59. package/lib/components/collapse/Collapse.vue.d.ts +17 -1
  60. package/lib/components/collapse/Collapse.vue.js +132 -0
  61. package/lib/components/collapse/Collapse.vue2.js +4 -0
  62. package/lib/components/collapse/index.d.ts +3 -0
  63. package/lib/components/container/Container.theme.d.ts +10 -6
  64. package/lib/components/container/Container.theme.js +8 -0
  65. package/lib/components/container/Container.vue.d.ts +8 -0
  66. package/lib/components/container/Container.vue.js +30 -0
  67. package/lib/components/container/Container.vue2.js +4 -0
  68. package/lib/components/container/index.d.ts +3 -0
  69. package/lib/components/divider/Divider.theme.d.ts +10 -9
  70. package/lib/components/divider/Divider.theme.js +10 -0
  71. package/lib/components/divider/Divider.vue.d.ts +6 -0
  72. package/lib/components/divider/Divider.vue.js +53 -0
  73. package/lib/components/divider/Divider.vue2.js +4 -0
  74. package/lib/components/divider/index.d.ts +3 -0
  75. package/lib/components/drawer/Drawer.theme.d.ts +10 -7
  76. package/lib/components/drawer/Drawer.theme.js +9 -0
  77. package/lib/components/drawer/Drawer.vue.d.ts +39 -12
  78. package/lib/components/drawer/Drawer.vue.js +171 -0
  79. package/lib/components/drawer/Drawer.vue2.js +4 -0
  80. package/lib/components/drawer/index.d.ts +3 -0
  81. package/lib/components/form/Form.theme.d.ts +10 -6
  82. package/lib/components/form/Form.theme.js +8 -0
  83. package/lib/components/form/Form.vue.d.ts +25 -4
  84. package/lib/components/form/Form.vue.js +79 -0
  85. package/lib/components/form/Form.vue2.js +4 -0
  86. package/lib/components/form/index.d.ts +3 -0
  87. package/lib/components/helpers/InputError.js +18 -0
  88. package/lib/components/icon/Icon.theme.d.ts +10 -7
  89. package/lib/components/icon/Icon.theme.js +11 -0
  90. package/lib/components/icon/Icon.vue.d.ts +21 -3
  91. package/lib/components/icon/Icon.vue.js +74 -0
  92. package/lib/components/icon/Icon.vue2.js +4 -0
  93. package/lib/components/icon/index.d.ts +3 -0
  94. package/lib/components/image/Image.theme.d.ts +10 -6
  95. package/lib/components/image/Image.theme.js +8 -0
  96. package/lib/components/image/Image.vue.d.ts +5 -0
  97. package/lib/components/image/Image.vue.js +32 -0
  98. package/lib/components/image/Image.vue2.js +4 -0
  99. package/lib/components/image/index.d.ts +3 -0
  100. package/lib/components/index.d.ts +35 -45
  101. package/lib/components/index.js +92 -0
  102. package/lib/components/input/Input.theme.d.ts +12 -10
  103. package/lib/components/input/Input.theme.js +21 -0
  104. package/lib/components/input/Input.vue.d.ts +70 -19
  105. package/lib/components/input/Input.vue.js +140 -0
  106. package/lib/components/input/Input.vue2.js +4 -0
  107. package/lib/components/input/index.d.ts +3 -0
  108. package/lib/components/link/Link.theme.d.ts +10 -8
  109. package/lib/components/link/Link.theme.js +25 -0
  110. package/lib/components/link/Link.vue.d.ts +17 -1
  111. package/lib/components/link/Link.vue.js +9 -0
  112. package/lib/components/link/Link.vue2.js +48 -0
  113. package/lib/components/link/Link.vue3.js +8 -0
  114. package/lib/components/link/index.d.ts +3 -0
  115. package/lib/components/menu/Menu.theme.d.ts +10 -6
  116. package/lib/components/menu/Menu.theme.js +8 -0
  117. package/lib/components/menu/Menu.vue.d.ts +61 -8
  118. package/lib/components/menu/Menu.vue.js +133 -0
  119. package/lib/components/menu/Menu.vue2.js +4 -0
  120. package/lib/components/menu/MenuItem.theme.d.ts +13 -7
  121. package/lib/components/menu/MenuItem.theme.js +86 -0
  122. package/lib/components/menu/MenuItem.vue.d.ts +55 -15
  123. package/lib/components/menu/MenuItem.vue.js +9 -0
  124. package/lib/components/menu/MenuItem.vue2.js +143 -0
  125. package/lib/components/menu/MenuItem.vue3.js +7 -0
  126. package/lib/components/menu/index.d.ts +6 -0
  127. package/lib/components/modal/Modal.theme.d.ts +10 -13
  128. package/lib/components/modal/Modal.theme.js +17 -0
  129. package/lib/components/modal/Modal.vue.d.ts +13 -1
  130. package/lib/components/modal/Modal.vue.js +127 -0
  131. package/lib/components/modal/Modal.vue2.js +4 -0
  132. package/lib/components/modal/index.d.ts +3 -0
  133. package/lib/components/notifications/Notifications.theme.d.ts +10 -8
  134. package/lib/components/notifications/Notifications.theme.js +10 -0
  135. package/lib/components/notifications/Notifications.vue.d.ts +46 -13
  136. package/lib/components/notifications/Notifications.vue.js +234 -0
  137. package/lib/components/notifications/Notifications.vue2.js +4 -0
  138. package/lib/components/notifications/index.d.ts +3 -0
  139. package/lib/components/pagination/Pagination.theme.d.ts +10 -9
  140. package/lib/components/pagination/Pagination.theme.js +13 -0
  141. package/lib/components/pagination/Pagination.vue.d.ts +27 -4
  142. package/lib/components/pagination/Pagination.vue.js +131 -0
  143. package/lib/components/pagination/Pagination.vue2.js +4 -0
  144. package/lib/components/pagination/PaginationItem.theme.d.ts +10 -7
  145. package/lib/components/pagination/PaginationItem.theme.js +8 -0
  146. package/lib/components/pagination/PaginationItem.vue.d.ts +16 -1
  147. package/lib/components/pagination/PaginationItem.vue.js +48 -0
  148. package/lib/components/pagination/PaginationItem.vue2.js +4 -0
  149. package/lib/components/pagination/index.d.ts +6 -0
  150. package/lib/components/popover/Popover.theme.d.ts +10 -7
  151. package/lib/components/popover/Popover.theme.js +9 -0
  152. package/lib/components/popover/Popover.vue.d.ts +40 -10
  153. package/lib/components/popover/Popover.vue.js +9 -0
  154. package/lib/components/popover/Popover.vue2.js +106 -0
  155. package/lib/components/popover/Popover.vue3.js +15 -0
  156. package/lib/components/popover/PopoverContainer.theme.d.ts +10 -6
  157. package/lib/components/popover/PopoverContainer.theme.js +8 -0
  158. package/lib/components/popover/PopoverContainer.vue.d.ts +8 -0
  159. package/lib/components/popover/PopoverContainer.vue.js +30 -0
  160. package/lib/components/popover/PopoverContainer.vue2.js +4 -0
  161. package/lib/components/popover/index.d.ts +6 -0
  162. package/lib/components/progress/Progress.theme.d.ts +10 -12
  163. package/lib/components/progress/Progress.theme.js +18 -0
  164. package/lib/components/progress/Progress.vue.d.ts +19 -0
  165. package/lib/components/progress/Progress.vue.js +51 -0
  166. package/lib/components/progress/Progress.vue2.js +4 -0
  167. package/lib/components/progress/index.d.ts +3 -0
  168. package/lib/components/radio/Radio.theme.d.ts +13 -11
  169. package/lib/components/radio/Radio.theme.js +67 -0
  170. package/lib/components/radio/Radio.vue.d.ts +38 -6
  171. package/lib/components/radio/Radio.vue.js +9 -0
  172. package/lib/components/radio/Radio.vue2.js +117 -0
  173. package/lib/components/radio/Radio.vue3.js +10 -0
  174. package/lib/components/radio/index.d.ts +3 -0
  175. package/lib/components/scroll/Scroll.theme.d.ts +10 -6
  176. package/lib/components/scroll/Scroll.theme.js +8 -0
  177. package/lib/components/scroll/Scroll.vue.d.ts +12 -1
  178. package/lib/components/scroll/Scroll.vue.js +9 -0
  179. package/lib/components/scroll/Scroll.vue2.js +64 -0
  180. package/lib/components/scroll/Scroll.vue3.js +17 -0
  181. package/lib/components/scroll/index.d.ts +3 -0
  182. package/lib/components/select/Select.theme.d.ts +13 -12
  183. package/lib/components/select/Select.theme.js +23 -0
  184. package/lib/components/select/Select.vue.d.ts +33 -4
  185. package/lib/components/select/Select.vue.js +269 -0
  186. package/lib/components/select/Select.vue2.js +4 -0
  187. package/lib/components/select/index.d.ts +3 -0
  188. package/lib/components/skeleton/Skeleton.theme.d.ts +10 -6
  189. package/lib/components/skeleton/Skeleton.theme.js +8 -0
  190. package/lib/components/skeleton/Skeleton.vue.d.ts +8 -0
  191. package/lib/components/skeleton/Skeleton.vue.js +30 -0
  192. package/lib/components/skeleton/Skeleton.vue2.js +4 -0
  193. package/lib/components/skeleton/index.d.ts +3 -0
  194. package/lib/components/slider/Slider.theme.d.ts +10 -10
  195. package/lib/components/slider/Slider.theme.js +20 -0
  196. package/lib/components/slider/Slider.vue.d.ts +40 -4
  197. package/lib/components/slider/Slider.vue.js +148 -0
  198. package/lib/components/slider/Slider.vue2.js +4 -0
  199. package/lib/components/slider/index.d.ts +2 -0
  200. package/lib/components/spacer/Spacer.js +12 -0
  201. package/lib/components/spacer/index.d.ts +1 -0
  202. package/lib/components/spinner/Spinner.vue.d.ts +13 -0
  203. package/lib/components/spinner/Spinner.vue.js +28 -0
  204. package/lib/components/spinner/Spinner.vue2.js +4 -0
  205. package/lib/components/spinner/index.d.ts +2 -0
  206. package/lib/components/tab/Tab.theme.d.ts +12 -9
  207. package/lib/components/tab/Tab.theme.js +13 -0
  208. package/lib/components/tab/Tab.vue.d.ts +31 -9
  209. package/lib/components/tab/Tab.vue.js +129 -0
  210. package/lib/components/tab/Tab.vue2.js +4 -0
  211. package/lib/components/tab/TabGroup.theme.d.ts +10 -10
  212. package/lib/components/tab/TabGroup.theme.js +27 -0
  213. package/lib/components/tab/TabGroup.vue.d.ts +53 -8
  214. package/lib/components/tab/TabGroup.vue.js +133 -0
  215. package/lib/components/tab/TabGroup.vue2.js +4 -0
  216. package/lib/components/tab/index.d.ts +4 -0
  217. package/lib/components/table/Table.theme.d.ts +10 -8
  218. package/lib/components/table/Table.theme.js +12 -0
  219. package/lib/components/table/Table.vue.d.ts +268 -57
  220. package/lib/components/table/Table.vue.js +147 -0
  221. package/lib/components/table/Table.vue2.js +4 -0
  222. package/lib/components/table/TableBody.js +15 -0
  223. package/lib/components/table/TableCell.theme.d.ts +10 -7
  224. package/lib/components/table/TableCell.theme.js +11 -0
  225. package/lib/components/table/TableCell.vue.d.ts +27 -5
  226. package/lib/components/table/TableCell.vue.js +43 -0
  227. package/lib/components/table/TableCell.vue2.js +4 -0
  228. package/lib/components/table/TableHead.js +19 -0
  229. package/lib/components/table/TableHeader.vue.d.ts +26 -8
  230. package/lib/components/table/TableHeader.vue.js +78 -0
  231. package/lib/components/table/TableHeader.vue2.js +4 -0
  232. package/lib/components/table/TableRow.vue.js +32 -0
  233. package/lib/components/table/TableRow.vue2.js +4 -0
  234. package/lib/components/table/index.d.ts +9 -0
  235. package/lib/components/tag/Tag.theme.d.ts +10 -9
  236. package/lib/components/tag/Tag.theme.js +23 -0
  237. package/lib/components/tag/Tag.vue.d.ts +23 -3
  238. package/lib/components/tag/Tag.vue.js +61 -0
  239. package/lib/components/tag/Tag.vue2.js +4 -0
  240. package/lib/components/tag/index.d.ts +2 -0
  241. package/lib/components/textarea/Textarea.theme.d.ts +13 -9
  242. package/lib/components/textarea/Textarea.theme.js +16 -0
  243. package/lib/components/textarea/Textarea.vue.d.ts +56 -14
  244. package/lib/components/textarea/Textarea.vue.js +110 -0
  245. package/lib/components/textarea/Textarea.vue2.js +4 -0
  246. package/lib/components/textarea/index.d.ts +2 -0
  247. package/lib/components/toggle/Toggle.theme.d.ts +10 -11
  248. package/lib/components/toggle/Toggle.theme.js +29 -0
  249. package/lib/components/toggle/Toggle.vue.d.ts +36 -4
  250. package/lib/components/toggle/Toggle.vue.js +110 -0
  251. package/lib/components/toggle/Toggle.vue2.js +4 -0
  252. package/lib/components/toggle/index.d.ts +2 -0
  253. package/lib/components/tooltip/Tooltip.vue.d.ts +3 -0
  254. package/lib/components/tooltip/Tooltip.vue.js +27 -0
  255. package/lib/components/tooltip/Tooltip.vue2.js +4 -0
  256. package/lib/components/tooltip/index.d.ts +2 -0
  257. package/lib/composables/colors-utils.js +19 -0
  258. package/lib/composables/colors.d.ts +2 -1
  259. package/lib/composables/colors.js +52 -0
  260. package/lib/composables/common.d.ts +1 -1
  261. package/lib/composables/common.js +17 -0
  262. package/lib/composables/css.js +26 -0
  263. package/lib/composables/inputtable.d.ts +4 -4
  264. package/lib/composables/inputtable.js +78 -0
  265. package/lib/composables/interactive.js +17 -0
  266. package/lib/composables/keys.d.ts +6 -3
  267. package/lib/composables/keys.js +10 -0
  268. package/lib/composables/notifications.js +9 -0
  269. package/lib/composables/theme.d.ts +13 -7
  270. package/lib/composables/theme.js +59 -0
  271. package/lib/create.js +19 -0
  272. package/lib/index.js +121 -0
  273. package/lib/index.umd.js +1 -0
  274. package/lib/install.js +10 -0
  275. package/lib/node_modules/.pnpm/@vueuse_core@10.2.0_vue@3.3.4/node_modules/@vueuse/core/index.js +379 -0
  276. package/lib/node_modules/.pnpm/@vueuse_shared@10.2.0_vue@3.3.4/node_modules/@vueuse/shared/index.js +90 -0
  277. package/lib/version.d.ts +1 -1
  278. package/lib/version.js +4 -0
  279. package/package.json +8 -8
  280. package/src/common/utils.ts +25 -2
  281. package/src/components/alert/Alert.theme.ts +15 -6
  282. package/src/components/alert/Alert.vue +24 -12
  283. package/src/components/alert/index.ts +3 -0
  284. package/src/components/avatar/Avatar.theme.ts +16 -4
  285. package/src/components/avatar/Avatar.vue +18 -14
  286. package/src/components/avatar/index.ts +3 -0
  287. package/src/components/badge/Badge.theme.ts +13 -3
  288. package/src/components/badge/Badge.vue +30 -15
  289. package/src/components/badge/index.ts +3 -0
  290. package/src/components/breadcrumbs/Breadcrumbs.theme.ts +12 -2
  291. package/src/components/breadcrumbs/Breadcrumbs.vue +24 -21
  292. package/src/components/breadcrumbs/index.ts +3 -0
  293. package/src/components/button/Button.theme.ts +18 -8
  294. package/src/components/button/Button.vue +28 -18
  295. package/src/components/button/ButtonGroup.theme.ts +14 -1
  296. package/src/components/button/ButtonGroup.vue +29 -15
  297. package/src/components/button/index.ts +7 -0
  298. package/src/components/card/Card.theme.ts +13 -3
  299. package/src/components/card/Card.vue +12 -7
  300. package/src/components/card/index.ts +3 -0
  301. package/src/components/checkbox/Checkbox.theme.ts +19 -7
  302. package/src/components/checkbox/Checkbox.vue +20 -11
  303. package/src/components/checkbox/index.ts +3 -0
  304. package/src/components/collapse/Collapse.theme.ts +13 -3
  305. package/src/components/collapse/Collapse.vue +16 -12
  306. package/src/components/collapse/index.ts +3 -0
  307. package/src/components/container/Container.theme.ts +12 -2
  308. package/src/components/container/Container.vue +11 -6
  309. package/src/components/container/index.ts +3 -0
  310. package/src/components/divider/Divider.theme.ts +13 -3
  311. package/src/components/divider/Divider.vue +9 -4
  312. package/src/components/divider/index.ts +3 -0
  313. package/src/components/drawer/Drawer.theme.ts +12 -2
  314. package/src/components/drawer/Drawer.vue +27 -18
  315. package/src/components/drawer/index.ts +3 -0
  316. package/src/components/form/Form.theme.ts +12 -2
  317. package/src/components/form/Form.vue +38 -28
  318. package/src/components/form/index.ts +3 -0
  319. package/src/components/helpers/InputError.tsx +2 -2
  320. package/src/components/icon/Icon.theme.ts +13 -3
  321. package/src/components/icon/Icon.vue +24 -15
  322. package/src/components/icon/__tests__/Icon.spec.ts +5 -1
  323. package/src/components/icon/index.ts +3 -0
  324. package/src/components/image/Image.theme.ts +12 -2
  325. package/src/components/image/Image.vue +8 -4
  326. package/src/components/image/index.ts +3 -0
  327. package/src/components/index.ts +35 -45
  328. package/src/components/input/Input.theme.ts +17 -6
  329. package/src/components/input/Input.vue +31 -20
  330. package/src/components/input/index.ts +3 -0
  331. package/src/components/link/Link.theme.ts +13 -3
  332. package/src/components/link/Link.vue +16 -11
  333. package/src/components/link/index.ts +3 -0
  334. package/src/components/menu/Menu.theme.ts +12 -2
  335. package/src/components/menu/Menu.vue +59 -23
  336. package/src/components/menu/MenuItem.theme.ts +17 -5
  337. package/src/components/menu/MenuItem.vue +56 -48
  338. package/src/components/menu/index.ts +7 -0
  339. package/src/components/modal/Modal.theme.ts +13 -3
  340. package/src/components/modal/Modal.vue +22 -11
  341. package/src/components/modal/index.ts +3 -0
  342. package/src/components/notifications/Notifications.theme.ts +12 -2
  343. package/src/components/notifications/Notifications.vue +53 -49
  344. package/src/components/notifications/index.ts +9 -0
  345. package/src/components/pagination/Pagination.theme.ts +15 -5
  346. package/src/components/pagination/Pagination.vue +24 -18
  347. package/src/components/pagination/PaginationItem.theme.ts +13 -3
  348. package/src/components/pagination/PaginationItem.vue +14 -10
  349. package/src/components/pagination/index.ts +7 -0
  350. package/src/components/popover/Popover.theme.ts +12 -2
  351. package/src/components/popover/Popover.vue +27 -21
  352. package/src/components/popover/PopoverContainer.theme.ts +12 -2
  353. package/src/components/popover/PopoverContainer.vue +11 -6
  354. package/src/components/popover/index.ts +7 -0
  355. package/src/components/progress/Progress.theme.ts +14 -4
  356. package/src/components/progress/Progress.vue +16 -16
  357. package/src/components/progress/index.ts +3 -0
  358. package/src/components/radio/Radio.theme.ts +19 -7
  359. package/src/components/radio/Radio.vue +21 -12
  360. package/src/components/radio/index.ts +3 -0
  361. package/src/components/scroll/Scroll.theme.ts +12 -2
  362. package/src/components/scroll/Scroll.vue +14 -10
  363. package/src/components/scroll/index.ts +3 -0
  364. package/src/components/select/Select.theme.ts +20 -6
  365. package/src/components/select/Select.vue +28 -19
  366. package/src/components/select/index.ts +3 -0
  367. package/src/components/skeleton/Skeleton.theme.ts +12 -2
  368. package/src/components/skeleton/Skeleton.vue +11 -6
  369. package/src/components/skeleton/index.ts +3 -0
  370. package/src/components/slider/Slider.theme.ts +14 -4
  371. package/src/components/slider/Slider.vue +24 -16
  372. package/src/components/slider/index.ts +2 -0
  373. package/src/components/spacer/index.ts +1 -0
  374. package/src/components/spinner/Spinner.vue +18 -8
  375. package/src/components/spinner/index.ts +2 -0
  376. package/src/components/tab/Tab.theme.ts +15 -3
  377. package/src/components/tab/Tab.vue +85 -68
  378. package/src/components/tab/TabGroup.theme.ts +15 -5
  379. package/src/components/tab/TabGroup.vue +67 -22
  380. package/src/components/tab/index.ts +5 -0
  381. package/src/components/table/Table.theme.ts +14 -4
  382. package/src/components/table/Table.vue +41 -31
  383. package/src/components/table/TableCell.theme.ts +13 -3
  384. package/src/components/table/TableCell.vue +22 -16
  385. package/src/components/table/TableHeader.vue +20 -17
  386. package/src/components/table/index.ts +10 -0
  387. package/src/components/tag/Tag.theme.ts +14 -4
  388. package/src/components/tag/Tag.vue +22 -13
  389. package/src/components/tag/index.ts +2 -0
  390. package/src/components/textarea/Textarea.theme.ts +18 -30
  391. package/src/components/textarea/Textarea.vue +28 -19
  392. package/src/components/textarea/index.ts +2 -0
  393. package/src/components/toggle/Toggle.theme.ts +16 -6
  394. package/src/components/toggle/Toggle.vue +21 -12
  395. package/src/components/toggle/index.ts +2 -0
  396. package/src/components/tooltip/Tooltip.vue +5 -0
  397. package/src/components/tooltip/index.ts +2 -0
  398. package/src/composables/colors-utils.ts +1 -78
  399. package/src/composables/colors.ts +6 -4
  400. package/src/composables/common.ts +1 -1
  401. package/src/composables/inputtable.ts +4 -4
  402. package/src/composables/keys.ts +6 -3
  403. package/src/composables/theme.ts +26 -23
  404. package/src/create.ts +1 -2
  405. package/src/version.ts +1 -1
  406. package/volar.d.ts +1 -1
  407. package/lib/components/tooltip/Tooltip.theme.d.ts +0 -11
  408. package/lib/index.cjs.js +0 -1
  409. package/lib/index.es.js +0 -5187
  410. package/src/components/tooltip/Tooltip.theme.ts +0 -51
@@ -1,9 +1,28 @@
1
1
  <script lang="ts">
2
- export default { name: 'XModal' }
2
+ const modalSize = ['xs', 'sm', 'md', 'lg', 'xl', 'full'] as const
3
+ const modalProps = {
4
+ size: {
5
+ type: String as PropType<ModalSize>,
6
+ default: 'md',
7
+ },
8
+ modelValue: Boolean,
9
+ showClose: Boolean,
10
+ backdrop: Boolean,
11
+ }
12
+
13
+ export type ModalSize = typeof modalSize[number]
14
+ export type ModalProps = ExtractPublicPropTypes<typeof modalProps>
15
+
16
+ export default {
17
+ name: 'XModal',
18
+ validators: {
19
+ size: modalSize,
20
+ },
21
+ }
3
22
  </script>
4
23
 
5
24
  <script setup lang="ts">
6
- import { ref, watch, type PropType } from 'vue'
25
+ import { ref, watch, type PropType, type ExtractPublicPropTypes } from 'vue'
7
26
  import { onClickOutside, useEventListener } from '@vueuse/core'
8
27
  import { useTheme } from '../../composables/theme'
9
28
  import { closeIcon } from '../../common/icons'
@@ -13,15 +32,7 @@ import theme from './Modal.theme'
13
32
  import XScroll from '../../components/scroll/Scroll.vue'
14
33
  import XIcon from '../icon/Icon.vue'
15
34
 
16
- const props = defineProps({
17
- size: {
18
- type: String as PropType<'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full'>,
19
- default: 'md',
20
- },
21
- modelValue: Boolean,
22
- showClose: Boolean,
23
- backdrop: Boolean,
24
- })
35
+ const props = defineProps(modalProps)
25
36
 
26
37
  const emit = defineEmits(['update:modelValue'])
27
38
 
@@ -0,0 +1,3 @@
1
+ export { default as XModal } from './Modal.vue'
2
+ export type { ModalProps, ModalSize } from './Modal.vue'
3
+ export type { ModalTheme } from './Modal.theme'
@@ -1,6 +1,14 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { NotificationsProps } from './Notifications.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'list' | 'item'
5
+
6
+ interface InternalTheme extends ThemeComponent<NotificationsProps, InternalClasses> {}
7
+ export interface NotificationsTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<NotificationsProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: 'fixed z-40 w-full sm:w-auto overflow-y-auto max-h-screen',
6
14
 
@@ -9,3 +17,5 @@ export default {
9
17
  item: 'w-full flex items-center rounded-md px-4 py-3 bg-gray-800 dark:bg-gray-50 text-white dark:text-gray-900 border border-gray-700 dark:border-gray-100',
10
18
  },
11
19
  }
20
+
21
+ export default theme
@@ -1,7 +1,56 @@
1
1
  <script lang="ts">
2
+ const notificationsProps = {
3
+ ...useColors.props('primary'),
4
+ align: {
5
+ type: String as PropType<NotificationsAlign>,
6
+ default: 'right',
7
+ validator: (value: string) => validators.align.includes(value as NotificationsAlign),
8
+ },
9
+ position: {
10
+ type: String as PropType<NotificationsPosition>,
11
+ default: 'bottom',
12
+ validator: (value: string) => validators.position.includes(value as NotificationsPosition),
13
+ },
14
+ timeout: {
15
+ type: Number,
16
+ default: 3500,
17
+ },
18
+ removable: {
19
+ type: Boolean,
20
+ default: true,
21
+ },
22
+ injectKey: {
23
+ type: [Symbol, String],
24
+ default: injectNotificationKey,
25
+ },
26
+ }
27
+
2
28
  const validators = {
3
- align: ['left', 'right'],
4
- position: ['bottom', 'top'],
29
+ align: ['left', 'right'] as const,
30
+ position: ['bottom', 'top'] as const,
31
+ }
32
+
33
+ export type NotificationsProps = ExtractPublicPropTypes<typeof notificationsProps>
34
+
35
+ export type NotificationsAlign = typeof validators.align[number]
36
+ export type NotificationsPosition = typeof validators.position[number]
37
+ export type NotificationsAction = {
38
+ onClick: () => void;
39
+ label: string;
40
+ color?: string;
41
+ }
42
+ export type NotificationEvent = {
43
+ id?: number;
44
+ icon?: string;
45
+ action?: NotificationsAction;
46
+ iconColor?: string;
47
+ title?: string;
48
+ style?: string;
49
+ message?: string;
50
+ timeout?: number;
51
+ removable?: boolean;
52
+ align?: NotificationsAlign;
53
+ position?: NotificationsPosition;
5
54
  }
6
55
 
7
56
  export default {
@@ -11,7 +60,7 @@ export default {
11
60
  </script>
12
61
 
13
62
  <script setup lang="ts">
14
- import { ref, provide, watch, type PropType } from 'vue'
63
+ import { ref, provide, watch, type PropType, type ExtractPublicPropTypes } from 'vue'
15
64
  import { injectNotificationKey } from '../../composables/keys'
16
65
  import { useColors } from '../../composables/colors'
17
66
  import { useCSS } from '../../composables/css'
@@ -23,52 +72,7 @@ import XSpacer from '../spacer/Spacer'
23
72
 
24
73
  import theme from './Notifications.theme'
25
74
 
26
- export type NotificationAlign = 'left' | 'right'
27
- export type NotificationPosition = 'bottom' | 'top'
28
- export type NotificationAction = {
29
- onClick: () => void;
30
- label: string;
31
- color?: string;
32
- }
33
- export type NotificationEvent = {
34
- id?: number;
35
- icon?: string;
36
- action?: NotificationAction;
37
- iconColor?: string;
38
- title?: string;
39
- style?: string;
40
- message?: string;
41
- timeout?: number;
42
- removable?: boolean;
43
- align?: NotificationAlign;
44
- position?: NotificationPosition;
45
- }
46
-
47
- const props = defineProps({
48
- ...useColors.props('primary'),
49
- align: {
50
- type: String as PropType<NotificationAlign>,
51
- default: 'right',
52
- validator: (value: string) => validators.align.includes(value),
53
- },
54
- position: {
55
- type: String as PropType<NotificationPosition>,
56
- default: 'bottom',
57
- validator: (value: string) => validators.position.includes(value),
58
- },
59
- timeout: {
60
- type: Number,
61
- default: 3500,
62
- },
63
- removable: {
64
- type: Boolean,
65
- default: true,
66
- },
67
- injectKey: {
68
- type: [Symbol, String],
69
- default: injectNotificationKey,
70
- },
71
- })
75
+ const props = defineProps(notificationsProps)
72
76
 
73
77
  const internalAlign = ref(props.align)
74
78
  const internalPosition = ref(props.position)
@@ -0,0 +1,9 @@
1
+ export { default as XNotifications } from './Notifications.vue'
2
+ export type {
3
+ NotificationsProps,
4
+ NotificationEvent,
5
+ NotificationsAction,
6
+ NotificationsAlign,
7
+ NotificationsPosition,
8
+ } from './Notifications.vue'
9
+ export type { NotificationsTheme } from './Notifications.theme'
@@ -1,15 +1,23 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { PaginationProps } from './Pagination.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'dots'
5
+
6
+ interface InternalTheme extends ThemeComponent<PaginationProps, InternalClasses> {}
7
+ export interface PaginationTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<PaginationProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
- wrapper: ({ props }: ThemeParams) => {
13
+ wrapper: ({ props }) => {
6
14
  if (props.variant === 'simple') return 'flex items-center space-x-2'
7
15
  else if (props.variant === 'dots') return 'flex space-x-6'
8
16
 
9
17
  return 'flex items-center' // quick variant
10
18
  },
11
19
 
12
- dots: ({ props }: ThemeParams) => {
20
+ dots: ({ props }) => {
13
21
  if (props.size === 'xs') return 'h-2 w-2'
14
22
  else if (props.size === 'sm') return 'h-3 w-3'
15
23
  else if (props.size === 'lg') return 'h-4 w-4'
@@ -19,9 +27,11 @@ export default {
19
27
  },
20
28
  },
21
29
 
22
- styles: ({ props, css, colors }: ThemeParams) => {
30
+ styles: ({ props, css, colors }) => {
23
31
  const color = colors.getPalette('primary')
24
32
 
25
33
  return css.get('bg', color[500])
26
34
  },
27
35
  }
36
+
37
+ export default theme
@@ -1,17 +1,38 @@
1
1
  <script lang="ts">
2
- import { useCommon } from '../../composables/common'
2
+ const paginationVariant = ['simple', 'quick', 'dots'] as const
3
+ const paginationProps = {
4
+ ...useCommon.props(),
5
+ links: Boolean,
6
+ totalPages: {
7
+ type: Number,
8
+ default: 1,
9
+ },
10
+ modelValue: {
11
+ type: Number,
12
+ default: 1,
13
+ },
14
+ variant: {
15
+ type: String as PropType<PaginationVariant>,
16
+ default: 'simple',
17
+ },
18
+ }
19
+
20
+ export type PaginationVariant = typeof paginationVariant[number]
21
+ export type PaginationProps = ExtractPublicPropTypes<typeof paginationProps>
3
22
 
4
23
  export default {
5
24
  name: 'XPagination',
6
25
  validators: {
7
26
  ...useCommon.validators(),
27
+ variant: paginationVariant,
8
28
  },
9
29
  }
10
30
  </script>
11
31
 
12
32
  <script setup lang="ts">
13
- import { computed, ref, watch, type PropType } from 'vue'
33
+ import { computed, ref, watch, type PropType, type ExtractPublicPropTypes } from 'vue'
14
34
  import { useTheme } from '../../composables/theme'
35
+ import { useCommon } from '../../composables/common'
15
36
  import { dotsIcon, prevIcon, nextIcon } from '../../common/icons'
16
37
 
17
38
  import XIcon from '../../components/icon/Icon.vue'
@@ -21,22 +42,7 @@ import XPaginationItem from './PaginationItem.vue'
21
42
 
22
43
  import theme from './Pagination.theme'
23
44
 
24
- const props = defineProps({
25
- ...useCommon.props(),
26
- links: Boolean,
27
- totalPages: {
28
- type: Number,
29
- default: 1,
30
- },
31
- modelValue: {
32
- type: Number,
33
- default: 1,
34
- },
35
- variant: {
36
- type: String as PropType<'simple' | 'quick' | 'dots'>,
37
- default: 'simple',
38
- },
39
- })
45
+ const props = defineProps(paginationProps)
40
46
 
41
47
  const emit = defineEmits(['update:modelValue'])
42
48
 
@@ -1,8 +1,16 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { PaginationItemProps } from './PaginationItem.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper'
5
+
6
+ interface InternalTheme extends ThemeComponent<PaginationItemProps, InternalClasses> {}
7
+ export interface PaginationItemTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<PaginationItemProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
- wrapper: ({ props }: ThemeParams) => {
13
+ wrapper: ({ props }) => {
6
14
  if (props.size === 'xs') return '!leading-none !p-1 min-w-[1.375rem]'
7
15
  else if (props.size === 'sm') return '!leading-none !p-2 min-w-[2rem]'
8
16
  else if (props.size === 'lg') return '!leading-none !p-3 min-w-[2.75rem]'
@@ -12,3 +20,5 @@ export default {
12
20
  },
13
21
  },
14
22
  }
23
+
24
+ export default theme
@@ -1,5 +1,15 @@
1
1
  <script lang="ts">
2
- import { useCommon } from '../../composables/common'
2
+ const paginationItemProps = {
3
+ ...useCommon.props(),
4
+ value: {
5
+ type: Number,
6
+ default: 0,
7
+ },
8
+ selected: Boolean,
9
+ links: Boolean,
10
+ }
11
+
12
+ export type PaginationItemProps = ExtractPublicPropTypes<typeof paginationItemProps>
3
13
 
4
14
  export default {
5
15
  name: 'XPaginationItem',
@@ -11,20 +21,14 @@ export default {
11
21
 
12
22
  <script setup lang="ts">
13
23
  import { useTheme } from '../../composables/theme'
24
+ import { useCommon } from '../../composables/common'
14
25
 
15
26
  import XButton from '../button/Button.vue'
16
27
 
17
28
  import theme from './PaginationItem.theme'
29
+ import type { ExtractPublicPropTypes } from 'vue'
18
30
 
19
- const props = defineProps({
20
- ...useCommon.props(),
21
- value: {
22
- type: Number,
23
- default: 0,
24
- },
25
- selected: Boolean,
26
- links: Boolean,
27
- })
31
+ const props = defineProps(paginationItemProps)
28
32
 
29
33
  const emit = defineEmits(['input'])
30
34
 
@@ -0,0 +1,7 @@
1
+ export { default as XPagination } from './Pagination.vue'
2
+ export type { PaginationProps, PaginationVariant } from './Pagination.vue'
3
+ export type { PaginationTheme } from './Pagination.theme'
4
+
5
+ export { default as XPaginationItem } from './PaginationItem.vue'
6
+ export type { PaginationItemProps } from './PaginationItem.vue'
7
+ export type { PaginationItemTheme } from './PaginationItem.theme'
@@ -1,9 +1,19 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { PopoverProps } from './Popover.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'content'
5
+
6
+ interface InternalTheme extends ThemeComponent<PopoverProps, InternalClasses> {}
7
+ export interface PopoverTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<PopoverProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: 'inline-block relative',
6
14
 
7
15
  content: 'max-w-xs',
8
16
  },
9
17
  }
18
+
19
+ export default theme
@@ -1,32 +1,19 @@
1
1
  <script lang="ts">
2
2
  const validators = {
3
- align: ['bottom', 'center', 'left', 'right', 'top'],
4
- position: ['bottom', 'left', 'right', 'top'],
3
+ align: ['bottom', 'center', 'left', 'right', 'top'] as const,
4
+ position: ['bottom', 'left', 'right', 'top'] as const,
5
5
  }
6
6
 
7
- export default {
8
- name: 'XPopover',
9
- validators,
10
- }
11
- </script>
12
-
13
- <script setup lang="ts">
14
- import { computed, ref, useCssModule, watch, type PropType } from 'vue'
15
- import { onClickOutside, useEventListener } from '@vueuse/core'
16
- import { useTheme } from '../../composables/theme'
17
-
18
- import theme from './Popover.theme'
19
-
20
- const props = defineProps({
7
+ const popoverProps = {
21
8
  align: {
22
- type: String as PropType<'bottom' | 'center' | 'left' | 'right' | 'top'>,
9
+ type: String as PropType<PopoverAlign>,
23
10
  default: 'center',
24
- validator: (value: string) => validators.align.includes(value),
11
+ validator: (value: string) => validators.align.includes(value as PopoverAlign),
25
12
  },
26
13
  position: {
27
- type: String as PropType<'bottom' | 'left' | 'right' | 'top'>,
14
+ type: String as PropType<PopoverPosition>,
28
15
  default: 'bottom',
29
- validator: (value: string) => validators.position.includes(value),
16
+ validator: (value: string) => validators.position.includes(value as PopoverPosition),
30
17
  },
31
18
  dismissOnClick: {
32
19
  type: Boolean,
@@ -39,7 +26,26 @@ const props = defineProps({
39
26
  disabled: Boolean,
40
27
  hover: Boolean,
41
28
  block: Boolean,
42
- })
29
+ }
30
+
31
+ export type PopoverAlign = typeof validators.align[number]
32
+ export type PopoverPosition = typeof validators.position[number]
33
+ export type PopoverProps = ExtractPublicPropTypes<typeof popoverProps>
34
+
35
+ export default {
36
+ name: 'XPopover',
37
+ validators,
38
+ }
39
+ </script>
40
+
41
+ <script setup lang="ts">
42
+ import { computed, ref, useCssModule, watch, type PropType, type ExtractPublicPropTypes } from 'vue'
43
+ import { onClickOutside, useEventListener } from '@vueuse/core'
44
+ import { useTheme } from '../../composables/theme'
45
+
46
+ import theme from './Popover.theme'
47
+
48
+ const props = defineProps(popoverProps)
43
49
 
44
50
  const emit = defineEmits(['open', 'close', 'toggle'])
45
51
 
@@ -1,7 +1,17 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { PopoverContainerProps } from './PopoverContainer.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper'
5
+
6
+ interface InternalTheme extends ThemeComponent<PopoverContainerProps, InternalClasses> {}
7
+ export interface PopoverContainerTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<PopoverContainerProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: 'block w-full bg-white dark:bg-gray-700 shadow-lg rounded-md border border-gray-200 dark:border-gray-800',
6
14
  },
7
15
  }
16
+
17
+ export default theme
@@ -1,18 +1,23 @@
1
1
  <script lang="ts">
2
+ const popoverContainerProps = {
3
+ tag: {
4
+ default: 'div',
5
+ type: String,
6
+ },
7
+ }
8
+
9
+ export type PopoverContainerProps = ExtractPublicPropTypes<typeof popoverContainerProps>
10
+
2
11
  export default { name: 'XPopoverContainer' }
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 './PopoverContainer.theme'
9
19
 
10
- const props = defineProps({
11
- tag: {
12
- default: 'div',
13
- type: String,
14
- },
15
- })
20
+ const props = defineProps(popoverContainerProps)
16
21
 
17
22
  const { styles, classes, className } = useTheme('popover-container', theme, props)
18
23
  </script>
@@ -0,0 +1,7 @@
1
+ export { default as XPopover } from './Popover.vue'
2
+ export type { PopoverProps, PopoverAlign, PopoverPosition } from './Popover.vue'
3
+ export type { PopoverTheme } from './Popover.theme'
4
+
5
+ export { default as XPopoverContainer } from './PopoverContainer.vue'
6
+ export type { PopoverContainerProps } from './PopoverContainer.vue'
7
+ export type { PopoverContainerTheme } from './PopoverContainer.theme'
@@ -1,15 +1,23 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { ProgressProps } from './Progress.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'list' | 'item'
5
+
6
+ interface InternalTheme extends ThemeComponent<ProgressProps, InternalClasses> {}
7
+ export interface ProgressTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<ProgressProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
- wrapper: ({ props }: ThemeParams) => `relative rounded bg-gray-100 dark:bg-gray-700 overflow-hidden pointer-events-none ${props.thick ? 'h-1.5' : 'h-1'}`,
13
+ wrapper: ({ props }) => `relative rounded bg-gray-100 dark:bg-gray-700 overflow-hidden pointer-events-none ${props.thick ? 'h-1.5' : 'h-1'}`,
6
14
 
7
15
  list: 'flex flex-col items-end w-full sm:w-[520px] px-4',
8
16
 
9
17
  item: 'w-full flex items-center rounded-md px-4 py-3 bg-gray-800 dark:bg-gray-50 text-white dark:text-gray-900',
10
18
  },
11
19
 
12
- styles: ({ props, colors, css }: ThemeParams) => {
20
+ styles: ({ props, colors, css }) => {
13
21
  const color = colors.getPalette(props.color)
14
22
  const vars = []
15
23
 
@@ -24,3 +32,5 @@ export default {
24
32
  return vars
25
33
  },
26
34
  }
35
+
36
+ export default theme
@@ -1,32 +1,32 @@
1
1
  <script lang="ts">
2
- export default { name: 'XProgress' }
3
- </script>
4
-
5
- <script setup lang="ts">
6
- import { useColors } from '../../composables/colors'
7
- import { useTheme } from '../../composables/theme'
8
-
9
- import theme from './Progress.theme'
10
-
11
- const props = defineProps({
2
+ const progressProps = {
12
3
  ...useColors.props('primary'),
13
4
  percentage: {
14
5
  type: Number,
15
6
  default: 0,
16
7
  validator: (value: number) => value >= 0 && value <= 100,
17
8
  },
18
- // variant: {
19
- // type: String as PropType<'bar' | 'score'>,
20
- // default: 'bar',
21
- // validator: (value: string) => validators.variant.includes(value),
22
- // },
23
9
  gradient: Boolean,
24
10
  animate: {
25
11
  type: Boolean,
26
12
  default: true,
27
13
  },
28
14
  thick: Boolean,
29
- })
15
+ }
16
+
17
+ export type ProgressProps = ExtractPublicPropTypes<typeof progressProps>
18
+
19
+ export default { name: 'XProgress' }
20
+ </script>
21
+
22
+ <script setup lang="ts">
23
+ import type { ExtractPublicPropTypes } from 'vue'
24
+ import { useColors } from '../../composables/colors'
25
+ import { useTheme } from '../../composables/theme'
26
+
27
+ import theme from './Progress.theme'
28
+
29
+ const props = defineProps(progressProps)
30
30
 
31
31
  const { styles, classes, className } = useTheme('progress', theme, props)
32
32
  </script>
@@ -0,0 +1,3 @@
1
+ export { default as XProgress } from './Progress.vue'
2
+ export type { ProgressProps } from './Progress.vue'
3
+ export type { ProgressTheme } from './Progress.theme'