@indielayer/ui 0.2.3 → 1.0.0-alpha.2

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 (396) hide show
  1. package/README.md +28 -12
  2. package/env.d.ts +1 -0
  3. package/lib/components/alert/Alert.vue.d.ts +42 -0
  4. package/lib/components/avatar/Avatar.vue.d.ts +49 -0
  5. package/lib/components/badge/Badge.vue.d.ts +70 -0
  6. package/lib/components/breadcrumbs/Breadcrumbs.vue.d.ts +30 -0
  7. package/lib/components/button/Button.vue.d.ts +87 -0
  8. package/lib/components/button/ButtonGroup.vue.d.ts +49 -0
  9. package/lib/components/card/Card.vue.d.ts +17 -0
  10. package/lib/components/checkbox/Checkbox.vue.d.ts +81 -0
  11. package/lib/components/collapse/Collapse.vue.d.ts +47 -0
  12. package/lib/components/container/Container.vue.d.ts +14 -0
  13. package/lib/components/divider/Divider.vue.d.ts +10 -0
  14. package/lib/components/drawer/Drawer.vue.d.ts +73 -0
  15. package/lib/components/form/Form.vue.d.ts +46 -0
  16. package/lib/components/icon/Icon.vue.d.ts +36 -0
  17. package/lib/components/image/Image.vue.d.ts +8 -0
  18. package/lib/components/index.d.ts +45 -0
  19. package/lib/components/input/Input.vue.d.ts +114 -0
  20. package/lib/components/link/Link.vue.d.ts +36 -0
  21. package/lib/components/menu/Menu.vue.d.ts +50 -0
  22. package/lib/components/menu/MenuItem.vue.d.ts +102 -0
  23. package/lib/components/modal/Modal.vue.d.ts +34 -0
  24. package/lib/components/notifications/Notifications.vue.d.ts +104 -0
  25. package/lib/components/pagination/Pagination.vue.d.ts +58 -0
  26. package/lib/components/pagination/PaginationItem.vue.d.ts +32 -0
  27. package/lib/components/popover/Popover.vue.d.ts +64 -0
  28. package/lib/components/popover/PopoverContainer.vue.d.ts +14 -0
  29. package/lib/components/progress/Progress.vue.d.ts +42 -0
  30. package/lib/components/radio/Radio.vue.d.ts +79 -0
  31. package/lib/components/scroll/Scroll.vue.d.ts +29 -0
  32. package/lib/components/select/Select.vue.d.ts +100 -0
  33. package/lib/components/skeleton/Skeleton.vue.d.ts +14 -0
  34. package/lib/components/slider/Slider.vue.d.ts +96 -0
  35. package/lib/components/spacer/Spacer.vue.d.ts +2 -0
  36. package/lib/components/spinner/Spinner.vue.d.ts +16 -0
  37. package/lib/components/tab/Tab.vue.d.ts +47 -0
  38. package/lib/components/tab/TabGroup.vue.d.ts +41 -0
  39. package/lib/components/table/Table.vue.d.ts +81 -0
  40. package/lib/components/table/TableBody.vue.d.ts +2 -0
  41. package/lib/components/table/TableCell.vue.d.ts +33 -0
  42. package/lib/components/table/TableHead.vue.d.ts +2 -0
  43. package/lib/components/table/TableHeader.vue.d.ts +33 -0
  44. package/lib/components/table/TableRow.vue.d.ts +23 -0
  45. package/lib/components/tag/Tag.vue.d.ts +45 -0
  46. package/lib/components/textarea/Textarea.vue.d.ts +101 -0
  47. package/lib/components/toggle/Toggle.vue.d.ts +79 -0
  48. package/lib/components/tooltip/Tooltip.vue.d.ts +2 -0
  49. package/lib/composables/colors-utils.d.ts +8 -0
  50. package/lib/composables/colors.d.ts +26 -0
  51. package/lib/composables/common.d.ts +14 -0
  52. package/lib/composables/css.d.ts +5 -0
  53. package/lib/composables/index.d.ts +7 -0
  54. package/lib/composables/inputtable.d.ts +37 -0
  55. package/lib/composables/interactive.d.ts +10 -0
  56. package/lib/composables/keys.d.ts +7 -0
  57. package/lib/composables/notification.d.ts +1 -0
  58. package/lib/create.d.ts +11 -0
  59. package/lib/index.cjs.js +15 -0
  60. package/lib/index.d.ts +6 -0
  61. package/lib/index.es.js +6164 -0
  62. package/lib/install.d.ts +4 -0
  63. package/lib/nuxt.js +32 -0
  64. package/lib/nuxt.plugin.js +8 -0
  65. package/lib/style.css +1 -0
  66. package/lib/tailwind.preset.js +43 -14
  67. package/lib/version.d.ts +2 -0
  68. package/package.json +48 -28
  69. package/src/components/alert/Alert.vue +164 -0
  70. package/src/components/avatar/Avatar.vue +114 -97
  71. package/src/components/badge/Badge.vue +107 -0
  72. package/src/components/breadcrumbs/Breadcrumbs.vue +60 -0
  73. package/src/components/button/Button.vue +405 -128
  74. package/src/components/button/ButtonGroup.vue +73 -0
  75. package/src/components/card/Card.vue +16 -21
  76. package/src/components/checkbox/Checkbox.vue +162 -85
  77. package/src/components/collapse/Collapse.vue +152 -89
  78. package/src/components/container/Container.vue +13 -11
  79. package/src/components/divider/Divider.vue +15 -19
  80. package/src/components/drawer/Drawer.vue +244 -0
  81. package/src/components/form/Form.vue +32 -22
  82. package/src/components/icon/Icon.vue +43 -33
  83. package/src/components/image/Image.vue +26 -20
  84. package/src/components/index.ts +45 -0
  85. package/src/components/input/Input.vue +149 -146
  86. package/src/components/link/Link.vue +73 -52
  87. package/src/components/menu/Menu.vue +118 -0
  88. package/src/components/menu/MenuItem.vue +277 -0
  89. package/src/components/modal/Modal.vue +157 -93
  90. package/src/components/notifications/Notifications.vue +318 -0
  91. package/src/components/pagination/Pagination.vue +157 -50
  92. package/src/components/pagination/PaginationItem.vue +49 -26
  93. package/src/components/popover/Popover.vue +167 -146
  94. package/src/components/popover/PopoverContainer.vue +13 -18
  95. package/src/components/progress/Progress.vue +68 -102
  96. package/src/components/radio/Radio.vue +161 -92
  97. package/src/components/scroll/Scroll.vue +143 -0
  98. package/src/components/select/Select.vue +362 -109
  99. package/src/components/skeleton/Skeleton.vue +13 -11
  100. package/src/components/slider/Slider.vue +240 -0
  101. package/src/components/spacer/Spacer.vue +8 -0
  102. package/src/components/spinner/Spinner.vue +28 -28
  103. package/src/components/tab/Tab.vue +100 -0
  104. package/src/components/tab/TabGroup.vue +151 -0
  105. package/src/components/table/Table.vue +101 -86
  106. package/src/components/table/TableBody.vue +8 -6
  107. package/src/components/table/TableCell.vue +43 -55
  108. package/src/components/table/TableHead.vue +9 -7
  109. package/src/components/table/TableHeader.vue +39 -54
  110. package/src/components/table/TableRow.vue +26 -34
  111. package/src/components/tag/Tag.vue +67 -62
  112. package/src/components/textarea/Textarea.vue +116 -126
  113. package/src/components/toggle/Toggle.vue +117 -101
  114. package/src/components/tooltip/Tooltip.vue +18 -14
  115. package/src/composables/colors-utils.ts +378 -0
  116. package/src/composables/colors.ts +82 -0
  117. package/src/composables/common.ts +20 -0
  118. package/src/composables/css.ts +45 -0
  119. package/src/composables/index.ts +7 -0
  120. package/src/composables/{inputtable.js → inputtable.ts} +45 -74
  121. package/src/composables/interactive.ts +16 -0
  122. package/src/composables/keys.ts +8 -0
  123. package/src/composables/notification.ts +10 -0
  124. package/src/create.ts +36 -0
  125. package/src/exports/nuxt.js +32 -0
  126. package/src/exports/nuxt.plugin.js +8 -0
  127. package/src/exports/tailwind.preset.js +55 -0
  128. package/src/index.ts +8 -0
  129. package/src/install.ts +8 -0
  130. package/src/shims-vue.d.ts +6 -0
  131. package/src/version.ts +1 -0
  132. package/volar.d.ts +52 -0
  133. package/lib/cjs/components/avatar/Avatar.vue.js +0 -9
  134. package/lib/cjs/components/avatar/Avatar.vue_vue_type_script_lang.js +0 -86
  135. package/lib/cjs/components/avatar/Avatar.vue_vue_type_template_id_2549fb8f_lang.js +0 -50
  136. package/lib/cjs/components/button/Button.vue.js +0 -9
  137. package/lib/cjs/components/button/Button.vue_vue_type_script_lang.js +0 -82
  138. package/lib/cjs/components/button/Button.vue_vue_type_template_id_5975756f_lang.js +0 -100
  139. package/lib/cjs/components/card/Card.vue.js +0 -9
  140. package/lib/cjs/components/card/Card.vue_vue_type_script_lang.js +0 -18
  141. package/lib/cjs/components/card/Card.vue_vue_type_template_id_7be81122_lang.js +0 -22
  142. package/lib/cjs/components/checkbox/Checkbox.vue.js +0 -9
  143. package/lib/cjs/components/checkbox/Checkbox.vue_vue_type_script_lang.js +0 -58
  144. package/lib/cjs/components/checkbox/Checkbox.vue_vue_type_template_id_fa43bd62_lang.js +0 -102
  145. package/lib/cjs/components/collapse/Collapse.vue.js +0 -9
  146. package/lib/cjs/components/collapse/Collapse.vue_vue_type_script_lang.js +0 -66
  147. package/lib/cjs/components/collapse/Collapse.vue_vue_type_template_id_06a1c88f_lang.js +0 -64
  148. package/lib/cjs/components/colors.vue.js +0 -12
  149. package/lib/cjs/components/colors.vue_vue_type_template_id_79d16100_lang.js +0 -406
  150. package/lib/cjs/components/container/Container.vue.js +0 -9
  151. package/lib/cjs/components/container/Container.vue_vue_type_script_lang.js +0 -14
  152. package/lib/cjs/components/container/Container.vue_vue_type_template_id_05f5acf3_lang.js +0 -16
  153. package/lib/cjs/components/divider/Divider.vue.js +0 -9
  154. package/lib/cjs/components/divider/Divider.vue_vue_type_script_lang.js +0 -18
  155. package/lib/cjs/components/divider/Divider.vue_vue_type_template_id_3a349aa3_lang.js +0 -49
  156. package/lib/cjs/components/form/Form.vue.js +0 -9
  157. package/lib/cjs/components/form/Form.vue_vue_type_script_lang.js +0 -95
  158. package/lib/cjs/components/form/Form.vue_vue_type_template_id_a6cab022_lang.js +0 -20
  159. package/lib/cjs/components/icon/Icon.vue.js +0 -9
  160. package/lib/cjs/components/icon/Icon.vue_vue_type_script_lang.js +0 -26
  161. package/lib/cjs/components/icon/Icon.vue_vue_type_template_id_0933a10f_lang.js +0 -32
  162. package/lib/cjs/components/image/Image.vue.js +0 -9
  163. package/lib/cjs/components/image/Image.vue_vue_type_script_lang.js +0 -28
  164. package/lib/cjs/components/image/Image.vue_vue_type_template_id_f1ec3bb2_lang.js +0 -13
  165. package/lib/cjs/components/index.js +0 -87
  166. package/lib/cjs/components/input/Input.vue.js +0 -9
  167. package/lib/cjs/components/input/Input.vue_vue_type_script_lang.js +0 -101
  168. package/lib/cjs/components/input/Input.vue_vue_type_template_id_21c870c5_lang.js +0 -126
  169. package/lib/cjs/components/link/Link.vue.js +0 -9
  170. package/lib/cjs/components/link/Link.vue_vue_type_script_lang.js +0 -47
  171. package/lib/cjs/components/link/Link.vue_vue_type_template_id_044f59af_lang.js +0 -59
  172. package/lib/cjs/components/modal/Modal.vue.js +0 -9
  173. package/lib/cjs/components/modal/Modal.vue_vue_type_script_lang.js +0 -55
  174. package/lib/cjs/components/modal/Modal.vue_vue_type_template_id_177f8d4b_lang.js +0 -81
  175. package/lib/cjs/components/note/Note.vue.js +0 -9
  176. package/lib/cjs/components/note/Note.vue_vue_type_script_lang.js +0 -24
  177. package/lib/cjs/components/note/Note.vue_vue_type_template_id_2b99d6a2_lang.js +0 -100
  178. package/lib/cjs/components/pagination/Pagination.vue.js +0 -9
  179. package/lib/cjs/components/pagination/Pagination.vue_vue_type_script_lang.js +0 -43
  180. package/lib/cjs/components/pagination/Pagination.vue_vue_type_template_id_084845ef_lang.js +0 -54
  181. package/lib/cjs/components/pagination/PaginationItem.vue.js +0 -9
  182. package/lib/cjs/components/pagination/PaginationItem.vue_vue_type_script_lang.js +0 -24
  183. package/lib/cjs/components/pagination/PaginationItem.vue_vue_type_template_id_241a3fbc_lang.js +0 -27
  184. package/lib/cjs/components/popover/Popover.vue.js +0 -10
  185. package/lib/cjs/components/popover/Popover.vue_vue_type_script_lang.js +0 -72
  186. package/lib/cjs/components/popover/Popover.vue_vue_type_style_index_0_id_da70cc8a_lang.css.js +0 -8
  187. package/lib/cjs/components/popover/Popover.vue_vue_type_template_id_da70cc8a_lang.js +0 -63
  188. package/lib/cjs/components/popover/PopoverContainer.vue.js +0 -9
  189. package/lib/cjs/components/popover/PopoverContainer.vue_vue_type_script_lang.js +0 -21
  190. package/lib/cjs/components/popover/PopoverContainer.vue_vue_type_template_id_798f1294_lang.js +0 -16
  191. package/lib/cjs/components/popover/PopoverItem.vue.js +0 -9
  192. package/lib/cjs/components/popover/PopoverItem.vue_vue_type_script_lang.js +0 -34
  193. package/lib/cjs/components/popover/PopoverItem.vue_vue_type_template_id_84692424_lang.js +0 -50
  194. package/lib/cjs/components/progress/Progress.vue.js +0 -9
  195. package/lib/cjs/components/progress/Progress.vue_vue_type_script_lang.js +0 -62
  196. package/lib/cjs/components/progress/Progress.vue_vue_type_template_id_9ab7cee2_lang.js +0 -77
  197. package/lib/cjs/components/radio/Radio.vue.js +0 -9
  198. package/lib/cjs/components/radio/Radio.vue_vue_type_script_lang.js +0 -61
  199. package/lib/cjs/components/radio/Radio.vue_vue_type_template_id_808cc132_lang.js +0 -120
  200. package/lib/cjs/components/select/Select.vue.js +0 -9
  201. package/lib/cjs/components/select/Select.vue_vue_type_script_lang.js +0 -62
  202. package/lib/cjs/components/select/Select.vue_vue_type_template_id_18b7de2f_lang.js +0 -122
  203. package/lib/cjs/components/skeleton/Skeleton.vue.js +0 -9
  204. package/lib/cjs/components/skeleton/Skeleton.vue_vue_type_script_lang.js +0 -14
  205. package/lib/cjs/components/skeleton/Skeleton.vue_vue_type_template_id_6ac606e2_lang.js +0 -18
  206. package/lib/cjs/components/spacer/Spacer.vue.js +0 -12
  207. package/lib/cjs/components/spacer/Spacer.vue_vue_type_template_id_793ae82f_lang.js +0 -13
  208. package/lib/cjs/components/spinner/Spinner.vue.js +0 -9
  209. package/lib/cjs/components/spinner/Spinner.vue_vue_type_script_lang.js +0 -14
  210. package/lib/cjs/components/spinner/Spinner.vue_vue_type_template_id_714bd8a3_lang.js +0 -29
  211. package/lib/cjs/components/status/StatusDot.vue.js +0 -9
  212. package/lib/cjs/components/status/StatusDot.vue_vue_type_script_lang.js +0 -24
  213. package/lib/cjs/components/status/StatusDot.vue_vue_type_template_id_367d150a_lang.js +0 -25
  214. package/lib/cjs/components/table/Table.vue.js +0 -9
  215. package/lib/cjs/components/table/Table.vue_vue_type_script_lang.js +0 -117
  216. package/lib/cjs/components/table/Table.vue_vue_type_template_id_c0433c66_lang.js +0 -88
  217. package/lib/cjs/components/table/TableBody.vue.js +0 -9
  218. package/lib/cjs/components/table/TableBody.vue_vue_type_script_lang.js +0 -7
  219. package/lib/cjs/components/table/TableBody.vue_vue_type_template_id_7288bc0f_lang.js +0 -13
  220. package/lib/cjs/components/table/TableCell.vue.js +0 -9
  221. package/lib/cjs/components/table/TableCell.vue_vue_type_script_lang.js +0 -63
  222. package/lib/cjs/components/table/TableCell.vue_vue_type_template_id_5349a862_lang.js +0 -35
  223. package/lib/cjs/components/table/TableHead.vue.js +0 -9
  224. package/lib/cjs/components/table/TableHead.vue_vue_type_script_lang.js +0 -7
  225. package/lib/cjs/components/table/TableHead.vue_vue_type_template_id_6ae9fd66_lang.js +0 -18
  226. package/lib/cjs/components/table/TableHeader.vue.js +0 -9
  227. package/lib/cjs/components/table/TableHeader.vue_vue_type_script_lang.js +0 -48
  228. package/lib/cjs/components/table/TableHeader.vue_vue_type_template_id_9d5bd38c_lang.js +0 -78
  229. package/lib/cjs/components/table/TableRow.vue.js +0 -9
  230. package/lib/cjs/components/table/TableRow.vue_vue_type_script_lang.js +0 -33
  231. package/lib/cjs/components/table/TableRow.vue_vue_type_template_id_7c4a8ffd_lang.js +0 -26
  232. package/lib/cjs/components/tabs/Tab.vue.js +0 -9
  233. package/lib/cjs/components/tabs/Tab.vue_vue_type_script_lang.js +0 -62
  234. package/lib/cjs/components/tabs/Tab.vue_vue_type_template_id_3cfc6374_lang.js +0 -29
  235. package/lib/cjs/components/tabs/Tabs.vue.js +0 -9
  236. package/lib/cjs/components/tabs/Tabs.vue_vue_type_script_lang.js +0 -37
  237. package/lib/cjs/components/tabs/Tabs.vue_vue_type_template_id_663bac2f_lang.js +0 -16
  238. package/lib/cjs/components/tag/Tag.vue.js +0 -9
  239. package/lib/cjs/components/tag/Tag.vue_vue_type_script_lang.js +0 -39
  240. package/lib/cjs/components/tag/Tag.vue_vue_type_template_id_0aa571b6_lang.js +0 -77
  241. package/lib/cjs/components/textarea/Textarea.vue.js +0 -9
  242. package/lib/cjs/components/textarea/Textarea.vue_vue_type_script_lang.js +0 -113
  243. package/lib/cjs/components/textarea/Textarea.vue_vue_type_template_id_03d2272f_lang.js +0 -70
  244. package/lib/cjs/components/toast/Toast.vue.js +0 -9
  245. package/lib/cjs/components/toast/Toast.vue_vue_type_script_lang.js +0 -87
  246. package/lib/cjs/components/toast/Toast.vue_vue_type_template_id_fe243282_lang.js +0 -64
  247. package/lib/cjs/components/toggle/Toggle.vue.js +0 -9
  248. package/lib/cjs/components/toggle/Toggle.vue_vue_type_script_lang.js +0 -58
  249. package/lib/cjs/components/toggle/Toggle.vue_vue_type_template_id_5a9e0b2f_lang.js +0 -96
  250. package/lib/cjs/components/tooltip/Tooltip.vue.js +0 -9
  251. package/lib/cjs/components/tooltip/Tooltip.vue_vue_type_script_lang.js +0 -15
  252. package/lib/cjs/components/tooltip/Tooltip.vue_vue_type_template_id_213cff12_lang.js +0 -30
  253. package/lib/cjs/composables/common.js +0 -28
  254. package/lib/cjs/composables/inputtable.js +0 -162
  255. package/lib/cjs/composables/interactive.js +0 -41
  256. package/lib/cjs/index.js +0 -129
  257. package/lib/cjs/node_modules/style-inject/dist/style-inject.es.js +0 -30
  258. package/lib/esm/components/avatar/Avatar.vue.js +0 -6
  259. package/lib/esm/components/avatar/Avatar.vue_vue_type_script_lang.js +0 -84
  260. package/lib/esm/components/avatar/Avatar.vue_vue_type_template_id_2549fb8f_lang.js +0 -46
  261. package/lib/esm/components/button/Button.vue.js +0 -6
  262. package/lib/esm/components/button/Button.vue_vue_type_script_lang.js +0 -80
  263. package/lib/esm/components/button/Button.vue_vue_type_template_id_5975756f_lang.js +0 -96
  264. package/lib/esm/components/card/Card.vue.js +0 -6
  265. package/lib/esm/components/card/Card.vue_vue_type_script_lang.js +0 -16
  266. package/lib/esm/components/card/Card.vue_vue_type_template_id_7be81122_lang.js +0 -18
  267. package/lib/esm/components/checkbox/Checkbox.vue.js +0 -6
  268. package/lib/esm/components/checkbox/Checkbox.vue_vue_type_script_lang.js +0 -56
  269. package/lib/esm/components/checkbox/Checkbox.vue_vue_type_template_id_fa43bd62_lang.js +0 -98
  270. package/lib/esm/components/collapse/Collapse.vue.js +0 -6
  271. package/lib/esm/components/collapse/Collapse.vue_vue_type_script_lang.js +0 -64
  272. package/lib/esm/components/collapse/Collapse.vue_vue_type_template_id_06a1c88f_lang.js +0 -60
  273. package/lib/esm/components/colors.vue.js +0 -10
  274. package/lib/esm/components/colors.vue_vue_type_template_id_79d16100_lang.js +0 -402
  275. package/lib/esm/components/container/Container.vue.js +0 -6
  276. package/lib/esm/components/container/Container.vue_vue_type_script_lang.js +0 -12
  277. package/lib/esm/components/container/Container.vue_vue_type_template_id_05f5acf3_lang.js +0 -12
  278. package/lib/esm/components/divider/Divider.vue.js +0 -6
  279. package/lib/esm/components/divider/Divider.vue_vue_type_script_lang.js +0 -16
  280. package/lib/esm/components/divider/Divider.vue_vue_type_template_id_3a349aa3_lang.js +0 -45
  281. package/lib/esm/components/form/Form.vue.js +0 -6
  282. package/lib/esm/components/form/Form.vue_vue_type_script_lang.js +0 -93
  283. package/lib/esm/components/form/Form.vue_vue_type_template_id_a6cab022_lang.js +0 -16
  284. package/lib/esm/components/icon/Icon.vue.js +0 -6
  285. package/lib/esm/components/icon/Icon.vue_vue_type_script_lang.js +0 -24
  286. package/lib/esm/components/icon/Icon.vue_vue_type_template_id_0933a10f_lang.js +0 -28
  287. package/lib/esm/components/image/Image.vue.js +0 -6
  288. package/lib/esm/components/image/Image.vue_vue_type_script_lang.js +0 -26
  289. package/lib/esm/components/image/Image.vue_vue_type_template_id_f1ec3bb2_lang.js +0 -9
  290. package/lib/esm/components/index.js +0 -40
  291. package/lib/esm/components/input/Input.vue.js +0 -6
  292. package/lib/esm/components/input/Input.vue_vue_type_script_lang.js +0 -99
  293. package/lib/esm/components/input/Input.vue_vue_type_template_id_21c870c5_lang.js +0 -122
  294. package/lib/esm/components/link/Link.vue.js +0 -6
  295. package/lib/esm/components/link/Link.vue_vue_type_script_lang.js +0 -45
  296. package/lib/esm/components/link/Link.vue_vue_type_template_id_044f59af_lang.js +0 -55
  297. package/lib/esm/components/modal/Modal.vue.js +0 -6
  298. package/lib/esm/components/modal/Modal.vue_vue_type_script_lang.js +0 -53
  299. package/lib/esm/components/modal/Modal.vue_vue_type_template_id_177f8d4b_lang.js +0 -77
  300. package/lib/esm/components/note/Note.vue.js +0 -6
  301. package/lib/esm/components/note/Note.vue_vue_type_script_lang.js +0 -22
  302. package/lib/esm/components/note/Note.vue_vue_type_template_id_2b99d6a2_lang.js +0 -96
  303. package/lib/esm/components/pagination/Pagination.vue.js +0 -6
  304. package/lib/esm/components/pagination/Pagination.vue_vue_type_script_lang.js +0 -41
  305. package/lib/esm/components/pagination/Pagination.vue_vue_type_template_id_084845ef_lang.js +0 -50
  306. package/lib/esm/components/pagination/PaginationItem.vue.js +0 -6
  307. package/lib/esm/components/pagination/PaginationItem.vue_vue_type_script_lang.js +0 -22
  308. package/lib/esm/components/pagination/PaginationItem.vue_vue_type_template_id_241a3fbc_lang.js +0 -23
  309. package/lib/esm/components/popover/Popover.vue.js +0 -7
  310. package/lib/esm/components/popover/Popover.vue_vue_type_script_lang.js +0 -70
  311. package/lib/esm/components/popover/Popover.vue_vue_type_style_index_0_id_da70cc8a_lang.css.js +0 -6
  312. package/lib/esm/components/popover/Popover.vue_vue_type_template_id_da70cc8a_lang.js +0 -59
  313. package/lib/esm/components/popover/PopoverContainer.vue.js +0 -6
  314. package/lib/esm/components/popover/PopoverContainer.vue_vue_type_script_lang.js +0 -19
  315. package/lib/esm/components/popover/PopoverContainer.vue_vue_type_template_id_798f1294_lang.js +0 -12
  316. package/lib/esm/components/popover/PopoverItem.vue.js +0 -6
  317. package/lib/esm/components/popover/PopoverItem.vue_vue_type_script_lang.js +0 -32
  318. package/lib/esm/components/popover/PopoverItem.vue_vue_type_template_id_84692424_lang.js +0 -46
  319. package/lib/esm/components/progress/Progress.vue.js +0 -6
  320. package/lib/esm/components/progress/Progress.vue_vue_type_script_lang.js +0 -60
  321. package/lib/esm/components/progress/Progress.vue_vue_type_template_id_9ab7cee2_lang.js +0 -73
  322. package/lib/esm/components/radio/Radio.vue.js +0 -6
  323. package/lib/esm/components/radio/Radio.vue_vue_type_script_lang.js +0 -59
  324. package/lib/esm/components/radio/Radio.vue_vue_type_template_id_808cc132_lang.js +0 -116
  325. package/lib/esm/components/select/Select.vue.js +0 -6
  326. package/lib/esm/components/select/Select.vue_vue_type_script_lang.js +0 -60
  327. package/lib/esm/components/select/Select.vue_vue_type_template_id_18b7de2f_lang.js +0 -118
  328. package/lib/esm/components/skeleton/Skeleton.vue.js +0 -6
  329. package/lib/esm/components/skeleton/Skeleton.vue_vue_type_script_lang.js +0 -12
  330. package/lib/esm/components/skeleton/Skeleton.vue_vue_type_template_id_6ac606e2_lang.js +0 -14
  331. package/lib/esm/components/spacer/Spacer.vue.js +0 -10
  332. package/lib/esm/components/spacer/Spacer.vue_vue_type_template_id_793ae82f_lang.js +0 -9
  333. package/lib/esm/components/spinner/Spinner.vue.js +0 -6
  334. package/lib/esm/components/spinner/Spinner.vue_vue_type_script_lang.js +0 -12
  335. package/lib/esm/components/spinner/Spinner.vue_vue_type_template_id_714bd8a3_lang.js +0 -25
  336. package/lib/esm/components/status/StatusDot.vue.js +0 -6
  337. package/lib/esm/components/status/StatusDot.vue_vue_type_script_lang.js +0 -22
  338. package/lib/esm/components/status/StatusDot.vue_vue_type_template_id_367d150a_lang.js +0 -21
  339. package/lib/esm/components/table/Table.vue.js +0 -6
  340. package/lib/esm/components/table/Table.vue_vue_type_script_lang.js +0 -115
  341. package/lib/esm/components/table/Table.vue_vue_type_template_id_c0433c66_lang.js +0 -84
  342. package/lib/esm/components/table/TableBody.vue.js +0 -6
  343. package/lib/esm/components/table/TableBody.vue_vue_type_script_lang.js +0 -5
  344. package/lib/esm/components/table/TableBody.vue_vue_type_template_id_7288bc0f_lang.js +0 -9
  345. package/lib/esm/components/table/TableCell.vue.js +0 -6
  346. package/lib/esm/components/table/TableCell.vue_vue_type_script_lang.js +0 -61
  347. package/lib/esm/components/table/TableCell.vue_vue_type_template_id_5349a862_lang.js +0 -31
  348. package/lib/esm/components/table/TableHead.vue.js +0 -6
  349. package/lib/esm/components/table/TableHead.vue_vue_type_script_lang.js +0 -5
  350. package/lib/esm/components/table/TableHead.vue_vue_type_template_id_6ae9fd66_lang.js +0 -14
  351. package/lib/esm/components/table/TableHeader.vue.js +0 -6
  352. package/lib/esm/components/table/TableHeader.vue_vue_type_script_lang.js +0 -46
  353. package/lib/esm/components/table/TableHeader.vue_vue_type_template_id_9d5bd38c_lang.js +0 -74
  354. package/lib/esm/components/table/TableRow.vue.js +0 -6
  355. package/lib/esm/components/table/TableRow.vue_vue_type_script_lang.js +0 -31
  356. package/lib/esm/components/table/TableRow.vue_vue_type_template_id_7c4a8ffd_lang.js +0 -22
  357. package/lib/esm/components/tabs/Tab.vue.js +0 -6
  358. package/lib/esm/components/tabs/Tab.vue_vue_type_script_lang.js +0 -60
  359. package/lib/esm/components/tabs/Tab.vue_vue_type_template_id_3cfc6374_lang.js +0 -25
  360. package/lib/esm/components/tabs/Tabs.vue.js +0 -6
  361. package/lib/esm/components/tabs/Tabs.vue_vue_type_script_lang.js +0 -35
  362. package/lib/esm/components/tabs/Tabs.vue_vue_type_template_id_663bac2f_lang.js +0 -12
  363. package/lib/esm/components/tag/Tag.vue.js +0 -6
  364. package/lib/esm/components/tag/Tag.vue_vue_type_script_lang.js +0 -37
  365. package/lib/esm/components/tag/Tag.vue_vue_type_template_id_0aa571b6_lang.js +0 -73
  366. package/lib/esm/components/textarea/Textarea.vue.js +0 -6
  367. package/lib/esm/components/textarea/Textarea.vue_vue_type_script_lang.js +0 -111
  368. package/lib/esm/components/textarea/Textarea.vue_vue_type_template_id_03d2272f_lang.js +0 -66
  369. package/lib/esm/components/toast/Toast.vue.js +0 -6
  370. package/lib/esm/components/toast/Toast.vue_vue_type_script_lang.js +0 -85
  371. package/lib/esm/components/toast/Toast.vue_vue_type_template_id_fe243282_lang.js +0 -60
  372. package/lib/esm/components/toggle/Toggle.vue.js +0 -6
  373. package/lib/esm/components/toggle/Toggle.vue_vue_type_script_lang.js +0 -56
  374. package/lib/esm/components/toggle/Toggle.vue_vue_type_template_id_5a9e0b2f_lang.js +0 -92
  375. package/lib/esm/components/tooltip/Tooltip.vue.js +0 -6
  376. package/lib/esm/components/tooltip/Tooltip.vue_vue_type_script_lang.js +0 -13
  377. package/lib/esm/components/tooltip/Tooltip.vue_vue_type_template_id_213cff12_lang.js +0 -26
  378. package/lib/esm/composables/common.js +0 -23
  379. package/lib/esm/composables/inputtable.js +0 -155
  380. package/lib/esm/composables/interactive.js +0 -35
  381. package/lib/esm/index.js +0 -85
  382. package/lib/esm/node_modules/style-inject/dist/style-inject.es.js +0 -28
  383. package/lib/umd/index.js +0 -4349
  384. package/src/components/colors.vue +0 -396
  385. package/src/components/index.js +0 -40
  386. package/src/components/note/Note.vue +0 -74
  387. package/src/components/popover/PopoverItem.vue +0 -65
  388. package/src/components/status/StatusDot.vue +0 -41
  389. package/src/components/tabs/Tab.vue +0 -81
  390. package/src/components/tabs/Tabs.vue +0 -44
  391. package/src/components/toast/Toast.vue +0 -139
  392. package/src/composables/common.js +0 -21
  393. package/src/composables/interactive.js +0 -36
  394. package/src/index.js +0 -16
  395. package/src/nuxt.js +0 -13
  396. package/src/tailwind.preset.js +0 -24
