vlite3 0.1.0 → 0.1.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 (465) hide show
  1. package/_virtual/_plugin-vue_export-helper.js +9 -0
  2. package/components/Accordion/Accordion.vue.d.ts +44 -0
  3. package/components/Accordion/Accordion.vue.js +95 -0
  4. package/components/Accordion/Accordion.vue2.js +4 -0
  5. package/components/Accordion/AccordionContent.vue.d.ts +22 -0
  6. package/components/Accordion/AccordionContent.vue.js +7 -0
  7. package/components/Accordion/AccordionContent.vue2.js +47 -0
  8. package/components/Accordion/AccordionItem.vue.d.ts +56 -0
  9. package/components/Accordion/AccordionItem.vue.js +115 -0
  10. package/components/Accordion/AccordionItem.vue2.js +4 -0
  11. package/components/Accordion/AccordionTrigger.vue.d.ts +43 -0
  12. package/components/Accordion/AccordionTrigger.vue.js +94 -0
  13. package/components/Accordion/AccordionTrigger.vue2.js +4 -0
  14. package/components/Accordion/index.d.ts +5 -0
  15. package/components/Accordion/types.d.ts +33 -0
  16. package/components/Alert.vue.d.ts +36 -0
  17. package/components/Alert.vue.js +84 -0
  18. package/components/Alert.vue2.js +4 -0
  19. package/components/Avatar.vue.d.ts +32 -0
  20. package/components/Avatar.vue.js +78 -0
  21. package/components/Avatar.vue2.js +4 -0
  22. package/components/AvatarUploader/AvatarUploader.vue.d.ts +32 -0
  23. package/components/AvatarUploader/AvatarUploader.vue.js +99 -0
  24. package/components/AvatarUploader/AvatarUploader.vue2.js +4 -0
  25. package/{src/components/AvatarUploader/index.ts → components/AvatarUploader/index.d.ts} +2 -2
  26. package/components/Badge.vue.d.ts +25 -0
  27. package/components/Badge.vue.js +27 -0
  28. package/components/Badge.vue2.js +4 -0
  29. package/components/Button.vue.d.ts +26 -0
  30. package/components/Button.vue.js +107 -0
  31. package/components/Button.vue2.js +4 -0
  32. package/components/ButtonGroup.vue.d.ts +29 -0
  33. package/components/ButtonGroup.vue.js +7 -0
  34. package/components/ButtonGroup.vue2.js +30 -0
  35. package/components/Carousel/Carousel.vue.d.ts +847 -0
  36. package/components/Carousel/Carousel.vue.js +7 -0
  37. package/components/Carousel/Carousel.vue2.js +68 -0
  38. package/components/Carousel/index.d.ts +2 -0
  39. package/components/Carousel/types.d.ts +24 -0
  40. package/components/CheckBox.vue.d.ts +27 -0
  41. package/components/CheckBox.vue.js +115 -0
  42. package/components/CheckBox.vue2.js +4 -0
  43. package/components/Chip/Chip.vue.d.ts +33 -0
  44. package/components/Chip/Chip.vue.js +113 -0
  45. package/components/Chip/Chip.vue2.js +4 -0
  46. package/components/Chip/index.d.ts +2 -0
  47. package/components/Chip/types.d.ts +12 -0
  48. package/components/ChoiceBox/ChoiceBox.vue.d.ts +32 -0
  49. package/components/ChoiceBox/ChoiceBox.vue.js +141 -0
  50. package/components/ChoiceBox/ChoiceBox.vue2.js +4 -0
  51. package/components/ChoiceBox/index.d.ts +2 -0
  52. package/components/ColorPicker/ColorIro.vue.d.ts +18 -0
  53. package/components/ColorPicker/ColorIro.vue.js +142 -0
  54. package/components/ColorPicker/ColorIro.vue3.js +5 -0
  55. package/components/ColorPicker/ColorPicker.vue.d.ts +22 -0
  56. package/components/ColorPicker/ColorPicker.vue.js +56 -0
  57. package/components/ColorPicker/ColorPicker.vue2.js +4 -0
  58. package/components/ConfirmationModal.vue.d.ts +39 -0
  59. package/components/ConfirmationModal.vue.js +55 -0
  60. package/components/ConfirmationModal.vue2.js +4 -0
  61. package/components/DataTable/DataTable.vue.d.ts +60 -0
  62. package/components/DataTable/DataTable.vue.js +7 -0
  63. package/components/DataTable/DataTable.vue2.js +310 -0
  64. package/components/DataTable/DataTableHeader.vue.d.ts +14 -0
  65. package/components/DataTable/DataTableHeader.vue.js +49 -0
  66. package/components/DataTable/DataTableHeader.vue2.js +4 -0
  67. package/components/DataTable/DataTableRow.vue.d.ts +51 -0
  68. package/components/DataTable/DataTableRow.vue.js +114 -0
  69. package/components/DataTable/DataTableRow.vue2.js +4 -0
  70. package/components/DataTable/DataTableToolbar.vue.d.ts +31 -0
  71. package/components/DataTable/DataTableToolbar.vue.js +45 -0
  72. package/components/DataTable/DataTableToolbar.vue2.js +4 -0
  73. package/components/DataTable/index.d.ts +4 -0
  74. package/components/DataTable/types.d.ts +75 -0
  75. package/components/DatePicker.vue.d.ts +44 -0
  76. package/components/DatePicker.vue.js +84 -0
  77. package/components/DatePicker.vue2.js +4 -0
  78. package/components/Dropdown/Dropdown.vue.d.ts +105 -0
  79. package/components/Dropdown/Dropdown.vue.js +206 -0
  80. package/components/Dropdown/Dropdown.vue2.js +4 -0
  81. package/components/Dropdown/DropdownBooleanItem.vue.d.ts +12 -0
  82. package/components/Dropdown/DropdownBooleanItem.vue.js +41 -0
  83. package/components/Dropdown/DropdownBooleanItem.vue2.js +4 -0
  84. package/components/Dropdown/DropdownGroupedLayout.vue.d.ts +21 -0
  85. package/components/Dropdown/DropdownGroupedLayout.vue.js +73 -0
  86. package/components/Dropdown/DropdownGroupedLayout.vue2.js +4 -0
  87. package/components/Dropdown/DropdownItem.vue.d.ts +35 -0
  88. package/components/Dropdown/DropdownItem.vue.js +56 -0
  89. package/components/Dropdown/DropdownItem.vue2.js +4 -0
  90. package/components/Dropdown/DropdownMenu.vue.d.ts +73 -0
  91. package/components/Dropdown/DropdownMenu.vue.js +232 -0
  92. package/components/Dropdown/DropdownMenu.vue2.js +4 -0
  93. package/components/Dropdown/DropdownTrigger.vue.d.ts +15 -0
  94. package/components/Dropdown/DropdownTrigger.vue.js +26 -0
  95. package/components/Dropdown/DropdownTrigger.vue2.js +4 -0
  96. package/components/Dropdown/composables/useDropdownIds.d.ts +5 -0
  97. package/components/Dropdown/composables/useDropdownIds.js +20 -0
  98. package/components/Dropdown/composables/useDropdownNavigation.d.ts +19 -0
  99. package/components/Dropdown/composables/useDropdownNavigation.js +49 -0
  100. package/components/Dropdown/composables/useDropdownSelection.d.ts +16 -0
  101. package/components/Dropdown/composables/useDropdownSelection.js +41 -0
  102. package/components/Dropdown/index.d.ts +6 -0
  103. package/components/FilePicker/FilePicker.vue.d.ts +65 -0
  104. package/components/FilePicker/FilePicker.vue.js +285 -0
  105. package/components/FilePicker/FilePicker.vue2.js +4 -0
  106. package/components/FilePicker/index.d.ts +2 -0
  107. package/components/FileTree/FileTree.vue.d.ts +20 -0
  108. package/components/FileTree/FileTree.vue.js +139 -0
  109. package/components/FileTree/FileTree.vue2.js +4 -0
  110. package/components/FileTree/FileTreeNode.vue.d.ts +28 -0
  111. package/components/FileTree/FileTreeNode.vue.js +184 -0
  112. package/components/FileTree/FileTreeNode.vue2.js +4 -0
  113. package/components/FileTree/index.d.ts +4 -0
  114. package/components/FileTree/types.d.ts +36 -0
  115. package/components/FileTree/useTreeSelection.d.ts +12 -0
  116. package/components/FileTree/useTreeSelection.js +25 -0
  117. package/components/Form/CustomFields.vue.d.ts +38 -0
  118. package/components/Form/CustomFields.vue.js +7 -0
  119. package/components/Form/CustomFields.vue2.js +161 -0
  120. package/components/Form/Form.vue.d.ts +94 -0
  121. package/components/Form/Form.vue.js +7 -0
  122. package/components/Form/Form.vue2.js +238 -0
  123. package/components/Form/FormField.vue.d.ts +28 -0
  124. package/components/Form/FormField.vue.js +207 -0
  125. package/components/Form/FormField.vue2.js +4 -0
  126. package/components/Form/FormFields.vue.d.ts +29 -0
  127. package/components/Form/FormFields.vue.js +7 -0
  128. package/components/Form/FormFields.vue2.js +95 -0
  129. package/components/Form/composables/useFileUpload.d.ts +24 -0
  130. package/components/Form/composables/useFileUpload.js +40 -0
  131. package/components/Form/composables/useForm.d.ts +48 -0
  132. package/components/Form/composables/useForm.js +109 -0
  133. package/components/Form/index.d.ts +9 -0
  134. package/components/Form/types.d.ts +167 -0
  135. package/components/Form/utils/form.utils.d.ts +44 -0
  136. package/components/Form/utils/form.utils.js +97 -0
  137. package/components/Heatmap/Heatmap.vue.d.ts +26 -0
  138. package/components/Heatmap/Heatmap.vue.js +7 -0
  139. package/components/Heatmap/Heatmap.vue2.js +326 -0
  140. package/components/Heatmap/index.d.ts +2 -0
  141. package/components/Heatmap/types.d.ts +66 -0
  142. package/components/Icon.vue.d.ts +7 -0
  143. package/components/Icon.vue.js +25 -0
  144. package/components/Icon.vue2.js +4 -0
  145. package/components/IconPicker.vue.d.ts +38 -0
  146. package/components/IconPicker.vue.js +124 -0
  147. package/components/IconPicker.vue2.js +4 -0
  148. package/components/Input.vue.d.ts +54 -0
  149. package/components/Input.vue.js +267 -0
  150. package/components/Input.vue2.js +4 -0
  151. package/components/Label.vue.d.ts +23 -0
  152. package/components/Label.vue.js +23 -0
  153. package/components/Label.vue2.js +4 -0
  154. package/components/Logo.vue.d.ts +2 -0
  155. package/components/Logo.vue.js +10 -0
  156. package/components/Logo.vue2.js +4 -0
  157. package/components/Masonry/Masonry.vue.d.ts +31 -0
  158. package/components/Masonry/Masonry.vue.js +7 -0
  159. package/components/Masonry/Masonry.vue2.js +83 -0
  160. package/components/Masonry/index.d.ts +2 -0
  161. package/components/Masonry/types.d.ts +33 -0
  162. package/components/Masonry/types.js +10 -0
  163. package/components/Modal.vue.d.ts +52 -0
  164. package/components/Modal.vue.js +116 -0
  165. package/components/Modal.vue2.js +4 -0
  166. package/components/MultiSelect/MultiSelect.vue.d.ts +40 -0
  167. package/components/MultiSelect/MultiSelect.vue.js +126 -0
  168. package/components/MultiSelect/MultiSelect.vue2.js +4 -0
  169. package/components/MultiSelect/index.d.ts +1 -0
  170. package/components/Navbar/Navbar.vue.d.ts +51 -0
  171. package/components/Navbar/Navbar.vue.js +198 -0
  172. package/components/Navbar/Navbar.vue2.js +4 -0
  173. package/components/Navbar/NavbarGroup.vue.d.ts +24 -0
  174. package/components/Navbar/NavbarGroup.vue.js +23 -0
  175. package/components/Navbar/NavbarGroup.vue2.js +4 -0
  176. package/components/Navbar/NavbarItem.vue.d.ts +40 -0
  177. package/components/Navbar/NavbarItem.vue.js +104 -0
  178. package/components/Navbar/NavbarItem.vue2.js +4 -0
  179. package/components/Navbar/index.d.ts +3 -0
  180. package/components/OTPInput/OTPInput.vue.d.ts +33 -0
  181. package/components/OTPInput/OTPInput.vue.js +115 -0
  182. package/components/OTPInput/OTPInput.vue2.js +4 -0
  183. package/components/OTPInput/index.d.ts +1 -0
  184. package/components/Pagination/Pagination.vue.d.ts +34 -0
  185. package/components/Pagination/Pagination.vue.js +196 -0
  186. package/components/Pagination/Pagination.vue2.js +4 -0
  187. package/components/Pagination/index.d.ts +1 -0
  188. package/components/PricingPlan/PricingPlan.vue.d.ts +22 -0
  189. package/components/PricingPlan/PricingPlan.vue.js +55 -0
  190. package/components/PricingPlan/PricingPlan.vue2.js +4 -0
  191. package/components/PricingPlan/PricingPlanItem.vue.d.ts +17 -0
  192. package/components/PricingPlan/PricingPlanItem.vue.js +94 -0
  193. package/components/PricingPlan/PricingPlanItem.vue2.js +4 -0
  194. package/components/PricingPlan/index.d.ts +3 -0
  195. package/components/PricingPlan/types.d.ts +25 -0
  196. package/components/SidePanel.vue.d.ts +64 -0
  197. package/components/SidePanel.vue.js +7 -0
  198. package/components/SidePanel.vue2.js +131 -0
  199. package/components/SidebarMenu/SidebarMenu.vue.d.ts +11 -0
  200. package/components/SidebarMenu/SidebarMenu.vue.js +78 -0
  201. package/components/SidebarMenu/SidebarMenu.vue2.js +4 -0
  202. package/components/SidebarMenu/SidebarMenuItem.vue.d.ts +9 -0
  203. package/components/SidebarMenu/SidebarMenuItem.vue.js +269 -0
  204. package/components/SidebarMenu/SidebarMenuItem.vue3.js +5 -0
  205. package/components/SidebarMenu/index.d.ts +3 -0
  206. package/components/SidebarMenu/types.d.ts +35 -0
  207. package/components/Slider.vue.d.ts +31 -0
  208. package/components/Slider.vue.js +157 -0
  209. package/components/Slider.vue2.js +4 -0
  210. package/components/Switch.vue.d.ts +16 -0
  211. package/components/Switch.vue.js +40 -0
  212. package/components/Switch.vue2.js +4 -0
  213. package/components/Tabes/Tabes.vue.d.ts +21 -0
  214. package/components/Tabes/Tabes.vue.js +75 -0
  215. package/components/Tabes/Tabes.vue2.js +4 -0
  216. package/components/Tabes/index.d.ts +2 -0
  217. package/components/Tabes/types.d.ts +8 -0
  218. package/components/Textarea.vue.d.ts +22 -0
  219. package/components/Textarea.vue.js +34 -0
  220. package/components/Textarea.vue2.js +4 -0
  221. package/components/ThemeToggle.vue.d.ts +2 -0
  222. package/components/ThemeToggle.vue.js +18 -0
  223. package/components/ThemeToggle.vue2.js +4 -0
  224. package/components/Timeline.vue.d.ts +39 -0
  225. package/components/Timeline.vue.js +174 -0
  226. package/components/Timeline.vue2.js +4 -0
  227. package/components/ToastNotification.vue.d.ts +7 -0
  228. package/components/ToastNotification.vue.js +7 -0
  229. package/components/ToastNotification.vue2.js +151 -0
  230. package/components/Tooltip.vue.d.ts +31 -0
  231. package/components/Tooltip.vue.js +45 -0
  232. package/components/Tooltip.vue2.js +4 -0
  233. package/components/Workbook/Sheet.vue.d.ts +38 -0
  234. package/components/Workbook/Sheet.vue.js +141 -0
  235. package/components/Workbook/Sheet.vue2.js +4 -0
  236. package/components/Workbook/Workbook.vue.d.ts +54 -0
  237. package/components/Workbook/Workbook.vue.js +7 -0
  238. package/components/Workbook/Workbook.vue2.js +146 -0
  239. package/components/Workbook/WorkbookAddButton.vue.d.ts +6 -0
  240. package/components/Workbook/WorkbookAddButton.vue.js +20 -0
  241. package/components/Workbook/WorkbookAddButton.vue2.js +4 -0
  242. package/components/Workbook/index.d.ts +3 -0
  243. package/components/Workbook/types.d.ts +34 -0
  244. package/composables/useKeyStroke.d.ts +21 -0
  245. package/composables/useKeyStroke.js +93 -0
  246. package/composables/useNotifications.d.ts +113 -0
  247. package/composables/useNotifications.js +99 -0
  248. package/composables/useTheme.d.ts +6 -0
  249. package/composables/useTheme.js +32 -0
  250. package/core/config.d.ts +29 -0
  251. package/core/config.js +12 -0
  252. package/core/index.d.ts +31 -0
  253. package/core/index.js +15 -0
  254. package/directives/vRipple.d.ts +4 -0
  255. package/directives/vRipple.js +17 -0
  256. package/index.d.ts +49 -0
  257. package/index.js +156 -0
  258. package/package.json +2 -2
  259. package/style.css +590 -0
  260. package/types/alert.type.d.ts +10 -0
  261. package/{src/types/avatar.type.ts → types/avatar.type.d.ts} +8 -9
  262. package/types/button.d.ts +15 -0
  263. package/types/buttongroup.type.d.ts +1 -0
  264. package/{src/types/config.type.ts → types/config.type.d.ts} +13 -16
  265. package/types/form.type.d.ts +45 -0
  266. package/types/index.d.ts +10 -0
  267. package/types/navbar.type.d.ts +27 -0
  268. package/types/sidepanel.type.d.ts +13 -0
  269. package/types/styles.d.ts +28 -0
  270. package/types/timeline.type.d.ts +9 -0
  271. package/{src/utils/functions.ts → utils/functions.d.ts} +1 -9
  272. package/utils/functions.js +11 -0
  273. package/utils/index.d.ts +2 -0
  274. package/utils/object.d.ts +6 -0
  275. package/utils/object.js +14 -0
  276. package/.vscode/extensions.json +0 -3
  277. package/LICENSE +0 -21
  278. package/index.html +0 -16
  279. package/scripts/bundle-css.js +0 -45
  280. package/src/App.vue +0 -7
  281. package/src/components/Accordion/Accordion.vue +0 -139
  282. package/src/components/Accordion/AccordionContent.vue +0 -63
  283. package/src/components/Accordion/AccordionItem.vue +0 -163
  284. package/src/components/Accordion/AccordionTrigger.vue +0 -125
  285. package/src/components/Accordion/index.ts +0 -5
  286. package/src/components/Accordion/types.ts +0 -41
  287. package/src/components/Alert.vue +0 -112
  288. package/src/components/Avatar.vue +0 -110
  289. package/src/components/AvatarUploader/AvatarUploader.vue +0 -129
  290. package/src/components/Badge.vue +0 -45
  291. package/src/components/Button.vue +0 -122
  292. package/src/components/ButtonGroup.vue +0 -173
  293. package/src/components/Carousel/Carousel.vue +0 -84
  294. package/src/components/Carousel/index.ts +0 -2
  295. package/src/components/Carousel/types.ts +0 -25
  296. package/src/components/CheckBox.vue +0 -132
  297. package/src/components/Chip/Chip.vue +0 -158
  298. package/src/components/Chip/index.ts +0 -2
  299. package/src/components/Chip/types.ts +0 -23
  300. package/src/components/ChoiceBox/ChoiceBox.vue +0 -181
  301. package/src/components/ChoiceBox/index.ts +0 -2
  302. package/src/components/ColorPicker/ColorIro.vue +0 -207
  303. package/src/components/ColorPicker/ColorPicker.vue +0 -61
  304. package/src/components/ConfirmationModal.vue +0 -46
  305. package/src/components/DataTable/DataTable.vue +0 -478
  306. package/src/components/DataTable/DataTableHeader.vue +0 -78
  307. package/src/components/DataTable/DataTableRow.vue +0 -171
  308. package/src/components/DataTable/DataTableToolbar.vue +0 -45
  309. package/src/components/DataTable/index.ts +0 -5
  310. package/src/components/DataTable/types.ts +0 -85
  311. package/src/components/DatePicker.vue +0 -102
  312. package/src/components/Dropdown/Dropdown.vue +0 -348
  313. package/src/components/Dropdown/DropdownBooleanItem.vue +0 -40
  314. package/src/components/Dropdown/DropdownGroupedLayout.vue +0 -115
  315. package/src/components/Dropdown/DropdownItem.vue +0 -56
  316. package/src/components/Dropdown/DropdownMenu.vue +0 -374
  317. package/src/components/Dropdown/DropdownTrigger.vue +0 -27
  318. package/src/components/Dropdown/composables/useDropdownIds.ts +0 -27
  319. package/src/components/Dropdown/composables/useDropdownNavigation.ts +0 -109
  320. package/src/components/Dropdown/composables/useDropdownSelection.ts +0 -106
  321. package/src/components/Dropdown/index.ts +0 -6
  322. package/src/components/FilePicker/FilePicker.vue +0 -459
  323. package/src/components/FilePicker/index.ts +0 -2
  324. package/src/components/FileTree/FileTree.vue +0 -334
  325. package/src/components/FileTree/FileTreeNode.vue +0 -225
  326. package/src/components/FileTree/index.ts +0 -2
  327. package/src/components/FileTree/types.ts +0 -31
  328. package/src/components/FileTree/useTreeSelection.ts +0 -66
  329. package/src/components/Form/CustomFields.vue +0 -294
  330. package/src/components/Form/Form.vue +0 -406
  331. package/src/components/Form/FormField.vue +0 -404
  332. package/src/components/Form/FormFields.vue +0 -161
  333. package/src/components/Form/composables/useFileUpload.ts +0 -112
  334. package/src/components/Form/composables/useForm.ts +0 -356
  335. package/src/components/Form/index.ts +0 -16
  336. package/src/components/Form/types.ts +0 -203
  337. package/src/components/Form/utils/form.utils.ts +0 -209
  338. package/src/components/Heatmap/Heatmap.vue +0 -629
  339. package/src/components/Heatmap/index.ts +0 -2
  340. package/src/components/Heatmap/types.ts +0 -84
  341. package/src/components/Icon.vue +0 -47
  342. package/src/components/IconPicker.vue +0 -138
  343. package/src/components/Input.vue +0 -366
  344. package/src/components/Label.vue +0 -25
  345. package/src/components/Logo.vue +0 -5
  346. package/src/components/Masonry/Masonry.vue +0 -148
  347. package/src/components/Masonry/index.ts +0 -2
  348. package/src/components/Masonry/types.ts +0 -44
  349. package/src/components/Modal.vue +0 -135
  350. package/src/components/MultiSelect/MultiSelect.vue +0 -176
  351. package/src/components/MultiSelect/index.ts +0 -1
  352. package/src/components/Navbar/Navbar.vue +0 -277
  353. package/src/components/Navbar/NavbarGroup.vue +0 -27
  354. package/src/components/Navbar/NavbarItem.vue +0 -124
  355. package/src/components/Navbar/index.ts +0 -3
  356. package/src/components/OTPInput/OTPInput.vue +0 -220
  357. package/src/components/OTPInput/index.ts +0 -1
  358. package/src/components/Pagination/Pagination.vue +0 -238
  359. package/src/components/Pagination/index.ts +0 -1
  360. package/src/components/PricingPlan/PricingPlan.vue +0 -102
  361. package/src/components/PricingPlan/PricingPlanItem.vue +0 -148
  362. package/src/components/PricingPlan/index.ts +0 -3
  363. package/src/components/PricingPlan/types.ts +0 -29
  364. package/src/components/SidePanel.vue +0 -184
  365. package/src/components/SidebarMenu/SidebarMenu.vue +0 -146
  366. package/src/components/SidebarMenu/SidebarMenuItem.vue +0 -333
  367. package/src/components/SidebarMenu/index.ts +0 -3
  368. package/src/components/SidebarMenu/types.ts +0 -54
  369. package/src/components/Slider.vue +0 -181
  370. package/src/components/Switch.vue +0 -51
  371. package/src/components/Tabes/Tabes.vue +0 -112
  372. package/src/components/Tabes/index.ts +0 -2
  373. package/src/components/Tabes/types.ts +0 -17
  374. package/src/components/Textarea.vue +0 -48
  375. package/src/components/ThemeToggle.vue +0 -14
  376. package/src/components/Timeline.vue +0 -250
  377. package/src/components/ToastNotification.vue +0 -257
  378. package/src/components/Tooltip.vue +0 -25
  379. package/src/components/Workbook/Sheet.vue +0 -185
  380. package/src/components/Workbook/Workbook.vue +0 -231
  381. package/src/components/Workbook/WorkbookAddButton.vue +0 -17
  382. package/src/components/Workbook/index.ts +0 -3
  383. package/src/components/Workbook/types.ts +0 -43
  384. package/src/composables/useKeyStroke.ts +0 -291
  385. package/src/composables/useNotifications.ts +0 -206
  386. package/src/composables/useTheme.ts +0 -55
  387. package/src/core/config.ts +0 -37
  388. package/src/core/index.ts +0 -49
  389. package/src/css/base.css +0 -148
  390. package/src/css/input.css +0 -61
  391. package/src/css/main.css +0 -6
  392. package/src/css/theme.css +0 -344
  393. package/src/directives/vRipple.ts +0 -38
  394. package/src/index.ts +0 -53
  395. package/src/main.ts +0 -5
  396. package/src/playground/Playground.vue +0 -429
  397. package/src/playground/composables/useGetUsers.ts +0 -538
  398. package/src/playground/demos/AccordionDemo.vue +0 -361
  399. package/src/playground/demos/AlertDemo.vue +0 -36
  400. package/src/playground/demos/AvatarDemo.vue +0 -41
  401. package/src/playground/demos/AvatarUploaderDemo.vue +0 -133
  402. package/src/playground/demos/BadgeDemo.vue +0 -31
  403. package/src/playground/demos/BadgesDemo.vue +0 -26
  404. package/src/playground/demos/ButtonDemo.vue +0 -99
  405. package/src/playground/demos/ButtonGroupDemo.vue +0 -39
  406. package/src/playground/demos/ButtonsDemo.vue +0 -111
  407. package/src/playground/demos/CarouselDemo.vue +0 -135
  408. package/src/playground/demos/CheckBoxDemo.vue +0 -43
  409. package/src/playground/demos/ChipDemo.vue +0 -190
  410. package/src/playground/demos/ChoiceBoxDemo.vue +0 -160
  411. package/src/playground/demos/ColorPickerDemo.vue +0 -30
  412. package/src/playground/demos/ColorsDemo.vue +0 -295
  413. package/src/playground/demos/DataTableDemo.vue +0 -215
  414. package/src/playground/demos/DatePickerDemo.vue +0 -43
  415. package/src/playground/demos/DisplayDemo.vue +0 -101
  416. package/src/playground/demos/DropdownDemo.vue +0 -651
  417. package/src/playground/demos/FilePickerDemo.vue +0 -175
  418. package/src/playground/demos/FileTreeDemo.vue +0 -150
  419. package/src/playground/demos/FormDemo.vue +0 -1144
  420. package/src/playground/demos/HeatmapDemo.vue +0 -467
  421. package/src/playground/demos/IconPickerDemo.vue +0 -27
  422. package/src/playground/demos/InputDemo.vue +0 -80
  423. package/src/playground/demos/InputsDemo.vue +0 -127
  424. package/src/playground/demos/LabelDemo.vue +0 -32
  425. package/src/playground/demos/MasonryDemo.vue +0 -241
  426. package/src/playground/demos/ModalDemo.vue +0 -67
  427. package/src/playground/demos/MultiSelectDemo.vue +0 -300
  428. package/src/playground/demos/NavbarDemo.vue +0 -59
  429. package/src/playground/demos/NavigationDemo.vue +0 -116
  430. package/src/playground/demos/OTPInputDemo.vue +0 -170
  431. package/src/playground/demos/OverlaysDemo.vue +0 -104
  432. package/src/playground/demos/PaginationDemo.vue +0 -130
  433. package/src/playground/demos/PricingPlanDemo.vue +0 -110
  434. package/src/playground/demos/SidePanelDemo.vue +0 -45
  435. package/src/playground/demos/SidebarMenuDemo.vue +0 -170
  436. package/src/playground/demos/SliderDemo.vue +0 -48
  437. package/src/playground/demos/SwitchDemo.vue +0 -40
  438. package/src/playground/demos/TabesDemo.vue +0 -178
  439. package/src/playground/demos/TextareaDemo.vue +0 -31
  440. package/src/playground/demos/ThemeToggleDemo.vue +0 -20
  441. package/src/playground/demos/TimelineDemo.vue +0 -43
  442. package/src/playground/demos/ToastDemo.vue +0 -111
  443. package/src/playground/demos/TooltipDemo.vue +0 -30
  444. package/src/playground/demos/WorkbookDemo.vue +0 -227
  445. package/src/types/alert.type.ts +0 -11
  446. package/src/types/button.ts +0 -36
  447. package/src/types/buttongroup.type.ts +0 -1
  448. package/src/types/form.type.ts +0 -75
  449. package/src/types/index.ts +0 -11
  450. package/src/types/navbar.type.ts +0 -28
  451. package/src/types/sidepanel.type.ts +0 -14
  452. package/src/types/styles.ts +0 -42
  453. package/src/types/timeline.type.ts +0 -11
  454. package/src/utils/index.ts +0 -2
  455. package/src/utils/object.ts +0 -40
  456. package/tsconfig.app.json +0 -27
  457. package/tsconfig.json +0 -48
  458. package/tsconfig.node.json +0 -18
  459. package/tsconfig.node.tsbuildinfo +0 -1
  460. package/tsconfig.tsbuildinfo +0 -1
  461. package/vercel.json +0 -8
  462. package/vite.config.d.ts +0 -2
  463. package/vite.config.js +0 -63
  464. package/vite.config.ts +0 -64
  465. package/vite.config.vercel.ts +0 -17
