@indielayer/ui 0.2.4 → 1.0.0-alpha.3

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 +6172 -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 +50 -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 -92
  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 -135
  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 -69
  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 -122
  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 -67
  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 -120
  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 -4361
  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 -19
  396. package/src/tailwind.preset.js +0 -24
@@ -0,0 +1,277 @@
1
+ <script lang="ts">
2
+ import { defineComponent, ref, computed, watch, onMounted, onBeforeUnmount } from 'vue'
3
+ import { useCSS } from '../../composables/css'
4
+ import { useColors } from '../../composables/colors'
5
+ import { useCommon } from '../../composables/common'
6
+
7
+ import XSpinner from '../../components/spinner/Spinner.vue'
8
+ import XLink from '../../components/link/Link.vue'
9
+
10
+ export default defineComponent({
11
+ name: 'XMenuItem',
12
+
13
+ components: {
14
+ XSpinner,
15
+ XLink,
16
+ },
17
+
18
+ props: {
19
+ ...useCommon.props(),
20
+ ...useColors.props('primary'),
21
+ item: {
22
+ type: Object,
23
+ default: () => {},
24
+ },
25
+ active: Boolean,
26
+ onClick: Function,
27
+ inactive: Boolean,
28
+ value: [Number,String],
29
+ to: String,
30
+ exact: Boolean,
31
+ href: String,
32
+ target: String,
33
+ label: String,
34
+ icon: String,
35
+ iconRight: String,
36
+ loading: Boolean,
37
+ rounded: Boolean,
38
+ filled: Boolean,
39
+ selected: Boolean,
40
+ disabled: Boolean,
41
+ },
42
+
43
+ emits: ['active', 'click'],
44
+
45
+ setup(props, { emit }) {
46
+ const elRef = ref()
47
+ const isActive = ref(false)
48
+
49
+ const filled = computed(() => props.filled || props.item.filled)
50
+ const cItem = computed(() => ({
51
+ ...props,
52
+ ...props.item,
53
+ }))
54
+
55
+ const htmlTag = cItem.value.to || cItem.value.href ? 'x-link' : 'div'
56
+ const isSupported = window && 'MutationObserver' in window
57
+ const classObserver = isSupported ? new MutationObserver(check) : null
58
+
59
+ onMounted(() => {
60
+ if (!elRef.value) return
61
+
62
+ check()
63
+
64
+ if (isSupported && htmlTag === 'x-link') classObserver?.observe(elRef.value.$el, {
65
+ attributes: true,
66
+ attributeFilter: ['class'],
67
+ })
68
+ })
69
+
70
+ onBeforeUnmount(() => {
71
+ if (classObserver) classObserver.disconnect()
72
+ })
73
+
74
+ function onItemClick(e: Event) {
75
+ cItem.value.onClick && cItem.value.onClick(e)
76
+ emit('click', e)
77
+ }
78
+
79
+ function check() {
80
+ if (elRef.value && elRef.value.$el && (cItem.value.href || cItem.value.to)) {
81
+ const active = elRef.value.$el.classList.contains(cItem.value.exact ? 'router-link-exact-active' : 'router-link-active')
82
+
83
+ isActive.value = active
84
+ } else {
85
+ isActive.value = cItem.value.active
86
+ }
87
+ }
88
+
89
+ watch(() => isActive.value, (val) => {
90
+ if (val) emit('active')
91
+ })
92
+
93
+ watch(() => cItem.value.active, (val) => {
94
+ isActive.value = val
95
+ })
96
+
97
+ const css = useCSS()
98
+ const colors = useColors()
99
+ const cssVariables = computed(() => {
100
+ const color = colors.getPalette(cItem.value.color || 'gray')
101
+ const gray = colors.getPalette('gray')
102
+
103
+ if (cItem.value.disabled) return css.get('text', gray[300])
104
+
105
+ if (filled.value) {
106
+ if (isActive.value) {
107
+ return css.variables({
108
+ bg: props.selected ? color[100] : color[50],
109
+ text: color[500],
110
+ hover: {
111
+ bg: props.selected ? color[100] : color[50],
112
+ text: color[500],
113
+ },
114
+ dark: {
115
+ bg: props.selected ? color[800] : color[700],
116
+ text: color[100],
117
+ hover: {
118
+ bg: props.selected ? color[800] : color[700],
119
+ text: color[100],
120
+ },
121
+ },
122
+ })
123
+ }
124
+
125
+ return css.variables({
126
+ bg: props.selected ? gray[50] : 'transparent',
127
+ text: gray[800],
128
+ hover: {
129
+ bg: gray[50],
130
+ text: gray[900],
131
+ },
132
+ dark: {
133
+ bg: props.selected ? gray[800] : 'transparent',
134
+ text: gray[200],
135
+ hover: {
136
+ bg: gray[800],
137
+ text: gray[100],
138
+ },
139
+ },
140
+ })
141
+ }
142
+
143
+ if (isActive.value) {
144
+ return css.variables({
145
+ text: color[500],
146
+ hover: {
147
+ text: color[500],
148
+ border: color[500],
149
+ },
150
+ dark: {
151
+ text: color[500],
152
+ hover: {
153
+ text: color[500],
154
+ border: color[500],
155
+ },
156
+ },
157
+ })
158
+ }
159
+
160
+ return css.variables({
161
+ text: gray[800],
162
+ hover: {
163
+ text: gray[900],
164
+ border: gray[300],
165
+ },
166
+ dark: {
167
+ text: gray[300],
168
+ hover: {
169
+ text: gray[200],
170
+ border: gray[800],
171
+ },
172
+ },
173
+ })
174
+ })
175
+
176
+ return {
177
+ elRef,
178
+ cItem,
179
+ htmlTag,
180
+ isActive,
181
+ cssVariables,
182
+ onItemClick,
183
+ }
184
+ },
185
+ })
186
+ </script>
187
+
188
+ <template>
189
+ <component
190
+ :is="htmlTag"
191
+ ref="elRef"
192
+ :to="cItem.to"
193
+ :href="cItem.href"
194
+ :target="cItem.target"
195
+ :color="cItem.color"
196
+ class="relative flex items-center whitespace-nowrap px-3 mt-1"
197
+ :style="cssVariables"
198
+ :class="[
199
+ $style['menu-item'],
200
+ [isActive ? $style['menu-item--active'] : ''],
201
+ {
202
+ 'font-medium': isActive,
203
+ 'flex items-center': $slots.prefix || $slots.suffix,
204
+ 'cursor-pointer': !cItem.disabled && !inactive,
205
+
206
+ // size
207
+ 'py-1 text-xs': cItem.size === 'xs',
208
+ 'py-2 text-sm': cItem.size === 'sm',
209
+ 'py-1.5': !cItem.size || !['xs', 'sm', 'lg', 'xl'].includes(cItem.size),
210
+ 'py-3': cItem.size === 'lg',
211
+ 'py-4 text-lg': cItem.size === 'xl',
212
+
213
+ 'rounded my-[1px]': rounded
214
+ },
215
+ ]"
216
+ :title="cItem.label"
217
+ :alt="cItem.label"
218
+ @click="onItemClick"
219
+ >
220
+ <span v-if="$slots.prefix" class="mr-2 shrink-0">
221
+ <slot name="prefix"></slot>
222
+ </span>
223
+ <x-icon v-else-if="cItem.icon" :size="cItem.size" :icon="cItem.icon" class="mr-2 shrink-0"/>
224
+
225
+ <span class="flex-1 truncate">
226
+ <slot>{{ cItem.label }}</slot>
227
+ </span>
228
+
229
+ <span class="ml-1 shrink-0">
230
+ <x-spinner v-if="cItem.loading" :size="cItem.size" />
231
+ <template v-else>
232
+ <span v-if="$slots.suffix">
233
+ <slot name="suffix"></slot>
234
+ </span>
235
+ <x-icon v-else-if="cItem.iconRight" :size="cItem.size" :icon="cItem.iconRight"/>
236
+ </template>
237
+ </span>
238
+ </component>
239
+ </template>
240
+
241
+ <style lang="postcss" module scoped>
242
+ .menu-item {
243
+ color: var(--x-text);
244
+ background-color: var(--x-bg);
245
+
246
+ &:before {
247
+ content: '';
248
+ position: absolute;
249
+ left: -1px;
250
+ height: 100%;
251
+ width: 1px;
252
+ background-color: transparent;
253
+ }
254
+
255
+ &:hover {
256
+ color: var(--x-text-hover, var(--x-text));
257
+ background-color: var(--x-bg-hover, var(--x-bg));
258
+ }
259
+
260
+ :global(.dark) & {
261
+ color: var(--x-dark-text);
262
+ background: var(--x-dark-bg);
263
+ &:hover {
264
+ color: var(--x-dark-text-hover, var(--x-dark-text));
265
+ background-color: var(--x-dark-bg-hover, var(--x-dark-bg));
266
+ }
267
+ }
268
+ }
269
+
270
+ :global(.x-menu-inner) {
271
+ .menu-item {
272
+ &:hover:before, &--active:before {
273
+ background-color: var(--x-border-hover);
274
+ }
275
+ }
276
+ }
277
+ </style>
@@ -1,111 +1,175 @@
1
- <template>
2
- <div
3
- class="fixed z-40 inset-0 overflow-y-auto transition-all"
4
- :class="[
5
- isOpen ? 'visible' : 'invisible ease-in duration-100'
6
- ]"
7
- >
8
- <div
9
- class="fixed inset-0 bg-gray-500 dark:bg-gray-600 transition-opacity"
10
- :class="[
11
- isOpen ? 'ease-out duration-200 opacity-75' : 'ease-in duration-100 opacity-0',
12
- ]"
13
- @click.self="close()"
14
- ></div>
1
+ <script lang="ts">
2
+ import { computed, defineComponent, ref, watch, type PropType } from 'vue'
15
3
 