@@ -1,29 +1,73 @@
1
+ <script lang="ts">
2
+ import { computed, defineComponent } from 'vue'
3
+ import { useCSS } from '../../composables/css'
4
+ import { useColors } from '../../composables/colors'
5
+ import { useCommon } from '../../composables/common'
6
+
7
+ export default defineComponent({
8
+ name: 'XTag',
9
+
10
+ props: {
11
+ ...useCommon.props(),
12
+ ...useColors.props('gray'),
13
+ tag: {
14
+ type: String,
15
+ default: 'span',
16
+ },
17
+ rounded: Boolean,
18
+ removable: Boolean,
19
+ outlined: Boolean,
20
+ },
21
+
22
+ emits: ['remove'],
23
+
24
+ setup(props) {
25
+ const css = useCSS()
26
+ const colors = useColors()
27
+ const styles = computed(() => {
28
+ const color = colors.getPalette(props.color)
29
+
30
+ return css.variables({
31
+ bg: color[100],
32
+ text: color[800],
33
+ border: color[800],
34
+ dark: {
35
+ text: props.outlined ? color[200] : color[800],
36
+ },
37
+ })
38
+ })
39
+
40
+ const sizeClasses = computed(() => {
41
+ if (props.size === 'xs') return 'px-2 py-1 text-xs'
42
+ else if (props.size === 'sm') return 'px-2 py-1 text-sm'
43
+ else if (props.size === 'lg') return 'px-4 py-3 text-lg'
44
+ else if (props.size === 'xl') return 'px-6 py-6 text-xl'
45
+
46
+ return 'px-3 py-2'
47
+ })
48
+
49
+ return {
50
+ styles,
51
+ sizeClasses,
52
+ }
53
+ },
54
+ })
55
+ </script>
56
+
1
57
  <template>
