@indielayer/ui 0.1.1 → 0.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 (334) hide show
  1. package/lib/cjs/components/Colors.vue.js +11 -0
  2. package/lib/cjs/components/Colors.vue_vue_type_template_id_039e5c98_lang.js +406 -0
  3. package/lib/cjs/components/avatar/Avatar.vue.js +3 -3
  4. package/lib/cjs/components/avatar/Avatar.vue_vue_type_script_lang.js +86 -0
  5. package/lib/cjs/components/avatar/Avatar.vue_vue_type_template_id_d5090cb0_lang.js +50 -0
  6. package/lib/cjs/components/button/Button.vue.js +3 -3
  7. package/lib/cjs/components/button/{Button.vue_vue&type=script&lang.js → Button.vue_vue_type_script_lang.js} +15 -39
  8. package/lib/cjs/components/button/Button.vue_vue_type_template_id_1be5b88c_lang.js +100 -0
  9. package/lib/cjs/components/card/Card.vue.js +3 -3
  10. package/lib/cjs/components/card/{Card.vue_vue&type=script&lang.js → Card.vue_vue_type_script_lang.js} +0 -0
  11. package/lib/cjs/components/card/{Card.vue_vue&type=template&id=5a1806fe&lang.js → Card.vue_vue_type_template_id_6e221de0_lang.js} +6 -6
  12. package/lib/cjs/components/checkbox/Checkbox.vue.js +3 -3
  13. package/lib/cjs/components/checkbox/Checkbox.vue_vue_type_script_lang.js +58 -0
  14. package/lib/cjs/components/checkbox/Checkbox.vue_vue_type_template_id_d00d1178_lang.js +102 -0
  15. package/lib/cjs/components/collapse/Collapse.vue.js +2 -2
  16. package/lib/cjs/components/collapse/{Collapse.vue_vue&type=script&lang.js → Collapse.vue_vue_type_script_lang.js} +0 -0
  17. package/lib/cjs/components/collapse/{Collapse.vue_vue&type=template&id=65032827&lang.js → Collapse.vue_vue_type_template_id_65032827_lang.js} +0 -0
  18. package/lib/cjs/components/container/Container.vue.js +3 -3
  19. package/lib/cjs/components/container/{Container.vue_vue&type=script&lang.js → Container.vue_vue_type_script_lang.js} +0 -0
  20. package/lib/cjs/components/container/{Container.vue_vue&type=template&id=7b2991c1&lang.js → Container.vue_vue_type_template_id_1109578e_lang.js} +2 -2
  21. package/lib/cjs/components/divider/Divider.vue.js +3 -3
  22. package/lib/cjs/components/divider/{Divider.vue_vue&type=script&lang.js → Divider.vue_vue_type_script_lang.js} +0 -0
  23. package/lib/cjs/components/divider/{Divider.vue_vue&type=template&id=61c5e3d4&lang.js → Divider.vue_vue_type_template_id_041f3bf1_lang.js} +15 -15
  24. package/lib/cjs/components/form/Form.vue.js +2 -3
  25. package/lib/cjs/components/form/Form.vue_vue_type_script_lang.js +109 -0
  26. package/lib/cjs/components/icon/Icon.vue.js +3 -3
  27. package/lib/cjs/components/icon/{Icon.vue_vue&type=script&lang.js → Icon.vue_vue_type_script_lang.js} +6 -5
  28. package/lib/cjs/components/icon/{Icon.vue_vue&type=template&id=2e35bbff&lang.js → Icon.vue_vue_type_template_id_4fe868d3_lang.js} +10 -10
  29. package/lib/cjs/components/image/Image.vue.js +8 -0
  30. package/lib/cjs/components/image/Image.vue_vue_type_script_lang.js +28 -0
  31. package/lib/cjs/components/image/Image.vue_vue_type_template_id_d7718e2c_lang.js +13 -0
  32. package/lib/cjs/components/index.js +41 -37
  33. package/lib/cjs/components/input/Input.vue.js +3 -3
  34. package/lib/cjs/components/input/Input.vue_vue_type_script_lang.js +101 -0
  35. package/lib/cjs/components/input/{Input.vue_vue&type=template&id=046941e3&lang.js → Input.vue_vue_type_template_id_0a66306d_lang.js} +44 -45
  36. package/lib/cjs/components/link/Link.vue.js +3 -3
  37. package/lib/cjs/components/link/{Link.vue_vue&type=script&lang.js → Link.vue_vue_type_script_lang.js} +0 -0
  38. package/lib/cjs/components/link/{Link.vue_vue&type=template&id=cd8b503c&lang.js → Link.vue_vue_type_template_id_291038eb_lang.js} +13 -13
  39. package/lib/cjs/components/modal/Modal.vue.js +3 -3
  40. package/lib/cjs/components/modal/{Modal.vue_vue&type=script&lang.js → Modal.vue_vue_type_script_lang.js} +0 -0
  41. package/lib/cjs/components/modal/{Modal.vue_vue&type=template&id=31c76cbc&lang.js → Modal.vue_vue_type_template_id_1597a9fe_lang.js} +1 -1
  42. package/lib/cjs/components/note/Note.vue.js +3 -3
  43. package/lib/cjs/components/{skeleton/Skeleton.vue_vue&type=script&lang.js → note/Note.vue_vue_type_script_lang.js} +7 -2
  44. package/lib/cjs/components/note/{Note.vue_vue&type=template&id=ea427b4c&lang.js → Note.vue_vue_type_template_id_79616501_lang.js} +8 -22
  45. package/lib/cjs/components/pagination/Pagination.vue.js +3 -3
  46. package/lib/cjs/components/pagination/{Pagination.vue_vue&type=script&lang.js → Pagination.vue_vue_type_script_lang.js} +5 -5
  47. package/lib/cjs/components/pagination/{Pagination.vue_vue&type=template&id=0f4659a9&lang.js → Pagination.vue_vue_type_template_id_7b1569fe_lang.js} +8 -8
  48. package/lib/cjs/components/pagination/PaginationItem.vue.js +2 -2
  49. package/lib/cjs/components/pagination/{PaginationItem.vue_vue&type=script&lang.js → PaginationItem.vue_vue_type_script_lang.js} +0 -0
  50. package/lib/cjs/components/pagination/{PaginationItem.vue_vue&type=template&id=a1d67888&lang.js → PaginationItem.vue_vue_type_template_id_a1d67888_lang.js} +0 -0
  51. package/lib/cjs/components/popover/Popover.vue.js +4 -4
  52. package/lib/cjs/components/popover/{Popover.vue_vue&type=script&lang.js → Popover.vue_vue_type_script_lang.js} +0 -0
  53. package/lib/cjs/components/popover/{Popover.vue_vue&type=style&index=0&id=3d4ab1ae&lang.css.js → Popover.vue_vue_type_style_index_0_id_ef94d0dc_lang.css.js} +0 -0
  54. package/lib/cjs/components/popover/{Popover.vue_vue&type=template&id=3d4ab1ae&lang.js → Popover.vue_vue_type_template_id_ef94d0dc_lang.js} +1 -1
  55. package/lib/cjs/components/popover/PopoverContainer.vue.js +3 -3
  56. package/lib/cjs/components/popover/{PopoverContainer.vue_vue&type=script&lang.js → PopoverContainer.vue_vue_type_script_lang.js} +0 -0
  57. package/lib/cjs/components/popover/{PopoverContainer.vue_vue&type=template&id=c3f5df12&lang.js → PopoverContainer.vue_vue_type_template_id_49e694b6_lang.js} +2 -2
  58. package/lib/cjs/components/popover/PopoverItem.vue.js +3 -3
  59. package/lib/cjs/components/popover/{PopoverItem.vue_vue&type=script&lang.js → PopoverItem.vue_vue_type_script_lang.js} +0 -0
  60. package/lib/cjs/components/popover/{PopoverItem.vue_vue&type=template&id=33f77d45&lang.js → PopoverItem.vue_vue_type_template_id_f493838c_lang.js} +9 -9
  61. package/lib/cjs/components/progress/Progress.vue.js +3 -3
  62. package/lib/cjs/components/progress/{Progress.vue_vue&type=script&lang.js → Progress.vue_vue_type_script_lang.js} +2 -9
  63. package/lib/cjs/components/progress/{Progress.vue_vue&type=template&id=a5bfeb16&lang.js → Progress.vue_vue_type_template_id_73a39445_lang.js} +5 -21
  64. package/lib/cjs/components/radio/Radio.vue.js +3 -3
  65. package/lib/cjs/components/radio/Radio.vue_vue_type_script_lang.js +61 -0
  66. package/lib/cjs/components/radio/Radio.vue_vue_type_template_id_7229826f_lang.js +120 -0
  67. package/lib/cjs/components/select/Select.vue.js +3 -3
  68. package/lib/cjs/components/select/Select.vue_vue_type_script_lang.js +62 -0
  69. package/lib/cjs/components/select/Select.vue_vue_type_template_id_e15ccf42_lang.js +122 -0
  70. package/lib/cjs/components/skeleton/Skeleton.vue.js +3 -3
  71. package/lib/cjs/components/{tabs/Tabs.vue_vue&type=script&lang.js → skeleton/Skeleton.vue_vue_type_script_lang.js} +2 -2
  72. package/lib/cjs/components/skeleton/{Skeleton.vue_vue&type=template&id=f4226afe&lang.js → Skeleton.vue_vue_type_template_id_a9c4d78c_lang.js} +2 -6
  73. package/lib/cjs/components/spacer/Spacer.vue.js +1 -1
  74. package/lib/cjs/components/spacer/{Spacer.vue_vue&type=template&id=3c2aca79&lang.js → Spacer.vue_vue_type_template_id_3c2aca79_lang.js} +0 -0
  75. package/lib/cjs/components/spinner/Spinner.vue.js +3 -3
  76. package/lib/cjs/components/spinner/{Spinner.vue_vue&type=script&lang.js → Spinner.vue_vue_type_script_lang.js} +0 -0
  77. package/lib/cjs/components/spinner/{Spinner.vue_vue&type=template&id=435d3ecf&lang.js → Spinner.vue_vue_type_template_id_60c76aa5_lang.js} +4 -4
  78. package/lib/cjs/components/status/StatusDot.vue.js +3 -3
  79. package/lib/cjs/components/status/{StatusDot.vue_vue&type=script&lang.js → StatusDot.vue_vue_type_script_lang.js} +1 -13
  80. package/lib/cjs/components/status/StatusDot.vue_vue_type_template_id_1d82aee7_lang.js +25 -0
  81. package/lib/cjs/components/table/Table.vue.js +2 -2
  82. package/lib/cjs/components/table/{Table.vue_vue&type=script&lang.js → Table.vue_vue_type_script_lang.js} +6 -6
  83. package/lib/cjs/components/table/{Table.vue_vue&type=template&id=50d6ab12&lang.js → Table.vue_vue_type_template_id_50d6ab12_lang.js} +0 -0
  84. package/lib/cjs/components/table/TableBody.vue.js +2 -2
  85. package/lib/cjs/components/table/{TableBody.vue_vue&type=script&lang.js → TableBody.vue_vue_type_script_lang.js} +0 -0
  86. package/lib/cjs/components/table/{TableBody.vue_vue&type=template&id=fd21b336&lang.js → TableBody.vue_vue_type_template_id_fd21b336_lang.js} +0 -0
  87. package/lib/cjs/components/table/TableCell.vue.js +2 -2
  88. package/lib/cjs/components/table/{TableCell.vue_vue&type=script&lang.js → TableCell.vue_vue_type_script_lang.js} +0 -0
  89. package/lib/cjs/components/table/{TableCell.vue_vue&type=template&id=6b8d1953&lang.js → TableCell.vue_vue_type_template_id_6b8d1953_lang.js} +0 -0
  90. package/lib/cjs/components/table/TableHead.vue.js +2 -2
  91. package/lib/cjs/components/table/{TableHead.vue_vue&type=script&lang.js → TableHead.vue_vue_type_script_lang.js} +0 -0
  92. package/lib/cjs/components/table/{TableHead.vue_vue&type=template&id=c753405c&lang.js → TableHead.vue_vue_type_template_id_c753405c_lang.js} +0 -0
  93. package/lib/cjs/components/table/TableHeader.vue.js +3 -3
  94. package/lib/cjs/components/table/{TableHeader.vue_vue&type=script&lang.js → TableHeader.vue_vue_type_script_lang.js} +0 -0
  95. package/lib/cjs/components/table/{TableHeader.vue_vue&type=template&id=34196e32&lang.js → TableHeader.vue_vue_type_template_id_20f1eb1e_lang.js} +5 -5
  96. package/lib/cjs/components/table/TableRow.vue.js +3 -3
  97. package/lib/cjs/components/table/{TableRow.vue_vue&type=script&lang.js → TableRow.vue_vue_type_script_lang.js} +0 -0
  98. package/lib/cjs/components/table/{TableRow.vue_vue&type=template&id=4ffea48c&lang.js → TableRow.vue_vue_type_template_id_75239b39_lang.js} +5 -5
  99. package/lib/cjs/components/tabs/Tab.vue.js +3 -3
  100. package/lib/cjs/components/tabs/Tab.vue_vue_type_script_lang.js +62 -0
  101. package/lib/cjs/components/tabs/Tab.vue_vue_type_template_id_3ad17bb5_lang.js +29 -0
  102. package/lib/cjs/components/tabs/Tabs.vue.js +3 -3
  103. package/lib/cjs/components/tabs/Tabs.vue_vue_type_script_lang.js +37 -0
  104. package/lib/cjs/components/tabs/{Tabs.vue_vue&type=template&id=17799e08&lang.js → Tabs.vue_vue_type_template_id_4f5b59bd_lang.js} +2 -2
  105. package/lib/cjs/components/tag/Tag.vue.js +3 -3
  106. package/lib/cjs/components/tag/{Tag.vue_vue&type=script&lang.js → Tag.vue_vue_type_script_lang.js} +0 -18
  107. package/lib/cjs/components/tag/Tag.vue_vue_type_template_id_3d8994a5_lang.js +77 -0
  108. package/lib/cjs/components/textarea/Textarea.vue.js +3 -3
  109. package/lib/cjs/components/textarea/Textarea.vue_vue_type_script_lang.js +113 -0
  110. package/lib/cjs/components/textarea/Textarea.vue_vue_type_template_id_6ebcc37a_lang.js +70 -0
  111. package/lib/cjs/components/toast/Toast.vue.js +2 -2
  112. package/lib/cjs/components/toast/{Toast.vue_vue&type=script&lang.js → Toast.vue_vue_type_script_lang.js} +0 -0
  113. package/lib/cjs/components/toast/{Toast.vue_vue&type=template&id=0278d8f5&lang.js → Toast.vue_vue_type_template_id_0278d8f5_lang.js} +0 -0
  114. package/lib/cjs/components/toggle/Toggle.vue.js +3 -3
  115. package/lib/cjs/components/toggle/Toggle.vue_vue_type_script_lang.js +58 -0
  116. package/lib/cjs/components/toggle/Toggle.vue_vue_type_template_id_0dc1ddd9_lang.js +96 -0
  117. package/lib/cjs/components/tooltip/Tooltip.vue.js +2 -2
  118. package/lib/cjs/components/tooltip/{Tooltip.vue_vue&type=script&lang.js → Tooltip.vue_vue_type_script_lang.js} +2 -2
  119. package/lib/cjs/components/tooltip/{Tooltip.vue_vue&type=template&id=72e65c1a&lang.js → Tooltip.vue_vue_type_template_id_72e65c1a_lang.js} +0 -0
  120. package/lib/cjs/composables/common.js +28 -0
  121. package/lib/cjs/composables/inputtable.js +143 -0
  122. package/lib/cjs/composables/interactive.js +43 -0
  123. package/lib/cjs/index.js +42 -38
  124. package/lib/esm/components/Colors.vue.js +9 -0
  125. package/lib/esm/components/Colors.vue_vue_type_template_id_039e5c98_lang.js +402 -0
  126. package/lib/esm/components/avatar/Avatar.vue.js +3 -3
  127. package/lib/esm/components/avatar/Avatar.vue_vue_type_script_lang.js +84 -0
  128. package/lib/esm/components/avatar/Avatar.vue_vue_type_template_id_d5090cb0_lang.js +46 -0
  129. package/lib/esm/components/button/Button.vue.js +3 -3
  130. package/lib/esm/components/button/{Button.vue_vue&type=script&lang.js → Button.vue_vue_type_script_lang.js} +15 -39
  131. package/lib/esm/components/button/Button.vue_vue_type_template_id_1be5b88c_lang.js +96 -0
  132. package/lib/esm/components/card/Card.vue.js +3 -3
  133. package/lib/esm/components/card/{Card.vue_vue&type=script&lang.js → Card.vue_vue_type_script_lang.js} +0 -0
  134. package/lib/esm/components/card/Card.vue_vue_type_template_id_6e221de0_lang.js +18 -0
  135. package/lib/esm/components/checkbox/Checkbox.vue.js +3 -3
  136. package/lib/esm/components/checkbox/Checkbox.vue_vue_type_script_lang.js +56 -0
  137. package/lib/esm/components/checkbox/Checkbox.vue_vue_type_template_id_d00d1178_lang.js +98 -0
  138. package/lib/esm/components/collapse/Collapse.vue.js +3 -3
  139. package/lib/esm/components/collapse/{Collapse.vue_vue&type=script&lang.js → Collapse.vue_vue_type_script_lang.js} +0 -0
  140. package/lib/esm/components/collapse/{Collapse.vue_vue&type=template&id=65032827&lang.js → Collapse.vue_vue_type_template_id_65032827_lang.js} +0 -0
  141. package/lib/esm/components/container/Container.vue.js +3 -3
  142. package/lib/esm/components/container/{Container.vue_vue&type=script&lang.js → Container.vue_vue_type_script_lang.js} +0 -0
  143. package/lib/esm/components/container/Container.vue_vue_type_template_id_1109578e_lang.js +12 -0
  144. package/lib/esm/components/divider/Divider.vue.js +3 -3
  145. package/lib/esm/components/divider/{Divider.vue_vue&type=script&lang.js → Divider.vue_vue_type_script_lang.js} +0 -0
  146. package/lib/esm/components/divider/Divider.vue_vue_type_template_id_041f3bf1_lang.js +45 -0
  147. package/lib/esm/components/form/Form.vue.js +2 -5
  148. package/lib/esm/components/form/Form.vue_vue_type_script_lang.js +107 -0
  149. package/lib/esm/components/icon/Icon.vue.js +3 -3
  150. package/lib/esm/components/icon/{Icon.vue_vue&type=script&lang.js → Icon.vue_vue_type_script_lang.js} +6 -5
  151. package/lib/esm/components/icon/Icon.vue_vue_type_template_id_4fe868d3_lang.js +28 -0
  152. package/lib/esm/components/image/Image.vue.js +5 -0
  153. package/lib/esm/components/image/Image.vue_vue_type_script_lang.js +26 -0
  154. package/lib/esm/components/image/Image.vue_vue_type_template_id_d7718e2c_lang.js +9 -0
  155. package/lib/esm/components/index.js +39 -37
  156. package/lib/esm/components/input/Input.vue.js +3 -3
  157. package/lib/esm/components/input/Input.vue_vue_type_script_lang.js +99 -0
  158. package/lib/esm/components/input/{Input.vue_vue&type=template&id=046941e3&lang.js → Input.vue_vue_type_template_id_0a66306d_lang.js} +45 -46
  159. package/lib/esm/components/link/Link.vue.js +3 -3
  160. package/lib/esm/components/link/{Link.vue_vue&type=script&lang.js → Link.vue_vue_type_script_lang.js} +0 -0
  161. package/lib/esm/components/link/{Link.vue_vue&type=template&id=cd8b503c&lang.js → Link.vue_vue_type_template_id_291038eb_lang.js} +14 -14
  162. package/lib/esm/components/modal/Modal.vue.js +3 -3
  163. package/lib/esm/components/modal/{Modal.vue_vue&type=script&lang.js → Modal.vue_vue_type_script_lang.js} +0 -0
  164. package/lib/esm/components/modal/{Modal.vue_vue&type=template&id=31c76cbc&lang.js → Modal.vue_vue_type_template_id_1597a9fe_lang.js} +1 -1
  165. package/lib/esm/components/note/Note.vue.js +3 -3
  166. package/lib/esm/components/{skeleton/Skeleton.vue_vue&type=script&lang.js → note/Note.vue_vue_type_script_lang.js} +7 -2
  167. package/lib/esm/components/note/{Note.vue_vue&type=template&id=ea427b4c&lang.js → Note.vue_vue_type_template_id_79616501_lang.js} +9 -23
  168. package/lib/esm/components/pagination/Pagination.vue.js +3 -3
  169. package/lib/esm/components/pagination/{Pagination.vue_vue&type=script&lang.js → Pagination.vue_vue_type_script_lang.js} +5 -5
  170. package/lib/esm/components/pagination/{Pagination.vue_vue&type=template&id=0f4659a9&lang.js → Pagination.vue_vue_type_template_id_7b1569fe_lang.js} +8 -8
  171. package/lib/esm/components/pagination/PaginationItem.vue.js +3 -3
  172. package/lib/esm/components/pagination/{PaginationItem.vue_vue&type=script&lang.js → PaginationItem.vue_vue_type_script_lang.js} +0 -0
  173. package/lib/esm/components/pagination/{PaginationItem.vue_vue&type=template&id=a1d67888&lang.js → PaginationItem.vue_vue_type_template_id_a1d67888_lang.js} +0 -0
  174. package/lib/esm/components/popover/Popover.vue.js +4 -4
  175. package/lib/esm/components/popover/{Popover.vue_vue&type=script&lang.js → Popover.vue_vue_type_script_lang.js} +0 -0
  176. package/lib/esm/components/popover/{Popover.vue_vue&type=style&index=0&id=3d4ab1ae&lang.css.js → Popover.vue_vue_type_style_index_0_id_ef94d0dc_lang.css.js} +0 -0
  177. package/lib/esm/components/popover/{Popover.vue_vue&type=template&id=3d4ab1ae&lang.js → Popover.vue_vue_type_template_id_ef94d0dc_lang.js} +1 -1
  178. package/lib/esm/components/popover/PopoverContainer.vue.js +3 -3
  179. package/lib/esm/components/popover/{PopoverContainer.vue_vue&type=script&lang.js → PopoverContainer.vue_vue_type_script_lang.js} +0 -0
  180. package/lib/esm/components/popover/PopoverContainer.vue_vue_type_template_id_49e694b6_lang.js +12 -0
  181. package/lib/esm/components/popover/PopoverItem.vue.js +3 -3
  182. package/lib/esm/components/popover/{PopoverItem.vue_vue&type=script&lang.js → PopoverItem.vue_vue_type_script_lang.js} +0 -0
  183. package/lib/esm/components/popover/{PopoverItem.vue_vue&type=template&id=33f77d45&lang.js → PopoverItem.vue_vue_type_template_id_f493838c_lang.js} +10 -10
  184. package/lib/esm/components/progress/Progress.vue.js +3 -3
  185. package/lib/esm/components/progress/{Progress.vue_vue&type=script&lang.js → Progress.vue_vue_type_script_lang.js} +2 -9
  186. package/lib/esm/components/progress/{Progress.vue_vue&type=template&id=a5bfeb16&lang.js → Progress.vue_vue_type_template_id_73a39445_lang.js} +5 -21
  187. package/lib/esm/components/radio/Radio.vue.js +3 -3
  188. package/lib/esm/components/radio/Radio.vue_vue_type_script_lang.js +59 -0
  189. package/lib/esm/components/radio/Radio.vue_vue_type_template_id_7229826f_lang.js +116 -0
  190. package/lib/esm/components/select/Select.vue.js +3 -3
  191. package/lib/esm/components/select/Select.vue_vue_type_script_lang.js +60 -0
  192. package/lib/esm/components/select/Select.vue_vue_type_template_id_e15ccf42_lang.js +118 -0
  193. package/lib/esm/components/skeleton/Skeleton.vue.js +3 -3
  194. package/lib/esm/components/{tabs/Tabs.vue_vue&type=script&lang.js → skeleton/Skeleton.vue_vue_type_script_lang.js} +2 -2
  195. package/lib/esm/components/skeleton/Skeleton.vue_vue_type_template_id_a9c4d78c_lang.js +14 -0
  196. package/lib/esm/components/spacer/Spacer.vue.js +1 -1
  197. package/lib/esm/components/spacer/{Spacer.vue_vue&type=template&id=3c2aca79&lang.js → Spacer.vue_vue_type_template_id_3c2aca79_lang.js} +0 -0
  198. package/lib/esm/components/spinner/Spinner.vue.js +3 -3
  199. package/lib/esm/components/spinner/{Spinner.vue_vue&type=script&lang.js → Spinner.vue_vue_type_script_lang.js} +0 -0
  200. package/lib/esm/components/spinner/{Spinner.vue_vue&type=template&id=435d3ecf&lang.js → Spinner.vue_vue_type_template_id_60c76aa5_lang.js} +4 -4
  201. package/lib/esm/components/status/StatusDot.vue.js +3 -3
  202. package/lib/esm/components/status/{StatusDot.vue_vue&type=script&lang.js → StatusDot.vue_vue_type_script_lang.js} +1 -13
  203. package/lib/esm/components/status/StatusDot.vue_vue_type_template_id_1d82aee7_lang.js +21 -0
  204. package/lib/esm/components/table/Table.vue.js +3 -3
  205. package/lib/esm/components/table/{Table.vue_vue&type=script&lang.js → Table.vue_vue_type_script_lang.js} +6 -6
  206. package/lib/esm/components/table/{Table.vue_vue&type=template&id=50d6ab12&lang.js → Table.vue_vue_type_template_id_50d6ab12_lang.js} +0 -0
  207. package/lib/esm/components/table/TableBody.vue.js +3 -3
  208. package/lib/esm/components/table/{TableBody.vue_vue&type=script&lang.js → TableBody.vue_vue_type_script_lang.js} +0 -0
  209. package/lib/esm/components/table/{TableBody.vue_vue&type=template&id=fd21b336&lang.js → TableBody.vue_vue_type_template_id_fd21b336_lang.js} +0 -0
  210. package/lib/esm/components/table/TableCell.vue.js +3 -3
  211. package/lib/esm/components/table/{TableCell.vue_vue&type=script&lang.js → TableCell.vue_vue_type_script_lang.js} +0 -0
  212. package/lib/esm/components/table/{TableCell.vue_vue&type=template&id=6b8d1953&lang.js → TableCell.vue_vue_type_template_id_6b8d1953_lang.js} +0 -0
  213. package/lib/esm/components/table/TableHead.vue.js +3 -3
  214. package/lib/esm/components/table/{TableHead.vue_vue&type=script&lang.js → TableHead.vue_vue_type_script_lang.js} +0 -0
  215. package/lib/esm/components/table/{TableHead.vue_vue&type=template&id=c753405c&lang.js → TableHead.vue_vue_type_template_id_c753405c_lang.js} +0 -0
  216. package/lib/esm/components/table/TableHeader.vue.js +3 -3
  217. package/lib/esm/components/table/{TableHeader.vue_vue&type=script&lang.js → TableHeader.vue_vue_type_script_lang.js} +0 -0
  218. package/lib/esm/components/table/{TableHeader.vue_vue&type=template&id=34196e32&lang.js → TableHeader.vue_vue_type_template_id_20f1eb1e_lang.js} +6 -6
  219. package/lib/esm/components/table/TableRow.vue.js +3 -3
  220. package/lib/esm/components/table/{TableRow.vue_vue&type=script&lang.js → TableRow.vue_vue_type_script_lang.js} +0 -0
  221. package/lib/esm/components/table/{TableRow.vue_vue&type=template&id=4ffea48c&lang.js → TableRow.vue_vue_type_template_id_75239b39_lang.js} +6 -6
  222. package/lib/esm/components/tabs/Tab.vue.js +3 -3
  223. package/lib/esm/components/tabs/Tab.vue_vue_type_script_lang.js +60 -0
  224. package/lib/esm/components/tabs/Tab.vue_vue_type_template_id_3ad17bb5_lang.js +25 -0
  225. package/lib/esm/components/tabs/Tabs.vue.js +3 -3
  226. package/lib/esm/components/tabs/Tabs.vue_vue_type_script_lang.js +35 -0
  227. package/lib/esm/components/tabs/Tabs.vue_vue_type_template_id_4f5b59bd_lang.js +12 -0
  228. package/lib/esm/components/tag/Tag.vue.js +3 -3
  229. package/lib/esm/components/tag/{Tag.vue_vue&type=script&lang.js → Tag.vue_vue_type_script_lang.js} +0 -18
  230. package/lib/esm/components/tag/Tag.vue_vue_type_template_id_3d8994a5_lang.js +73 -0
  231. package/lib/esm/components/textarea/Textarea.vue.js +3 -3
  232. package/lib/esm/components/textarea/Textarea.vue_vue_type_script_lang.js +111 -0
  233. package/lib/esm/components/textarea/Textarea.vue_vue_type_template_id_6ebcc37a_lang.js +66 -0
  234. package/lib/esm/components/toast/Toast.vue.js +3 -3
  235. package/lib/esm/components/toast/{Toast.vue_vue&type=script&lang.js → Toast.vue_vue_type_script_lang.js} +0 -0
  236. package/lib/esm/components/toast/{Toast.vue_vue&type=template&id=0278d8f5&lang.js → Toast.vue_vue_type_template_id_0278d8f5_lang.js} +0 -0
  237. package/lib/esm/components/toggle/Toggle.vue.js +3 -3
  238. package/lib/esm/components/toggle/Toggle.vue_vue_type_script_lang.js +56 -0
  239. package/lib/esm/components/toggle/Toggle.vue_vue_type_template_id_0dc1ddd9_lang.js +92 -0
  240. package/lib/esm/components/tooltip/Tooltip.vue.js +3 -3
  241. package/lib/esm/components/tooltip/{Tooltip.vue_vue&type=script&lang.js → Tooltip.vue_vue_type_script_lang.js} +2 -2
  242. package/lib/esm/components/tooltip/{Tooltip.vue_vue&type=template&id=72e65c1a&lang.js → Tooltip.vue_vue_type_template_id_72e65c1a_lang.js} +0 -0
  243. package/lib/esm/composables/common.js +23 -0
  244. package/lib/esm/composables/inputtable.js +136 -0
  245. package/lib/esm/composables/interactive.js +37 -0
  246. package/lib/esm/index.js +40 -38
  247. package/lib/tailwind.preset.js +5 -42
  248. package/lib/umd/index.js +1 -1
  249. package/package.json +5 -4
  250. package/src/components/avatar/Avatar.vue +59 -60
  251. package/src/components/button/Button.vue +52 -120
  252. package/src/components/card/Card.vue +2 -3
  253. package/src/components/checkbox/Checkbox.vue +50 -56
  254. package/src/components/colors.vue +396 -0
  255. package/src/components/container/Container.vue +1 -2
  256. package/src/components/divider/Divider.vue +10 -11
  257. package/src/components/form/Form.vue +57 -43
  258. package/src/components/icon/Icon.vue +11 -11
  259. package/src/components/image/Image.vue +30 -0
  260. package/src/components/index.js +2 -0
  261. package/src/components/input/Input.vue +18 -130
  262. package/src/components/link/Link.vue +9 -10
  263. package/src/components/modal/Modal.vue +1 -1
  264. package/src/components/note/Note.vue +8 -35
  265. package/src/components/pagination/Pagination.vue +12 -12
  266. package/src/components/popover/Popover.vue +1 -1
  267. package/src/components/popover/PopoverContainer.vue +0 -1
  268. package/src/components/popover/PopoverItem.vue +5 -6
  269. package/src/components/progress/Progress.vue +7 -30
  270. package/src/components/radio/Radio.vue +46 -56
  271. package/src/components/select/Select.vue +52 -127
  272. package/src/components/skeleton/Skeleton.vue +2 -11
  273. package/src/components/spinner/Spinner.vue +4 -4
  274. package/src/components/status/StatusDot.vue +11 -39
  275. package/src/components/table/TableHeader.vue +0 -1
  276. package/src/components/table/TableRow.vue +0 -1
  277. package/src/components/tabs/Tab.vue +45 -13
  278. package/src/components/tabs/Tabs.vue +24 -2
  279. package/src/components/tag/Tag.vue +17 -47
  280. package/src/components/textarea/Textarea.vue +40 -130
  281. package/src/components/toggle/Toggle.vue +82 -85
  282. package/src/composables/common.js +21 -0
  283. package/src/composables/inputtable.js +138 -0
  284. package/src/composables/interactive.js +38 -0
  285. package/src/tailwind.preset.js +5 -42
  286. package/lib/cjs/components/avatar/Avatar.vue_vue&type=script&lang.js +0 -76
  287. package/lib/cjs/components/avatar/Avatar.vue_vue&type=template&id=36a4d50f&lang.js +0 -60
  288. package/lib/cjs/components/button/Button.vue_vue&type=template&id=365674ca&lang.js +0 -142
  289. package/lib/cjs/components/checkbox/Checkbox.vue_vue&type=script&lang.js +0 -69
  290. package/lib/cjs/components/checkbox/Checkbox.vue_vue&type=template&id=bf794940&lang.js +0 -78
  291. package/lib/cjs/components/form/Form.vue_vue&type=script&lang.js +0 -87
  292. package/lib/cjs/components/form/Form.vue_vue&type=template&id=341983a2&lang.js +0 -20
  293. package/lib/cjs/components/input/Input.vue_vue&type=script&lang.js +0 -210
  294. package/lib/cjs/components/note/Note.vue_vue&type=script&lang.js +0 -36
  295. package/lib/cjs/components/radio/Radio.vue_vue&type=script&lang.js +0 -76
  296. package/lib/cjs/components/radio/Radio.vue_vue&type=template&id=7736acd0&lang.js +0 -100
  297. package/lib/cjs/components/select/Select.vue_vue&type=script&lang.js +0 -150
  298. package/lib/cjs/components/select/Select.vue_vue&type=template&id=6ccf0009&lang.js +0 -97
  299. package/lib/cjs/components/status/StatusDot.vue_vue&type=template&id=75d1a520&lang.js +0 -40
  300. package/lib/cjs/components/tabs/Tab.vue_vue&type=script&lang.js +0 -29
  301. package/lib/cjs/components/tabs/Tab.vue_vue&type=template&id=42dce82e&lang.js +0 -29
  302. package/lib/cjs/components/tag/Tag.vue_vue&type=template&id=289ac1d7&lang.js +0 -87
  303. package/lib/cjs/components/textarea/Textarea.vue_vue&type=script&lang.js +0 -202
  304. package/lib/cjs/components/textarea/Textarea.vue_vue&type=template&id=9e7d494a&lang.js +0 -68
  305. package/lib/cjs/components/toggle/Toggle.vue_vue&type=script&lang.js +0 -65
  306. package/lib/cjs/components/toggle/Toggle.vue_vue&type=template&id=2dc56b20&lang.js +0 -77
  307. package/lib/esm/components/avatar/Avatar.vue_vue&type=script&lang.js +0 -74
  308. package/lib/esm/components/avatar/Avatar.vue_vue&type=template&id=36a4d50f&lang.js +0 -56
  309. package/lib/esm/components/button/Button.vue_vue&type=template&id=365674ca&lang.js +0 -138
  310. package/lib/esm/components/card/Card.vue_vue&type=template&id=5a1806fe&lang.js +0 -18
  311. package/lib/esm/components/checkbox/Checkbox.vue_vue&type=script&lang.js +0 -67
  312. package/lib/esm/components/checkbox/Checkbox.vue_vue&type=template&id=bf794940&lang.js +0 -74
  313. package/lib/esm/components/container/Container.vue_vue&type=template&id=7b2991c1&lang.js +0 -12
  314. package/lib/esm/components/divider/Divider.vue_vue&type=template&id=61c5e3d4&lang.js +0 -45
  315. package/lib/esm/components/form/Form.vue_vue&type=script&lang.js +0 -85
  316. package/lib/esm/components/form/Form.vue_vue&type=template&id=341983a2&lang.js +0 -16
  317. package/lib/esm/components/icon/Icon.vue_vue&type=template&id=2e35bbff&lang.js +0 -28
  318. package/lib/esm/components/input/Input.vue_vue&type=script&lang.js +0 -208
  319. package/lib/esm/components/note/Note.vue_vue&type=script&lang.js +0 -34
  320. package/lib/esm/components/popover/PopoverContainer.vue_vue&type=template&id=c3f5df12&lang.js +0 -12
  321. package/lib/esm/components/radio/Radio.vue_vue&type=script&lang.js +0 -74
  322. package/lib/esm/components/radio/Radio.vue_vue&type=template&id=7736acd0&lang.js +0 -96
  323. package/lib/esm/components/select/Select.vue_vue&type=script&lang.js +0 -148
  324. package/lib/esm/components/select/Select.vue_vue&type=template&id=6ccf0009&lang.js +0 -93
  325. package/lib/esm/components/skeleton/Skeleton.vue_vue&type=template&id=f4226afe&lang.js +0 -18
  326. package/lib/esm/components/status/StatusDot.vue_vue&type=template&id=75d1a520&lang.js +0 -36
  327. package/lib/esm/components/tabs/Tab.vue_vue&type=script&lang.js +0 -27
  328. package/lib/esm/components/tabs/Tab.vue_vue&type=template&id=42dce82e&lang.js +0 -25
  329. package/lib/esm/components/tabs/Tabs.vue_vue&type=template&id=17799e08&lang.js +0 -12
  330. package/lib/esm/components/tag/Tag.vue_vue&type=template&id=289ac1d7&lang.js +0 -83
  331. package/lib/esm/components/textarea/Textarea.vue_vue&type=script&lang.js +0 -200
  332. package/lib/esm/components/textarea/Textarea.vue_vue&type=template&id=9e7d494a&lang.js +0 -64
  333. package/lib/esm/components/toggle/Toggle.vue_vue&type=script&lang.js +0 -63
  334. package/lib/esm/components/toggle/Toggle.vue_vue&type=template&id=2dc56b20&lang.js +0 -73
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <component
3
- :is="$props.tag"
4
- v-bind="$attrs"
3
+ :is="tag"
5
4
  class="flex border-b border-gray-200 dark:border-gray-700 space-x-4"
