cisse-vue-ui 0.7.3 → 0.7.5

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 (330) hide show
  1. package/dist/BadgeType.vue_vue_type_script_setup_true_lang-zs0NXN4g.cjs +145 -0
  2. package/dist/BadgeType.vue_vue_type_script_setup_true_lang-zs0NXN4g.cjs.map +1 -0
  3. package/dist/Button.vue_vue_type_script_setup_true_lang-CXRj7LEP.cjs +98 -0
  4. package/dist/Button.vue_vue_type_script_setup_true_lang-CXRj7LEP.cjs.map +1 -0
  5. package/dist/{TagsInput-DtoJKN3L.js → CheckboxGroup.vue_vue_type_script_setup_true_lang-BOGul8zU.js} +400 -225
  6. package/dist/CheckboxGroup.vue_vue_type_script_setup_true_lang-BOGul8zU.js.map +1 -0
  7. package/dist/CheckboxGroup.vue_vue_type_script_setup_true_lang-BcoXb8Xg.cjs +3869 -0
  8. package/dist/CheckboxGroup.vue_vue_type_script_setup_true_lang-BcoXb8Xg.cjs.map +1 -0
  9. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bine-xfp.cjs +928 -0
  10. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-Bine-xfp.cjs.map +1 -0
  11. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-BNOHbbm5.cjs +228 -0
  12. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-BNOHbbm5.cjs.map +1 -0
  13. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-HwjuvIJX.cjs +2242 -0
  14. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-HwjuvIJX.cjs.map +1 -0
  15. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs +149 -0
  16. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs.map +1 -0
  17. package/dist/PageHero.vue_vue_type_script_setup_true_lang-CZ-TibKk.cjs +764 -0
  18. package/dist/PageHero.vue_vue_type_script_setup_true_lang-CZ-TibKk.cjs.map +1 -0
  19. package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs +10 -0
  20. package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs.map +1 -0
  21. package/dist/components/core/Accordion.stories.d.ts +11 -0
  22. package/dist/components/core/Accordion.test.d.ts +1 -0
  23. package/dist/components/core/Accordion.vue.d.ts +27 -0
  24. package/dist/components/core/AccordionItem.stories.d.ts +10 -0
  25. package/dist/components/core/AccordionItem.vue.d.ts +29 -0
  26. package/dist/components/core/AutocompleteComponent.stories.d.ts +14 -0
  27. package/dist/components/core/AutocompleteComponent.test.d.ts +1 -0
  28. package/dist/components/core/AutocompleteComponent.vue.d.ts +25 -0
  29. package/dist/components/core/Avatar.stories.d.ts +12 -0
  30. package/dist/components/core/Avatar.test.d.ts +1 -0
  31. package/dist/components/core/Avatar.vue.d.ts +20 -0
  32. package/dist/components/core/Breadcrumb.stories.d.ts +11 -0
  33. package/dist/components/core/Breadcrumb.test.d.ts +1 -0
  34. package/dist/components/core/Breadcrumb.vue.d.ts +26 -0
  35. package/dist/components/core/Button.stories.d.ts +18 -0
  36. package/dist/components/core/Button.test.d.ts +1 -0
  37. package/dist/components/core/Button.vue.d.ts +49 -0
  38. package/dist/components/core/CardComponent.stories.d.ts +13 -0
  39. package/dist/components/core/CardComponent.test.d.ts +1 -0
  40. package/dist/components/core/CardComponent.vue.d.ts +40 -0
  41. package/dist/components/core/CollapsibleCard.stories.d.ts +10 -0
  42. package/dist/components/core/CollapsibleCard.test.d.ts +1 -0
  43. package/dist/components/core/CollapsibleCard.vue.d.ts +38 -0
  44. package/dist/components/core/DarkModeToggle.stories.d.ts +15 -0
  45. package/dist/components/core/DarkModeToggle.test.d.ts +1 -0
  46. package/dist/components/core/DarkModeToggle.vue.d.ts +21 -0
  47. package/dist/components/core/Drawer.stories.d.ts +12 -0
  48. package/dist/components/core/Drawer.test.d.ts +1 -0
  49. package/dist/components/core/Drawer.vue.d.ts +50 -0
  50. package/dist/components/core/Dropdown.stories.d.ts +11 -0
  51. package/dist/components/core/Dropdown.test.d.ts +1 -0
  52. package/dist/components/core/Dropdown.vue.d.ts +56 -0
  53. package/dist/components/core/FilterTabs.stories.d.ts +14 -0
  54. package/dist/components/core/FilterTabs.test.d.ts +1 -0
  55. package/dist/components/core/FilterTabs.vue.d.ts +29 -0
  56. package/dist/components/core/MenuItem.stories.d.ts +13 -0
  57. package/dist/components/core/MenuItem.test.d.ts +1 -0
  58. package/dist/components/core/MenuItem.vue.d.ts +16 -0
  59. package/dist/components/core/MobileList.stories.d.ts +13 -0
  60. package/dist/components/core/MobileList.test.d.ts +1 -0
  61. package/dist/components/core/MobileList.vue.d.ts +86 -0
  62. package/dist/components/core/Popover.stories.d.ts +10 -0
  63. package/dist/components/core/Popover.test.d.ts +1 -0
  64. package/dist/components/core/Popover.vue.d.ts +44 -0
  65. package/dist/components/core/ResponsiveList.stories.d.ts +15 -0
  66. package/dist/components/core/ResponsiveList.test.d.ts +1 -0
  67. package/dist/components/core/ResponsiveList.vue.d.ts +128 -0
  68. package/dist/components/core/StatsCard.stories.d.ts +15 -0
  69. package/dist/components/core/StatsCard.test.d.ts +1 -0
  70. package/dist/components/core/StatsCard.vue.d.ts +44 -0
  71. package/dist/components/core/StatsGrid.stories.d.ts +12 -0
  72. package/dist/components/core/StatsGrid.test.d.ts +1 -0
  73. package/dist/components/core/StatsGrid.vue.d.ts +16 -0
  74. package/dist/components/core/StatusBadge.stories.d.ts +13 -0
  75. package/dist/components/core/StatusBadge.test.d.ts +1 -0
  76. package/dist/components/core/StatusBadge.vue.d.ts +21 -0
  77. package/dist/components/core/Stepper.stories.d.ts +12 -0
  78. package/dist/components/core/Stepper.test.d.ts +1 -0
  79. package/dist/components/core/Stepper.vue.d.ts +22 -0
  80. package/dist/components/core/TabPanel.stories.d.ts +8 -0
  81. package/dist/components/core/TabPanel.test.d.ts +1 -0
  82. package/dist/components/core/TabPanel.vue.d.ts +21 -0
  83. package/dist/components/core/TableAction.stories.d.ts +14 -0
  84. package/dist/components/core/TableAction.test.d.ts +1 -0
  85. package/dist/components/core/TableAction.vue.d.ts +8 -0
  86. package/dist/components/core/TableComponent.stories.d.ts +16 -0
  87. package/dist/components/core/TableComponent.test.d.ts +1 -0
  88. package/dist/components/core/TableComponent.vue.d.ts +67 -0
  89. package/dist/components/core/Tabs.stories.d.ts +10 -0
  90. package/dist/components/core/Tabs.test.d.ts +1 -0
  91. package/dist/components/core/Tabs.vue.d.ts +39 -0
  92. package/dist/components/core/Timeline.stories.d.ts +11 -0
  93. package/dist/components/core/Timeline.test.d.ts +1 -0
  94. package/dist/components/core/Timeline.vue.d.ts +34 -0
  95. package/dist/components/core/Tooltip.stories.d.ts +10 -0
  96. package/dist/components/core/Tooltip.test.d.ts +1 -0
  97. package/dist/components/core/Tooltip.vue.d.ts +34 -0
  98. package/dist/components/core/index.cjs +33 -0
  99. package/dist/components/core/index.cjs.map +1 -0
  100. package/dist/components/core/index.test.d.ts +1 -0
  101. package/dist/components/feedback/Alert.stories.d.ts +13 -0
  102. package/dist/components/feedback/Alert.test.d.ts +1 -0
  103. package/dist/components/feedback/Alert.vue.d.ts +34 -0
  104. package/dist/components/feedback/CardSkeleton.stories.d.ts +11 -0
  105. package/dist/components/feedback/CardSkeleton.test.d.ts +1 -0
  106. package/dist/components/feedback/CardSkeleton.vue.d.ts +14 -0
  107. package/dist/components/feedback/ConfirmDialog.stories.d.ts +12 -0
  108. package/dist/components/feedback/ConfirmDialog.test.d.ts +1 -0
  109. package/dist/components/feedback/ConfirmDialog.vue.d.ts +53 -0
  110. package/dist/components/feedback/EmptyState.stories.d.ts +13 -0
  111. package/dist/components/feedback/EmptyState.test.d.ts +1 -0
  112. package/dist/components/feedback/EmptyState.vue.d.ts +29 -0
  113. package/dist/components/feedback/ListSkeleton.stories.d.ts +12 -0
  114. package/dist/components/feedback/ListSkeleton.test.d.ts +1 -0
  115. package/dist/components/feedback/ListSkeleton.vue.d.ts +17 -0
  116. package/dist/components/feedback/LoadingSpinner.stories.d.ts +11 -0
  117. package/dist/components/feedback/LoadingSpinner.test.d.ts +1 -0
  118. package/dist/components/feedback/LoadingSpinner.vue.d.ts +12 -0
  119. package/dist/components/feedback/Modal.stories.d.ts +11 -0
  120. package/dist/components/feedback/Modal.test.d.ts +1 -0
  121. package/dist/components/feedback/Modal.vue.d.ts +47 -0
  122. package/dist/components/feedback/NotificationComponent.stories.d.ts +14 -0
  123. package/dist/components/feedback/NotificationComponent.test.d.ts +1 -0
  124. package/dist/components/feedback/NotificationComponent.vue.d.ts +12 -0
  125. package/dist/components/feedback/NotificationList.stories.d.ts +11 -0
  126. package/dist/components/feedback/NotificationList.test.d.ts +1 -0
  127. package/dist/components/feedback/NotificationList.vue.d.ts +18 -0
  128. package/dist/components/feedback/PaginationControls.stories.d.ts +12 -0
  129. package/dist/components/feedback/PaginationControls.test.d.ts +1 -0
  130. package/dist/components/feedback/PaginationControls.vue.d.ts +21 -0
  131. package/dist/components/feedback/Progress.stories.d.ts +14 -0
  132. package/dist/components/feedback/Progress.test.d.ts +1 -0
  133. package/dist/components/feedback/Progress.vue.d.ts +30 -0
  134. package/dist/components/feedback/Skeleton.stories.d.ts +15 -0
  135. package/dist/components/feedback/Skeleton.test.d.ts +1 -0
  136. package/dist/components/feedback/Skeleton.vue.d.ts +19 -0
  137. package/dist/components/feedback/TableSkeleton.stories.d.ts +12 -0
  138. package/dist/components/feedback/TableSkeleton.test.d.ts +1 -0
  139. package/dist/components/feedback/TableSkeleton.vue.d.ts +14 -0
  140. package/dist/components/feedback/Toast.stories.d.ts +12 -0
  141. package/dist/components/feedback/Toast.test.d.ts +1 -0
  142. package/dist/components/feedback/Toast.vue.d.ts +23 -0
  143. package/dist/components/feedback/ToastContainer.stories.d.ts +15 -0
  144. package/dist/components/feedback/ToastContainer.test.d.ts +1 -0
  145. package/dist/components/feedback/ToastContainer.vue.d.ts +24 -0
  146. package/dist/components/feedback/index.cjs +20 -0
  147. package/dist/components/feedback/index.cjs.map +1 -0
  148. package/dist/components/feedback/index.test.d.ts +1 -0
  149. package/dist/components/form/Checkbox.stories.d.ts +13 -0
  150. package/dist/components/form/Checkbox.test.d.ts +1 -0
  151. package/dist/components/form/Checkbox.vue.d.ts +22 -0
  152. package/dist/components/form/CheckboxGroup.test.d.ts +1 -0
  153. package/dist/components/form/CheckboxGroup.vue.d.ts +26 -0
  154. package/dist/components/form/ColorPicker.stories.d.ts +12 -0
  155. package/dist/components/form/ColorPicker.test.d.ts +1 -0
  156. package/dist/components/form/ColorPicker.vue.d.ts +26 -0
  157. package/dist/components/form/Combobox.stories.d.ts +15 -0
  158. package/dist/components/form/Combobox.test.d.ts +1 -0
  159. package/dist/components/form/Combobox.vue.d.ts +46 -0
  160. package/dist/components/form/DatePicker.stories.d.ts +15 -0
  161. package/dist/components/form/DatePicker.test.d.ts +1 -0
  162. package/dist/components/form/DatePicker.vue.d.ts +36 -0
  163. package/dist/components/form/EmailInput.stories.d.ts +13 -0
  164. package/dist/components/form/EmailInput.test.d.ts +1 -0
  165. package/dist/components/form/EmailInput.vue.d.ts +32 -0
  166. package/dist/components/form/FileUpload.stories.d.ts +12 -0
  167. package/dist/components/form/FileUpload.test.d.ts +1 -0
  168. package/dist/components/form/FileUpload.vue.d.ts +40 -0
  169. package/dist/components/form/FormActions.stories.d.ts +18 -0
  170. package/dist/components/form/FormActions.test.d.ts +1 -0
  171. package/dist/components/form/FormActions.vue.d.ts +56 -0
  172. package/dist/components/form/FormGroup.stories.d.ts +10 -0
  173. package/dist/components/form/FormGroup.test.d.ts +1 -0
  174. package/dist/components/form/FormGroup.vue.d.ts +30 -0
  175. package/dist/components/form/FormHelp.stories.d.ts +11 -0
  176. package/dist/components/form/FormHelp.test.d.ts +1 -0
  177. package/dist/components/form/FormHelp.vue.d.ts +23 -0
  178. package/dist/components/form/FormInput.stories.d.ts +12 -0
  179. package/dist/components/form/FormInput.test.d.ts +1 -0
  180. package/dist/components/form/FormInput.vue.d.ts +13 -0
  181. package/dist/components/form/FormLabel.stories.d.ts +12 -0
  182. package/dist/components/form/FormLabel.test.d.ts +1 -0
  183. package/dist/components/form/FormLabel.vue.d.ts +21 -0
  184. package/dist/components/form/FormSection.stories.d.ts +13 -0
  185. package/dist/components/form/FormSection.test.d.ts +1 -0
  186. package/dist/components/form/FormSection.vue.d.ts +49 -0
  187. package/dist/components/form/FormSelect.stories.d.ts +13 -0
  188. package/dist/components/form/FormSelect.test.d.ts +1 -0
  189. package/dist/components/form/FormSelect.vue.d.ts +55 -0
  190. package/dist/components/form/IconPicker.vue.d.ts +33 -0
  191. package/dist/components/form/InputWrapper.stories.d.ts +16 -0
  192. package/dist/components/form/InputWrapper.test.d.ts +1 -0
  193. package/dist/components/form/InputWrapper.vue.d.ts +40 -0
  194. package/dist/components/form/MoneyInput.stories.d.ts +16 -0
  195. package/dist/components/form/MoneyInput.test.d.ts +1 -0
  196. package/dist/components/form/MoneyInput.vue.d.ts +40 -0
  197. package/dist/components/form/NumberInput.stories.d.ts +14 -0
  198. package/dist/components/form/NumberInput.test.d.ts +1 -0
  199. package/dist/components/form/NumberInput.vue.d.ts +39 -0
  200. package/dist/components/form/OTPInput.stories.d.ts +13 -0
  201. package/dist/components/form/OTPInput.test.d.ts +1 -0
  202. package/dist/components/form/OTPInput.vue.d.ts +33 -0
  203. package/dist/components/form/PasswordInput.stories.d.ts +15 -0
  204. package/dist/components/form/PasswordInput.test.d.ts +1 -0
  205. package/dist/components/form/PasswordInput.vue.d.ts +36 -0
  206. package/dist/components/form/PercentInput.stories.d.ts +12 -0
  207. package/dist/components/form/PercentInput.test.d.ts +1 -0
  208. package/dist/components/form/PercentInput.vue.d.ts +38 -0
  209. package/dist/components/form/PhoneInput.stories.d.ts +13 -0
  210. package/dist/components/form/PhoneInput.test.d.ts +1 -0
  211. package/dist/components/form/PhoneInput.vue.d.ts +91 -0
  212. package/dist/components/form/QuantityInput.stories.d.ts +12 -0
  213. package/dist/components/form/QuantityInput.test.d.ts +1 -0
  214. package/dist/components/form/QuantityInput.vue.d.ts +32 -0
  215. package/dist/components/form/RangeSlider.stories.d.ts +13 -0
  216. package/dist/components/form/RangeSlider.test.d.ts +1 -0
  217. package/dist/components/form/RangeSlider.vue.d.ts +35 -0
  218. package/dist/components/form/Rating.stories.d.ts +16 -0
  219. package/dist/components/form/Rating.test.d.ts +1 -0
  220. package/dist/components/form/Rating.vue.d.ts +43 -0
  221. package/dist/components/form/SearchInput.stories.d.ts +13 -0
  222. package/dist/components/form/SearchInput.test.d.ts +1 -0
  223. package/dist/components/form/SearchInput.vue.d.ts +26 -0
  224. package/dist/components/form/Slider.stories.d.ts +13 -0
  225. package/dist/components/form/Slider.test.d.ts +1 -0
  226. package/dist/components/form/Slider.vue.d.ts +29 -0
  227. package/dist/components/form/Switch.stories.d.ts +11 -0
  228. package/dist/components/form/Switch.test.d.ts +1 -0
  229. package/dist/components/form/Switch.vue.d.ts +23 -0
  230. package/dist/components/form/TagsInput.stories.d.ts +13 -0
  231. package/dist/components/form/TagsInput.test.d.ts +1 -0
  232. package/dist/components/form/TagsInput.vue.d.ts +37 -0
  233. package/dist/components/form/TextArea.test.d.ts +1 -0
  234. package/dist/components/form/TextArea.vue.d.ts +40 -0
  235. package/dist/components/form/URLInput.stories.d.ts +11 -0
  236. package/dist/components/form/URLInput.test.d.ts +1 -0
  237. package/dist/components/form/URLInput.vue.d.ts +32 -0
  238. package/dist/components/form/index.cjs +36 -0
  239. package/dist/components/form/index.cjs.map +1 -0
  240. package/dist/components/form/index.d.ts +2 -0
  241. package/dist/components/form/index.js +3 -1
  242. package/dist/components/form/index.test.d.ts +1 -0
  243. package/dist/components/index.cjs +93 -0
  244. package/dist/components/index.cjs.map +1 -0
  245. package/dist/components/index.d.ts +5 -0
  246. package/dist/components/index.js +3 -1
  247. package/dist/components/index.test.d.ts +1 -0
  248. package/dist/components/layout/AuthLayout.stories.d.ts +10 -0
  249. package/dist/components/layout/AuthLayout.test.d.ts +1 -0
  250. package/dist/components/layout/AuthLayout.vue.d.ts +88 -0
  251. package/dist/components/layout/BaseLayout.stories.d.ts +11 -0
  252. package/dist/components/layout/BaseLayout.test.d.ts +1 -0
  253. package/dist/components/layout/BaseLayout.vue.d.ts +77 -0
  254. package/dist/components/layout/PageHero.stories.d.ts +11 -0
  255. package/dist/components/layout/PageHero.test.d.ts +1 -0
  256. package/dist/components/layout/PageHero.vue.d.ts +55 -0
  257. package/dist/components/layout/PageLayout.stories.d.ts +10 -0
  258. package/dist/components/layout/PageLayout.test.d.ts +1 -0
  259. package/dist/components/layout/PageLayout.vue.d.ts +37 -0
  260. package/dist/components/layout/index.cjs +8 -0
  261. package/dist/components/layout/index.cjs.map +1 -0
  262. package/dist/components/layout/index.test.d.ts +1 -0
  263. package/dist/components/type/BadgeType.stories.d.ts +13 -0
  264. package/dist/components/type/BadgeType.test.d.ts +1 -0
  265. package/dist/components/type/BooleanType.stories.d.ts +12 -0
  266. package/dist/components/type/BooleanType.test.d.ts +1 -0
  267. package/dist/components/type/DateType.stories.d.ts +12 -0
  268. package/dist/components/type/DateType.test.d.ts +1 -0
  269. package/dist/components/type/NumberType.stories.d.ts +11 -0
  270. package/dist/components/type/NumberType.test.d.ts +1 -0
  271. package/dist/components/type/TextType.stories.d.ts +10 -0
  272. package/dist/components/type/TextType.test.d.ts +1 -0
  273. package/dist/components/type/index.cjs +9 -0
  274. package/dist/components/type/index.cjs.map +1 -0
  275. package/dist/components/type/index.test.d.ts +1 -0
  276. package/dist/composables/index.cjs +19 -0
  277. package/dist/composables/index.cjs.map +1 -0
  278. package/dist/composables/index.d.ts +8 -0
  279. package/dist/composables/index.test.d.ts +1 -0
  280. package/dist/composables/useDarkMode.d.ts +14 -0
  281. package/dist/composables/useDarkMode.test.d.ts +1 -0
  282. package/dist/composables/useDropdown.d.ts +51 -0
  283. package/dist/composables/useDropdown.test.d.ts +1 -0
  284. package/dist/composables/useExportCSV.d.ts +10 -0
  285. package/dist/composables/useExportCSV.test.d.ts +1 -0
  286. package/dist/composables/useFocusTrap.d.ts +41 -0
  287. package/dist/composables/useFocusTrap.test.d.ts +1 -0
  288. package/dist/composables/useId.d.ts +42 -0
  289. package/dist/composables/useId.test.d.ts +1 -0
  290. package/dist/composables/useModal.d.ts +60 -0
  291. package/dist/composables/useModal.test.d.ts +1 -0
  292. package/dist/composables/useNotifications.d.ts +27 -0
  293. package/dist/composables/useNotifications.test.d.ts +1 -0
  294. package/dist/composables/useToast.d.ts +30 -0
  295. package/dist/composables/useToast.test.d.ts +1 -0
  296. package/dist/index-D1x3TH9k.cjs +401 -0
  297. package/dist/index-D1x3TH9k.cjs.map +1 -0
  298. package/dist/index-DXO2TliH.cjs +96 -0
  299. package/dist/index-DXO2TliH.cjs.map +1 -0
  300. package/dist/index-DpEkzIVv.js +97 -0
  301. package/dist/index-DpEkzIVv.js.map +1 -0
  302. package/dist/index.cjs +125 -0
  303. package/dist/index.cjs.map +1 -0
  304. package/dist/index.d.ts +5 -0
  305. package/dist/index.js +4 -2
  306. package/dist/index.test.d.ts +1 -0
  307. package/dist/plugin.d.ts +24 -0
  308. package/dist/style.css +2 -0
  309. package/dist/types/components.d.ts +28 -0
  310. package/dist/types/form.d.ts +37 -0
  311. package/dist/types/index.cjs +2 -0
  312. package/dist/types/index.cjs.map +1 -0
  313. package/dist/types/index.d.ts +4 -0
  314. package/dist/types/index.test.d.ts +1 -0
  315. package/dist/types/notification.d.ts +12 -0
  316. package/dist/types/property.d.ts +34 -0
  317. package/dist/useDarkMode-DLZcJEUQ.cjs +52 -0
  318. package/dist/useDarkMode-DLZcJEUQ.cjs.map +1 -0
  319. package/dist/useDropdown-DHFnd259.cjs +130 -0
  320. package/dist/useDropdown-DHFnd259.cjs.map +1 -0
  321. package/dist/useFocusTrap-kcxO8AeU.cjs +119 -0
  322. package/dist/useFocusTrap-kcxO8AeU.cjs.map +1 -0
  323. package/dist/useId-nxrBaIC9.cjs +25 -0
  324. package/dist/useId-nxrBaIC9.cjs.map +1 -0
  325. package/dist/useToast-Bk60GArg.cjs +176 -0
  326. package/dist/useToast-Bk60GArg.cjs.map +1 -0
  327. package/package.json +1 -1
  328. package/dist/TagsInput-DtoJKN3L.js.map +0 -1
  329. package/dist/index-F9yanU6_.js +0 -95
  330. package/dist/index-F9yanU6_.js.map +0 -1