2
58
  <component
3
59
  :is="tag"
4
- class="inline-block leading-none"
60
+ class="inline-flex items-center leading-none whitespace-nowrap
61
+ text-[color:var(--x-text)]
62
+ dark:text-[color:var(--x-dark-text)]
63
+ border-[color:var(--x-border)
64
+ "
65
+ :style="styles"
5
66
  :class="
6
67
  [
7
- [`bg-${color}-200 text-${color}-900 border-${color}-900`],
8
- {
9
- // variant
10
- '!bg-transparent border': outlined,
11
-
12
- // size
13
- 'py-1': size === 'auto',
14
- 'px-2 py-1 text-xs': size === 'xs',
15
- 'px-2 py-1 text-sm': size === 'sm',
16
- 'px-3 py-2': !['auto', 'xs', 'sm', 'lg', 'xl'].includes(size),
17
- 'px-4 py-3 text-lg': size === 'lg',
18
- 'px-6 py-6 text-xl': size === 'xl',
19
-
20
- // radius
21
- 'rounded-full': radius === 'full',
22
- 'rounded-lg': radius === 'lg',
23
- 'rounded-md': radius === 'md',
24
- 'rounded-sm': radius === 'sm',
25
- 'rounded': radius === 'rounded',
26
- },
68
+ sizeClasses,
69
+ outlined ? 'border' : 'bg-[color:var(--x-bg)]',
70
+ rounded ? 'rounded-full' : 'rounded'
27
71
  ]"
28
72
  >
29
73
  <span
@@ -41,10 +85,9 @@
41
85
  fill="none"
42
86
  role="presentation"
43
87
  class="stroke-2 w-4 h-4 ml-1 cursor-pointer hover:text-gray-700 transition-colors duration-150 ease-in-out flex-shrink-0"
44
- @click="$emit('remove')"
88
+ @click="(e) => $emit('remove', e)"
45
89
  >
46
- <line x1="18" y1="6" x2="6" y2="18" />
47
- <line x1="6" y1="6" x2="18" y2="18" />
90
+ <path d="M6 18L18 6M6 6l12 12" />
48
91
  </svg>
49
92
  </span>
50
93
 
@@ -53,41 +96,3 @@
53
96
  </template>
54
97
  </component>
55
98
  </template>
56
-
57
- <script>
58
- export default {
59
- name: 'XTag',
60
-
61
- props: {
62
- color: {
63
- type: String,
64
- default: 'gray',
65
- },
66
-
67
- radius: {
68
- type: String,
69
- default: 'full',
70
- },
71
-
72
- removable: {
73
- type: Boolean,
74
- default: false,
75
- },
76
-
77
- size: {
78
- type: String,
79
- default: null,
80
- },
81
-
82
- tag: {
83
- type: String,
84
- default: 'span',
85
- },
86
-
87
- outlined: {
88
- type: Boolean,
89
- default: false,
90
- },
91
- },
92
- }
93
- </script>
@@ -1,5 +1,106 @@
1
+ <script lang="ts">
2
+ import { defineComponent, ref, watch, onMounted, onBeforeUnmount } from 'vue'
3
+ import { useCSS } from '../../composables/css'
4
+ import { useCommon } from '../../composables/common'
5
+ import { useColors } from '../../composables/colors'
6
+ import { useInputtable } from '../../composables/inputtable'
7
+ import { useInteractive } from '../../composables/interactive'
8
+
9
+ export default defineComponent({
10
+ name: 'XTextarea',
11
+
12
+ validators: {
13
+ ...useCommon.validators(),
14
+ },
15
+
16
+ props: {
17
+ ...useCommon.props(),
18
+ ...useInteractive.props(),
19
+ ...useInputtable.props(),
20
+ helper: String,
21
+ label: String,
22
+ dir: {
23
+ type: String,
24
+ default: 'ltr',
25
+ },
26
+ max: Number,
27
+ maxlength: Number,
28
+ min: Number,
29
+ minlength: Number,
30
+ placeholder: String,
31
+ adjustToText: {
32
+ type: Boolean,
33
+ default: true,
34
+ },
35
+ preventEnter: Boolean,
36
+ inputClass: String,
37
+ },
38
+
39
+ emits: useInputtable.emits(),
40
+
41
+ setup(props, { emit }) {
42
+ const elRef = ref<HTMLTextAreaElement>()
43
+ let observer: ResizeObserver | null = null
44
+
45
+ onMounted(() => {
46
+ if (elRef.value) {
47
+ observer = new ResizeObserver(resize)
48
+ observer.observe(elRef.value)
49
+ window.addEventListener('resize', resize)
50
+ }
51
+ })
52
+
53
+ onBeforeUnmount(() => {
54
+ if (observer) observer.disconnect()
55
+ window.removeEventListener('resize', resize)
56
+ })
57
+
58
+ watch([() => props.modelValue, () => props.size], () => {
59
+ setTimeout(resize)
60
+ })
61
+
62
+ const css = useCSS('textarea')
63
+ const colors = useColors()
64
+ const color = colors.getPalette('primary')
65
+ const style = css.get('border', color[500])
66
+
67
+ function onInput() {
68
+ resize()
69
+ }
70
+
71
+ function onEnter(e: KeyboardEvent) {
72
+ if (props.preventEnter) e.preventDefault()
73
+ e.stopPropagation()
74
+
75
+ return
76
+ }
77
+
78
+ function resize() {
79
+ if (props.adjustToText && elRef.value) {
80
+ elRef.value.style.height = '1px'
81
+ elRef.value.style.height = (2 + elRef.value.scrollHeight) + 'px'
82
+ }
83
+ }
84
+
85
+ const interactive = useInteractive(elRef)
86
+
87
+ return {
88
+ ...interactive,
89
+ ...useInputtable(props, { focus: interactive.focus, emit }),
90
+ elRef,
91
+ style,
92
+ onInput,
93
+ onEnter,
94
+ }
95
+ },
96
+ })
97
+ </script>
98
+
1
99
  <template>
2
- <label class="inline-block mb-1 relative">
100
+ <label
101
+ class="inline-block relative align-bottom text-left"
102
+ :class="{ 'mb-3': isInsideForm }"
103
+ >
3
104
  <p
4
105
  v-if="label"
5
106
  class="font-medium text-gray-800 dark:text-gray-200 mb-1"
@@ -13,24 +114,24 @@
13
114
  ></p>
14
115
 
15
116
  <textarea
16
- ref="focusRef"
17
- class="appearance-none block w-full text-gray-700 dark:text-gray-200 placeholder-gray-400 dark:placeholder-gray-600 rounded-form leading-tight
18
- focus:outline-none focus:border-primary-500 dark:focus:border-primary-500 transition-colors duration-150 ease-in-out border-gray-300 dark:border-gray-700 resize-none overflow-hidden"
117
+ ref="elRef"
118
+ class="appearance-none block w-full placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none transition-colors duration-150 ease-in-out border-gray-300 dark:border-gray-700 resize-none overflow-hidden border shadow-sm rounded-md
119
+ focus:border-[color:var(--x-textarea-border)]
120
+ "
121
+ :style="style"
19
122
  :class="[
20
- disabled ? 'bg-gray-200 dark:bg-gray-800 cursor-not-allowed' : 'bg-white dark:bg-gray-900',
123
+ disabled ? 'bg-gray-100 dark:bg-gray-700 text-gray-500 cursor-not-allowed' : 'bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200',
21
124
  {
22
125
  // size
23
- 'py-1': size === 'auto',
24
126
  'px-2 py-1 text-xs': size === 'xs',
25
- 'px-2 py-1 text-sm': size === 'sm',
26
- 'px-3 py-2': !['auto', 'xs', 'sm', 'lg', 'xl'].includes(size),
127
+ 'px-2 py-2 text-sm': size === 'sm',
128
+ 'px-3 py-2': !size || !['auto', 'xs', 'sm', 'lg', 'xl'].includes(size),
27
129
  'px-4 py-3 text-lg': size === 'lg',
28
- 'px-6 py-6 text-xl': size === 'xl',
130
+ 'px-5 py-4 text-xl': size === 'xl',
29
131
  },
30
- flat ? '!p-0 !bg-transparent' : 'border shadow',
31
132
  {
32
133
  // error
33
- 'border-error-500 focus:border-error-500 dark:focus:border-error-500': errorInternal,
134
+ 'border-red-500 focus:border-red-500 dark:focus:border-red-500': errorInternal,
34
135
  },
35
136
  inputClass,
36
137
  ]"
