@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,59 +1,372 @@
1
+ <script lang="ts">
2
+ import { computed, defineComponent, ref, watch, type PropType } 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 { useEventListener } from '@vueuse/core'
10
+
11
+ import XTag from '../../components/tag/Tag.vue'
12
+ import XMenuItem from '../../components/menu/MenuItem.vue'
13
+ import XSpinner from '../../components/spinner/Spinner.vue'
14
+ import XPopover from '../../components/popover/Popover.vue'
15
+ import XPopoverContainer from '../../components/popover/PopoverContainer.vue'
16
+
17
+ export type SelectOption = {
18
+ value: number | string,
19
+ disabled: boolean,
20
+ label: string
21
+ }
22
+
23
+ export default defineComponent({
24
+ name: 'XSelect',
25
+
26
+ components: {
27
+ XTag,
28
+ XMenuItem,
29
+ XSpinner,
30
+ XPopover,
31
+ XPopoverContainer,
32
+ },
33
+
34
+ validators: {
35
+ ...useCommon.validators(),
36
+ },
37
+
38
+ props: {
39
+ ...useCommon.props(),
40
+ ...useInteractive.props(),
41
+ ...useInputtable.props(),
42
+ placeholder: String,
43
+ options: Array as PropType<Array<SelectOption>>,
44
+ multiple: Boolean,
45
+ label: String,
46
+ helper: String,
47
+ flat: Boolean,
48
+ },
49
+
50
+ emits: useInputtable.emits(),
51
+
52
+ setup(props, { emit }) {
53
+ const elRef = ref<HTMLElement>()
54
+ const labelRef = ref()
55
+ const itemsRef = ref()
56
+ const popoverRef = ref()
57
+ const selectedIndex = ref<number | undefined>()
58
+
59
+ const interactive = useInteractive(elRef)
60
+
61
+ const checkIcon = '<path d="M5 13l4 4L19 7" />'
62
+
63
+ const selected = computed({
64
+ get(): any {
65
+ if (props.multiple) {
66
+ if (!props.modelValue) return []
67
+ if (Array.isArray(props.modelValue)) return props.modelValue
68
+ else return [props.modelValue]
69
+ }
70
+
71
+ return props.modelValue
72
+ },
73
+ set(value: string | number | []) {
74
+ emit('update:modelValue', value)
75
+ },
76
+ })
77
+
78
+ const internalOptions = computed(() => {
79
+ if (!props.options || props.options.length === 0) return []
80
+
81
+ return props.options.map((option) => {
82
+ let isActive = false
83
+
84
+ if (props.multiple && Array.isArray(selected.value)) {
85
+ // @ts-ignore
86
+ isActive = selected.value.includes(option.value)
87
+ } else {
88
+ isActive = option.value === selected.value
89
+ }
90
+
91
+ return {
92
+ value: option.value,
93
+ label: option.label,
94
+ active: isActive,
95
+ disabled: option.disabled,
96
+ iconRight: isActive ? checkIcon : undefined,
97
+ onClick: () => handleOptionClick(option.value),
98
+ }
99
+ })
100
+ })
101
+
102
+ const labelClasses = computed(() => {
103
+ if (props.size === 'xs') return 'text-xs'
104
+ else if (props.size === 'sm') return 'text-sm'
105
+ else if (props.size === 'lg') return 'text-lg'
106
+ else if (props.size === 'xl') return 'text-xl'
107
+
108
+ return ''
109
+ })
110
+
111
+ const sizeClasses = computed(() => {
112
+ if (props.size === 'xs') return 'px-2 py-1 text-xs'
113
+ else if (props.size === 'sm') return 'px-2 py-2 text-sm'
114
+ else if (props.size === 'lg') return 'px-4 py-3 text-lg'
115
+ else if (props.size === 'xl') return 'px-5 py-4 text-xl'
116
+
117
+ return 'px-3 py-2'
118
+ })
119
+
120
+ const css = useCSS('select')
121
+ const colors = useColors()
122
+ const color = colors.getPalette('primary')
123
+ const style = css.get('border', color[500])
124
+
125
+ const availableOptions = computed(() => props.options?.filter((option) => !option.disabled))
126
+
127
+ watch(() => popoverRef.value?.isOpen, () => {
128
+ if (popoverRef.value?.isOpen && (props.multiple || typeof selectedIndex.value === 'undefined'))
129
+ findSelectableIndex(-1)
130
+ })
131
+
132
+ watch(selectedIndex, (index) => {
133
+ if (typeof index !== 'undefined') itemsRef.value[index].$el.scrollIntoView({ block: 'nearest', inline: 'nearest' })
134
+ })
135
+
136
+ function findSelectableIndex(start: number | undefined, direction = 'down') {
137
+ if (!availableOptions.value || availableOptions.value.length === 0) {
138
+ selectedIndex.value = undefined
139
+
140
+ return
141
+ }
142
+
143
+ if (typeof start === 'undefined') {
144
+ start = direction === 'down' ? -1 : 1
145
+ }
146
+
147
+ if (direction === 'down') {
148
+ let next = start + 1
149
+
150
+ if (next > internalOptions.value.length - 1) next = 0
151
+ while (internalOptions.value[next].disabled) {
152
+ if (++next > internalOptions.value.length - 1) next = 0
153
+ }
154
+ selectedIndex.value = next
155
+ } else {
156
+ let next = start - 1
157
+
158
+ if (next < 0) next = internalOptions.value.length - 1
159
+ while (internalOptions.value[next].disabled) {
160
+ if (--next < 0) next = internalOptions.value.length - 1
161
+ }
162
+ selectedIndex.value = next
163
+ }
164
+ }
165
+
166
+ useEventListener(labelRef, 'keydown', handleKeydown)
167
+
168
+ function handleKeydown(e: KeyboardEvent) {
169
+ if (internalOptions.value.length === 0) return
170
+
171
+ if (e.code === 'ArrowDown') {
172
+ e.preventDefault()
173
+ if (!popoverRef.value.isOpen) {
174
+ popoverRef.value.open()
175
+
176
+ return
177
+ }
178
+ findSelectableIndex(selectedIndex.value, 'down')
179
+ } else if (e.code === 'ArrowUp') {
180
+ e.preventDefault()
181
+ if (!popoverRef.value.isOpen) return
182
+ findSelectableIndex(selectedIndex.value, 'up')
183
+ } else if (e.code === 'Enter' || e.code === 'Space') {
184
+ e.preventDefault()
185
+ e.stopPropagation()
186
+ if (!popoverRef.value.isOpen) {
187
+ popoverRef.value.open()
188
+
189
+ return
190
+ }
191
+ if (typeof selectedIndex.value !== 'undefined') {
192
+ handleOptionClick(internalOptions.value[selectedIndex.value].value)
193
+ if (!props.multiple) popoverRef.value.close()
194
+ }
195
+ } else if (e.code === 'Escape') {
196
+ e.preventDefault()
197
+ e.stopPropagation()
198
+ popoverRef.value.close()
199
+ } else if (e.code === 'Tab') {
200
+ popoverRef.value.close()
201
+ }
202
+ }
203
+
204
+ function handleOptionClick(value: string | number) {
205
+ const option = props.options?.find((i) => i.value === value)
206
+
207
+ if (!option || option.disabled) return
208
+
209
+ if (props.multiple) {
210
+ if (Array.isArray(selected.value)) {
211
+ // @ts-ignore
212
+ const index = selected.value.indexOf(value)
213
+
214
+ if (index !== -1) selected.value.splice(index, 1)
215
+ else {
216
+ // @ts-ignore
217
+ selected.value.push(value)
218
+ emit('update:modelValue', selected.value)
219
+ }
220
+ } else {
221
+ // @ts-ignore
222
+ selected.value = [value]
223
+ }
224
+ } else {
225
+ selected.value = value
226
+ }
227
+ }
228
+
229
+ function isEmpty(value: string | number | []) {
230
+ if (typeof value === 'undefined' || value === null) return true
231
+ if (value === '') return true
232
+ if (Array.isArray(value) && value.length === 0) return true
233
+ if (!Array.isArray(value) && typeof value === 'object' && Object.keys(value).length === 0) return true
234
+
235
+ return false
236
+ }
237
+
238
+ function handleRemove(e: Event, value: string) {
239
+ e.stopPropagation()
240
+
241
+ // find value in selected and remove it
242
+ // @ts-ignore
243
+ const index = selected.value.indexOf(value)
244
+
245
+ if (index !== -1) {
246
+ // @ts-ignore
247
+ selected.value.splice(index, 1)
248
+ emit('update:modelValue', selected.value)
249
+ }
250
+ }
251
+
252
+ function getLabel(value: string | number | []) {
253
+ const option = props.options?.find((i) => i.value === value)
254
+
255
+ if (option) return option.label
256
+
257
+ return ''
258
+ }
259
+
260
+ return {
261
+ ...interactive,
262
+ ...useInputtable(props, { focus: interactive.focus, emit, withListeners: false }),
263
+ elRef,
264
+ labelRef,
265
+ itemsRef,
266
+ popoverRef,
267
+ selected,
268
+ selectedIndex,
269
+ internalOptions,
270
+ labelClasses,
271
+ sizeClasses,
272
+ style,
273
+ isEmpty,
274
+ getLabel,
275
+ handleRemove,
276
+ }
277
+ },
278
+ })
279
+ </script>
280
+
1
281
  <template>