16
- <div class="flex items-end sm:items-center justify-center min-h-full p-4 sm:p-6">
17
- <div
18
- class="relative inline-block bg-white dark:bg-gray-900 rounded-lg shadow-xl transform transition-all"
19
- :class="[
20
- {
21
- 'w-full': size === 'auto',
22
- 'sm:max-w-xs w-full': size === 'xs',
23
- 'sm:max-w-sm w-full': size === 'sm',
24
- 'sm:max-w-lg w-full': !['auto', 'full', 'xs', 'sm', 'lg', 'xl'].includes(size),
25
- 'sm:max-w-xl w-full': size === 'lg',
26
- 'sm:max-w-3xl w-full': size === 'xl',
27
- 'w-full': size === 'full',
28
- },
29
- isOpen ?
30
- 'ease-out duration-200 opacity-100 translate-y-0 sm:scale-100'
31
- : 'ease-in duration-200 opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95',
32
- ]"
33
- role="dialog"
34
- aria-modal="true"
35
- aria-labelledby="modal-headline"
36
- >
37
- <slot></slot>
38
- <div v-if="showClose" class="absolute rounded-md bg-white -top-4 -right-2 w-8 h-8 shadow-md flex items-center justify-center cursor-pointer" @click="close()">
39
- <svg
40
- width="24"
41
- height="24"
42
- viewBox="0 0 24 24"
43
- stroke="currentColor"
44
- stroke-linejoin="round"
45
- stroke-linecap="round"
46
- fill="none"
47
- role="presentation"
48
- class="stroke-2 w-4 h-4"
49
- >
50
- <line x1="18" y1="6" x2="6" y2="18"/>
51
- <line x1="6" y1="6" x2="18" y2="18"/>
52
- </svg>
53
- </div>
54
- </div>
55
- </div>
56
- </div>
57
- </template>
4
+ import { onClickOutside, useEventListener } from '@vueuse/core'
58
5
 