@@ -0,0 +1,45 @@
1
+ export type InputType = 'text' | 'password' | 'email' | 'number' | 'date' | 'tel' | 'url' | 'search' | 'textarea';
2
+ export type InputVariant = 'solid' | 'outline' | 'outline-b' | 'transparent';
3
+ export type InputSize = 'sm' | 'md' | 'lg';
4
+ export type InputRounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | string;
5
+ export type LabelPosition = 'top' | 'left' | 'right';
6
+ export interface InputProps {
7
+ modelValue?: string | number;
8
+ type?: InputType;
9
+ label?: string;
10
+ placeholder?: string;
11
+ disabled?: boolean;
12
+ loading?: boolean;
13
+ error?: string;
14
+ icon?: string;
15
+ iconRight?: string;
16
+ showClearButton?: boolean;
17
+ autofocus?: boolean;
18
+ class?: string;
19
+ inputClass?: string;
20
+ rows?: number;
21
+ lazy?: boolean;
22
+ variant?: InputVariant;
23
+ size?: InputSize;
24
+ rounded?: InputRounded;
25
+ labelPosition?: LabelPosition;
26
+ addonLeft?: string;
27
+ addonRight?: string;
28
+ addonLeftClass?: string;
29
+ addonRightClass?: string;
30
+ min?: number;
31
+ max?: number;
32
+ }
33
+ export type CheckboxSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
34
+ export type CheckboxRounded = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
35
+ export interface CheckboxProps {
36
+ modelValue?: boolean;
37
+ checked?: boolean;
38
+ disabled?: boolean;
39
+ indeterminate?: boolean;
40
+ label?: string;
41
+ id?: string;
42
+ class?: string;
43
+ size?: CheckboxSize;
44
+ rounded?: CheckboxRounded;
45
+ }
@@ -0,0 +1,10 @@
1
+ export * from './button';
2
+ export * from './buttongroup.type';
3
+ export * from './form.type';
4
+ export * from './avatar.type';
5
+ export * from './sidepanel.type';
6
+ export * from './alert.type';
7
+ export * from './timeline.type';
8
+ export * from './navbar.type';
9
+ export * from './styles.ts';
10
+ export * from './config.type';
@@ -0,0 +1,27 @@
1
+ export type NavbarVariant = 'header' | 'sidebar';
2
+ export type NavbarPosition = 'fixed' | 'sticky' | 'relative' | 'absolute';
3
+ export type NavbarCenterPosition = 'center' | 'left' | 'right';
4
+ export interface NavbarItemProps {
5
+ to?: string;
6
+ href?: string;
7
+ label?: string;
8
+ icon?: string;
9
+ active?: boolean;
10
+ disabled?: boolean;
11
+ onClick?: (e: MouseEvent) => void;
12
+ class?: string;
13
+ }
14
+ export interface NavbarProps {
15
+ variant?: NavbarVariant;
16
+ position?: NavbarPosition;
17
+ centerPosition?: NavbarCenterPosition;
18
+ glass?: boolean;
19
+ border?: boolean;
20
+ floating?: boolean;
21
+ class?: string;
22
+ height?: string;
23
+ width?: string;
24
+ compact?: boolean;
25
+ logo?: string;
26
+ logoAlt?: string;
27
+ }
@@ -0,0 +1,13 @@
1
+ export type SidePanelPosition = 'left' | 'right';
2
+ export type SidePanelSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
3
+ export interface SidePanelProps {
4
+ show: boolean;
5
+ title?: string;
6
+ description?: string;
7
+ position?: SidePanelPosition;
8
+ size?: SidePanelSize;
9
+ closeOutside?: boolean;
10
+ hideCloseButton?: boolean;
11
+ class?: string;
12
+ overlayClass?: string;
13
+ }
@@ -0,0 +1,28 @@
1
+ export type IVariants = 'danger' | 'primary' | 'default' | 'outline' | 'secondary' | 'transparent' | 'success' | 'warning';
2
+ export type ISize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
3
+ export type IDropdownOption = {
4
+ label: string;
5
+ value?: any;
6
+ subtitle?: string;
7
+ description?: string;
8
+ icon?: string;
9
+ emoji?: string;
10
+ disabled?: Boolean;
11
+ iconClass?: string;
12
+ iconStyle?: any;
13
+ length?: number;
14
+ values?: any;
15
+ data?: any;
16
+ children?: IDropdownOption[];
17
+ key?: string;
18
+ position?: any;
19
+ offset?: [number, number];
20
+ confirmation?: boolean | {
21
+ title?: string;
22
+ description?: string;
23
+ confirmText?: string;
24
+ cancelText?: string;
25
+ variant?: 'danger' | 'primary' | 'warning' | 'success' | 'info';
26
+ };
27
+ };
28
+ export type IDropdownOptions = IDropdownOption[];
@@ -0,0 +1,9 @@
1
+ export interface TimelineStep {
2
+ id: string | number;
3
+ title: string;
4
+ description?: string;
5
+ icon?: string;
6
+ status?: 'completed' | 'current' | 'upcoming';
7
+ }
8
+ export type TimelineDirection = 'horizontal' | 'vertical';
9
+ export type TimelineTextPosition = 'bottom' | 'right';
@@ -6,12 +6,4 @@
6
6
  * @param delay The delay in milliseconds