2
- <label class="inline-block mb-1 relative pb-2">
282
+ <label
283
+ ref="labelRef"
284
+ tabindex="0"
285
+ class="group relative inline-block align-bottom text-left focus:outline-none"
286
+ :class="[{ 'mb-3': isInsideForm }]"
287
+ >
3
288
  <p
4
289
  v-if="label"
5
290
  class="font-medium text-gray-800 dark:text-gray-200 mb-1"
6
- :class="{
7
- 'text-xs': size === 'xs',
8
- 'text-sm': size === 'sm',
9
- 'text-lg': size === 'lg',
10
- 'text-xl': size === 'xl',
11
- }"
291
+ :class="labelClasses"
12
292
  v-text="label"
13
293
  ></p>
14
-
15
294
  <div class="relative">
295
+ <x-popover ref="popoverRef" block :disabled="disabled || loading" :dismiss-on-click="!multiple">
296
+ <div
297
+ class="w-full border border-gray-300 hover:border-gray-400 dark:border-gray-700 pr-8 transition-colors duration-150 ease-in-out rounded-md shadow-sm
298
+ group-focus:border-[color:var(--x-select-border)]
299
+ "
300
+ :style="style"
301
+ :class="[
302
+ sizeClasses,
303
+ disabled
304
+ ? 'bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed'
305
+ : 'bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200',
306
+ {
307
+ // error
308
+ 'border-red-500 focus:border-red-500 dark:focus:border-red-500': errorInternal,
309
+ },
310
+ ]"
311
+ >
312
+ <template v-if="multiple && Array.isArray(selected) && selected.length > 0">
313
+ <x-tag
314
+ v-for="value in selected"
315
+ :key="value"
316
+ size="sm"
317
+ class="mr-1"
318
+ removable
319
+ @remove="(e) => { handleRemove(e, value) }"
320
+ >{{ getLabel(value) }}</x-tag>
321
+ </template>
322
+ <template v-else-if="!multiple && !isEmpty(selected)">
323
+ {{ getLabel(selected) }}
324
+ </template>
325
+
326
+ <template v-else>
327
+ <div
328
+ v-if="placeholder"
329
+ class="text-gray-400 dark:text-gray-500"
330
+ >
331
+ {{ placeholder }}
332
+ </div>
333
+ <div v-else>&nbsp;</div>
334
+ </template>
335
+ </div>
336
+
337
+ <template #content>
338
+ <x-popover-container class="py-1 max-h-72 overflow-scroll">
339
+ <template v-if="internalOptions.length > 0">
340
+ <x-menu-item
341
+ v-for="(item, index) in internalOptions"
342
+ :key="index"
343
+ ref="itemsRef"
344
+ :item="item"
345
+ :size="size"
346
+ :disabled="item.disabled"
347
+ :selected="index === selectedIndex"
348
+ color="primary"
349
+ filled
350
+ />
351
+ </template>
352
+ <div v-else class="px-2 text-center text-gray-400">
353
+ No options
354
+ </div>
355
+ </x-popover-container>
356
+ </template>
357
+ </x-popover>
358
+
16
359
  <select