6
5
  >
7
6
  <slot></slot>
@@ -9,14 +8,37 @@
9
8
  </template>
10
9
 
11
10
  <script>
11
+ import { reactive, computed, provide } from 'vue'
12
+
12
13
  export default {
13
14
  name: 'XTabs',
14
15
 
15
16
  props: {
17
+ modelValue: {
18
+ type: [String, Number],
19
+ default: null,
20
+ },
16
21
  tag: {
17
22
  type: String,
18
23
  default: 'ul',
19
24
  },
20
25
  },
26
+
27
+ emits: ['update:modelValue'],
28
+
29
+ setup(props, { emit }) {
30
+ const state = reactive({
31
+ active: computed(() => props.modelValue),
32
+ })
33
+
34
+ provide('tabs', {
35
+ state,
36
+ activateTab,
37
+ })
38
+
39
+ function activateTab(tab) {
40
+ emit('update:modelValue', tab)
41
+ }
42
+ },
21
43
  }
22
44
  </script>
@@ -1,45 +1,33 @@
1
1
  <template>
2
2
  <component
3
- :is="$props.tag"
4
- v-bind="$attrs"
3
+ :is="tag"
5
4
  class="inline-block leading-none"
6
5
  :class="
7
6
  [
7
+ [`bg-${color}-200 text-${color}-900 border-${color}-900`],
8
8
  {
9
9
  // variant
10
- '!bg-transparent border': $props.outlined,
11
-
12
- // color
13
- 'bg-blue-200 text-blue-900 border-blue-900': $props.color === 'blue',
14
- 'bg-gray-200 text-gray-900 border-gray-900': $props.color === 'gray',
15
- 'bg-green-200 text-green-900 border-green-900': $props.color === 'green',
16
- 'bg-indigo-200 text-indigo-900 border-indigo-900': $props.color === 'indigo',
17
- 'bg-pink-200 text-pink-900 border-pink-900': $props.color === 'pink',
18
- 'bg-primary-200 text-primary-900 border-primary-900': $props.color === 'primary',
19
- 'bg-secondary-200 text-secondary-900 border-secondary-900': $props.color === 'secondary',
20
- 'bg-purple-200 text-purple-900 border-purple-900': $props.color === 'purple',
21
- 'bg-red-200 text-red-900 border-red-900': $props.color === 'red',
22
- 'bg-yellow-200 text-yellow-900 border-yellow-900': $props.color === 'yellow',
10
+ '!bg-transparent border': outlined,
23
11
 
24
12
  // size
25
- 'py-1': $props.size === 'auto',
26
- 'px-2 py-1 text-xs': $props.size === 'xs',
27
- 'px-2 py-1 text-sm': $props.size === 'sm',
28
- 'px-3 py-2': !['auto', 'xs', 'sm', 'lg', 'xl'].includes($props.size),
29
- 'px-4 py-3 text-lg': $props.size === 'lg',
30
- 'px-6 py-6 text-xl': $props.size === 'xl',
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',
31
19
 
32
20
  // radius
33
- 'rounded-full': $props.radius === 'full',
34
- 'rounded-lg': $props.radius === 'lg',
35
- 'rounded-md': $props.radius === 'md',
36
- 'rounded-sm': $props.radius === 'sm',
37
- 'rounded': $props.radius === 'rounded',
21
+ 'rounded-full': radius === 'full',
22
+ 'rounded-lg': radius === 'lg',
23
+ 'rounded-md': radius === 'md',
24
+ 'rounded-sm': radius === 'sm',
25
+ 'rounded': radius === 'rounded',
38
26
  },
39
27
  ]"