7
7
  * @returns A new debounced function
8
8
  */
9
- export const debounce = (fn: Function, delay: number) => {
10
- let timeoutId: any
11
- return (...args: any[]) => {
12
- clearTimeout(timeoutId)
13
- timeoutId = setTimeout(() => {
14
- fn(...args)
15
- }, delay)
16
- }
17
- }
9
+ export declare const debounce: (fn: Function, delay: number) => (...args: any[]) => void;
@@ -0,0 +1,11 @@
1
+ const r = (t, o) => {
2
+ let e;
3
+ return (...u) => {
4
+ clearTimeout(e), e = setTimeout(() => {
5
+ t(...u);
6
+ }, o);
7
+ };
8
+ };
9
+ export {
10
+ r as debounce
11
+ };
@@ -0,0 +1,2 @@
1
+ export * from './object';
2
+ export * from './functions';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Deep merges two objects.
3
+ * Sources overwrite target properties.
4
+ * Arrays are replaced, not concatenated (usually desired for state updates).
5
+ */
6
+ export declare function deepMerge(target: any, source: any): any;
@@ -0,0 +1,14 @@
1
+ function r(l, e) {
2
+ if (!e || typeof e != "object")
3
+ return e;
4
+ if (!l || typeof l != "object")
5
+ return { ...e };
6
+ const f = { ...l };
7
+ return Object.keys(e).forEach((n) => {
8
+ const o = f[n], t = e[n];
9
+ Array.isArray(t) ? f[n] = [...t] : typeof t == "object" && t !== null && o && typeof o == "object" && o !== null ? f[n] = r(o, t) : f[n] = t;
10
+ }), f;
11
+ }
12
+ export {
13
+ r as deepMerge
14
+ };
@@ -1,3 +0,0 @@
1
- {
2
- "recommendations": ["Vue.volar"]
3
- }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Safdar Azeem
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
package/index.html DELETED
@@ -1,16 +0,0 @@
1
- <!doctype html>
2
- <html lang="en" cl>
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <link rel="icon" type="image/svg+xml" href="/vite.svg" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
- <title>vLite3</title>
9
- </head>
10
-
11
- <body>
12
- <div id="app"></div>
13
- <script type="module" src="/src/main.ts"></script>
14
- </body>
15
-
16
- </html>
@@ -1,45 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = path.dirname(__filename);
7
-
8
- const distDir = path.resolve(__dirname, '../dist');
9
- const srcDir = path.resolve(__dirname, '../src/css');
10
-
11
- // Ensure dist directory exists
12
- if (!fs.existsSync(distDir)) {
13
- fs.mkdirSync(distDir, { recursive: true });
14
- }
15
-
16
- // Define the order of files to concatenate
17
- // We recreate the structure of main.css manually but directly embedding content
18
- // main.css has:
19
- // @import 'tailwindcss';
20
- // @layer theme, base, components, utilities;
21
-
22
- let finalCss = `@import 'tailwindcss';\n@layer theme, base, components, utilities;\n\n`;
23
-
24
- const filesToRead = ['theme.css', 'base.css', 'input.css'];
25
-
26
- filesToRead.forEach(file => {
27
- const filePath = path.join(srcDir, file);
28
- if (fs.existsSync(filePath)) {
29
- const content = fs.readFileSync(filePath, 'utf8');
30
- finalCss += `/* --- ${file} --- */\n${content}\n\n`;
31
- } else {
32
- console.warn(`Warning: ${file} not found at ${filePath}`);
33
- }
34
- });
35
-
36
- const outputPath = path.join(distDir, 'style.css');
37
-
38
- if (fs.existsSync(outputPath)) {
39
- const existingCss = fs.readFileSync(outputPath, 'utf8');
40
- finalCss += `/* --- Vite Generated CSS --- */\n${existingCss}\n`;
41
- }
42
-
43
- fs.writeFileSync(outputPath, finalCss);
44
-
45
- console.log(`CSS bundled successfully into ${outputPath}`);
package/src/App.vue DELETED
@@ -1,7 +0,0 @@
1
- <script setup lang="ts">
2
- import Playground from './playground/Playground.vue'
3
- </script>
4
-
5
- <template>
6
- <Playground />
7
- </template>
@@ -1,139 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref, watch, computed } from 'vue'
3
- import type { AccordionProps } from './types'
4
- import AccordionItem from './AccordionItem.vue'
5
-
6
- const props = withDefaults(defineProps<AccordionProps>(), {
7
- allowMultiple: false,
8
- variant: 'default',
9
- attached: false,
10
- items: () => [],
11
- disabled: false,
12
- showIndex: false,
13
- iconVariant: 'simple',
14
- })
15
-
16
- const emit = defineEmits<{
17
- (e: 'update:modelValue', value: string | string[]): void
18
- (e: 'change', value: string | string[]): void
19
- }>()
20
-
21
- // Internal state
22
- const internalValue = ref<string[]>([])
23
-
24
- const normalizeValue = (val: string | string[] | undefined): string[] => {
25
- if (Array.isArray(val)) return val
26
- if (typeof val === 'string' && val) return [val]
27
- return []
28
- }
29
-
30
- watch(
31
- () => props.modelValue,
32
- (newVal) => {
33
- internalValue.value = normalizeValue(newVal)
34
- },
35
- { immediate: true }
36
- )
37
-
38
- watch(
39
- () => props.defaultValue,
40
- (newVal) => {
41
- if (!props.modelValue && newVal) {
42
- internalValue.value = normalizeValue(newVal)
43
- }
44
- },
45
- { immediate: true }
46
- )
47
-
48
- const toggleItem = (id: string) => {
49
- if (props.disabled) return
50
-
51
- const isOpen = internalValue.value.includes(id)
52
-
53
- if (props.allowMultiple) {
54
- if (isOpen) {
55
- internalValue.value = internalValue.value.filter((v) => v !== id)
56
- } else {
57
- internalValue.value = [...internalValue.value, id]
58
- }
59
- } else {
60
- // Single mode
61
- if (isOpen) {
62
- internalValue.value = [] // Toggle off if clicking same
63
- } else {
64
- internalValue.value = [id]
65
- }
66
- }
67
-
68
- emitChange()
69
- }
70
-
71
- const emitChange = () => {
72
- const val = props.allowMultiple ? internalValue.value : internalValue.value[0] || ''
73
- emit('update:modelValue', val)
74
- emit('change', val)
75
- }
76
-
77
- const rootClasses = computed(() => {
78
- const classes = ['w-full', props.class]
79
-
80
- if (props.attached) {
81
- // classes.push('rounded-lg overflow-hidden') -> Managed by Items for cleaner edges if separated logic used
82
- // But for attached, usually the container clips.
83
- classes.push('rounded-lg overflow-hidden')
84
-
85
- // Add border to container if it's outline or default attached
86
- // Solid usually doesn't have a container border if items are solid blocks?
87
- // But if attached list, yes.
88
- if (props.variant === 'outline' || props.variant === 'default') {
89
- classes.push('border')
90
- }
91
- if (props.variant === 'solid') {
92
- // If solid attached, usually no border or just internal dividers?
93
- // Let's add border to keep it contained.
94
- classes.push('border')
95
- }
96
- }
97
-
98
- return classes.join(' ')
99
- })
100
- </script>
101
-
102
- <template>
103
- <div :class="rootClasses">
104
- <slot>
105
- <template v-for="(item, index) in items" :key="item.id">
106
- <AccordionItem
107
- :item="item"
108
- :isOpen="internalValue.includes(item.id)"
109
- :variant="variant"
110
- :attached="attached"
111
- :disabled="disabled"
112
- :index="index + 1"
113
- :showIndex="showIndex"
114
- :openIcon="openIcon"
115
- :closeIcon="closeIcon"
116
- :iconVariant="iconVariant"
117
- :activeIconVariant="activeIconVariant"
118
- :triggerClass="triggerClass"
119
- :contentClass="contentClass"
120
- :itemClass="itemClass"
121
- @toggle="toggleItem">
122
- <!-- Pass Slots Down -->
123
- <template v-if="$slots.trigger" #trigger="{ item, open, toggle, triggerClass }">
124
- <slot
125
- name="trigger"
126
- :item="item"
127
- :open="open"
128
- :toggle="toggle"
129
- :triggerClass="triggerClass" />
130
- </template>
131
-
132
- <template v-if="$slots.content" #content="{ item }">
133
- <slot name="content" :close="toggleItem" :item="item" />
134
- </template>
135
- </AccordionItem>
136
- </template>
137
- </slot>
138
- </div>
139
- </template>
@@ -1,63 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, inject } from 'vue'
3
-
4
- interface Props {
5
- class?: string
6
- }
7
-
8
- const props = withDefaults(defineProps<Props>(), {
9
- class: '',
10
- })
11
-
12
- // In simple implementations, the open state is checked in the parent Item or here.
13
- // But mostly the Item decides if Content is rendered or if it is v-show.
14
- // For smooth animation on v-if/v-show, we need a Transition.
15
-
16
- const beforeEnter = (el: Element) => {
17
- const element = el as HTMLElement
18
- element.style.height = '0'
19
- }
20
-
21
- const enter = (el: Element) => {
22
- const element = el as HTMLElement
23
- element.style.height = element.scrollHeight + 'px'
24
- }
25
-
26
- const afterEnter = (el: Element) => {
27
- const element = el as HTMLElement
28
- element.style.height = 'auto'
29
- }
30
-
31
- const beforeLeave = (el: Element) => {
32
- const element = el as HTMLElement
33
- element.style.height = element.scrollHeight + 'px'
34
- }
35
-
36
- const leave = (el: Element) => {
37
- const element = el as HTMLElement
38
- element.style.height = '0'
39
- }
40
- </script>
41
-
42
- <template>
43
- <Transition
44
- name="accordion"
45
- @before-enter="beforeEnter"
46
- @enter="enter"
47
- @after-enter="afterEnter"
48
- @before-leave="beforeLeave"
49
- @leave="leave">
50
- <div class="overflow-hidden text-sm transition-all duration-300 ease-in-out">
51
- <div :class="['pb-4', props.class]">
52
- <slot />
53
- </div>
54
- </div>
55
- </Transition>
56
- </template>
57
-
58
- <style scoped>
59
- .accordion-enter-active,
60
- .accordion-leave-active {
61
- transition: height 0.3s ease-in-out;
62
- }
63
- </style>
@@ -1,163 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed } from 'vue'
3
- import type { AccordionItemSchema, AccordionVariant } from './types'
4
- import AccordionTrigger from './AccordionTrigger.vue'
5
- import AccordionContent from './AccordionContent.vue'
6
-
7
- interface Props {
8
- item: AccordionItemSchema
9
- isOpen: boolean
10
- variant?: AccordionVariant
11
- attached?: boolean
12
- disabled?: boolean
13
- index?: number
14
- showIndex?: boolean
15
- openIcon?: string
16
- closeIcon?: string
17
- iconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost'
18
- activeIconVariant?: 'simple' | 'solid' | 'outline' | 'primary' | 'ghost'
19
-
20
- // Classes
21
- triggerClass?: string
22
- contentClass?: string
23
- itemClass?: string
24
- class?: string
25
- }
26
-
27
- const props = withDefaults(defineProps<Props>(), {
28
- variant: 'default',
29
- attached: false,
30
- disabled: false,
31
- class: '',
32
- showIndex: false,
33
- })
34
-
35
- const emit = defineEmits<{
36
- (e: 'toggle', id: string): void
37
- }>()
38
-
39
- const handleToggle = () => {
40
- if (props.item.disabled || props.disabled) return
41
- emit('toggle', props.item.id)
42
- }
43
-
44
- // Styling based on variant
45
- const containerClass = computed(() => {
46
- const { variant, attached } = props
47
-
48
- if (attached) {
49
- // ATTACHED MODE (List Group)
50
- const baseAttached = 'transition-all first:rounded-t-lg last:rounded-b-lg'
51
- let borderClass = 'border-b last:border-0'
52
-
53
- if (variant === 'default' || variant === 'outline') {
54
- // Outline in attached usually means the Container (Accordion) has the border, items just have separators.
55
- return `${baseAttached} ${borderClass}`
56
- }
57
- if (variant === 'solid') {
58
- // Solid attached: items might alternate or just be list.
59
- return `border-b last:border-0 bg-transparent`
60
- }
61
- if (variant === 'ghost') {
62
- return 'bg-transparent border-b last:border-0'
63
- }
64
- return `${baseAttached} ${borderClass}`
65
- }
66
-
67
- // DETACHED MODE (Cards)
68
- // 'solid': Container has border (outline) but no background, content needs to be inside.
69
- if (variant === 'solid') {
70
- return 'mb-2 border rounded-lg overflow-hidden transition-all duration-200'
71
- }
72
-
73
- // 'outline': Item has border.
74
- if (variant === 'outline') return 'border mb-2 rounded-lg overflow-hidden'
75
-
76
- // 'separated': distinct cards style
77
- if (variant === 'separated') return 'border mb-4 rounded-lg overflow-hidden'
78
-
79
- if (variant === 'ghost') return 'border-none bg-transparent mb-1'
80
-
81
- // Default Detached (Underline style usually)
82
- return 'border-b'
83
- })
84
-
85
- // Specific Trigger Styling Logic
86
- const computedTriggerClass = computed(() => {
87
- const { variant, attached, isOpen } = props
88
- const base = props.triggerClass || ''
89
-
90
- // Solid Variant: Trigger gets the background
91
- if (variant === 'solid') {
92
- return `${base} px-4 bg-muted transition-colors`
93
- }
94
-
95
- // Default/Ghost in detached: no padding usually?
96
- if (!attached && (variant === 'ghost' || variant === 'default')) {
97
- return `${base} px-0 hover:no-underline` // ensure no unwanted hover bg
98
- }
99
-
100
- // Outline/Separated/Attached: usually need padding styling inside the border
101
- return `${base} px-4 hover:bg-accent`
102
- })
103
-
104
- const computedContentClass = computed(() => {
105
- const { variant, attached } = props
106
- const base = props.contentClass || ''
107
-
108
- if (variant === 'solid') {
109
- return `${base} px-4 pt-4`
110
- }
111
-
112
- if (!attached && (variant === 'ghost' || variant === 'default')) {
113
- return `${base} px-0`
114
- }
115
- return `${base} px-4`
116
- })
117
- </script>
118
-
119
- <template>
120
- <div :class="[containerClass, props.class, props.itemClass]">
121
- <slot
122
- name="trigger"
123
- :item="item"
124
- :open="isOpen"
125
- :toggle="handleToggle"
126
- :triggerClass="computedTriggerClass">
127
- <AccordionTrigger
128
- :open="isOpen"
129
- :disabled="item.disabled || disabled"
130
- :icon="item.icon"
131
- :index="index"
132
- :showIndex="showIndex"
133
- :open-icon="openIcon"
134
- :close-icon="closeIcon"
135
- :icon-variant="iconVariant"
136
- :active-icon-variant="activeIconVariant"
137
- :class="computedTriggerClass"
138
- @click="handleToggle">
139
- <span>
140
- {{ item.title }}
141
- </span>
142
-
143
- <span v-if="item.description" class="ml-2 text-sm text-muted-foreground font-normal">
144
- {{ item.description }}
145
- </span>
146
- </AccordionTrigger>
147
- </slot>
148
-
149
- <AccordionContent v-show="isOpen" :class="computedContentClass">
150
- <slot name="content" :item="item" :close="handleToggle">
151
- <component
152
- v-if="item.bodyComponent"
153
- :is="item.bodyComponent"
154
- :item="item"
155
- :close="handleToggle" />
156
- <div
157
- v-else-if="item.content"
158
- class="text-muted-foreground leading-relaxed"
159
- v-html="item.content"></div>
160
- </slot>
161
- </AccordionContent>
162
- </div>
163
- </template>