17
- ref="focusRef"
360
+ ref="elRef"
18
361
  v-model="selected"
19
- class="block appearance-none w-full border border-gray-300 dark:border-gray-700 pr-8 rounded-form leading-tight
20
- focus:outline-none focus:border-primary-500 dark:focus:border-primary-500 transition-colors duration-150 ease-in-out"
21
- :class="[
22
- disabled
23
- ? 'bg-gray-200 dark:bg-gray-800 text-gray-800 dark:text-gray-200 cursor-not-allowed'
24
- : 'bg-white dark:bg-gray-900',
25
- {
26
- // shadow
27
- 'shadow': !flat,
28
-
29
- // size
30
- 'py-1': size === 'auto',
31
- 'px-2 py-1 text-xs': size === 'xs',
32
- 'px-2 py-1 text-sm': size === 'sm',
33
- 'px-3 py-2': !['auto', 'xs', 'sm', 'lg', 'xl'].includes(size),
34
- 'px-4 py-3 text-lg': size === 'lg',
35
- 'px-6 py-6 text-xl': size === 'xl',
36
- },
37
- {
38
- 'text-gray-400 dark:text-gray-500': modelValue === '' || modelValue === null,
39
-
40
- // error
41
- 'border-error-500 focus:border-error-500 dark:focus:border-error-500': errorInternal,
42
- },
43
- ]"
44
- :disabled="disabled || loading"
362
+ class="hidden"
45
363
  :name="name"
