@indielayer/ui 1.0.10 → 1.2.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 +10 -9
  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,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 { RadioProps } from './Radio.vue'
2
4
 
3
- export default {
5
+ type InternalClasses = 'wrapper' | 'circle' | 'circleIcon' | 'label' | 'content'
6
+ type InternalExtraData = { selected: Ref<boolean>; }
7
+
8
+ interface InternalTheme extends ThemeComponent<RadioProps, InternalClasses, InternalExtraData> {}
9
+ export interface RadioTheme extends Omit<InternalTheme, 'classes'> {
10
+ classes?: Partial<ThemeClasses<RadioProps, InternalClasses, InternalExtraData>>;
11
+ }
12
+
13
+ const theme: InternalTheme = {
4
14
  classes: {
5
15
  wrapper: 'inline-block relative cursor-pointer focus:outline-none group',
6
16
 
7
- circle: ({ props }: ThemeParams) => {
17
+ circle: ({ props }) => {
8
18
  let c = 'rounded-full flex justify-center items-center shrink-0 border-2 outline-offset-2 outline-slate-300 dark:outline-slate-500 group-focus:outline-1 group-focus:outline'
9
19
 
10
20
  if (props.size === 'xs' || props.size === 'sm') c += ' h-4 w-4'
@@ -14,7 +24,7 @@ export default {
14
24
  return c
15
25
  },
16
26
 
17
- circleIcon: ({ props, data }: ThemeParams) => {
27
+ circleIcon: ({ props, data }) => {
18
28
  const c = []
19
29
 
20
30
  if (!data.selected) c.push('opacity-0')
@@ -27,7 +37,7 @@ export default {
27
37
  return c
28
38
  },
29
39
 
30
- label: ({ props, data }: ThemeParams) => {
40
+ label: ({ props, data }) => {
31
41
  let c = 'font-medium text-gray-800 dark:text-gray-200 pl-2'
32
42
 
33
43
  if (props.size === 'xs') c += ' text-xs'
@@ -38,7 +48,7 @@ export default {
38
48
  return c
39
49
  },
40
50
 
41
- content: ({ props }: ThemeParams) => {
51
+ content: ({ props }) => {
42
52
  let c = 'pl-2'
43
53
 
44
54
  if (props.size === 'xs') c += ' text-xs'
@@ -50,7 +60,7 @@ export default {
50
60
  },
51
61
  },
52
62
 
53
- styles: ({ props, colors, css, data }: ThemeParams) => {
63
+ styles: ({ props, colors, css, data }) => {
54
64
  const gray = colors.getPalette('gray')
55
65
  const color = colors.getPalette(props.color)
56
66
  const vars = []
@@ -119,3 +129,5 @@ export default {
119
129
  return vars
120
130
  },
121
131
  }
132
+
133
+ export default theme
@@ -1,9 +1,27 @@
1
1
  <script lang="ts">
2
- export default { name: 'XRadio' }
2
+ const radioProps = {
3
+ ...useCommon.props(),
4
+ ...useColors.props('primary'),
5
+ ...useInteractive.props(),
6
+ ...useInputtable.props(),
7
+ value: [String, Number, Boolean, Function, Object, Array],
8
+ label: String,
9
+ helper: String,
10
+ glow: Boolean,
11
+ }
12
+
13
+ export type RadioProps = ExtractPublicPropTypes<typeof radioProps>
14
+
15
+ export default {
16
+ name: 'XRadio',
17
+ validators: {
18
+ ...useCommon.validators(),
19
+ },
20
+ }
3
21
  </script>
4
22
 
5
23
  <script setup lang="ts">
6
- import { computed, ref } from 'vue'
24
+ import { computed, ref, type ExtractPublicPropTypes } from 'vue'
7
25
  import { useCommon } from '../../composables/common'
8
26
  import { useTheme } from '../../composables/theme'
9
27
  import { useColors } from '../../composables/colors'
@@ -15,16 +33,7 @@ import XInputError from '../helpers/InputError'
15
33
 
16
34
  import theme from './Radio.theme'
17
35
 
18
- const props = defineProps({
19
- ...useCommon.props(),
20
- ...useColors.props('primary'),
21
- ...useInteractive.props(),
22
- ...useInputtable.props(),
23
- value: [String, Number, Boolean, Function, Object, Array],
24
- label: String,
25
- helper: String,
26
- glow: Boolean,
27
- })
36
+ const props = defineProps(radioProps)
28
37
 
29
38
  const emit = defineEmits(useInputtable.emits(false))
30
39
 
@@ -0,0 +1,3 @@
1
+ export { default as XRadio } from './Radio.vue'
2
+ export type { RadioProps } from './Radio.vue'
3
+ export type { RadioTheme } from './Radio.theme'
@@ -1,7 +1,17 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { ScrollProps } from './Scroll.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper'
5
+
6
+ interface InternalTheme extends ThemeComponent<ScrollProps, InternalClasses> {}
7
+ export interface ScrollTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<ScrollProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: '',
6
14
  },
7
15
  }
16
+
17
+ export default theme
@@ -1,23 +1,27 @@
1
1
  <script lang="ts">
2
+ const scrollProps = {
3
+ shadow: Boolean,
4
+ horizontal: Boolean,
5
+ mousewheel: Boolean,
6
+ scrollbar: {
7
+ type: Boolean,
8
+ default: true,
9
+ },
10
+ }
11
+
12
+ export type ScrollProps = ExtractPublicPropTypes<typeof scrollProps>
13
+
2
14
  export default { name: 'XScroll' }
3
15
  </script>
4
16
 
5
17
  <script setup lang="ts">
6
- import { ref, toRefs } from 'vue'
18
+ import { ref, toRefs, type ExtractPublicPropTypes } from 'vue'
7
19
  import { useScroll, useResizeObserver, useEventListener } from '@vueuse/core'
8
20
  import { useTheme } from '../../composables/theme'
9
21
 
10
22
  import theme from './Scroll.theme'
11
23
 
12
- const props = defineProps({
13
- shadow: Boolean,
14
- horizontal: Boolean,
15
- mousewheel: Boolean,
16
- scrollbar: {
17
- type: Boolean,
18
- default: true,
19
- },
20
- })
24
+ const props = defineProps(scrollProps)
21
25
 
22
26
  const scrollEl = ref<HTMLElement | null>(null)
23
27
 
@@ -0,0 +1,3 @@
1
+ export { default as XScroll } from './Scroll.vue'
2
+ export type { ScrollProps } from './Scroll.vue'
3
+ export type { ScrollTheme } from './Scroll.theme'
@@ -1,10 +1,22 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { Ref } from 'vue'
2
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
3
+ import type { SelectProps } from './Select.vue'
2
4
 
3
- export default {
5
+ type InternalClasses = 'wrapper' | 'label' | 'box' | 'content' | 'iconWrapper' | 'icon'
6
+ type InternalExtraData = {
7
+ errorInternal: Ref<boolean>;
8
+ }
9
+
10
+ interface InternalTheme extends ThemeComponent<SelectProps, InternalClasses, InternalExtraData> {}
11
+ export interface SelectTheme extends Omit<InternalTheme, 'classes'> {
12
+ classes?: Partial<ThemeClasses<SelectProps, InternalClasses, InternalExtraData>>;
13
+ }
14
+
15
+ const theme: InternalTheme = {
4
16
  classes: {
5
17
  wrapper: 'inline-block align-bottom text-left focus:outline-none',
6
18
 
7
- label: ({ props }: ThemeParams) => {
19
+ label: ({ props }) => {
8
20
  let c = 'font-medium text-gray-800 dark:text-gray-200 mb-1'
9
21
 
10
22
  if (props.size === 'xs') c += ' text-xs'
@@ -15,7 +27,7 @@ export default {
15
27
  return c
16
28
  },
17
29
 
18
- box: ({ props, data }: ThemeParams) => {
30
+ box: ({ props, data }) => {
19
31
  let c = 'w-full border border-gray-300 dark:border-gray-700 pr-8 outline-transparent outline outline-2 outline-offset-[-1px] transition-all duration-150 ease-in-out rounded-md shadow-sm'
20
32
 
21
33
  if (!data.errorInternal && !props.disabled) c += ' hover:border-gray-400 dark:hover:border-gray-500'
@@ -37,7 +49,7 @@ export default {
37
49
 
38
50
  iconWrapper: 'pointer-events-none absolute inset-y-0 right-0 flex items-center px-2',
39
51
 
40
- icon: ({ props }: ThemeParams) => {
52
+ icon: ({ props }) => {
41
53
  if (props.size === 'sm' || props.size === 'xs') return 'h-3 w-3'
42
54
  else if (props.size === 'lg') return 'h-6 w-6'
43
55
  else if (props.size === 'xl') return 'h-7 w-7'
@@ -46,9 +58,11 @@ export default {
46
58
  },
47
59
  },
48
60
 
49
- styles: ({ props, colors, css }: ThemeParams) => {
61
+ styles: ({ props, colors, css }) => {
50
62
  const color = colors.getPalette('primary')
51
63
 
52
64
  return css.get('border', color[500])
53
65
  },
54
66
  }
67
+
68
+ export default theme
@@ -1,9 +1,34 @@
1
1
  <script lang="ts">
2
- export default { name: 'XSelect' }
2
+ const selectProps = {
3
+ ...useCommon.props(),
4
+ ...useInteractive.props(),
5
+ ...useInputtable.props(),
6
+ placeholder: String,
7
+ options: Array as PropType<SelectOption[]>,
8
+ multiple: Boolean,
9
+ label: String,
10
+ helper: String,
11
+ flat: Boolean,
12
+ }
13
+
14
+ export type SelectOption = {
15
+ value: number | string;
16
+ disabled: boolean;
17
+ label: string;
18
+ }
19
+
20
+ export type SelectProps = ExtractPublicPropTypes<typeof selectProps>
21
+
22
+ export default {
23
+ name: 'XSelect',
24
+ validators: {
25
+ ...useCommon.validators(),
26
+ },
27
+ }
3
28
  </script>
4
29
 
5
30
  <script setup lang="ts">
6
- import { computed, ref, watch, type PropType } from 'vue'
31
+ import { computed, ref, watch, type PropType, type ExtractPublicPropTypes } from 'vue'
7
32
  import { useEventListener } from '@vueuse/core'
8
33
  import { useCommon } from '../../composables/common'
9
34
  import { useInputtable } from '../../composables/inputtable'
@@ -21,23 +46,7 @@ import XInputError from '../helpers/InputError'
21
46
 
22
47
  import theme from './Select.theme'
23
48
 
24
- export type SelectOption = {
25
- value: number | string;
26
- disabled: boolean;
27
- label: string;
28
- }
29
-
30
- const props = defineProps({
31
- ...useCommon.props(),
32
- ...useInteractive.props(),
33
- ...useInputtable.props(),
34
- placeholder: String,
35
- options: Array as PropType<Array<SelectOption>>,
36
- multiple: Boolean,
37
- label: String,
38
- helper: String,
39
- flat: Boolean,
40
- })
49
+ const props = defineProps(selectProps)
41
50
 
42
51
  const emit = defineEmits(useInputtable.emits())
43
52
 
@@ -0,0 +1,3 @@
1
+ export { default as XSelect } from './Select.vue'
2
+ export type { SelectProps, SelectOption } from './Select.vue'
3
+ export type { SelectTheme } from './Select.theme'
@@ -1,7 +1,17 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { SkeletonProps } from './Skeleton.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper'
5
+
6
+ interface InternalTheme extends ThemeComponent<SkeletonProps, InternalClasses> {}
7
+ export interface SkeletonTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<SkeletonProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: 'animate-pulse bg-gray-300 dark:bg-gray-600 rounded-md',
6
14
  },
7
15
  }
16
+
17
+ export default theme
@@ -1,18 +1,23 @@
1
1
  <script lang="ts">
2
+ const skeletonProps = {
3
+ tag: {
4
+ type: String,
5
+ default: 'div',
6
+ },
7
+ }
8
+
9
+ export type SkeletonProps = ExtractPublicPropTypes<typeof skeletonProps>
10
+
2
11
  export default { name: 'XSkeleton' }
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 './Skeleton.theme'
9
19
 
10
- const props = defineProps({
11
- tag: {
12
- type: String,
13
- default: 'div',
14
- },
15
- })
20
+ const props = defineProps(skeletonProps)
16
21
 
17
22
  const { styles, classes, className } = useTheme('skeleton', theme, props)
18
23
  </script>
@@ -0,0 +1,3 @@
1
+ export { default as XSkeleton } from './Skeleton.vue'
2
+ export type { SkeletonProps } from './Skeleton.vue'
3
+ export type { SkeletonTheme } from './Skeleton.theme'
@@ -1,10 +1,18 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { SliderProps } from './Slider.vue'
2
3
 
3
- export default {
4
+ type InternalClasses = 'wrapper' | 'label' | 'drag'
5
+
6
+ interface InternalTheme extends ThemeComponent<SliderProps, InternalClasses> {}
7
+ export interface SliderTheme extends Omit<InternalTheme, 'classes'> {
8
+ classes?: Partial<ThemeClasses<SliderProps, InternalClasses>>;
9
+ }
10
+
11
+ const theme: InternalTheme = {
4
12
  classes: {
5
13
  wrapper: 'inline-block align-bottom text-left focus:outline-none',
6
14
 
7
- label: ({ props }: ThemeParams) => {
15
+ label: ({ props }) => {
8
16
  let c = 'font-medium text-gray-800 dark:text-gray-200 mb-1'
9
17
 
10
18
  if (props.size === 'xs') c += ' text-xs'
@@ -18,7 +26,7 @@ export default {
18
26
  drag: 'w-[20px] h-[20px] -mt-[13px] -ml-[10px] rounded-full bg-white border shadow-sm',
19
27
  },
20
28
 
21
- styles: ({ props, colors, css }: ThemeParams) => {
29
+ styles: ({ props, colors, css }) => {
22
30
  const primary = colors.getPalette('primary')
23
31
  const color = colors.getPalette(props.color)
24
32
 
@@ -28,3 +36,5 @@ export default {
28
36
  })
29
37
  },
30
38
  }
39
+
40
+ export default theme
@@ -1,9 +1,30 @@
1
1
  <script lang="ts">
2
- export default { name: 'XSlider' }
2
+ const sliderProps = {
3
+ ...useCommon.props(),
4
+ ...useColors.props('primary'),
5
+ ...useInteractive.props(),
6
+ ...useInputtable.props(),
7
+ label: String,
8
+ min: Number,
9
+ max: Number,
10
+ step: {
11
+ type: Number,
12
+ default: 1,
13
+ },
14
+ gradient: Boolean,
15
+ }
16
+
17
+ export type SliderProps = ExtractPublicPropTypes<typeof sliderProps>
18
+ export default {
19
+ name: 'XSlider',
20
+ validators: {
21
+ ...useCommon.validators(),
22
+ },
23
+ }
3
24
  </script>
4
25
 
5
26
  <script setup lang="ts">
6
- import { computed, ref, watch } from 'vue'
27
+ import { computed, ref, watch, type ExtractPublicPropTypes } from 'vue'
7
28
  import { useEventListener } from '@vueuse/core'
8
29
  import { useCommon } from '../../composables/common'
9
30
  import { useColors } from '../../composables/colors'
@@ -15,20 +36,7 @@ import XProgress from '../../components/progress/Progress.vue'
15
36
 
16
37
  import theme from './Slider.theme'
17
38
 
18
- const props = defineProps({
19
- ...useCommon.props(),
20
- ...useColors.props('primary'),
21
- ...useInteractive.props(),
22
- ...useInputtable.props(),
23
- label: String,
24
- min: Number,
25
- max: Number,
26
- step: {
27
- type: Number,
28
- default: 1,
29
- },
30
- gradient: Boolean,
31
- })
39
+ const props = defineProps(sliderProps)
32
40
 
33
41
  const emit = defineEmits(useInputtable.emits(false))
34
42
 
@@ -0,0 +1,2 @@
1
+ export { default as XSlider } from './Slider.vue'
2
+ export type { SliderProps } from './Slider.vue'
@@ -0,0 +1 @@
1
+ export { default as XSpacer } from './Spacer'
@@ -1,19 +1,29 @@
1
1
  <script lang="ts">
2
- export default { name: 'XSpinner' }
2
+ const spinnerProps = {
3
+ ...useCommon.props(),
4
+ icon: {
5
+ type: String,
6
+ default: '<g fill="none" fill-rule="evenodd"><g transform="translate(1 1)" stroke-width="2"><circle stroke-opacity=".5" cx="18" cy="18" r="18"/><path d="M36 18c0-9.94-8.06-18-18-18"><animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="0.5s" repeatCount="indefinite"/></path></g></g>',
7
+ },
8
+ }
9
+
10
+ export type SpinnerProps = ExtractPublicPropTypes<typeof spinnerProps>
11
+
12
+ export default {
13
+ name: 'XSpinner',
14
+ validators: {
15
+ ...useCommon.validators(),
16
+ },
17
+ }
3
18
  </script>
4
19
 
5
20
  <script setup lang="ts">
21
+ import type { ExtractPublicPropTypes } from 'vue'
6
22
  import { useCommon } from '../../composables/common'
7
23
 
8
24
  import XIcon from '../../components/icon/Icon.vue'
9
25
 
10
- const props = defineProps({
11
- ...useCommon.props(),
12
- icon: {
13
- type: String,
14
- default: '<g fill="none" fill-rule="evenodd"><g transform="translate(1 1)" stroke-width="2"><circle stroke-opacity=".5" cx="18" cy="18" r="18"/><path d="M36 18c0-9.94-8.06-18-18-18"><animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="0.5s" repeatCount="indefinite"/></path></g></g>',
15
- },
16
- })
26
+ defineProps(spinnerProps)
17
27
  </script>
18
28
 
19
29
  <template>
@@ -0,0 +1,2 @@
1
+ export { default as XSpinner } from './Spinner.vue'
2
+ export type { SpinnerProps } from './Spinner.vue'
@@ -1,8 +1,18 @@
1
- import type { ThemeParams } from '../../composables/theme'
1
+ import type { ThemeClasses, ThemeComponent } from '../../composables/theme'
2
+ import type { TabProps } from './Tab.vue'
3
+ import type { TabGroupInjection } from './TabGroup.vue'
2
4
 
3
- export default {
5
+ type InternalClasses = 'wrapper' | 'label' | 'icon'
6
+ type InternalExtraData = Pick<TabGroupInjection, 'state'>['state']
7
+
8
+ interface InternalTheme extends ThemeComponent<TabProps, InternalClasses, InternalExtraData> {}
9
+ export interface TabTheme extends Omit<InternalTheme, 'classes'> {
10
+ classes?: Partial<ThemeClasses<TabProps, InternalClasses, InternalExtraData>>;
11
+ }
12
+
13
+ const theme: InternalTheme = {
4
14
  classes: {
5
- wrapper: ({ props, data }: ThemeParams) => {
15
+ wrapper: ({ props, data }) => {
6
16
  const c = ['py-2 transition-colors duration-150 ease-in-out whitespace-nowrap text-center']
7
17
 
8
18
  if (data.variant === 'block') c.push('px-8')
@@ -20,3 +30,5 @@ export default {
20
30
  icon: 'mr-1.5',
21
31
  },
22
32
  }
33
+
34
+ export default theme