@@ -43,124 +144,13 @@
43
144
  :name="name"
44
145
  :placeholder="placeholder"
45
146
  :readonly="readonly"
46
- :value="modelValue"
147
+ :value="modelValue?.toString()"
47
148
  v-on="inputListeners"
48
- @keydown="onKeyDown"
149
+ @keydown.enter="onEnter"
49
150
  @input="onInput"
50
151
  ></textarea>
51
152
 
52
- <p v-if="errorInternal" class="text-sm text-error-500 mt-1" v-text="errorInternal"></p>
153
+ <p v-if="errorInternal" class="text-sm text-red-500 mt-1" v-text="errorInternal"></p>
154
+ <p v-else-if="helper" class="text-sm text-gray-500 mt-1" v-text="helper"></p>
53
155
  </label>
54
156
  </template>
55
-
56
- <script>
57
- import { withProps, withValidator, withEmits, useInputtable } from '../../composables/inputtable'
58
-
59
- export default {
60
- name: 'XTextarea',
61
-
62
- validator: withValidator(),
63
-
64
- props: {
65
- ...withProps(),
66
-
67
- label: {
68
- type: String,
69
- default: '',
70
- },
71
-
72
- dir: {
73
- type: String,
74
- default: 'ltr',
75
- },
76
-
77
- max: {
78
- type: Number,
79
- default: null,
80
- },
81
-
82
- maxlength: {
83
- type: Number,
84
- default: null,
85
- },
86
-
87
- min: {
88
- type: Number,
89
- default: null,
90
- },
91
-
92
- minlength: {
93
- type: Number,
94
- default: null,
95
- },
96
-
97
- placeholder: {
98
- type: String,
99
- default: null,
100
- },
101
-
102
- adjustToText: {
103
- type: Boolean,
104
- default: true,
105
- },
106
-
107
- preventEnter: {
108
- type: Boolean,
109
- default: false,
110
- },
111
-
112
- inputClass: {
113
- type: String,
114
- default: '',
115
- },
116
- },
117
-
118
- emits: withEmits(),
119
-
120
- setup(props, { attrs, emit }) {
121
- return {
122
- ...useInputtable(props, { attrs, emit }),
123
- }
124
- },
125
-
126
- watch: {
127
- modelValue() {
128
- setTimeout(this.resize)
129
- },
130
- size() {
131
- setTimeout(this.resize)
132
- },
133
- },
134
-
135
- mounted() {
136
- this.resize()
137
- window.addEventListener('resize', this.resize)
138
- },
139
-
140
- beforeUnmount() {
141
- window.removeEventListener('resize', this.resize)
142
- },
143
-
144
- methods: {
145
- onInput() {
146
- this.resize()
147
- },
148
- onKeyDown(e) {
149
- if (this.preventEnter && e.keyCode === 13) {
150
- e.preventDefault()
151
- e.stopPropagation()
152
-
153
- return
154
- }
155
- },
156
- resize() {
157
- if (this.adjustToText) {
158
- const { focusRef } = this.$refs
159
-
160
- focusRef.style.height = '1px'
161
- focusRef.style.height = (2 + focusRef.scrollHeight) + 'px'
162
- }
163
- },
164
- },
165
- }
166
- </script>
@@ -1,58 +1,129 @@
1
+ <script lang="ts">
2
+ import { computed, defineComponent, ref } from 'vue'
3
+ import { useCSS } from '../../composables/css'
4
+ import { useCommon } from '../../composables/common'
5
+ import { useColors } from '../../composables/colors'
6
+ import { useInputtable } from '../../composables/inputtable'
7
+ import { useInteractive } from '../../composables/interactive'
8
+
9
+ import XSpinner from '../../components/spinner/Spinner.vue'
10
+
11
+ export default defineComponent({
12
+ name: 'XToggle',
13
+
14
+ components: {
15
+ XSpinner,
16
+ },
17
+
18
+ validators: {
19
+ ...useCommon.validators(),
20
+ },
21
+
22
+ props: {
23
+ ...useCommon.props(),
24
+ ...useColors.props('primary'),
25
+ ...useInteractive.props(),
26
+ ...useInputtable.props(),
27
+ id: String,
28
+ label: String,
29
+ glow: Boolean,
30
+ },
31
+
32
+ emits: useInputtable.emits(false),
33
+
34
+ setup(props, { emit }) {
35
+ const elRef = ref<HTMLElement>()
36
+ const checked = computed({
37
+ get(): boolean {
38
+ return !!props.modelValue
39
+ },
40
+ set(val: boolean) {
41
+ emit('update:modelValue', val)
42
+ },
43
+ })
44
+
45
+ const css = useCSS()
46
+ const colors = useColors()
47
+
48
+ const styles = computed(() => {
49
+ const color = colors.getPalette(props.color)
50
+
51
+ return css.variables({
52
+ bg: color[500],
53
+ dark: {
54
+ bg: color[600],
55
+ },
56
+ })
57
+ })
58
+
59
+ const interactive = useInteractive(elRef)
60
+
61
+ return {
62
+ ...interactive,
63
+ ...useInputtable(props, { focus: interactive.focus, emit, withListeners: false }),
64
+ elRef,
65
+ checked,
66
+ styles,
67
+ }
68
+ },
69
+ })
70
+ </script>
71
+
1
72
  <template>