364
+ :disabled="disabled || loading"
365
+ :multiple="multiple"
46
366
  :readonly="readonly"
47
367
  :value="modelValue"
48
368
  v-on="inputListeners"
49
369
  >
50
- <option
51
- v-if="placeholder"
52
- disabled
53
- value=""
54
- >
55
- {{ placeholder }}
56
- </option>
57
370
  <option
58
371
  v-for="(option, index) in options"
59
372
  :key="index"
@@ -62,7 +375,6 @@
62
375
  >
63
376
  {{ option.label }}
64
377
  </option>
65
- <slot></slot>
66
378
  </select>
67
379
 
68
380
  <div class="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2">
@@ -71,11 +383,12 @@
71
383
  v-else
72
384
  class="stroke-2"
73
385
  :class="[
74
- disabled ? 'text-gray-600 dark:text-gray-400': 'text-gray-700 dark:text-gray-300',
386
+ disabled ? 'text-gray-600 dark:text-gray-500': 'text-gray-500 dark:text-gray-400',
75
387
  {
76
388
  'h-3 w-3': size === 'sm' || size === 'xs',
77
- 'h-4 w-4': !['xs', 'sm', 'xl'].includes(size),
78
- 'h-5 w-5': size === 'xl',
389
+ 'h-5 w-5': !size || !['xs', 'sm', 'lg', 'xl'].includes(size),
390
+ 'h-6 w-6': size === 'lg',
391
+ 'h-7 w-7': size === 'xl',
79
392
  }
80
393
  ]"
81
394
  viewBox="0 0 24 24"
@@ -84,72 +397,12 @@
84
397
  stroke-linecap="round"
85
398
  fill="none"
86
399
  >
87
- <path d="M18 8L12 2L6 8" />
88
- <path d="M18 16L12 22L6 16" />
400
+ <path d="M8 9l4-4 4 4m0 6l-4 4-4-4" />
89
401
  </svg>
90
402
  </div>
91
403
  </div>
92
404
 
93
- <p v-if="errorInternal" class="text-sm text-error-500 mt-1" v-text="errorInternal"></p>
405
+ <p v-if="errorInternal" class="text-sm text-red-500 mt-1" v-text="errorInternal"></p>
406
+ <p v-else-if="helper" class="text-sm text-gray-500 mt-1" v-text="helper"></p>
94
407
  </label>
95
408
  </template>
96
-
97
- <script>
98
- import { withProps, withValidator, withEmits, useInputtable } from '../../composables/inputtable'
99
- import XSpinner from '../spinner/Spinner.vue'
100
-
101
- export default {
102
- name: 'XSelect',
103
- components: {
104
- XSpinner,
105
- },
106
-
107
- validator: {
108
- ...withValidator(),
109
- },
110
-
111
- props: {
112
- ...withProps(),
113
-
114
- placeholder: {
115
- type: String,
116
- default: null,
117
- },
118
-
119
- flat: {
120
- type: Boolean,
121
- default: false,
122
- },
123
-
124
- label: {
125
- type: String,
126
- default: null,
127
- },
128
-
129
- options: {
130
- type: Array,
131
- default: null,
132
- },
133
- },
134
-
135
- emits: withEmits(false),
136
-
137
- setup(props, { attrs, emit }) {
138
- return {
139
- ...useInputtable(props, { attrs, emit, useListeners: false }),
140
- }
141
- },
142
-
143
- computed: {
144
- selected: {
145
- get() {
146
- return this.modelValue
147
- },
148
-
149
- set(val) {
150
- this.$emit('update:modelValue', val)
151
- },
152
- },
153
- },
154
- }
155
- </script>
@@ -1,14 +1,7 @@
1
- <template>
2
- <component
3
- :is="tag"
4
- class="animate-pulse bg-gray-300 dark:bg-gray-600 rounded-md"
5
- >
6
- &#8203;
7
- </component>
8
- </template>
1
+ <script lang="ts">
2
+ import { defineComponent } from 'vue'
9
3
 
10
- <script>
11
- export default {
4
+ export default defineComponent({
12
5
  name: 'XSkeleton',
13
6
 
14
7
  props: {
@@ -17,5 +10,14 @@ export default {
17
10
  default: 'div',
18
11
  },
19
12
  },
20
- }
13
+ })
21
14
  </script>
15
+
16
+ <template>
17
+ <component
18
+ :is="tag"
19
+ class="animate-pulse bg-gray-300 dark:bg-gray-600 rounded-md"
20
+ >
21
+ &#8203;
22
+ </component>
23
+ </template>