59
- <script>
60
- export default {
6
+ import XScroll from '../../components/scroll/Scroll.vue'
7
+
8
+ export default defineComponent({
61
9
  name: 'XModal',
62
10
 
11
+ components: {
12
+ XScroll,
13
+ },
14
+
63
15
  props: {
64
16
  size: {
65
- type: String,
66
- default: null,
67
- },
68
- showClose: {
69
- type: Boolean,
70
- default: false,
17
+ type: String as PropType<'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full'>,
18
+ default: 'md',
71
19
  },
20
+ modelValue: Boolean,
21
+ showClose: Boolean,
22
+ backdrop: Boolean,
72
23
  },
73
24
 
74
- data() {
75
- return {
76
- isOpen: false,
77
- }
78
- },
25
+ emits: ['update:modelValue'],
79
26
 
80
- beforeMount() {
81
- document.addEventListener('keydown', this.onKeydown)
82
- },
27
+ expose: ['open', 'close'],
83
28
 
84
- beforeUnmount() {
85
- document.removeEventListener('keydown', this.onKeydown)
86
- },
29
+ setup(props, { emit }) {
30
+ const value = ref(props.modelValue)
31
+ const visible = ref(false)
32
+ const modalRef = ref<HTMLElement | null>(null)
87
33
 
88
- methods: {
89
- close() {
90
- this.isOpen = false
91
- this.$emit('close')
92
- },
34
+ const classes = computed(() => {
35
+ if (props.size === 'full') return 'w-full'
36
+ else if (props.size === 'xs') return 'sm:max-w-xs w-full'
37
+ else if (props.size === 'sm') return 'sm:max-w-sm w-full'
38
+ else if (props.size === 'lg') return 'sm:max-w-xl w-full'
39
+ else if (props.size === 'xl') return 'sm:max-w-3xl w-full'
40
+
41
+ return 'sm:max-w-lg w-full'
42
+ })
93
43
 
94
- onKeydown(event) {
95
- if (event.keyCode === 27 && this.isOpen) {
96
- this.close()
44
+ let stopClickOutside: undefined | (()=> void) = undefined
45
+
46
+ watch(value, (val) => {
47
+ if (stopClickOutside) {
48
+ stopClickOutside()
49
+ stopClickOutside = undefined
97
50
  }
98
- },
99
51
 
100
- open() {
101
- this.isOpen = true
102
- this.$emit('open')
103
- },
52
+ if (val) {
53
+ setTimeout(() => {
54
+ stopClickOutside = onClickOutside(modalRef, close)
55
+ })
56
+ }
57
+ })
104
58
 
105
- toggle() {
106
- this.isOpen = !this.isOpen
107
- this.$emit('toggle', this.isOpen)
108
- },
59
+ watch(() => props.modelValue, (val) => {
60
+ if (val) {
61
+ value.value = val
62
+
63
+ setTimeout(() => {
64
+ visible.value = val
65
+ })
66
+ } else {
67
+ visible.value = val
68
+
69
+ setTimeout(() => {
70
+ value.value = val
71
+ }, 150)
72
+ }
73
+ })
74
+
75
+ useEventListener(document, 'keydown', onKeyDown)
76
+
77
+ function onKeyDown(event: KeyboardEvent) {
78
+ if (event.key === 'Escape' && value.value) close()
79
+ }
80
+
81
+ function close() {
82
+ visible.value = false
83
+
84
+ setTimeout(() => {
85
+ value.value = false
86
+ emit('update:modelValue', false)
87
+ }, 150)
88
+ }
89
+
90
+ function open() {
91
+ value.value = true
92
+ emit('update:modelValue', true)
93
+
94
+ setTimeout(() => {
95
+ visible.value = true
96
+ })
97
+ }
98
+
99
+ const closeIcon = '<path d="M6 18L18 6M6 6l12 12" />'
100
+
101
+ return {
102
+ closeIcon,
103
+ modalRef,
104
+ classes,
105
+ visible,
106
+ value,
107
+ close,
108
+ open,
109
+ }
109
110
  },
110
- }
111
+ })
111
112
  </script>
113
+
114
+ <template>
115
+ <Teleport to="body">
116
+ <div
117
+ v-if="value"
118
+ class="fixed z-40 inset-0 overflow-y-auto transition-all"
119
+ :class="[
120
+ visible ? 'visible' : 'invisible ease-in duration-100'
121
+ ]"
122
+ >
123
+ <div
124
+ v-if="backdrop"
125
+ class="fixed inset-0 bg-gray-500 dark:bg-black transition-opacity"
126
+ :class="[
127
+ visible ? 'ease-out duration-200 opacity-30 dark:opacity-70' : 'ease-in duration-100 opacity-0',
128
+ ]"
129
+ ></div>
130
+
131
+ <div class="flex items-end sm:items-center justify-center p-4 sm:p-6 h-screen">
132
+ <div
133
+ ref="modalRef"
134
+ class="relative flex flex-col z-10 bg-white dark:bg-gray-900 rounded-md shadow-lg transform transition-all overflow-hidden max-h-full"
135
+ :class="[
136
+ classes,
137
+ visible ?
138
+ 'ease-out duration-200 opacity-100 translate-y-0 sm:scale-100'
139
+ : 'ease-in duration-200 opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95',
140
+ ]"
141
+ role="dialog"
142
+ aria-modal="true"
143
+ aria-labelledby="modal-headline"
144
+ >
145
+ <div
146
+ v-if="showClose"
147
+ class="absolute p-1 top-4 right-4 rounded-full bg-opacity-10 hover:bg-opacity-30 cursor-pointer"
148
+ :class="[
149
+ $slots.image ? 'bg-gray-900 text-white' : 'bg-gray-500 text-gray-800 dark:text-gray-300'
150
+ ]"
151
+ @click="close"
152
+ >
153
+ <x-icon :icon="closeIcon"/>
154
+ </div>
155
+ <slot name="image"></slot>
156
+ <div v-if="$slots.header" class="text-lg font-semibold px-6 py-4 border-b">
157
+ <slot name="header"></slot>
158
+ </div>
159
+ <x-scroll
160
+ v-if="$slots.default"
161
+ :scrollbar="false"
162
+ vertical
163
+ >
164
+ <div class="px-6 py-4">
165
+ <slot></slot>
166
+ </div>
167
+ </x-scroll>
168
+ <div v-if="$slots.actions" class="bg-slate-50 dark:bg-gray-800 p-4">
169
+ <slot name="actions"></slot>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ </Teleport>
175
+ </template>