2
73
  <label
3
- class="inline-block mb-1 relative pb-2"
74
+ class="inline-block mb-1 pb-2"
4
75
  :class="[!disabled ? 'cursor-pointer' : 'cursor-not-allowed']"
5
76
  >
6
77
  <div class="flex items-center">
7
78
  <div
8
- class="rounded-full transition-colors duration-300"
9
- :class="[
10
- {
11
- // shadow
12
- 'border shadow': !flat,
13
- [`shadow-lg shadow-${color}-500/50`]: !flat && glow && modelValue,
14
-
15
- 'w-8': size === 'sm' || size === 'xs',
16
- 'w-10': !['xs', 'sm', 'lg', 'xl'].includes(size),
17
- 'w-12': size === 'lg',
18
- 'w-14': size === 'xl',
19
- 'bg-gray-300 dark:bg-gray-600': disabled && !checked,
20
- 'bg-gray-400 dark:bg-gray-400': disabled && checked,
21
- 'bg-gray-200 dark:bg-gray-600': !disabled && !checked,
22
- [`bg-${color}-200 border-${color}-200`]: !disabled && checked,
23
- }
24
- ]"
79
+ class="flex items-center rounded-full transition-colors duration-300 border-[3px] shrink-0 border-transparent"
80
+ :style="styles"
81
+ :class="{
82
+ [`shadow-lg shadow-${color}-500/50`]: glow && modelValue,
83
+ 'bg-gray-300 dark:bg-gray-500': !disabled && !checked && !loading,
84
+ 'bg-gray-100 dark:bg-gray-700': disabled || loading,
85
+ 'bg-[color:var(--x-bg)]': !disabled && checked,
86
+ }"
25
87
  >