@@ -0,0 +1,764 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const vue$1 = require("@iconify/vue");
4
+ const Dropdown_vue_vue_type_script_setup_true_lang = require("./Dropdown.vue_vue_type_script_setup_true_lang-BNOHbbm5.cjs");
5
+ const _hoisted_1$3 = { class: "flex min-h-screen" };
6
+ const _hoisted_2$3 = {
7
+ key: 0,
8
+ class: "absolute inset-0 overflow-hidden pointer-events-none"
9
+ };
10
+ const _hoisted_3$3 = {
11
+ key: 1,
12
+ class: "absolute inset-0 opacity-20 pointer-events-none",
13
+ style: { "background-image": "radial-gradient(circle, rgba(255,255,255,0.4) 1px, transparent 1px)", "background-size": "24px 24px" }
14
+ };
15
+ const _hoisted_4$3 = { class: "relative z-10 flex flex-col justify-center px-16 py-12 text-white w-full" };
16
+ const _hoisted_5$3 = { class: "flex items-center gap-3 mb-12" };
17
+ const _hoisted_6$3 = { class: "size-14 bg-white/20 backdrop-blur-sm rounded-2xl flex items-center justify-center" };
18
+ const _hoisted_7$3 = {
19
+ key: 0,
20
+ class: "text-3xl font-bold"
21
+ };
22
+ const _hoisted_8$3 = {
23
+ key: 0,
24
+ class: "text-4xl xl:text-5xl font-bold leading-tight mb-6"
25
+ };
26
+ const _hoisted_9$3 = {
27
+ key: 1,
28
+ class: "relative inline-block"
29
+ };
30
+ const _hoisted_10$3 = { class: "relative z-10" };
31
+ const _hoisted_11$2 = {
32
+ class: "absolute -bottom-2 left-0 w-full",
33
+ viewBox: "0 0 280 12",
34
+ fill: "none",
35
+ preserveAspectRatio: "none"
36
+ };
37
+ const _hoisted_12$1 = ["stroke"];
38
+ const _hoisted_13$1 = {
39
+ key: 0,
40
+ class: "text-lg text-white/80 max-w-md mb-10"
41
+ };
42
+ const _hoisted_14$1 = {
43
+ key: 0,
44
+ class: "space-y-4"
45
+ };
46
+ const _hoisted_15$1 = { class: "size-10 rounded-xl bg-white/10 backdrop-blur-sm flex items-center justify-center shrink-0" };
47
+ const _hoisted_16 = { class: "flex-1 flex items-center justify-center p-6 sm:p-12 bg-gradient-to-br from-gray-50 to-gray-100 dark:from-slate-900 dark:to-slate-800" };
48
+ const _hoisted_17 = { class: "lg:hidden text-center mb-8" };
49
+ const _hoisted_18 = { class: "size-12 bg-primary-600 rounded-xl flex items-center justify-center shadow-lg shadow-primary-200 dark:shadow-primary-900/30" };
50
+ const _hoisted_19 = {
51
+ key: 0,
52
+ class: "text-2xl font-bold text-gray-900 dark:text-white"
53
+ };
54
+ const _hoisted_20 = {
55
+ key: 0,
56
+ class: "text-center lg:text-left mb-8"
57
+ };
58
+ const _hoisted_21 = {
59
+ key: 0,
60
+ class: "text-2xl sm:text-3xl font-bold text-gray-900 dark:text-white mb-2"
61
+ };
62
+ const _hoisted_22 = {
63
+ key: 1,
64
+ class: "text-gray-600 dark:text-gray-400"
65
+ };
66
+ const _hoisted_23 = { class: "bg-white dark:bg-slate-800/80 rounded-3xl shadow-xl shadow-gray-200/50 dark:shadow-none p-8" };
67
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
68
+ __name: "AuthLayout",
69
+ props: {
70
+ appName: { default: "" },
71
+ appIcon: { default: "lucide:box" },
72
+ headline: { default: "" },
73
+ subHeadline: { default: "" },
74
+ description: { default: "" },
75
+ features: { default: () => [] },
76
+ gradientFrom: { default: "from-primary-700" },
77
+ gradientVia: { default: "" },
78
+ gradientTo: { default: "to-primary-800" },
79
+ showDecorations: { type: Boolean, default: true },
80
+ showPattern: { type: Boolean, default: true },
81
+ underlineColor: { default: "rgba(165, 180, 252, 0.5)" },
82
+ formTitle: { default: "" },
83
+ formSubtitle: { default: "" },
84
+ homeLink: { default: "/" },
85
+ brandingAnimation: { default: "" },
86
+ formAnimation: { default: "" }
87
+ },
88
+ setup(__props) {
89
+ const props = __props;
90
+ const slots = vue.useSlots();
91
+ const hasBrandingContent = vue.computed(() => {
92
+ return props.headline || props.subHeadline || props.description || props.features.length > 0 || slots["branding-logo"] || slots["branding-headline"] || slots["branding-content"] || props.appName;
93
+ });
94
+ const routerLinkComponent = vue.computed(() => {
95
+ try {
96
+ const RouterLink = vue.resolveComponent("RouterLink");
97
+ if (typeof RouterLink !== "string") {
98
+ return RouterLink;
99
+ }
100
+ } catch {
101
+ }
102
+ return "a";
103
+ });
104
+ const getLinkProps = (link) => {
105
+ if (routerLinkComponent.value === "a") {
106
+ return { href: link };
107
+ }
108
+ return { to: link };
109
+ };
110
+ const gradientClasses = vue.computed(() => {
111
+ const classes = [props.gradientFrom, props.gradientTo];
112
+ if (props.gradientVia) {
113
+ classes.splice(1, 0, props.gradientVia);
114
+ }
115
+ return classes.filter(Boolean);
116
+ });
117
+ return (_ctx, _cache) => {
118
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
119
+ hasBrandingContent.value || _ctx.$slots["branding-panel"] ? (vue.openBlock(), vue.createElementBlock("div", {
120
+ key: 0,
121
+ class: vue.normalizeClass([
122
+ "hidden lg:flex lg:w-1/2 relative overflow-hidden bg-gradient-to-br",
123
+ ...gradientClasses.value
124
+ ])
125
+ }, [
126
+ vue.renderSlot(_ctx.$slots, "branding-panel", {}, () => [
127
+ __props.showDecorations ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$3, [..._cache[0] || (_cache[0] = [
128
+ vue.createElementVNode("div", { class: "absolute -top-20 -left-20 size-80 bg-white/5 rounded-full blur-3xl" }, null, -1),
129
+ vue.createElementVNode("div", { class: "absolute top-1/3 right-10 size-60 bg-white/5 rounded-full blur-3xl" }, null, -1),
130
+ vue.createElementVNode("div", { class: "absolute bottom-20 left-1/4 size-72 bg-white/5 rounded-full blur-3xl" }, null, -1)
131
+ ])])) : vue.createCommentVNode("", true),
132
+ __props.showPattern ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$3)) : vue.createCommentVNode("", true),
133
+ __props.showDecorations ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
134
+ _cache[1] || (_cache[1] = vue.createElementVNode("div", { class: "absolute top-20 right-20 size-16 border-2 border-white/20 rounded-2xl rotate-12 pointer-events-none" }, null, -1)),
135
+ _cache[2] || (_cache[2] = vue.createElementVNode("div", { class: "absolute bottom-32 left-16 size-12 border-2 border-white/20 rounded-full pointer-events-none" }, null, -1)),
136
+ _cache[3] || (_cache[3] = vue.createElementVNode("div", { class: "absolute top-1/2 left-10 size-8 bg-white/10 rounded-lg rotate-45 pointer-events-none" }, null, -1))
137
+ ], 64)) : vue.createCommentVNode("", true),
138
+ vue.createElementVNode("div", _hoisted_4$3, [
139
+ vue.createElementVNode("div", {
140
+ class: vue.normalizeClass(__props.brandingAnimation)
141
+ }, [
142
+ vue.createElementVNode("div", _hoisted_5$3, [
143
+ vue.renderSlot(_ctx.$slots, "branding-logo", {}, () => [
144
+ __props.appName || __props.appIcon ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
145
+ vue.createElementVNode("div", _hoisted_6$3, [
146
+ vue.createVNode(vue.unref(vue$1.Icon), {
147
+ icon: __props.appIcon,
148
+ class: "size-8 text-white"
149
+ }, null, 8, ["icon"])
150
+ ]),
151
+ __props.appName ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$3, vue.toDisplayString(__props.appName), 1)) : vue.createCommentVNode("", true)
152
+ ], 64)) : vue.createCommentVNode("", true)
153
+ ])
154
+ ]),
155
+ vue.renderSlot(_ctx.$slots, "branding-headline", {}, () => [
156
+ __props.headline || __props.subHeadline ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_8$3, [
157
+ __props.headline ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
158
+ vue.createTextVNode(vue.toDisplayString(__props.headline), 1),
159
+ _cache[4] || (_cache[4] = vue.createElementVNode("br", null, null, -1))
160
+ ], 64)) : vue.createCommentVNode("", true),
161
+ __props.subHeadline ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_9$3, [
162
+ vue.createElementVNode("span", _hoisted_10$3, vue.toDisplayString(__props.subHeadline), 1),
163
+ (vue.openBlock(), vue.createElementBlock("svg", _hoisted_11$2, [
164
+ vue.createElementVNode("path", {
165
+ d: "M2 10C45 4 90 2 140 6C190 10 235 4 278 8",
166
+ stroke: __props.underlineColor,
167
+ "stroke-width": "4",
168
+ "stroke-linecap": "round"
169
+ }, null, 8, _hoisted_12$1)
170
+ ]))
171
+ ])) : vue.createCommentVNode("", true)
172
+ ])) : vue.createCommentVNode("", true)
173
+ ]),
174
+ __props.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_13$1, vue.toDisplayString(__props.description), 1)) : vue.createCommentVNode("", true),
175
+ vue.renderSlot(_ctx.$slots, "branding-features", {}, () => [
176
+ __props.features.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$1, [
177
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.features, (feature, index) => {
178
+ return vue.openBlock(), vue.createElementBlock("div", {
179
+ key: index,
180
+ class: "flex items-center gap-3 text-white/90"
181
+ }, [
182
+ vue.createElementVNode("div", _hoisted_15$1, [
183
+ vue.createVNode(vue.unref(vue$1.Icon), {
184
+ icon: feature.icon,
185
+ class: "size-5"
186
+ }, null, 8, ["icon"])
187
+ ]),
188
+ vue.createElementVNode("span", null, vue.toDisplayString(feature.text), 1)
189
+ ]);
190
+ }), 128))
191
+ ])) : vue.createCommentVNode("", true)
192
+ ]),
193
+ vue.renderSlot(_ctx.$slots, "branding-content")
194
+ ], 2)
195
+ ])
196
+ ])
197
+ ], 2)) : vue.createCommentVNode("", true),
198
+ vue.createElementVNode("div", _hoisted_16, [
199
+ vue.createElementVNode("div", {
200
+ class: vue.normalizeClass(["w-full max-w-md", __props.formAnimation])
201
+ }, [
202
+ vue.createElementVNode("div", _hoisted_17, [
203
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(routerLinkComponent.value), vue.mergeProps(getLinkProps(__props.homeLink), { class: "inline-flex items-center gap-3" }), {
204
+ default: vue.withCtx(() => [
205
+ vue.renderSlot(_ctx.$slots, "mobile-logo", {}, () => [
206
+ __props.appName || __props.appIcon ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
207
+ vue.createElementVNode("div", _hoisted_18, [
208
+ vue.createVNode(vue.unref(vue$1.Icon), {
209
+ icon: __props.appIcon,
210
+ class: "size-6 text-white"
211
+ }, null, 8, ["icon"])
212
+ ]),
213
+ __props.appName ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_19, vue.toDisplayString(__props.appName), 1)) : vue.createCommentVNode("", true)
214
+ ], 64)) : vue.createCommentVNode("", true)
215
+ ])
216
+ ]),
217
+ _: 3
218
+ }, 16))
219
+ ]),
220
+ vue.renderSlot(_ctx.$slots, "form-header", {}, () => [
221
+ __props.formTitle || __props.formSubtitle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_20, [
222
+ __props.formTitle ? (vue.openBlock(), vue.createElementBlock("h2", _hoisted_21, vue.toDisplayString(__props.formTitle), 1)) : vue.createCommentVNode("", true),
223
+ __props.formSubtitle ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_22, vue.toDisplayString(__props.formSubtitle), 1)) : vue.createCommentVNode("", true)
224
+ ])) : vue.createCommentVNode("", true)
225
+ ]),
226
+ vue.createElementVNode("div", _hoisted_23, [
227
+ vue.renderSlot(_ctx.$slots, "default")
228
+ ]),
229
+ vue.renderSlot(_ctx.$slots, "form-footer")
230
+ ], 2)
231
+ ])
232
+ ]);
233
+ };
234
+ }
235
+ });
236
+ const _hoisted_1$2 = { class: "font-inter relative flex h-dvh overflow-hidden bg-gray-100 dark:bg-slate-900" };
237
+ const _hoisted_2$2 = { class: "flex h-16 items-center px-3" };
238
+ const _hoisted_3$2 = { class: "flex flex-1 items-center justify-center gap-3" };
239
+ const _hoisted_4$2 = { class: "bg-primary text-primary-foreground flex size-8 items-center justify-center rounded-lg bg-white/20" };
240
+ const _hoisted_5$2 = { class: "flex flex-col gap-3 px-3 pb-3" };
241
+ const _hoisted_6$2 = { class: "flex flex-1 flex-col min-w-0" };
242
+ const _hoisted_7$2 = { class: "flex h-16 items-center justify-between border-b border-slate-200 bg-white px-4 dark:border-slate-800 dark:bg-slate-950" };
243
+ const _hoisted_8$2 = { class: "flex-1" };
244
+ const _hoisted_9$2 = { class: "flex items-center gap-3" };
245
+ const _hoisted_10$2 = { class: "flex items-center gap-2 rounded-lg p-1.5 transition hover:bg-gray-100 dark:hover:bg-gray-800" };
246
+ const _hoisted_11$1 = { class: "flex size-8 items-center justify-center rounded-full bg-primary text-sm font-medium text-white" };
247
+ const _hoisted_12 = { class: "hidden text-sm font-medium text-gray-700 dark:text-gray-300 md:block" };
248
+ const _hoisted_13 = { class: "min-w-48 py-1" };
249
+ const _hoisted_14 = { class: "flex flex-1 flex-col overflow-y-auto overflow-x-hidden" };
250
+ const _hoisted_15 = { class: "container mx-auto flex flex-1 flex-col gap-5 p-5 max-w-full" };
251
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
252
+ __name: "BaseLayout",
253
+ props: {
254
+ menuItems: { default: () => [] },
255
+ appName: { default: "App" },
256
+ appIcon: { default: "lucide:box" },
257
+ sidebarOpen: { type: Boolean, default: true },
258
+ dark: { type: Boolean, default: false },
259
+ showDarkToggle: { type: Boolean, default: true },
260
+ sidebarClass: { default: "bg-[#172b4c] dark:bg-slate-950" },
261
+ currentPath: { default: void 0 },
262
+ userName: { default: void 0 },
263
+ userAvatar: { default: void 0 },
264
+ userMenuItems: { default: () => [] },
265
+ menuPosition: { default: "top" }
266
+ },
267
+ emits: ["update:sidebarOpen", "update:dark"],
268
+ setup(__props, { emit: __emit }) {
269
+ const props = __props;
270
+ const menuPositionClass = vue.computed(() => {
271
+ switch (props.menuPosition) {
272
+ case "center":
273
+ return "lg:justify-center";
274
+ case "bottom":
275
+ return "lg:justify-end";
276
+ case "top":
277
+ default:
278
+ return "lg:justify-start";
279
+ }
280
+ });
281
+ const emit = __emit;
282
+ const internalSidebarOpen = vue.ref(props.sidebarOpen);
283
+ const internalDark = vue.ref(props.dark);
284
+ const sidebarOpenModel = vue.computed({
285
+ get: () => props.sidebarOpen ?? internalSidebarOpen.value,
286
+ set: (value) => {
287
+ internalSidebarOpen.value = value;
288
+ emit("update:sidebarOpen", value);
289
+ }
290
+ });
291
+ const darkModel = vue.computed({
292
+ get: () => props.dark ?? internalDark.value,
293
+ set: (value) => {
294
+ internalDark.value = value;
295
+ emit("update:dark", value);
296
+ }
297
+ });
298
+ const toggleSidebar = () => {
299
+ sidebarOpenModel.value = !sidebarOpenModel.value;
300
+ };
301
+ const toggleDark = () => {
302
+ darkModel.value = !darkModel.value;
303
+ };
304
+ const routerViewComponent = vue.computed(() => {
305
+ try {
306
+ const RouterView = vue.resolveComponent("RouterView");
307
+ if (typeof RouterView !== "string") {
308
+ return RouterView;
309
+ }
310
+ } catch {
311
+ }
312
+ return null;
313
+ });
314
+ const routerLinkComponent = vue.computed(() => {
315
+ try {
316
+ const RouterLink = vue.resolveComponent("RouterLink");
317
+ if (typeof RouterLink !== "string") {
318
+ return RouterLink;
319
+ }
320
+ } catch {
321
+ }
322
+ return "a";
323
+ });
324
+ const getLinkProps = (link) => {
325
+ if (routerLinkComponent.value === "a") {
326
+ return { href: link };
327
+ }
328
+ return { to: link };
329
+ };
330
+ const handleUserMenuClick = (item) => {
331
+ if (item.action) {
332
+ item.action();
333
+ }
334
+ };
335
+ return (_ctx, _cache) => {
336
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
337
+ sidebarOpenModel.value ? (vue.openBlock(), vue.createElementBlock("div", {
338
+ key: 0,
339
+ class: "absolute z-40 h-full w-full bg-slate-950/20 lg:hidden dark:bg-white/20",
340
+ onClick: _cache[0] || (_cache[0] = ($event) => sidebarOpenModel.value = false)
341
+ })) : vue.createCommentVNode("", true),
342
+ vue.createElementVNode("aside", {
343
+ class: vue.normalizeClass([[
344
+ sidebarOpenModel.value ? "lg:w-60" : "max-lg:-translate-x-76 lg:w-16",
345
+ __props.sidebarClass
346
+ ], "@container max-lg:absolute max-lg:z-50 flex h-full w-76 flex-col justify-between gap-10 transition-all duration-1000 ease-in-out"])
347
+ }, [
348
+ vue.createElementVNode("div", _hoisted_2$2, [
349
+ vue.createElementVNode("div", _hoisted_3$2, [
350
+ vue.renderSlot(_ctx.$slots, "logo", {}, () => [
351
+ vue.createElementVNode("div", _hoisted_4$2, [
352
+ vue.createVNode(vue.unref(vue$1.Icon), {
353
+ class: "size-5 text-white",
354
+ icon: __props.appIcon
355
+ }, null, 8, ["icon"])
356
+ ]),
357
+ vue.createElementVNode("span", {
358
+ class: vue.normalizeClass([sidebarOpenModel.value ? "block" : "hidden", "font-outfit flex-1 text-lg font-semibold text-white"])
359
+ }, vue.toDisplayString(__props.appName), 3)
360
+ ])
361
+ ]),
362
+ vue.createElementVNode("button", {
363
+ class: "rounded-lg bg-white/10 p-1 transition hover:bg-white/20 lg:hidden",
364
+ onClick: toggleSidebar
365
+ }, [
366
+ vue.createVNode(vue.unref(vue$1.Icon), {
367
+ class: "size-6 text-white",
368
+ icon: "lucide:menu"
369
+ })
370
+ ])
371
+ ]),
372
+ vue.createElementVNode("div", {
373
+ class: vue.normalizeClass([[sidebarOpenModel.value ? "items-start" : "items-center", menuPositionClass.value], "flex min-h-0 flex-1 flex-col gap-8 overflow-y-auto overflow-x-hidden px-2"])
374
+ }, [
375
+ vue.renderSlot(_ctx.$slots, "menu", { currentPath: __props.currentPath }, () => [
376
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.menuItems, (item, index) => {
377
+ return vue.openBlock(), vue.createBlock(Dropdown_vue_vue_type_script_setup_true_lang._sfc_main, {
378
+ key: index,
379
+ "menu-item": item,
380
+ expanded: sidebarOpenModel.value,
381
+ "current-path": __props.currentPath
382
+ }, null, 8, ["menu-item", "expanded", "current-path"]);
383
+ }), 128))
384
+ ])
385
+ ], 2),
386
+ vue.createElementVNode("div", _hoisted_5$2, [
387
+ vue.renderSlot(_ctx.$slots, "sidebar-footer")
388
+ ])
389
+ ], 2),
390
+ vue.createElementVNode("div", _hoisted_6$2, [
391
+ vue.createElementVNode("header", _hoisted_7$2, [
392
+ vue.createElementVNode("div", null, [
393
+ vue.createElementVNode("button", {
394
+ class: "rounded-lg bg-gray-100 p-1 transition hover:bg-gray-200 dark:bg-gray-900 dark:hover:bg-gray-800",
395
+ onClick: toggleSidebar
396
+ }, [
397
+ vue.createVNode(vue.unref(vue$1.Icon), {
398
+ class: "size-6 text-gray-900 hover:text-gray-800 dark:text-gray-100",
399
+ icon: "lucide:menu"
400
+ })
401
+ ])
402
+ ]),
403
+ vue.createElementVNode("div", _hoisted_8$2, [
404
+ vue.renderSlot(_ctx.$slots, "header-center")
405
+ ]),
406
+ vue.createElementVNode("div", _hoisted_9$2, [
407
+ vue.renderSlot(_ctx.$slots, "header-actions"),
408
+ __props.showDarkToggle ? (vue.openBlock(), vue.createElementBlock("button", {
409
+ key: 0,
410
+ class: "flex items-center justify-center rounded-lg bg-gray-100 p-2 transition hover:bg-gray-200 dark:bg-gray-900 dark:hover:bg-gray-800",
411
+ onClick: toggleDark
412
+ }, [
413
+ vue.createVNode(vue.unref(vue$1.Icon), {
414
+ icon: darkModel.value ? "lucide:sun" : "lucide:moon",
415
+ class: "size-5 text-gray-900 dark:text-gray-100"
416
+ }, null, 8, ["icon"])
417
+ ])) : vue.createCommentVNode("", true),
418
+ __props.userName || __props.userAvatar ? (vue.openBlock(), vue.createBlock(Dropdown_vue_vue_type_script_setup_true_lang._sfc_main$1, {
419
+ key: 1,
420
+ align: "right"
421
+ }, {
422
+ trigger: vue.withCtx(() => [
423
+ vue.createElementVNode("button", _hoisted_10$2, [
424
+ vue.createElementVNode("div", _hoisted_11$1, vue.toDisplayString(__props.userAvatar || "?"), 1),
425
+ vue.createElementVNode("span", _hoisted_12, vue.toDisplayString(__props.userName), 1),
426
+ vue.createVNode(vue.unref(vue$1.Icon), {
427
+ icon: "lucide:chevron-down",
428
+ class: "size-4 text-gray-500"
429
+ })
430
+ ])
431
+ ]),
432
+ default: vue.withCtx(({ close }) => [
433
+ vue.createElementVNode("div", _hoisted_13, [
434
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.userMenuItems, (item) => {
435
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.link ? routerLinkComponent.value : "button"), vue.mergeProps({
436
+ key: item.label
437
+ }, { ref_for: true }, item.link ? getLinkProps(item.link) : {}, {
438
+ class: "flex w-full items-center gap-2 px-4 py-2 text-left text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-800",
439
+ onClick: ($event) => {
440
+ handleUserMenuClick(item);
441
+ close();
442
+ }
443
+ }), {
444
+ default: vue.withCtx(() => [
445
+ item.icon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
446
+ key: 0,
447
+ icon: item.icon,
448
+ class: "size-4"
449
+ }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
450
+ vue.createTextVNode(" " + vue.toDisplayString(item.label), 1)
451
+ ]),
452
+ _: 2
453
+ }, 1040, ["onClick"]);
454
+ }), 128))
455
+ ])
456
+ ]),
457
+ _: 1
458
+ })) : vue.createCommentVNode("", true)
459
+ ])
460
+ ]),
461
+ vue.createElementVNode("div", _hoisted_14, [
462
+ vue.createElementVNode("main", _hoisted_15, [
463
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
464
+ routerViewComponent.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(routerViewComponent.value), { key: 0 })) : vue.createCommentVNode("", true)
465
+ ])
466
+ ])
467
+ ])
468
+ ])
469
+ ]);
470
+ };
471
+ }
472
+ });
473
+ const _hoisted_1$1 = { class: "flex flex-col gap-4" };
474
+ const _hoisted_2$1 = {
475
+ key: 0,
476
+ "aria-label": "Breadcrumb"
477
+ };
478
+ const _hoisted_3$1 = { class: "flex items-center" };
479
+ const _hoisted_4$1 = {
480
+ key: 0,
481
+ class: "mx-3 text-sm font-semibold text-gray-400 dark:text-gray-600"
482
+ };
483
+ const _hoisted_5$1 = { class: "flex flex-col gap-4 md:flex-row md:items-start md:justify-between" };
484
+ const _hoisted_6$1 = { class: "flex flex-col gap-1 min-w-0 flex-1" };
485
+ const _hoisted_7$1 = {
486
+ key: 0,
487
+ class: "text-2xl font-bold text-gray-900 dark:text-gray-100 truncate"
488
+ };
489
+ const _hoisted_8$1 = {
490
+ key: 1,
491
+ class: "text-sm text-gray-600 dark:text-gray-400"
492
+ };
493
+ const _hoisted_9$1 = { class: "flex items-center gap-2 flex-wrap shrink-0" };
494
+ const _hoisted_10$1 = { class: "flex-1" };
495
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
496
+ __name: "PageLayout",
497
+ props: {
498
+ title: {},
499
+ description: {},
500
+ breadcrumbs: {}
501
+ },
502
+ setup(__props) {
503
+ const linkComponent = vue.computed(() => {
504
+ try {
505
+ const RouterLink = vue.resolveComponent("RouterLink");
506
+ if (typeof RouterLink !== "string") {
507
+ return RouterLink;
508
+ }
509
+ } catch {
510
+ }
511
+ return "a";
512
+ });
513
+ const getLinkProps = (link) => {
514
+ if (linkComponent.value === "a") {
515
+ return { href: link };
516
+ }
517
+ return { to: link };
518
+ };
519
+ return (_ctx, _cache) => {
520
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
521
+ __props.breadcrumbs && __props.breadcrumbs.length > 0 ? (vue.openBlock(), vue.createElementBlock("nav", _hoisted_2$1, [
522
+ vue.createElementVNode("ol", _hoisted_3$1, [
523
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.breadcrumbs, (breadcrumb, index) => {
524
+ return vue.openBlock(), vue.createElementBlock("li", {
525
+ key: index,
526
+ class: "flex items-center"
527
+ }, [
528
+ index > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$1, " / ")) : vue.createCommentVNode("", true),
529
+ vue.renderSlot(_ctx.$slots, "breadcrumb", {
530
+ breadcrumb,
531
+ index,
532
+ isLast: index === __props.breadcrumbs.length - 1
533
+ }, () => [
534
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(linkComponent.value), vue.mergeProps({ ref_for: true }, getLinkProps(breadcrumb.link), {
535
+ class: [
536
+ "text-sm transition-colors",
537
+ index < __props.breadcrumbs.length - 1 ? "font-semibold text-gray-900 hover:text-primary/90 hover:underline dark:text-gray-100" : "text-gray-400 dark:text-gray-600"
538
+ ]
539
+ }), {
540
+ default: vue.withCtx(() => [
541
+ vue.createTextVNode(vue.toDisplayString(breadcrumb.label), 1)
542
+ ]),
543
+ _: 2
544
+ }, 1040, ["class"]))
545
+ ])
546
+ ]);
547
+ }), 128))
548
+ ])
549
+ ])) : vue.createCommentVNode("", true),
550
+ vue.createElementVNode("div", _hoisted_5$1, [
551
+ vue.createElementVNode("div", _hoisted_6$1, [
552
+ __props.title ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_7$1, [
553
+ vue.renderSlot(_ctx.$slots, "title", {}, () => [
554
+ vue.createTextVNode(vue.toDisplayString(__props.title), 1)
555
+ ])
556
+ ])) : vue.createCommentVNode("", true),
557
+ __props.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_8$1, [
558
+ vue.renderSlot(_ctx.$slots, "description", {}, () => [
559
+ vue.createTextVNode(vue.toDisplayString(__props.description), 1)
560
+ ])
561
+ ])) : vue.createCommentVNode("", true)
562
+ ]),
563
+ vue.createElementVNode("div", _hoisted_9$1, [
564
+ vue.renderSlot(_ctx.$slots, "actions")
565
+ ])
566
+ ]),
567
+ vue.createElementVNode("div", _hoisted_10$1, [
568
+ vue.renderSlot(_ctx.$slots, "default")
569
+ ])
570
+ ]);
571
+ };
572
+ }
573
+ });
574
+ const _hoisted_1 = {
575
+ key: 0,
576
+ class: "absolute inset-0 overflow-hidden pointer-events-none"
577
+ };
578
+ const _hoisted_2 = {
579
+ key: 1,
580
+ class: "absolute inset-0 overflow-hidden pointer-events-none"
581
+ };
582
+ const _hoisted_3 = { class: "relative px-4 pt-8 pb-10 sm:px-6 lg:px-8 max-w-5xl mx-auto" };
583
+ const _hoisted_4 = { class: "text-center mb-8 animate-fade-in-up" };
584
+ const _hoisted_5 = {
585
+ key: 0,
586
+ class: "inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/15 backdrop-blur-sm border border-white/20 mb-4"
587
+ };
588
+ const _hoisted_6 = {
589
+ key: 1,
590
+ class: "text-sm font-medium text-white"
591
+ };
592
+ const _hoisted_7 = { class: "text-2xl sm:text-3xl font-bold text-white mb-2" };
593
+ const _hoisted_8 = {
594
+ key: 0,
595
+ class: "animate-fade-in-up [animation-delay:0.1s]"
596
+ };
597
+ const _hoisted_9 = {
598
+ key: 0,
599
+ class: "w-10 h-10 mx-auto mb-2 rounded-xl bg-white/20 flex items-center justify-center"
600
+ };
601
+ const _hoisted_10 = { class: "text-2xl sm:text-3xl font-bold text-white" };
602
+ const _hoisted_11 = {
603
+ key: 2,
604
+ class: "absolute bottom-0 left-0 right-0"
605
+ };
606
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
607
+ __name: "PageHero",
608
+ props: {
609
+ title: {},
610
+ subtitle: {},
611
+ badge: {},
612
+ badgeIcon: {},
613
+ showBlobs: { type: Boolean, default: true },
614
+ showWave: { type: Boolean, default: true },
615
+ stats: {},
616
+ gradientDirection: { default: "br" },
617
+ decorativeIcons: {},
618
+ colorScheme: { default: "primary" }
619
+ },
620
+ setup(__props) {
621
+ const props = __props;
622
+ const colorClasses = vue.computed(() => {
623
+ const schemes = {
624
+ primary: {
625
+ gradient: "from-primary-600 via-primary-500 to-primary-400",
626
+ subtitle: "text-primary-100"
627
+ },
628
+ cyan: {
629
+ gradient: "from-cyan-600 via-cyan-500 to-teal-500",
630
+ subtitle: "text-cyan-100"
631
+ },
632
+ violet: {
633
+ gradient: "from-violet-600 via-violet-500 to-purple-500",
634
+ subtitle: "text-violet-100"
635
+ },
636
+ emerald: {
637
+ gradient: "from-emerald-600 via-emerald-500 to-teal-500",
638
+ subtitle: "text-emerald-100"
639
+ },
640
+ rose: {
641
+ gradient: "from-rose-600 via-rose-500 to-pink-500",
642
+ subtitle: "text-rose-100"
643
+ },
644
+ amber: {
645
+ gradient: "from-amber-600 via-amber-500 to-orange-500",
646
+ subtitle: "text-amber-100"
647
+ },
648
+ blue: {
649
+ gradient: "from-blue-600 via-blue-500 to-indigo-500",
650
+ subtitle: "text-blue-100"
651
+ },
652
+ teal: {
653
+ gradient: "from-teal-600 via-teal-500 to-cyan-500",
654
+ subtitle: "text-teal-100"
655
+ }
656
+ };
657
+ return schemes[props.colorScheme];
658
+ });
659
+ return (_ctx, _cache) => {
660
+ var _a, _b;
661
+ return vue.openBlock(), vue.createElementBlock("div", {
662
+ class: vue.normalizeClass(["relative overflow-hidden bg-linear-to-br", colorClasses.value.gradient])
663
+ }, [
664
+ __props.showBlobs ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [..._cache[0] || (_cache[0] = [
665
+ vue.createElementVNode("div", { class: "absolute -top-20 -right-20 w-72 h-72 bg-white/10 rounded-full blur-3xl animate-float" }, null, -1),
666
+ vue.createElementVNode("div", { class: "absolute -bottom-32 -left-32 w-96 h-96 bg-white/5 rounded-full blur-3xl animate-float [animation-delay:1s]" }, null, -1)
667
+ ])])) : vue.createCommentVNode("", true),
668
+ ((_a = __props.decorativeIcons) == null ? void 0 : _a.length) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
669
+ __props.decorativeIcons[0] ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
670
+ key: 0,
671
+ icon: __props.decorativeIcons[0],
672
+ class: "absolute top-12 right-8 w-24 h-24 text-white/5 rotate-12"
673
+ }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
674
+ __props.decorativeIcons[1] ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
675
+ key: 1,
676
+ icon: __props.decorativeIcons[1],
677
+ class: "absolute bottom-8 left-12 w-20 h-20 text-white/5 -rotate-12"
678
+ }, null, 8, ["icon"])) : vue.createCommentVNode("", true)
679
+ ])) : vue.createCommentVNode("", true),
680
+ vue.renderSlot(_ctx.$slots, "background"),
681
+ vue.createElementVNode("div", _hoisted_3, [
682
+ vue.createElementVNode("div", _hoisted_4, [
683
+ __props.badge || __props.badgeIcon || _ctx.$slots.badge ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
684
+ vue.renderSlot(_ctx.$slots, "badge", {}, () => [
685
+ __props.badgeIcon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
686
+ key: 0,
687
+ icon: __props.badgeIcon,
688
+ class: "w-5 h-5 text-white"
689
+ }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
690
+ __props.badge ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_6, vue.toDisplayString(__props.badge), 1)) : vue.createCommentVNode("", true)
691
+ ])
692
+ ])) : vue.createCommentVNode("", true),
693
+ vue.createElementVNode("h1", _hoisted_7, [
694
+ vue.renderSlot(_ctx.$slots, "title", {}, () => [
695
+ vue.createTextVNode(vue.toDisplayString(__props.title), 1)
696
+ ])
697
+ ]),
698
+ __props.subtitle || _ctx.$slots.subtitle ? (vue.openBlock(), vue.createElementBlock("p", {
699
+ key: 1,
700
+ class: vue.normalizeClass(["text-sm sm:text-base", colorClasses.value.subtitle])
701
+ }, [
702
+ vue.renderSlot(_ctx.$slots, "subtitle", {}, () => [
703
+ vue.createTextVNode(vue.toDisplayString(__props.subtitle), 1)
704
+ ])
705
+ ], 2)) : vue.createCommentVNode("", true)
706
+ ]),
707
+ ((_b = __props.stats) == null ? void 0 : _b.length) || _ctx.$slots.stats ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
708
+ vue.renderSlot(_ctx.$slots, "stats", {}, () => {
709
+ var _a2, _b2, _c;
710
+ return [
711
+ vue.createElementVNode("div", {
712
+ class: vue.normalizeClass(["grid gap-3 sm:gap-4", [
713
+ ((_a2 = __props.stats) == null ? void 0 : _a2.length) === 2 ? "grid-cols-2" : "",
714
+ ((_b2 = __props.stats) == null ? void 0 : _b2.length) === 3 ? "grid-cols-3" : "",
715
+ ((_c = __props.stats) == null ? void 0 : _c.length) === 4 ? "grid-cols-2 sm:grid-cols-4" : "",
716
+ __props.stats && __props.stats.length > 4 ? "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4" : ""
717
+ ]])
718
+ }, [
719
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.stats, (stat, index) => {
720
+ return vue.openBlock(), vue.createElementBlock("div", {
721
+ key: index,
722
+ class: "bg-white/15 backdrop-blur-sm rounded-2xl p-4 border border-white/20 text-center"
723
+ }, [
724
+ stat.icon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, [
725
+ vue.createVNode(vue.unref(vue$1.Icon), {
726
+ icon: stat.icon,
727
+ class: "w-5 h-5 text-white"
728
+ }, null, 8, ["icon"])
729
+ ])) : vue.createCommentVNode("", true),
730
+ vue.createElementVNode("div", _hoisted_10, vue.toDisplayString(stat.value), 1),
731
+ vue.createElementVNode("div", {
732
+ class: vue.normalizeClass(["text-xs sm:text-sm", colorClasses.value.subtitle])
733
+ }, vue.toDisplayString(stat.label), 3)
734
+ ]);
735
+ }), 128))
736
+ ], 2)
737
+ ];
738
+ })
739
+ ])) : vue.createCommentVNode("", true),
740
+ vue.renderSlot(_ctx.$slots, "content")
741
+ ]),
742
+ __props.showWave ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11, [..._cache[1] || (_cache[1] = [
743
+ vue.createElementVNode("svg", {
744
+ viewBox: "0 0 1440 80",
745
+ fill: "none",
746
+ xmlns: "http://www.w3.org/2000/svg",
747
+ class: "w-full h-auto",
748
+ preserveAspectRatio: "none"
749
+ }, [
750
+ vue.createElementVNode("path", {
751
+ d: "M0 80L60 74.7C120 69 240 59 360 53.3C480 48 600 48 720 53.3C840 59 960 69 1080 69.3C1200 69 1320 59 1380 53.3L1440 48V80H1380C1320 80 1200 80 1080 80C960 80 840 80 720 80C600 80 480 80 360 80C240 80 120 80 60 80H0Z",
752
+ class: "fill-gray-50 dark:fill-slate-900"
753
+ })
754
+ ], -1)
755
+ ])])) : vue.createCommentVNode("", true)
756
+ ], 2);
757
+ };
758
+ }
759
+ });
760
+ exports._sfc_main = _sfc_main$3;
761
+ exports._sfc_main$1 = _sfc_main$2;
762
+ exports._sfc_main$2 = _sfc_main$1;
763
+ exports._sfc_main$3 = _sfc_main;
764
+ //# sourceMappingURL=PageHero.vue_vue_type_script_setup_true_lang-CZ-TibKk.cjs.map