40
28
  >
41
29
  <span
42
- v-if="$props.removable"
30
+ v-if="removable"
43
31
  class="flex items-center"
44
32
  >
45
33
  <slot></slot>
@@ -52,8 +40,8 @@
52
40
  stroke-linecap="round"
53
41
  fill="none"
54
42
  role="presentation"
55
- class="stroke-2 w-4 h-4 ml-1 cursor-pointer hover:text-gray-700 transition-colors duration-150 ease-in-out"
56
- v-on="listeners.remove ? { click: listeners.remove } : null"
43
+ 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')"
57
45
  >
58
46
  <line x1="18" y1="6" x2="6" y2="18" />
59
47
  <line x1="6" y1="6" x2="18" y2="18" />
@@ -67,31 +55,13 @@
67
55
  </template>
68
56
 
69
57
  <script>
70
- const validator = {
71
- color: [
72
- 'blue',
73
- 'gray',
74
- 'green',
75
- 'indigo',
76
- 'pink',
77
- 'primary',
78
- 'secondary',
79
- 'purple',
80
- 'red',
81
- 'yellow',
82
- ],
83
- }
84
-
85
58
  export default {
86
59
  name: 'XTag',
87
60
 
88
- validator,
89
-
90
61
  props: {
91
62
  color: {
92
63
  type: String,
93
64
  default: 'gray',
94
- validator: (value) => validator.color.includes(value),
95
65
  },
96
66
 
97
67
  radius: {
@@ -1,8 +1,5 @@
1
1
  <template>
2
- <label
3
- class="block mb-1 relative"
4
- :class="hideDetails ? 'pb-2' : 'pb-6'"
5
- >
2
+ <label class="inline-block mb-1 relative">
6
3
  <p
7
4
  v-if="label"
8
5
  class="font-medium text-gray-800 dark:text-gray-200 mb-1"
@@ -16,15 +13,12 @@
16
13
  ></p>
17
14
 
18
15
  <textarea
19
- ref="input"
16
+ ref="focusRef"
20
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
21
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"
22
19
  :class="[
23
20
  disabled ? 'bg-gray-200 dark:bg-gray-800 cursor-not-allowed' : 'bg-white dark:bg-gray-900',
24
- flat ? 'p-0 bg-transparent' : {
25
- // shadow
26
- 'border shadow': true,
27
-
21
+ {
28
22
  // size
29
23
  'py-1': size === 'auto',
30
24
  'px-2 py-1 text-xs': size === 'xs',
@@ -33,6 +27,7 @@
33
27
  'px-4 py-3 text-lg': size === 'lg',
34
28
  'px-6 py-6 text-xl': size === 'xl',
35
29
  },
30
+ flat ? '!p-0 !bg-transparent' : 'border shadow',
36
31
  {
37
32
  // error
38
33
  'border-error-500 focus:border-error-500 dark:focus:border-error-500': errorInternal,
@@ -40,14 +35,18 @@
40
35
  inputClass,
41
36
  ]"
42
37
  :disabled="disabled"
38
+ :max="max"
43
39
  :maxlength="maxlength"
40
+ :min="min"
41
+ :dir="dir"
42
+ :minlength="minlength"
44
43
  :name="name"
45
44
  :placeholder="placeholder"
46
45
  :readonly="readonly"
47
- :value="value"
48
-
49
- v-on="listeners"
46
+ :value="modelValue"
47
+ v-on="inputListeners"
50
48
  @keydown="onKeyDown"
49
+ @input="onInput"
51
50
  ></textarea>
52
51
 
53
52
  <p v-if="errorInternal" class="text-sm text-error-500 mt-1" v-text="errorInternal"></p>
@@ -55,51 +54,47 @@
55
54
  </template>
56
55
 
57
56
  <script>
57
+ import { withProps, withValidator, withEmits, useInputtable } from '../../composables/inputtable'
58
+
58
59
  export default {
59
60
  name: 'XTextarea',
60
61
 
61
- props: {
62
- disabled: {
63
- default: false,
64
- type: Boolean,
65
- },
62
+ validator: withValidator(),
66
63
 
67
- validateOnInput: {
68
- type: Boolean,
69
- default: true,
70
- },
71
-
72
- hideDetails: {
73
- type: Boolean,
74
- default: false,
75
- },
64
+ props: {
65
+ ...withProps(),
76
66
 
77
67
  label: {
78
68
  type: String,
79
69
  default: '',
80
70
  },
81
71
 
82
- maxlength: {
72
+ dir: {
73
+ type: String,
74
+ default: 'ltr',
75
+ },
76
+
77
+ max: {
83
78
  type: Number,
84
79
  default: null,
85
80
  },
86
81
 
87
- name: {
88
- type: String,
82
+ maxlength: {
83
+ type: Number,
89
84
  default: null,
90
85
  },
91
86
 
92
- placeholder: {
93
- type: String,
87
+ min: {
88
+ type: Number,
94
89
  default: null,
95
90
  },
96
91
 
97
- readonly: {
98
- type: Boolean,
92
+ minlength: {
93
+ type: Number,
99
94
  default: null,
100
95
  },
101
96
 
102
- size: {
97
+ placeholder: {
103
98
  type: String,
104
99
  default: null,
105
100
  },
@@ -114,63 +109,22 @@ export default {
114
109
  default: false,
115
110
  },
116
111
 
117
- flat: {
118
- type: Boolean,
119
- default: false,
120
- },
121
-
122
112
  inputClass: {
123
113
  type: String,
124
114
  default: '',
125
115
  },
126
-
127
- value: {
128
- type: [String, Number],
129
- default: null,
130
- },
131
-
132
- error: {
133
- type: String,
134
- default: '',
135
- },
136
-
137
- rules: {
138
- type: Array,
139
- default: () => [],
140
- },
141
116
  },
142
117
 
143
- data() {
118
+ emits: withEmits(),
119
+
120
+ setup(props, { attrs, emit }) {
144
121
  return {
145
- isFirstValidation: true,
146
- currentType: this.type,
147
- errorInternal: this.error,
122
+ ...useInputtable(props, { attrs, emit }),
148
123
  }
149
124
  },
150
125
 
151
- computed: {
152
- listeners() {
153
- return {
154
- // Add listeners from parent
155
- ...this.$attrs,
156
- // Ensure that the component works with v-model
157
- blur: (event) => this.$emit('blur', event),
158
- focus: (event) => this.$emit('focus', event),
159
- input: (event) => {
160
- if (this.validateOnInput && !this.isFirstValidation) this.validate(event.target.value)
161
- this.resize()
162
- this.$emit('input', event.target.value)
163
- },
164
- change: (event) => this.$emit('change', event),
165
- }
166
- },
167
- },
168
-
169
126
  watch: {
170
- error(val) {
171
- this.errorInternal = val
172
- },
173
- value() {
127
+ modelValue() {
174
128
  setTimeout(this.resize)
175
129
  },
176
130
  size() {
@@ -188,6 +142,9 @@ export default {
188
142
  },
189
143
 
190
144
  methods: {
145
+ onInput() {
146
+ this.resize()
147
+ },
191
148
  onKeyDown(e) {
192
149
  if (this.preventEnter && e.keyCode === 13) {
193
150
  e.preventDefault()
@@ -198,58 +155,11 @@ export default {
198
155
  },
199
156
  resize() {
200
157
  if (this.adjustToText) {
201
- const { input } = this.$refs
202
-
203
- input.style.height = '1px'
204
- input.style.height = (2 + input.scrollHeight) + 'px'
205
- }
206
- },
207
- reset() {
208
- this.errorInternal = ''
209
- this.isFirstValidation = true
210
- this.$emit('input', '')
211
- },
212
- focus() {
213
- this.$refs.input.focus()
214
- },
215
- validate(val) {
216
- val = val || this.value
217
-
218
- this.isFirstValidation = false
219
-
220
- for (let i = 0; i < this.rules.length; i++) {
221
- const item = this.rules[i]
158
+ const { focusRef } = this.$refs
222
159
 
223
- let isValid = true
224
-
225
- // Direct Function
226
- if (typeof item === 'function') {
227
- const rule = item
228
-
229
- isValid = rule(val)
230
- } else if (Array.isArray(item) && item.length === 2) {
231
- // Rule array [function, options]
232
- const { 0: rule, 1: options } = item
233
-
234
- isValid = rule(val, options)
235
- } else {
236
- // Rule object { fn, options }
237
- const rule = item.fn
238
- const { options } = item
239
-
240
- isValid = rule(val, options)
241
- }
242
-
243
- if (isValid !== true) {
244
- this.errorInternal = isValid
245
-
246
- return false
247
- }
160
+ focusRef.style.height = '1px'
161
+ focusRef.style.height = (2 + focusRef.scrollHeight) + 'px'
248
162
  }
249
-
250
- this.errorInternal = ''
251
-
252
- return true
253
163
  },
254
164
  },
255
165
  }
@@ -1,129 +1,126 @@
1
1
  <template>
2
2
  <label
3
- :class="[
4
- !disabled ? 'cursor-pointer' : 'cursor-not-allowed',
5
- label ? 'flex items-center' : 'inline-block',
6
- ]"
3
+ class="inline-block mb-1 relative pb-2"
4
+ :class="[!disabled ? 'cursor-pointer' : 'cursor-not-allowed']"
7
5
  >
8
- <div
9
- class="rounded-full transition-colors duration-300"
10
- :class="[
11
- {
12
- // shadow
13
- 'border shadow': !flat,
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-primary-200 border-primary-200': !disabled && checked,
23
- }
24
- ]"
25
- >
26
- <input
27
- :id="id"
28
- v-model="checked"
29
- :aria-checked="checked ? 'true' : 'false'"
30
- :aria-disabled="disabled ? 'true' : null"
31
- :disabled="disabled"
32
- :name="name"
33
- :required="required"
34
- type="checkbox"
35
- class="hidden"
36
- />
37
-
6
+ <div class="flex items-center">
38
7
  <div
39
- class="rounded-full shadow transform transition duration-300"
8
+ class="rounded-full transition-colors duration-300"
40
9
  :class="[
41
10
  {
42
- 'h-4 w-4': size === 'sm' || size === 'xs',
43
- 'h-5 w-5': !['xs', 'sm', 'lg', 'xl'].includes(size),
44
- 'h-6 w-6': size === 'lg',
45
- 'h-7 w-7': size === 'xl',
46
- 'translate-x-full': checked,
47
- 'bg-gray-200 dark:bg-gray-200': disabled,
48
- 'bg-white': !disabled && !checked,
49
- 'bg-primary-500': !disabled && checked,
50
- },
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
+ }
51
24
  ]"
52
- ></div>
25
+ >
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
+ <div
41
+ v-else
42
+ class="rounded-full shadow transform transition duration-300 flex-shrink-0"
43
+ :class="[
44
+ {
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
+ },
54
+ ]"
55
+ ></div>
56
+ </div>
57
+ <span
58
+ v-if="label"
59
+ class="pl-2 font-medium text-gray-800 dark:text-gray-200"
60
+ :class="{
61
+ 'text-xs': size === 'xs',
62
+ 'text-sm': size === 'sm',
63
+ 'text-lg': size === 'lg',
64
+ 'text-xl': size === 'xl',
65
+ }"
66
+ v-text="label"
67
+ >
68
+ </span>
53
69
  </div>
54
- <span
55
- v-if="label"
56
- class="pl-2 font-medium text-gray-800 dark:text-gray-200"
57
- :class="{
58
- 'text-xs': size === 'xs',
59
- 'text-sm': size === 'sm',
60
- 'text-lg': size === 'lg',
61
- 'text-xl': size === 'xl',
62
- }"
63
- v-text="label"
64
- >
65
- </span>
70
+ <p v-if="errorInternal" class="text-sm text-error-500 mt-1" v-text="errorInternal"></p>
66
71
  </label>
67
72
  </template>
68
73
 
69
74
  <script>
75
+ import { withProps, withValidator, withEmits, useInputtable } from '../../composables/inputtable'
76
+ import XSpinner from '../spinner/Spinner.vue'
77
+
70
78
  export default {
71
79
  name: 'XToggle',
72
80
 
73
- model: {
74
- prop: 'option',
75
- event: 'change',
81
+ components: {
82
+ XSpinner,
83
+ },
84
+
85
+ validator: {
86
+ ...withValidator(),
76
87
  },
77
88
 
78
89
  props: {
79
- disabled: {
80
- type: Boolean,
81
- default: false,
82
- },
90
+ ...withProps(),
83
91
 
84
92
  id: {
85
93
  type: String,
86
94
  default: null,
87
95
  },
88
96
 
89
- option: {
90
- type: Boolean,
91
- default: false,
92
- },
93
-
94
- name: {
95
- type: String,
96
- default: null,
97
- },
98
-
99
97
  label: {
100
98
  type: String,
101
99
  default: null,
102
100
  },
103
101
 
104
- required: {
102
+ glow: {
105
103
  type: Boolean,
106
104
  default: false,
107
105
  },
106
+ },
108
107
 
109
- flat: {
110
- type: Boolean,
111
- default: false,
112
- },
108
+ emits: withEmits(false),
113
109
 
114
- size: {
115
- type: String,
116
- default: null,
117
- },
110
+ setup(props, { attrs, emit }) {
111
+ return {
112
+ ...useInputtable(props, { attrs, emit, useListeners: false }),
113
+ }
118
114
  },
119
115
 
120
116
  computed: {
121
117
  checked: {
122
118
  get() {
123
- return this.option
119
+ return this.modelValue
124
120
  },
121
+
125
122
  set(val) {
126
- this.$emit('change', val)
123
+ this.$emit('update:modelValue', val)
127
124
  },
128
125
  },
129
126
  },
@@ -0,0 +1,21 @@
1
+ const validator = {
2
+ size: ['auto', 'xs', 'sm', 'md', 'lg', 'xl'],
3
+ }
4
+
5
+ export const withProps = () => ({
6
+ size: {
7
+ type: String,
8
+ default: null,
9
+ validator: (value) => validator.size.includes(value),
10
+ },
11
+ color: {
12
+ type: String,
13
+ default: 'primary',
14
+ },
15
+ flat: {
16
+ type: Boolean,
17
+ default: false,
18
+ },
19
+ })
20
+
21
+ export const withValidator = () => validator