26
- <input
27
- :id="id"
28
- v-model="checked"
29
- :aria-checked="checked ? 'true' : 'false'"
30
- :aria-disabled="disabled ? 'true' : null"
31
- type="checkbox"
32
- class="hidden"
33
- :disabled="disabled || loading"
34
- :name="name"
35
- :required="required"
36
- :value="modelValue"
37
- />
38
-
39
- <x-spinner v-if="loading" :size="size" :class="{'translate-x-full': checked}" />
40
88
  <div
41
- v-else
42
- class="rounded-full shadow transform transition duration-300 flex-shrink-0"
89
+ class="relative shrink-0"
43
90
  :class="[
44
91
  {
45
- 'h-4 w-4': size === 'sm' || size === 'xs',
46
- 'h-5 w-5': !['xs', 'sm', 'lg', 'xl'].includes(size),
47
- 'h-6 w-6': size === 'lg',
48
- 'h-7 w-7': size === 'xl',
49
- 'translate-x-full': checked,
50
- 'bg-gray-200 dark:bg-gray-200': disabled,
51
- 'bg-white': !disabled && !checked,
52
- [`bg-${color}-500`]: !disabled && checked,
53
- },
92
+ 'w-6': size === 'sm' || size === 'xs',
93
+ 'w-8': !size || !['xs', 'sm', 'lg', 'xl'].includes(size),
94
+ 'w-10': size === 'lg',
95
+ 'w-12': size === 'xl',
96
+ }
54
97
  ]"
55
- ></div>
98
+ >
99
+ <input
100
+ :id="id"
101
+ ref="elRef"
102
+ v-model="checked"
103
+ :aria-checked="checked ? 'true' : 'false'"
104
+ :aria-disabled="disabled ? 'true' : undefined"
105
+ type="checkbox"
106
+ class="hidden"
107
+ :disabled="disabled || loading"
108
+ :name="name"
109
+ :required="required"
110
+ :value="modelValue"
111
+ />
112
+ <div
113
+ class="rounded-full shadow transform transition duration-300 flex-shrink-0"
114
+ :class="[
115
+ {
116
+ 'h-3 w-3': size === 'sm' || size === 'xs',
117
+ 'h-4 w-4': !size || !['xs', 'sm', 'lg', 'xl'].includes(size),
118
+ 'h-5 w-5': size === 'lg',
119
+ 'h-6 w-6': size === 'xl',
120
+ 'translate-x-full': checked,
121
+ 'bg-gray-shadow-md': !disabled
122
+ },
123
+ [disabled ? 'bg-gray-50 dark:bg-gray-800' : 'bg-white dark:bg-gray-800']
124
+ ]"
125
+ ></div>
126
+ </div>
56
127
  </div>
57
128
  <span
58
129
  v-if="label"
@@ -66,63 +137,8 @@
66
137
  v-text="label"
67
138
  >
68
139
  </span>
140
+ <x-spinner v-if="loading" :size="size" class="ml-1" />
69
141
  </div>
70
- <p v-if="errorInternal" class="text-sm text-error-500 mt-1" v-text="errorInternal"></p>
142
+ <p v-if="errorInternal" class="text-sm text-red-500 mt-1" v-text="errorInternal"></p>
71
143
  </label>
72
144
  </template>
73
-
74
- <script>
75
- import { withProps, withValidator, withEmits, useInputtable } from '../../composables/inputtable'
76
- import XSpinner from '../spinner/Spinner.vue'
77
-
78
- export default {
79
- name: 'XToggle',
80
-
81
- components: {
82
- XSpinner,
83
- },
84
-
85
- validator: {
86
- ...withValidator(),
87
- },
88
-
89
- props: {
90
- ...withProps(),
91
-
92
- id: {
93
- type: String,
94
- default: null,
95
- },
96
-
97
- label: {
98
- type: String,
99
- default: null,
100
- },
101
-
102
- glow: {
103
- type: Boolean,
104
- default: false,
105
- },
106
- },
107
-
108
- emits: withEmits(false),
109
-
110
- setup(props, { attrs, emit }) {
111
- return {
112
- ...useInputtable(props, { attrs, emit, useListeners: false }),
113
- }
114
- },
115
-
116
- computed: {
117
- checked: {
118
- get() {
119
- return this.modelValue
120
- },
121
-
122
- set(val) {
123
- this.$emit('update:modelValue', val)
124
- },
125
- },
126
- },
127
- }
128
- </script>
@@ -1,22 +1,26 @@
1
+ <script lang="ts">
2
+ import { defineComponent } from 'vue'
3
+
4
+ import XPopover from '../../components/popover/Popover.vue'
5
+ import XPopoverContainer from '../../components/popover/PopoverContainer.vue'
6
+
7
+ export default defineComponent({
8
+ name: 'XTooltip',
9
+
10
+ components: {
11
+ XPopover,
12
+ XPopoverContainer,
13
+ },
14
+ })
15
+ </script>
16
+
1
17
  <template>
2
- <x-popover hover class="dark" v-bind="$attrs">
18
+ <x-popover hover class="dark">
3
19
  <slot></slot>
4
20
  <template #content>
5
- <x-popover-container class="p-2 text-gray-300 text-sm">
21
+ <x-popover-container class="p-2 text-white text-sm">
6
22
  <slot name="tooltip"></slot>
7
23
  </x-popover-container>
8
24
  </template>
9
25
  </x-popover>
10
26
  </template>
11
-
12
- <script>
13
- import XPopover from '../popover/Popover.vue'
14
- import XPopoverContainer from '../popover/PopoverContainer.vue'
15
-
16
- export default {
17
- components: {
18
- XPopover,
19
- XPopoverContainer,
20
- },
21
- }
22
- </script>