@poppy-ui/vue 0.0.0-dev.36.93ba5b2

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 (853) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/dist/ClassWrapper-BNZO3mhP.cjs +2 -0
  4. package/dist/ClassWrapper-BNZO3mhP.cjs.map +1 -0
  5. package/dist/ClassWrapper-DdnnHfAj.js +24 -0
  6. package/dist/ClassWrapper-DdnnHfAj.js.map +1 -0
  7. package/dist/Toast-DuytECg8.cjs +2 -0
  8. package/dist/Toast-DuytECg8.cjs.map +1 -0
  9. package/dist/Toast-fSQWLl0R.js +63 -0
  10. package/dist/Toast-fSQWLl0R.js.map +1 -0
  11. package/dist/_plugin-vue_export-helper-B3ysoDQm.js +8 -0
  12. package/dist/_plugin-vue_export-helper-BTmtiIyf.cjs +1 -0
  13. package/dist/build-class.util-Cp-ZBFgO.js +1730 -0
  14. package/dist/build-class.util-Cp-ZBFgO.js.map +1 -0
  15. package/dist/build-class.util-Lo1-M_t1.cjs +2 -0
  16. package/dist/build-class.util-Lo1-M_t1.cjs.map +1 -0
  17. package/dist/components/ClassWrapper.d.ts +27 -0
  18. package/dist/components/ClassWrapper.d.ts.map +1 -0
  19. package/dist/components/actions/button/Button.d.ts +21 -0
  20. package/dist/components/actions/button/Button.d.ts.map +1 -0
  21. package/dist/components/actions/button/button.context.d.ts +2 -0
  22. package/dist/components/actions/button/button.context.d.ts.map +1 -0
  23. package/dist/components/actions/button/button.props.d.ts +58 -0
  24. package/dist/components/actions/button/button.props.d.ts.map +1 -0
  25. package/dist/components/actions/button/button.types.d.ts +7 -0
  26. package/dist/components/actions/button/button.types.d.ts.map +1 -0
  27. package/dist/components/actions/dropdown/Dropdown.d.ts +25 -0
  28. package/dist/components/actions/dropdown/Dropdown.d.ts.map +1 -0
  29. package/dist/components/actions/dropdown/dropdown.context.d.ts +2 -0
  30. package/dist/components/actions/dropdown/dropdown.context.d.ts.map +1 -0
  31. package/dist/components/actions/dropdown/dropdown.props.d.ts +60 -0
  32. package/dist/components/actions/dropdown/dropdown.props.d.ts.map +1 -0
  33. package/dist/components/actions/dropdown/dropdown.types.d.ts +4 -0
  34. package/dist/components/actions/dropdown/dropdown.types.d.ts.map +1 -0
  35. package/dist/components/actions/fab/Fab.d.ts +16 -0
  36. package/dist/components/actions/fab/Fab.d.ts.map +1 -0
  37. package/dist/components/actions/fab/fab.context.d.ts +2 -0
  38. package/dist/components/actions/fab/fab.context.d.ts.map +1 -0
  39. package/dist/components/actions/fab/fab.props.d.ts +11 -0
  40. package/dist/components/actions/fab/fab.props.d.ts.map +1 -0
  41. package/dist/components/actions/fab/fab.types.d.ts +2 -0
  42. package/dist/components/actions/fab/fab.types.d.ts.map +1 -0
  43. package/dist/components/actions/modal/Modal.d.ts +42 -0
  44. package/dist/components/actions/modal/Modal.d.ts.map +1 -0
  45. package/dist/components/actions/modal/modal.context.d.ts +2 -0
  46. package/dist/components/actions/modal/modal.context.d.ts.map +1 -0
  47. package/dist/components/actions/modal/modal.props.d.ts +31 -0
  48. package/dist/components/actions/modal/modal.props.d.ts.map +1 -0
  49. package/dist/components/actions/modal/modal.types.d.ts +2 -0
  50. package/dist/components/actions/modal/modal.types.d.ts.map +1 -0
  51. package/dist/components/actions/public.d.ts +6 -0
  52. package/dist/components/actions/public.d.ts.map +1 -0
  53. package/dist/components/actions/public.es.js +323 -0
  54. package/dist/components/actions/public.es.js.map +1 -0
  55. package/dist/components/actions/public.types.d.ts +11 -0
  56. package/dist/components/actions/public.types.d.ts.map +1 -0
  57. package/dist/components/actions/public.umd.js +2 -0
  58. package/dist/components/actions/public.umd.js.map +1 -0
  59. package/dist/components/actions/swap/Swap.d.ts +36 -0
  60. package/dist/components/actions/swap/Swap.d.ts.map +1 -0
  61. package/dist/components/actions/swap/swap.context.d.ts +2 -0
  62. package/dist/components/actions/swap/swap.context.d.ts.map +1 -0
  63. package/dist/components/actions/swap/swap.props.d.ts +18 -0
  64. package/dist/components/actions/swap/swap.props.d.ts.map +1 -0
  65. package/dist/components/actions/swap/swap.types.d.ts +2 -0
  66. package/dist/components/actions/swap/swap.types.d.ts.map +1 -0
  67. package/dist/components/app/PoppyApp.d.ts +14 -0
  68. package/dist/components/app/PoppyApp.d.ts.map +1 -0
  69. package/dist/components/app/public.d.ts +2 -0
  70. package/dist/components/app/public.d.ts.map +1 -0
  71. package/dist/components/app/public.es.js +42 -0
  72. package/dist/components/app/public.es.js.map +1 -0
  73. package/dist/components/app/public.umd.js +2 -0
  74. package/dist/components/app/public.umd.js.map +1 -0
  75. package/dist/components/data/checkbox/Checkbox.d.ts +25 -0
  76. package/dist/components/data/checkbox/Checkbox.d.ts.map +1 -0
  77. package/dist/components/data/checkbox/checkbox.context.d.ts +2 -0
  78. package/dist/components/data/checkbox/checkbox.context.d.ts.map +1 -0
  79. package/dist/components/data/checkbox/checkbox.props.d.ts +44 -0
  80. package/dist/components/data/checkbox/checkbox.props.d.ts.map +1 -0
  81. package/dist/components/data/checkbox/checkbox.types.d.ts +4 -0
  82. package/dist/components/data/checkbox/checkbox.types.d.ts.map +1 -0
  83. package/dist/components/data/field-set/FieldSet.d.ts +21 -0
  84. package/dist/components/data/field-set/FieldSet.d.ts.map +1 -0
  85. package/dist/components/data/field-set/field-set.props.d.ts +20 -0
  86. package/dist/components/data/field-set/field-set.props.d.ts.map +1 -0
  87. package/dist/components/data/form/Form.d.ts +37 -0
  88. package/dist/components/data/form/Form.d.ts.map +1 -0
  89. package/dist/components/data/form/form.context.d.ts +57 -0
  90. package/dist/components/data/form/form.context.d.ts.map +1 -0
  91. package/dist/components/data/form/form.props.d.ts +28 -0
  92. package/dist/components/data/form/form.props.d.ts.map +1 -0
  93. package/dist/components/data/form/form.types.d.ts +25 -0
  94. package/dist/components/data/form/form.types.d.ts.map +1 -0
  95. package/dist/components/data/form-field/FormField.d.ts +28 -0
  96. package/dist/components/data/form-field/FormField.d.ts.map +1 -0
  97. package/dist/components/data/form-field/form-field.context.d.ts +53 -0
  98. package/dist/components/data/form-field/form-field.context.d.ts.map +1 -0
  99. package/dist/components/data/form-field/form-field.props.d.ts +37 -0
  100. package/dist/components/data/form-field/form-field.props.d.ts.map +1 -0
  101. package/dist/components/data/form-field/form-field.types.d.ts +2 -0
  102. package/dist/components/data/form-field/form-field.types.d.ts.map +1 -0
  103. package/dist/components/data/input/Input.d.ts +31 -0
  104. package/dist/components/data/input/Input.d.ts.map +1 -0
  105. package/dist/components/data/input/input.context.d.ts +2 -0
  106. package/dist/components/data/input/input.context.d.ts.map +1 -0
  107. package/dist/components/data/input/input.props.d.ts +78 -0
  108. package/dist/components/data/input/input.props.d.ts.map +1 -0
  109. package/dist/components/data/input/input.types.d.ts +6 -0
  110. package/dist/components/data/input/input.types.d.ts.map +1 -0
  111. package/dist/components/data/public.d.ts +13 -0
  112. package/dist/components/data/public.d.ts.map +1 -0
  113. package/dist/components/data/public.es.js +1816 -0
  114. package/dist/components/data/public.es.js.map +1 -0
  115. package/dist/components/data/public.types.d.ts +21 -0
  116. package/dist/components/data/public.types.d.ts.map +1 -0
  117. package/dist/components/data/public.umd.js +2 -0
  118. package/dist/components/data/public.umd.js.map +1 -0
  119. package/dist/components/data/radio/Radio.d.ts +25 -0
  120. package/dist/components/data/radio/Radio.d.ts.map +1 -0
  121. package/dist/components/data/radio/radio.context.d.ts +2 -0
  122. package/dist/components/data/radio/radio.context.d.ts.map +1 -0
  123. package/dist/components/data/radio/radio.props.d.ts +47 -0
  124. package/dist/components/data/radio/radio.props.d.ts.map +1 -0
  125. package/dist/components/data/radio/radio.types.d.ts +4 -0
  126. package/dist/components/data/radio/radio.types.d.ts.map +1 -0
  127. package/dist/components/data/radio-group/RadioGroup.d.ts +28 -0
  128. package/dist/components/data/radio-group/RadioGroup.d.ts.map +1 -0
  129. package/dist/components/data/radio-group/radio-group.context.d.ts +13 -0
  130. package/dist/components/data/radio-group/radio-group.context.d.ts.map +1 -0
  131. package/dist/components/data/radio-group/radio-group.props.d.ts +12 -0
  132. package/dist/components/data/radio-group/radio-group.props.d.ts.map +1 -0
  133. package/dist/components/data/rating/Rating.d.ts +26 -0
  134. package/dist/components/data/rating/Rating.d.ts.map +1 -0
  135. package/dist/components/data/rating/rating.context.d.ts +2 -0
  136. package/dist/components/data/rating/rating.context.d.ts.map +1 -0
  137. package/dist/components/data/rating/rating.props.d.ts +44 -0
  138. package/dist/components/data/rating/rating.props.d.ts.map +1 -0
  139. package/dist/components/data/rating/rating.types.d.ts +6 -0
  140. package/dist/components/data/rating/rating.types.d.ts.map +1 -0
  141. package/dist/components/data/select/Select.d.ts +79 -0
  142. package/dist/components/data/select/Select.d.ts.map +1 -0
  143. package/dist/components/data/select/select.context.d.ts +2 -0
  144. package/dist/components/data/select/select.context.d.ts.map +1 -0
  145. package/dist/components/data/select/select.props.d.ts +99 -0
  146. package/dist/components/data/select/select.props.d.ts.map +1 -0
  147. package/dist/components/data/select/select.types.d.ts +20 -0
  148. package/dist/components/data/select/select.types.d.ts.map +1 -0
  149. package/dist/components/data/slider/Slider.d.ts +29 -0
  150. package/dist/components/data/slider/Slider.d.ts.map +1 -0
  151. package/dist/components/data/slider/slider.context.d.ts +2 -0
  152. package/dist/components/data/slider/slider.context.d.ts.map +1 -0
  153. package/dist/components/data/slider/slider.props.d.ts +70 -0
  154. package/dist/components/data/slider/slider.props.d.ts.map +1 -0
  155. package/dist/components/data/slider/slider.types.d.ts +7 -0
  156. package/dist/components/data/slider/slider.types.d.ts.map +1 -0
  157. package/dist/components/data/textarea/Textarea.d.ts +22 -0
  158. package/dist/components/data/textarea/Textarea.d.ts.map +1 -0
  159. package/dist/components/data/textarea/textarea.context.d.ts +2 -0
  160. package/dist/components/data/textarea/textarea.context.d.ts.map +1 -0
  161. package/dist/components/data/textarea/textarea.props.d.ts +64 -0
  162. package/dist/components/data/textarea/textarea.props.d.ts.map +1 -0
  163. package/dist/components/data/textarea/textarea.types.d.ts +5 -0
  164. package/dist/components/data/textarea/textarea.types.d.ts.map +1 -0
  165. package/dist/components/data/toggle/Toggle.d.ts +31 -0
  166. package/dist/components/data/toggle/Toggle.d.ts.map +1 -0
  167. package/dist/components/data/toggle/toggle.context.d.ts +2 -0
  168. package/dist/components/data/toggle/toggle.context.d.ts.map +1 -0
  169. package/dist/components/data/toggle/toggle.props.d.ts +38 -0
  170. package/dist/components/data/toggle/toggle.props.d.ts.map +1 -0
  171. package/dist/components/data/toggle/toggle.types.d.ts +4 -0
  172. package/dist/components/data/toggle/toggle.types.d.ts.map +1 -0
  173. package/dist/components/display/accordion/Accordion.d.ts +42 -0
  174. package/dist/components/display/accordion/Accordion.d.ts.map +1 -0
  175. package/dist/components/display/accordion/AccordionItem.d.ts +35 -0
  176. package/dist/components/display/accordion/AccordionItem.d.ts.map +1 -0
  177. package/dist/components/display/accordion/accordion-item.context.d.ts +2 -0
  178. package/dist/components/display/accordion/accordion-item.context.d.ts.map +1 -0
  179. package/dist/components/display/accordion/accordion-item.props.d.ts +19 -0
  180. package/dist/components/display/accordion/accordion-item.props.d.ts.map +1 -0
  181. package/dist/components/display/accordion/accordion-item.types.d.ts +2 -0
  182. package/dist/components/display/accordion/accordion-item.types.d.ts.map +1 -0
  183. package/dist/components/display/accordion/accordion.context.d.ts +9 -0
  184. package/dist/components/display/accordion/accordion.context.d.ts.map +1 -0
  185. package/dist/components/display/accordion/accordion.props.d.ts +15 -0
  186. package/dist/components/display/accordion/accordion.props.d.ts.map +1 -0
  187. package/dist/components/display/avatar/Avatar.d.ts +14 -0
  188. package/dist/components/display/avatar/Avatar.d.ts.map +1 -0
  189. package/dist/components/display/avatar/avatar.context.d.ts +2 -0
  190. package/dist/components/display/avatar/avatar.context.d.ts.map +1 -0
  191. package/dist/components/display/avatar/avatar.props.d.ts +45 -0
  192. package/dist/components/display/avatar/avatar.props.d.ts.map +1 -0
  193. package/dist/components/display/avatar/avatar.types.d.ts +5 -0
  194. package/dist/components/display/avatar/avatar.types.d.ts.map +1 -0
  195. package/dist/components/display/badge/Badge.d.ts +12 -0
  196. package/dist/components/display/badge/Badge.d.ts.map +1 -0
  197. package/dist/components/display/badge/badge.context.d.ts +2 -0
  198. package/dist/components/display/badge/badge.context.d.ts.map +1 -0
  199. package/dist/components/display/badge/badge.props.d.ts +20 -0
  200. package/dist/components/display/badge/badge.props.d.ts.map +1 -0
  201. package/dist/components/display/badge/badge.types.d.ts +5 -0
  202. package/dist/components/display/badge/badge.types.d.ts.map +1 -0
  203. package/dist/components/display/card/Card.d.ts +12 -0
  204. package/dist/components/display/card/Card.d.ts.map +1 -0
  205. package/dist/components/display/card/CardActions.d.ts +12 -0
  206. package/dist/components/display/card/CardActions.d.ts.map +1 -0
  207. package/dist/components/display/card/CardBody.d.ts +14 -0
  208. package/dist/components/display/card/CardBody.d.ts.map +1 -0
  209. package/dist/components/display/card/CardTitle.d.ts +14 -0
  210. package/dist/components/display/card/CardTitle.d.ts.map +1 -0
  211. package/dist/components/display/card/card-actions.context.d.ts +2 -0
  212. package/dist/components/display/card/card-actions.context.d.ts.map +1 -0
  213. package/dist/components/display/card/card-actions.props.d.ts +15 -0
  214. package/dist/components/display/card/card-actions.props.d.ts.map +1 -0
  215. package/dist/components/display/card/card-actions.types.d.ts +2 -0
  216. package/dist/components/display/card/card-actions.types.d.ts.map +1 -0
  217. package/dist/components/display/card/card.context.d.ts +2 -0
  218. package/dist/components/display/card/card.context.d.ts.map +1 -0
  219. package/dist/components/display/card/card.props.d.ts +30 -0
  220. package/dist/components/display/card/card.props.d.ts.map +1 -0
  221. package/dist/components/display/card/card.types.d.ts +4 -0
  222. package/dist/components/display/card/card.types.d.ts.map +1 -0
  223. package/dist/components/display/carousel/Carousel.d.ts +16 -0
  224. package/dist/components/display/carousel/Carousel.d.ts.map +1 -0
  225. package/dist/components/display/carousel/carousel.context.d.ts +2 -0
  226. package/dist/components/display/carousel/carousel.context.d.ts.map +1 -0
  227. package/dist/components/display/carousel/carousel.props.d.ts +52 -0
  228. package/dist/components/display/carousel/carousel.props.d.ts.map +1 -0
  229. package/dist/components/display/carousel/carousel.types.d.ts +3 -0
  230. package/dist/components/display/carousel/carousel.types.d.ts.map +1 -0
  231. package/dist/components/display/chat/Chat.d.ts +20 -0
  232. package/dist/components/display/chat/Chat.d.ts.map +1 -0
  233. package/dist/components/display/chat/chat.context.d.ts +2 -0
  234. package/dist/components/display/chat/chat.context.d.ts.map +1 -0
  235. package/dist/components/display/chat/chat.props.d.ts +18 -0
  236. package/dist/components/display/chat/chat.props.d.ts.map +1 -0
  237. package/dist/components/display/chat/chat.types.d.ts +3 -0
  238. package/dist/components/display/chat/chat.types.d.ts.map +1 -0
  239. package/dist/components/display/countdown/Countdown.d.ts +38 -0
  240. package/dist/components/display/countdown/Countdown.d.ts.map +1 -0
  241. package/dist/components/display/countdown/countdown.context.d.ts +2 -0
  242. package/dist/components/display/countdown/countdown.context.d.ts.map +1 -0
  243. package/dist/components/display/countdown/countdown.props.d.ts +25 -0
  244. package/dist/components/display/countdown/countdown.props.d.ts.map +1 -0
  245. package/dist/components/display/countdown/countdown.types.d.ts +23 -0
  246. package/dist/components/display/countdown/countdown.types.d.ts.map +1 -0
  247. package/dist/components/display/diff/Diff.d.ts +16 -0
  248. package/dist/components/display/diff/Diff.d.ts.map +1 -0
  249. package/dist/components/display/hover-3d/Hover3d.d.ts +12 -0
  250. package/dist/components/display/hover-3d/Hover3d.d.ts.map +1 -0
  251. package/dist/components/display/hover-3d/hover-3d.props.d.ts +9 -0
  252. package/dist/components/display/hover-3d/hover-3d.props.d.ts.map +1 -0
  253. package/dist/components/display/hover-gallery/HoverGallery.d.ts +14 -0
  254. package/dist/components/display/hover-gallery/HoverGallery.d.ts.map +1 -0
  255. package/dist/components/display/kbd/Kbd.d.ts +12 -0
  256. package/dist/components/display/kbd/Kbd.d.ts.map +1 -0
  257. package/dist/components/display/kbd/kbd.context.d.ts +2 -0
  258. package/dist/components/display/kbd/kbd.context.d.ts.map +1 -0
  259. package/dist/components/display/kbd/kbd.props.d.ts +12 -0
  260. package/dist/components/display/kbd/kbd.props.d.ts.map +1 -0
  261. package/dist/components/display/kbd/kbd.types.d.ts +3 -0
  262. package/dist/components/display/kbd/kbd.types.d.ts.map +1 -0
  263. package/dist/components/display/list/List.d.ts +17 -0
  264. package/dist/components/display/list/List.d.ts.map +1 -0
  265. package/dist/components/display/list/ListItem.d.ts +22 -0
  266. package/dist/components/display/list/ListItem.d.ts.map +1 -0
  267. package/dist/components/display/list/list-item.props.d.ts +17 -0
  268. package/dist/components/display/list/list-item.props.d.ts.map +1 -0
  269. package/dist/components/display/list/list.props.d.ts +8 -0
  270. package/dist/components/display/list/list.props.d.ts.map +1 -0
  271. package/dist/components/display/public.d.ts +21 -0
  272. package/dist/components/display/public.d.ts.map +1 -0
  273. package/dist/components/display/public.es.js +2 -0
  274. package/dist/components/display/public.types.d.ts +28 -0
  275. package/dist/components/display/public.types.d.ts.map +1 -0
  276. package/dist/components/display/public.umd.js +1 -0
  277. package/dist/components/display/stat/Stat.d.ts +22 -0
  278. package/dist/components/display/stat/Stat.d.ts.map +1 -0
  279. package/dist/components/display/stat/Stats.d.ts +12 -0
  280. package/dist/components/display/stat/Stats.d.ts.map +1 -0
  281. package/dist/components/display/stat/stat.context.d.ts +2 -0
  282. package/dist/components/display/stat/stat.context.d.ts.map +1 -0
  283. package/dist/components/display/stat/stat.props.d.ts +42 -0
  284. package/dist/components/display/stat/stat.props.d.ts.map +1 -0
  285. package/dist/components/display/stat/stat.types.d.ts +2 -0
  286. package/dist/components/display/stat/stat.types.d.ts.map +1 -0
  287. package/dist/components/display/stat/stats.context.d.ts +2 -0
  288. package/dist/components/display/stat/stats.context.d.ts.map +1 -0
  289. package/dist/components/display/stat/stats.props.d.ts +11 -0
  290. package/dist/components/display/stat/stats.props.d.ts.map +1 -0
  291. package/dist/components/display/stat/stats.types.d.ts +2 -0
  292. package/dist/components/display/stat/stats.types.d.ts.map +1 -0
  293. package/dist/components/display/status/Status.d.ts +5 -0
  294. package/dist/components/display/status/Status.d.ts.map +1 -0
  295. package/dist/components/display/status/status.context.d.ts +2 -0
  296. package/dist/components/display/status/status.context.d.ts.map +1 -0
  297. package/dist/components/display/status/status.props.d.ts +27 -0
  298. package/dist/components/display/status/status.props.d.ts.map +1 -0
  299. package/dist/components/display/status/status.types.d.ts +5 -0
  300. package/dist/components/display/status/status.types.d.ts.map +1 -0
  301. package/dist/components/feedback/alert/Alert.d.ts +14 -0
  302. package/dist/components/feedback/alert/Alert.d.ts.map +1 -0
  303. package/dist/components/feedback/alert/alert.context.d.ts +2 -0
  304. package/dist/components/feedback/alert/alert.context.d.ts.map +1 -0
  305. package/dist/components/feedback/alert/alert.props.d.ts +27 -0
  306. package/dist/components/feedback/alert/alert.props.d.ts.map +1 -0
  307. package/dist/components/feedback/alert/alert.types.d.ts +4 -0
  308. package/dist/components/feedback/alert/alert.types.d.ts.map +1 -0
  309. package/dist/components/feedback/loading/Loading.d.ts +5 -0
  310. package/dist/components/feedback/loading/Loading.d.ts.map +1 -0
  311. package/dist/components/feedback/loading/loading.context.d.ts +2 -0
  312. package/dist/components/feedback/loading/loading.context.d.ts.map +1 -0
  313. package/dist/components/feedback/loading/loading.props.d.ts +23 -0
  314. package/dist/components/feedback/loading/loading.props.d.ts.map +1 -0
  315. package/dist/components/feedback/loading/loading.types.d.ts +5 -0
  316. package/dist/components/feedback/loading/loading.types.d.ts.map +1 -0
  317. package/dist/components/feedback/progress/Progress.d.ts +5 -0
  318. package/dist/components/feedback/progress/Progress.d.ts.map +1 -0
  319. package/dist/components/feedback/progress/progress.context.d.ts +2 -0
  320. package/dist/components/feedback/progress/progress.context.d.ts.map +1 -0
  321. package/dist/components/feedback/progress/progress.props.d.ts +28 -0
  322. package/dist/components/feedback/progress/progress.props.d.ts.map +1 -0
  323. package/dist/components/feedback/progress/progress.types.d.ts +2 -0
  324. package/dist/components/feedback/progress/progress.types.d.ts.map +1 -0
  325. package/dist/components/feedback/public.d.ts +6 -0
  326. package/dist/components/feedback/public.d.ts.map +1 -0
  327. package/dist/components/feedback/public.es.js +128 -0
  328. package/dist/components/feedback/public.es.js.map +1 -0
  329. package/dist/components/feedback/public.types.d.ts +13 -0
  330. package/dist/components/feedback/public.types.d.ts.map +1 -0
  331. package/dist/components/feedback/public.umd.js +2 -0
  332. package/dist/components/feedback/public.umd.js.map +1 -0
  333. package/dist/components/feedback/radial-progress/radial-progress.context.d.ts +2 -0
  334. package/dist/components/feedback/radial-progress/radial-progress.context.d.ts.map +1 -0
  335. package/dist/components/feedback/radial-progress/radial-progress.props.d.ts +32 -0
  336. package/dist/components/feedback/radial-progress/radial-progress.props.d.ts.map +1 -0
  337. package/dist/components/feedback/radial-progress/radial-progress.types.d.ts +2 -0
  338. package/dist/components/feedback/radial-progress/radial-progress.types.d.ts.map +1 -0
  339. package/dist/components/feedback/toast/Toast.d.ts +12 -0
  340. package/dist/components/feedback/toast/Toast.d.ts.map +1 -0
  341. package/dist/components/feedback/toast/toast.context.d.ts +9 -0
  342. package/dist/components/feedback/toast/toast.context.d.ts.map +1 -0
  343. package/dist/components/feedback/toast/toast.props.d.ts +31 -0
  344. package/dist/components/feedback/toast/toast.props.d.ts.map +1 -0
  345. package/dist/components/feedback/toast/toast.types.d.ts +5 -0
  346. package/dist/components/feedback/toast/toast.types.d.ts.map +1 -0
  347. package/dist/components/feedback/tooltip/Tooltip.d.ts +14 -0
  348. package/dist/components/feedback/tooltip/Tooltip.d.ts.map +1 -0
  349. package/dist/components/feedback/tooltip/tooltip.context.d.ts +2 -0
  350. package/dist/components/feedback/tooltip/tooltip.context.d.ts.map +1 -0
  351. package/dist/components/feedback/tooltip/tooltip.props.d.ts +39 -0
  352. package/dist/components/feedback/tooltip/tooltip.props.d.ts.map +1 -0
  353. package/dist/components/feedback/tooltip/tooltip.types.d.ts +3 -0
  354. package/dist/components/feedback/tooltip/tooltip.types.d.ts.map +1 -0
  355. package/dist/components/layout/divider/Divider.d.ts +12 -0
  356. package/dist/components/layout/divider/Divider.d.ts.map +1 -0
  357. package/dist/components/layout/divider/divider.context.d.ts +2 -0
  358. package/dist/components/layout/divider/divider.context.d.ts.map +1 -0
  359. package/dist/components/layout/divider/divider.props.d.ts +26 -0
  360. package/dist/components/layout/divider/divider.props.d.ts.map +1 -0
  361. package/dist/components/layout/divider/divider.types.d.ts +4 -0
  362. package/dist/components/layout/divider/divider.types.d.ts.map +1 -0
  363. package/dist/components/layout/drawer/Drawer.d.ts +39 -0
  364. package/dist/components/layout/drawer/Drawer.d.ts.map +1 -0
  365. package/dist/components/layout/drawer/drawer.context.d.ts +2 -0
  366. package/dist/components/layout/drawer/drawer.context.d.ts.map +1 -0
  367. package/dist/components/layout/drawer/drawer.props.d.ts +27 -0
  368. package/dist/components/layout/drawer/drawer.props.d.ts.map +1 -0
  369. package/dist/components/layout/drawer/drawer.types.d.ts +6 -0
  370. package/dist/components/layout/drawer/drawer.types.d.ts.map +1 -0
  371. package/dist/components/layout/indicator/Indicator.d.ts +14 -0
  372. package/dist/components/layout/indicator/Indicator.d.ts.map +1 -0
  373. package/dist/components/layout/indicator/indicator.context.d.ts +2 -0
  374. package/dist/components/layout/indicator/indicator.context.d.ts.map +1 -0
  375. package/dist/components/layout/indicator/indicator.props.d.ts +28 -0
  376. package/dist/components/layout/indicator/indicator.props.d.ts.map +1 -0
  377. package/dist/components/layout/indicator/indicator.types.d.ts +3 -0
  378. package/dist/components/layout/indicator/indicator.types.d.ts.map +1 -0
  379. package/dist/components/layout/join/Join.d.ts +12 -0
  380. package/dist/components/layout/join/Join.d.ts.map +1 -0
  381. package/dist/components/layout/join/join.context.d.ts +2 -0
  382. package/dist/components/layout/join/join.context.d.ts.map +1 -0
  383. package/dist/components/layout/join/join.props.d.ts +14 -0
  384. package/dist/components/layout/join/join.props.d.ts.map +1 -0
  385. package/dist/components/layout/join/join.types.d.ts +2 -0
  386. package/dist/components/layout/join/join.types.d.ts.map +1 -0
  387. package/dist/components/layout/mask/Mask.d.ts +12 -0
  388. package/dist/components/layout/mask/Mask.d.ts.map +1 -0
  389. package/dist/components/layout/mask/mask.context.d.ts +2 -0
  390. package/dist/components/layout/mask/mask.context.d.ts.map +1 -0
  391. package/dist/components/layout/mask/mask.props.d.ts +37 -0
  392. package/dist/components/layout/mask/mask.props.d.ts.map +1 -0
  393. package/dist/components/layout/mask/mask.types.d.ts +3 -0
  394. package/dist/components/layout/mask/mask.types.d.ts.map +1 -0
  395. package/dist/components/layout/public.d.ts +7 -0
  396. package/dist/components/layout/public.d.ts.map +1 -0
  397. package/dist/components/layout/public.es.js +206 -0
  398. package/dist/components/layout/public.es.js.map +1 -0
  399. package/dist/components/layout/public.types.d.ts +13 -0
  400. package/dist/components/layout/public.types.d.ts.map +1 -0
  401. package/dist/components/layout/public.umd.js +2 -0
  402. package/dist/components/layout/public.umd.js.map +1 -0
  403. package/dist/components/layout/stack/Stack.d.ts +12 -0
  404. package/dist/components/layout/stack/Stack.d.ts.map +1 -0
  405. package/dist/components/layout/stack/stack.context.d.ts +2 -0
  406. package/dist/components/layout/stack/stack.context.d.ts.map +1 -0
  407. package/dist/components/layout/stack/stack.props.d.ts +12 -0
  408. package/dist/components/layout/stack/stack.props.d.ts.map +1 -0
  409. package/dist/components/layout/stack/stack.types.d.ts +2 -0
  410. package/dist/components/layout/stack/stack.types.d.ts.map +1 -0
  411. package/dist/components/media/img/Img.d.ts +15 -0
  412. package/dist/components/media/img/Img.d.ts.map +1 -0
  413. package/dist/components/media/img/img.context.d.ts +2 -0
  414. package/dist/components/media/img/img.context.d.ts.map +1 -0
  415. package/dist/components/media/img/img.props.d.ts +76 -0
  416. package/dist/components/media/img/img.props.d.ts.map +1 -0
  417. package/dist/components/media/img/img.types.d.ts +33 -0
  418. package/dist/components/media/img/img.types.d.ts.map +1 -0
  419. package/dist/components/media/public.d.ts +2 -0
  420. package/dist/components/media/public.d.ts.map +1 -0
  421. package/dist/components/media/public.es.js +143 -0
  422. package/dist/components/media/public.es.js.map +1 -0
  423. package/dist/components/media/public.types.d.ts +3 -0
  424. package/dist/components/media/public.types.d.ts.map +1 -0
  425. package/dist/components/media/public.umd.js +2 -0
  426. package/dist/components/media/public.umd.js.map +1 -0
  427. package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts +5 -0
  428. package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  429. package/dist/components/navigation/breadcrumbs/breadcrumbs.context.d.ts +2 -0
  430. package/dist/components/navigation/breadcrumbs/breadcrumbs.context.d.ts.map +1 -0
  431. package/dist/components/navigation/breadcrumbs/breadcrumbs.props.d.ts +17 -0
  432. package/dist/components/navigation/breadcrumbs/breadcrumbs.props.d.ts.map +1 -0
  433. package/dist/components/navigation/breadcrumbs/breadcrumbs.types.d.ts +11 -0
  434. package/dist/components/navigation/breadcrumbs/breadcrumbs.types.d.ts.map +1 -0
  435. package/dist/components/navigation/dock/Dock.d.ts +12 -0
  436. package/dist/components/navigation/dock/Dock.d.ts.map +1 -0
  437. package/dist/components/navigation/dock/DockItem.d.ts +5 -0
  438. package/dist/components/navigation/dock/DockItem.d.ts.map +1 -0
  439. package/dist/components/navigation/dock/dock.context.d.ts +3 -0
  440. package/dist/components/navigation/dock/dock.context.d.ts.map +1 -0
  441. package/dist/components/navigation/dock/dock.props.d.ts +30 -0
  442. package/dist/components/navigation/dock/dock.props.d.ts.map +1 -0
  443. package/dist/components/navigation/dock/dock.types.d.ts +3 -0
  444. package/dist/components/navigation/dock/dock.types.d.ts.map +1 -0
  445. package/dist/components/navigation/link/Link.d.ts +12 -0
  446. package/dist/components/navigation/link/Link.d.ts.map +1 -0
  447. package/dist/components/navigation/link/link.context.d.ts +2 -0
  448. package/dist/components/navigation/link/link.context.d.ts.map +1 -0
  449. package/dist/components/navigation/link/link.props.d.ts +21 -0
  450. package/dist/components/navigation/link/link.props.d.ts.map +1 -0
  451. package/dist/components/navigation/link/link.types.d.ts +2 -0
  452. package/dist/components/navigation/link/link.types.d.ts.map +1 -0
  453. package/dist/components/navigation/menu/Menu.d.ts +12 -0
  454. package/dist/components/navigation/menu/Menu.d.ts.map +1 -0
  455. package/dist/components/navigation/menu/MenuItem.d.ts +36 -0
  456. package/dist/components/navigation/menu/MenuItem.d.ts.map +1 -0
  457. package/dist/components/navigation/menu/menu.context.d.ts +3 -0
  458. package/dist/components/navigation/menu/menu.context.d.ts.map +1 -0
  459. package/dist/components/navigation/menu/menu.props.d.ts +61 -0
  460. package/dist/components/navigation/menu/menu.props.d.ts.map +1 -0
  461. package/dist/components/navigation/menu/menu.types.d.ts +4 -0
  462. package/dist/components/navigation/menu/menu.types.d.ts.map +1 -0
  463. package/dist/components/navigation/navbar/Navbar.d.ts +4 -0
  464. package/dist/components/navigation/navbar/Navbar.d.ts.map +1 -0
  465. package/dist/components/navigation/public.d.ts +10 -0
  466. package/dist/components/navigation/public.d.ts.map +1 -0
  467. package/dist/components/navigation/public.es.js +2 -0
  468. package/dist/components/navigation/public.types.d.ts +11 -0
  469. package/dist/components/navigation/public.types.d.ts.map +1 -0
  470. package/dist/components/navigation/public.umd.js +1 -0
  471. package/dist/components/navigation/tab/Tab.d.ts +19 -0
  472. package/dist/components/navigation/tab/Tab.d.ts.map +1 -0
  473. package/dist/components/navigation/tab/Tabs.d.ts +20 -0
  474. package/dist/components/navigation/tab/Tabs.d.ts.map +1 -0
  475. package/dist/components/navigation/tab/tab.context.d.ts +10 -0
  476. package/dist/components/navigation/tab/tab.context.d.ts.map +1 -0
  477. package/dist/components/navigation/tab/tab.props.d.ts +59 -0
  478. package/dist/components/navigation/tab/tab.props.d.ts.map +1 -0
  479. package/dist/components/navigation/tab/tab.types.d.ts +5 -0
  480. package/dist/components/navigation/tab/tab.types.d.ts.map +1 -0
  481. package/dist/composables/public.d.ts +6 -0
  482. package/dist/composables/public.d.ts.map +1 -0
  483. package/dist/composables/public.es.js +39 -0
  484. package/dist/composables/public.es.js.map +1 -0
  485. package/dist/composables/public.umd.js +2 -0
  486. package/dist/composables/public.umd.js.map +1 -0
  487. package/dist/composables/use-component-config.d.ts +27 -0
  488. package/dist/composables/use-component-config.d.ts.map +1 -0
  489. package/dist/composables/use-config.d.ts +2 -0
  490. package/dist/composables/use-config.d.ts.map +1 -0
  491. package/dist/composables/use-form-field.d.ts +24 -0
  492. package/dist/composables/use-form-field.d.ts.map +1 -0
  493. package/dist/composables/use-select-counter.d.ts +13 -0
  494. package/dist/composables/use-select-counter.d.ts.map +1 -0
  495. package/dist/composables/use-toast.d.ts +36 -0
  496. package/dist/composables/use-toast.d.ts.map +1 -0
  497. package/dist/config/config.type.d.ts +96 -0
  498. package/dist/config/config.type.d.ts.map +1 -0
  499. package/dist/config/public.d.ts +3 -0
  500. package/dist/config/public.d.ts.map +1 -0
  501. package/dist/config/public.es.js +2 -0
  502. package/dist/config/public.types.d.ts +2 -0
  503. package/dist/config/public.types.d.ts.map +1 -0
  504. package/dist/config/public.umd.js +1 -0
  505. package/dist/config/size.context.d.ts +4 -0
  506. package/dist/config/size.context.d.ts.map +1 -0
  507. package/dist/config/symbol.d.ts +4 -0
  508. package/dist/config/symbol.d.ts.map +1 -0
  509. package/dist/plugin-vue.d.ts +33 -0
  510. package/dist/plugin-vue.d.ts.map +1 -0
  511. package/dist/public-1PFjXgZ6.cjs +2 -0
  512. package/dist/public-1PFjXgZ6.cjs.map +1 -0
  513. package/dist/public-D_MhbTxP.cjs +2 -0
  514. package/dist/public-D_MhbTxP.cjs.map +1 -0
  515. package/dist/public-Dqelew6J.js +615 -0
  516. package/dist/public-Dqelew6J.js.map +1 -0
  517. package/dist/public-H9TCdoJr.js +296 -0
  518. package/dist/public-H9TCdoJr.js.map +1 -0
  519. package/dist/public.d.ts +12 -0
  520. package/dist/public.d.ts.map +1 -0
  521. package/dist/public.es.js +15 -0
  522. package/dist/public.es.js.map +1 -0
  523. package/dist/public.umd.js +2 -0
  524. package/dist/public.umd.js.map +1 -0
  525. package/dist/style.css +2 -0
  526. package/dist/symbol-Cleu4XHu.cjs +2 -0
  527. package/dist/symbol-Cleu4XHu.cjs.map +1 -0
  528. package/dist/symbol-CziS7Pho.js +13 -0
  529. package/dist/symbol-CziS7Pho.js.map +1 -0
  530. package/dist/toast.context-BNg0Zn09.cjs +2 -0
  531. package/dist/toast.context-BNg0Zn09.cjs.map +1 -0
  532. package/dist/toast.context-CTPY2imu.js +7 -0
  533. package/dist/toast.context-CTPY2imu.js.map +1 -0
  534. package/dist/types/public.d.ts +3 -0
  535. package/dist/types/public.d.ts.map +1 -0
  536. package/dist/types/public.es.js +0 -0
  537. package/dist/types/public.umd.js +1 -0
  538. package/dist/types/size.type.d.ts +2 -0
  539. package/dist/types/size.type.d.ts.map +1 -0
  540. package/dist/types/utils.type.d.ts +5 -0
  541. package/dist/types/utils.type.d.ts.map +1 -0
  542. package/dist/use-component-config-C-IlXF0W.cjs +2 -0
  543. package/dist/use-component-config-C-IlXF0W.cjs.map +1 -0
  544. package/dist/use-component-config-CaJQbJOW.js +20 -0
  545. package/dist/use-component-config-CaJQbJOW.js.map +1 -0
  546. package/dist/use-select-counter-CgQha-_T.cjs +2 -0
  547. package/dist/use-select-counter-CgQha-_T.cjs.map +1 -0
  548. package/dist/use-select-counter-D_-Qwz61.js +72 -0
  549. package/dist/use-select-counter-D_-Qwz61.js.map +1 -0
  550. package/dist/utils/build-class.util.d.ts +4 -0
  551. package/dist/utils/build-class.util.d.ts.map +1 -0
  552. package/dist/utils/get-validation-message.d.ts +22 -0
  553. package/dist/utils/get-validation-message.d.ts.map +1 -0
  554. package/dist/utils/path.d.ts +20 -0
  555. package/dist/utils/path.d.ts.map +1 -0
  556. package/dist/utils/props.util.d.ts +2 -0
  557. package/dist/utils/props.util.d.ts.map +1 -0
  558. package/dist/utils/public.d.ts +2 -0
  559. package/dist/utils/public.d.ts.map +1 -0
  560. package/package.json +138 -0
  561. package/src/components/ClassWrapper.vue +42 -0
  562. package/src/components/actions/button/Button.story.vue +184 -0
  563. package/src/components/actions/button/Button.vue +110 -0
  564. package/src/components/actions/button/button.context.ts +3 -0
  565. package/src/components/actions/button/button.props.ts +56 -0
  566. package/src/components/actions/button/button.types.ts +7 -0
  567. package/src/components/actions/dropdown/Dropdown.story.vue +360 -0
  568. package/src/components/actions/dropdown/Dropdown.vue +218 -0
  569. package/src/components/actions/dropdown/dropdown.context.ts +3 -0
  570. package/src/components/actions/dropdown/dropdown.props.ts +59 -0
  571. package/src/components/actions/dropdown/dropdown.types.ts +4 -0
  572. package/src/components/actions/fab/Fab.story.vue +227 -0
  573. package/src/components/actions/fab/Fab.vue +33 -0
  574. package/src/components/actions/fab/fab.context.ts +3 -0
  575. package/src/components/actions/fab/fab.props.ts +11 -0
  576. package/src/components/actions/fab/fab.types.ts +1 -0
  577. package/src/components/actions/modal/Modal.story.vue +285 -0
  578. package/src/components/actions/modal/Modal.vue +106 -0
  579. package/src/components/actions/modal/modal.context.ts +3 -0
  580. package/src/components/actions/modal/modal.props.ts +29 -0
  581. package/src/components/actions/modal/modal.types.ts +1 -0
  582. package/src/components/actions/public.ts +5 -0
  583. package/src/components/actions/public.types.ts +15 -0
  584. package/src/components/actions/swap/Swap.story.vue +302 -0
  585. package/src/components/actions/swap/Swap.vue +59 -0
  586. package/src/components/actions/swap/swap.context.ts +3 -0
  587. package/src/components/actions/swap/swap.props.ts +17 -0
  588. package/src/components/actions/swap/swap.types.ts +1 -0
  589. package/src/components/app/PoppyApp.vue +48 -0
  590. package/src/components/app/public.ts +1 -0
  591. package/src/components/data/checkbox/Checkbox.story.vue +206 -0
  592. package/src/components/data/checkbox/Checkbox.vue +139 -0
  593. package/src/components/data/checkbox/checkbox.context.ts +3 -0
  594. package/src/components/data/checkbox/checkbox.props.ts +42 -0
  595. package/src/components/data/checkbox/checkbox.types.ts +5 -0
  596. package/src/components/data/field-set/FieldSet.story.vue +163 -0
  597. package/src/components/data/field-set/FieldSet.vue +22 -0
  598. package/src/components/data/field-set/field-set.props.ts +21 -0
  599. package/src/components/data/form/Form.story.vue +144 -0
  600. package/src/components/data/form/Form.vue +235 -0
  601. package/src/components/data/form/form.context.ts +82 -0
  602. package/src/components/data/form/form.props.ts +30 -0
  603. package/src/components/data/form/form.types.ts +25 -0
  604. package/src/components/data/form-field/FormField.vue +176 -0
  605. package/src/components/data/form-field/form-field.context.ts +71 -0
  606. package/src/components/data/form-field/form-field.props.ts +42 -0
  607. package/src/components/data/form-field/form-field.types.ts +1 -0
  608. package/src/components/data/input/Input.story.vue +276 -0
  609. package/src/components/data/input/Input.vue +233 -0
  610. package/src/components/data/input/input.context.ts +3 -0
  611. package/src/components/data/input/input.props.ts +87 -0
  612. package/src/components/data/input/input.types.ts +10 -0
  613. package/src/components/data/public.ts +12 -0
  614. package/src/components/data/public.types.ts +30 -0
  615. package/src/components/data/radio/Radio.story.vue +228 -0
  616. package/src/components/data/radio/Radio.vue +152 -0
  617. package/src/components/data/radio/radio.context.ts +3 -0
  618. package/src/components/data/radio/radio.props.ts +53 -0
  619. package/src/components/data/radio/radio.types.ts +5 -0
  620. package/src/components/data/radio-group/RadioGroup.story.vue +155 -0
  621. package/src/components/data/radio-group/RadioGroup.vue +65 -0
  622. package/src/components/data/radio-group/radio-group.context.ts +14 -0
  623. package/src/components/data/radio-group/radio-group.props.ts +12 -0
  624. package/src/components/data/rating/Rating.story.vue +150 -0
  625. package/src/components/data/rating/Rating.vue +190 -0
  626. package/src/components/data/rating/rating.context.ts +3 -0
  627. package/src/components/data/rating/rating.props.ts +43 -0
  628. package/src/components/data/rating/rating.types.ts +8 -0
  629. package/src/components/data/select/Select.story.vue +317 -0
  630. package/src/components/data/select/Select.vue +747 -0
  631. package/src/components/data/select/select.context.ts +3 -0
  632. package/src/components/data/select/select.props.ts +110 -0
  633. package/src/components/data/select/select.types.ts +24 -0
  634. package/src/components/data/slider/Slider.story.vue +276 -0
  635. package/src/components/data/slider/Slider.vue +802 -0
  636. package/src/components/data/slider/slider.context.ts +3 -0
  637. package/src/components/data/slider/slider.props.ts +69 -0
  638. package/src/components/data/slider/slider.types.ts +11 -0
  639. package/src/components/data/textarea/Textarea.story.vue +222 -0
  640. package/src/components/data/textarea/Textarea.vue +168 -0
  641. package/src/components/data/textarea/textarea.context.ts +3 -0
  642. package/src/components/data/textarea/textarea.props.ts +71 -0
  643. package/src/components/data/textarea/textarea.types.ts +7 -0
  644. package/src/components/data/toggle/Toggle.story.vue +195 -0
  645. package/src/components/data/toggle/Toggle.vue +136 -0
  646. package/src/components/data/toggle/toggle.context.ts +3 -0
  647. package/src/components/data/toggle/toggle.props.ts +40 -0
  648. package/src/components/data/toggle/toggle.types.ts +5 -0
  649. package/src/components/display/accordion/Accordion.story.vue +482 -0
  650. package/src/components/display/accordion/Accordion.vue +112 -0
  651. package/src/components/display/accordion/AccordionItem.vue +111 -0
  652. package/src/components/display/accordion/accordion-item.context.ts +3 -0
  653. package/src/components/display/accordion/accordion-item.props.ts +20 -0
  654. package/src/components/display/accordion/accordion-item.types.ts +1 -0
  655. package/src/components/display/accordion/accordion.context.ts +10 -0
  656. package/src/components/display/accordion/accordion.props.ts +16 -0
  657. package/src/components/display/avatar/Avatar.story.vue +341 -0
  658. package/src/components/display/avatar/Avatar.vue +57 -0
  659. package/src/components/display/avatar/avatar.context.ts +3 -0
  660. package/src/components/display/avatar/avatar.props.ts +44 -0
  661. package/src/components/display/avatar/avatar.types.ts +5 -0
  662. package/src/components/display/badge/Badge.story.vue +156 -0
  663. package/src/components/display/badge/Badge.vue +51 -0
  664. package/src/components/display/badge/badge.context.ts +3 -0
  665. package/src/components/display/badge/badge.props.ts +22 -0
  666. package/src/components/display/badge/badge.types.ts +5 -0
  667. package/src/components/display/card/Card.story.vue +312 -0
  668. package/src/components/display/card/Card.vue +40 -0
  669. package/src/components/display/card/CardActions.vue +30 -0
  670. package/src/components/display/card/CardBody.vue +5 -0
  671. package/src/components/display/card/CardTitle.vue +5 -0
  672. package/src/components/display/card/card-actions.context.ts +3 -0
  673. package/src/components/display/card/card-actions.props.ts +15 -0
  674. package/src/components/display/card/card-actions.types.ts +1 -0
  675. package/src/components/display/card/card.context.ts +3 -0
  676. package/src/components/display/card/card.props.ts +29 -0
  677. package/src/components/display/card/card.types.ts +4 -0
  678. package/src/components/display/carousel/Carousel.story.vue +216 -0
  679. package/src/components/display/carousel/Carousel.vue +156 -0
  680. package/src/components/display/carousel/carousel.context.ts +3 -0
  681. package/src/components/display/carousel/carousel.props.ts +51 -0
  682. package/src/components/display/carousel/carousel.types.ts +2 -0
  683. package/src/components/display/chat/Chat.story.vue +251 -0
  684. package/src/components/display/chat/Chat.vue +56 -0
  685. package/src/components/display/chat/chat.context.ts +3 -0
  686. package/src/components/display/chat/chat.props.ts +19 -0
  687. package/src/components/display/chat/chat.types.ts +2 -0
  688. package/src/components/display/countdown/Countdown.story.vue +285 -0
  689. package/src/components/display/countdown/Countdown.vue +114 -0
  690. package/src/components/display/countdown/countdown.context.ts +3 -0
  691. package/src/components/display/countdown/countdown.props.ts +26 -0
  692. package/src/components/display/countdown/countdown.types.ts +24 -0
  693. package/src/components/display/diff/Diff.story.vue +118 -0
  694. package/src/components/display/diff/Diff.vue +13 -0
  695. package/src/components/display/hover-3d/Hover3d.story.vue +154 -0
  696. package/src/components/display/hover-3d/Hover3d.vue +37 -0
  697. package/src/components/display/hover-3d/hover-3d.props.ts +9 -0
  698. package/src/components/display/hover-gallery/HoverGallery.story.vue +121 -0
  699. package/src/components/display/hover-gallery/HoverGallery.vue +5 -0
  700. package/src/components/display/kbd/Kbd.story.vue +214 -0
  701. package/src/components/display/kbd/Kbd.vue +32 -0
  702. package/src/components/display/kbd/kbd.context.ts +3 -0
  703. package/src/components/display/kbd/kbd.props.ts +12 -0
  704. package/src/components/display/kbd/kbd.types.ts +3 -0
  705. package/src/components/display/list/List.story.vue +381 -0
  706. package/src/components/display/list/List.vue +14 -0
  707. package/src/components/display/list/ListItem.vue +53 -0
  708. package/src/components/display/list/list-item.props.ts +19 -0
  709. package/src/components/display/list/list.props.ts +7 -0
  710. package/src/components/display/public.ts +20 -0
  711. package/src/components/display/public.types.ts +40 -0
  712. package/src/components/display/stat/Stat.story.vue +181 -0
  713. package/src/components/display/stat/Stat.vue +43 -0
  714. package/src/components/display/stat/Stats.vue +29 -0
  715. package/src/components/display/stat/stat.context.ts +3 -0
  716. package/src/components/display/stat/stat.props.ts +50 -0
  717. package/src/components/display/stat/stat.types.ts +1 -0
  718. package/src/components/display/stat/stats.context.ts +3 -0
  719. package/src/components/display/stat/stats.props.ts +11 -0
  720. package/src/components/display/stat/stats.types.ts +1 -0
  721. package/src/components/display/status/Status.story.vue +195 -0
  722. package/src/components/display/status/Status.vue +70 -0
  723. package/src/components/display/status/status.context.ts +3 -0
  724. package/src/components/display/status/status.props.ts +30 -0
  725. package/src/components/display/status/status.types.ts +5 -0
  726. package/src/components/feedback/alert/Alert.story.vue +243 -0
  727. package/src/components/feedback/alert/Alert.vue +46 -0
  728. package/src/components/feedback/alert/alert.context.ts +3 -0
  729. package/src/components/feedback/alert/alert.props.ts +29 -0
  730. package/src/components/feedback/alert/alert.types.ts +3 -0
  731. package/src/components/feedback/loading/Loading.story.vue +156 -0
  732. package/src/components/feedback/loading/Loading.vue +55 -0
  733. package/src/components/feedback/loading/loading.context.ts +3 -0
  734. package/src/components/feedback/loading/loading.props.ts +25 -0
  735. package/src/components/feedback/loading/loading.types.ts +5 -0
  736. package/src/components/feedback/progress/Progress.story.vue +96 -0
  737. package/src/components/feedback/progress/Progress.vue +36 -0
  738. package/src/components/feedback/progress/progress.context.ts +3 -0
  739. package/src/components/feedback/progress/progress.props.ts +27 -0
  740. package/src/components/feedback/progress/progress.types.ts +1 -0
  741. package/src/components/feedback/public.ts +5 -0
  742. package/src/components/feedback/public.types.ts +18 -0
  743. package/src/components/feedback/radial-progress/RadialProgress.story.vue +118 -0
  744. package/src/components/feedback/radial-progress/RadialProgress.vue +46 -0
  745. package/src/components/feedback/radial-progress/radial-progress.context.ts +3 -0
  746. package/src/components/feedback/radial-progress/radial-progress.props.ts +35 -0
  747. package/src/components/feedback/radial-progress/radial-progress.types.ts +9 -0
  748. package/src/components/feedback/toast/Toast.story.vue +356 -0
  749. package/src/components/feedback/toast/Toast.vue +40 -0
  750. package/src/components/feedback/toast/toast.context.ts +12 -0
  751. package/src/components/feedback/toast/toast.props.ts +33 -0
  752. package/src/components/feedback/toast/toast.types.ts +5 -0
  753. package/src/components/feedback/tooltip/Tooltip.story.vue +256 -0
  754. package/src/components/feedback/tooltip/Tooltip.vue +123 -0
  755. package/src/components/feedback/tooltip/tooltip.context.ts +3 -0
  756. package/src/components/feedback/tooltip/tooltip.props.ts +44 -0
  757. package/src/components/feedback/tooltip/tooltip.types.ts +2 -0
  758. package/src/components/layout/divider/Divider.story.vue +217 -0
  759. package/src/components/layout/divider/Divider.vue +48 -0
  760. package/src/components/layout/divider/divider.context.ts +3 -0
  761. package/src/components/layout/divider/divider.props.ts +28 -0
  762. package/src/components/layout/divider/divider.types.ts +3 -0
  763. package/src/components/layout/drawer/Drawer.story.vue +301 -0
  764. package/src/components/layout/drawer/Drawer.vue +88 -0
  765. package/src/components/layout/drawer/drawer.context.ts +3 -0
  766. package/src/components/layout/drawer/drawer.props.ts +25 -0
  767. package/src/components/layout/drawer/drawer.types.ts +6 -0
  768. package/src/components/layout/indicator/Indicator.story.vue +264 -0
  769. package/src/components/layout/indicator/Indicator.vue +43 -0
  770. package/src/components/layout/indicator/indicator.context.ts +3 -0
  771. package/src/components/layout/indicator/indicator.props.ts +27 -0
  772. package/src/components/layout/indicator/indicator.types.ts +2 -0
  773. package/src/components/layout/join/Join.story.vue +147 -0
  774. package/src/components/layout/join/Join.vue +32 -0
  775. package/src/components/layout/join/join.context.ts +3 -0
  776. package/src/components/layout/join/join.props.ts +14 -0
  777. package/src/components/layout/join/join.types.ts +1 -0
  778. package/src/components/layout/mask/Mask.story.vue +181 -0
  779. package/src/components/layout/mask/Mask.vue +49 -0
  780. package/src/components/layout/mask/mask.context.ts +3 -0
  781. package/src/components/layout/mask/mask.props.ts +36 -0
  782. package/src/components/layout/mask/mask.types.ts +18 -0
  783. package/src/components/layout/public.ts +6 -0
  784. package/src/components/layout/public.types.ts +18 -0
  785. package/src/components/layout/stack/Stack.story.vue +170 -0
  786. package/src/components/layout/stack/Stack.vue +29 -0
  787. package/src/components/layout/stack/stack.context.ts +3 -0
  788. package/src/components/layout/stack/stack.props.ts +12 -0
  789. package/src/components/layout/stack/stack.types.ts +1 -0
  790. package/src/components/media/img/Img.story.vue +214 -0
  791. package/src/components/media/img/Img.vue +189 -0
  792. package/src/components/media/img/img.context.ts +3 -0
  793. package/src/components/media/img/img.props.ts +88 -0
  794. package/src/components/media/img/img.types.ts +35 -0
  795. package/src/components/media/public.ts +1 -0
  796. package/src/components/media/public.types.ts +3 -0
  797. package/src/components/navigation/breadcrumbs/Breadcrumbs.story.vue +94 -0
  798. package/src/components/navigation/breadcrumbs/Breadcrumbs.vue +53 -0
  799. package/src/components/navigation/breadcrumbs/breadcrumbs.context.ts +3 -0
  800. package/src/components/navigation/breadcrumbs/breadcrumbs.props.ts +18 -0
  801. package/src/components/navigation/breadcrumbs/breadcrumbs.types.ts +13 -0
  802. package/src/components/navigation/dock/Dock.story.vue +109 -0
  803. package/src/components/navigation/dock/Dock.vue +32 -0
  804. package/src/components/navigation/dock/DockItem.vue +50 -0
  805. package/src/components/navigation/dock/dock.context.ts +4 -0
  806. package/src/components/navigation/dock/dock.props.ts +34 -0
  807. package/src/components/navigation/dock/dock.types.ts +3 -0
  808. package/src/components/navigation/link/Link.story.vue +129 -0
  809. package/src/components/navigation/link/Link.vue +57 -0
  810. package/src/components/navigation/link/link.context.ts +3 -0
  811. package/src/components/navigation/link/link.props.ts +20 -0
  812. package/src/components/navigation/link/link.types.ts +1 -0
  813. package/src/components/navigation/menu/Menu.story.vue +284 -0
  814. package/src/components/navigation/menu/Menu.vue +41 -0
  815. package/src/components/navigation/menu/MenuItem.vue +106 -0
  816. package/src/components/navigation/menu/menu.context.ts +4 -0
  817. package/src/components/navigation/menu/menu.props.ts +59 -0
  818. package/src/components/navigation/menu/menu.types.ts +4 -0
  819. package/src/components/navigation/navbar/Navbar.story.vue +154 -0
  820. package/src/components/navigation/navbar/Navbar.vue +8 -0
  821. package/src/components/navigation/public.ts +9 -0
  822. package/src/components/navigation/public.types.ts +15 -0
  823. package/src/components/navigation/tab/Tab.story.vue +186 -0
  824. package/src/components/navigation/tab/Tab.vue +106 -0
  825. package/src/components/navigation/tab/Tabs.vue +76 -0
  826. package/src/components/navigation/tab/tab.context.ts +13 -0
  827. package/src/components/navigation/tab/tab.props.ts +57 -0
  828. package/src/components/navigation/tab/tab.types.ts +5 -0
  829. package/src/composables/public.ts +5 -0
  830. package/src/composables/use-component-config.ts +44 -0
  831. package/src/composables/use-config.ts +6 -0
  832. package/src/composables/use-form-field.ts +99 -0
  833. package/src/composables/use-select-counter.ts +58 -0
  834. package/src/composables/use-toast.ts +47 -0
  835. package/src/config/config.type.ts +109 -0
  836. package/src/config/public.ts +2 -0
  837. package/src/config/public.types.ts +1 -0
  838. package/src/config/size.context.ts +4 -0
  839. package/src/config/symbol.ts +15 -0
  840. package/src/histoire.css +8 -0
  841. package/src/plugin-vue.ts +54 -0
  842. package/src/public.ts +12 -0
  843. package/src/stories/Configuration.story.md +55 -0
  844. package/src/types/public.ts +2 -0
  845. package/src/types/size.type.ts +1 -0
  846. package/src/types/utils.type.ts +5 -0
  847. package/src/utils/build-class.util.ts +38 -0
  848. package/src/utils/get-validation-message.ts +61 -0
  849. package/src/utils/path.ts +102 -0
  850. package/src/utils/props.util.ts +11 -0
  851. package/src/utils/public.ts +1 -0
  852. package/src/vite-env.d.ts +11 -0
  853. package/src/vue.d.ts +15 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-1PFjXgZ6.cjs","names":["$slots","$slots","$slots","$slots"],"sources":["../src/components/display/accordion/accordion.context.ts","../src/components/display/accordion/Accordion.vue","../src/components/display/accordion/Accordion.vue","../src/components/display/accordion/accordion-item.context.ts","../src/components/display/accordion/AccordionItem.vue","../src/components/display/accordion/AccordionItem.vue","../src/components/display/avatar/avatar.context.ts","../src/components/display/avatar/Avatar.vue","../src/components/display/avatar/Avatar.vue","../src/components/display/badge/badge.context.ts","../src/components/display/badge/Badge.vue","../src/components/display/badge/Badge.vue","../src/components/display/card/card.context.ts","../src/components/display/card/Card.vue","../src/components/display/card/Card.vue","../src/components/display/card/card-actions.context.ts","../src/components/display/card/CardActions.vue","../src/components/display/card/CardActions.vue","../src/components/display/card/CardBody.vue","../src/components/display/card/CardTitle.vue","../src/components/display/carousel/carousel.context.ts","../src/components/display/carousel/Carousel.vue","../src/components/display/carousel/Carousel.vue","../src/components/display/chat/chat.context.ts","../src/components/display/chat/Chat.vue","../src/components/display/chat/Chat.vue","../src/components/display/countdown/countdown.context.ts","../src/components/display/countdown/Countdown.vue","../src/components/display/countdown/Countdown.vue","../src/components/display/diff/Diff.vue","../src/components/display/hover-3d/Hover3d.vue","../src/components/display/hover-3d/Hover3d.vue","../src/components/display/hover-gallery/HoverGallery.vue","../src/components/display/kbd/kbd.context.ts","../src/components/display/kbd/Kbd.vue","../src/components/display/kbd/Kbd.vue","../src/components/display/list/List.vue","../src/components/display/list/List.vue","../src/components/display/list/ListItem.vue","../src/components/display/list/ListItem.vue","../src/components/display/stat/stat.context.ts","../src/components/display/stat/Stat.vue","../src/components/display/stat/Stat.vue","../src/components/display/stat/stats.context.ts","../src/components/display/stat/Stats.vue","../src/components/display/stat/Stats.vue","../src/components/display/status/status.context.ts","../src/components/display/status/Status.vue","../src/components/display/status/Status.vue"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\n\nexport type AccordionContext<M extends boolean = false> = {\n multiple: M\n modelValue: Ref<M extends true ? string[] : string | null>\n toggle: (name: string) => void\n isOpen: (name: string) => boolean\n}\n\nexport const ACCORDION_CONTEXT_KEY = Symbol('accordion') as InjectionKey<AccordionContext<any>>\n","<script lang=\"ts\">\nimport { computed, provide, shallowRef } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport type { AccordionProps } from './accordion.props'\n</script>\n\n<script setup lang=\"ts\" generic=\"M extends boolean = false\">\ntype ModelType = M extends true ? string[] : string | null\ntype NameType = M extends true ? string[] : string\n\nconst props = defineProps<AccordionProps<M>>()\n\n/**\n * Controlled open state. Use `v-model` to bind reactively.\n * In single mode: the name of the open item, or `null` if none.\n * In multiple mode: an array of open item names.\n */\nconst model = defineModel<M extends true ? string[] : string | null>()\n\nconst emit = defineEmits<{\n change: [value: ModelType]\n open: [name: NameType]\n close: [name: NameType]\n toggle: [name: NameType, isOpen: boolean]\n}>()\n\nconst internalValue = shallowRef<ModelType>((props.defaultOpen ?? (props.multiple ? [] : null)) as ModelType)\n\nconst value = computed(() => (model.value !== undefined ? model.value : internalValue.value))\n\nfunction set(value: ModelType) {\n internalValue.value = value\n model.value = value\n emit('change', value)\n}\n\n// ── Core ─────────────────────────────────────────────────────────────────────\n\nfunction toggle(name: string) {\n if (props.multiple) {\n const current = (value.value as string[]) ?? []\n const opening = !current.includes(name)\n const next = opening ? [...current, name] : current.filter(n => n !== name)\n\n set(next as ModelType)\n emit('toggle', next as NameType, opening)\n opening ? emit('open', next as NameType) : emit('close', next as NameType)\n return\n }\n\n const opening = value.value !== name\n const next = (opening ? name : null) as ModelType\n\n set(next)\n emit('toggle', (opening ? name : null) as NameType, opening)\n opening ? emit('open', name as NameType) : emit('close', name as NameType)\n}\n\nfunction isOpen(name: string): boolean {\n if (props.multiple) {\n return ((value.value as string[]) ?? []).includes(name)\n }\n return value.value === name\n}\n\n// ── Expose ───────────────────────────────────────────────────────────────────\n\nfunction open(name: string) {\n if (isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction close(name: string) {\n if (!isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction openAll(names: string[]) {\n if (!props.multiple) {\n return\n }\n set(names as ModelType)\n emit('open', names as NameType)\n}\n\nfunction closeAll() {\n const next = (props.multiple ? [] : null) as ModelType\n set(next)\n emit('close', next as NameType)\n}\n\nprovide(ACCORDION_CONTEXT_KEY, { multiple: props.multiple ?? false, modelValue: value, toggle, isOpen })\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n openAll,\n closeAll,\n})\n</script>\n\n<template>\n <div class=\"flex flex-col gap-2\">\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { computed, provide, shallowRef } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport type { AccordionProps } from './accordion.props'\n</script>\n\n<script setup lang=\"ts\" generic=\"M extends boolean = false\">\ntype ModelType = M extends true ? string[] : string | null\ntype NameType = M extends true ? string[] : string\n\nconst props = defineProps<AccordionProps<M>>()\n\n/**\n * Controlled open state. Use `v-model` to bind reactively.\n * In single mode: the name of the open item, or `null` if none.\n * In multiple mode: an array of open item names.\n */\nconst model = defineModel<M extends true ? string[] : string | null>()\n\nconst emit = defineEmits<{\n change: [value: ModelType]\n open: [name: NameType]\n close: [name: NameType]\n toggle: [name: NameType, isOpen: boolean]\n}>()\n\nconst internalValue = shallowRef<ModelType>((props.defaultOpen ?? (props.multiple ? [] : null)) as ModelType)\n\nconst value = computed(() => (model.value !== undefined ? model.value : internalValue.value))\n\nfunction set(value: ModelType) {\n internalValue.value = value\n model.value = value\n emit('change', value)\n}\n\n// ── Core ─────────────────────────────────────────────────────────────────────\n\nfunction toggle(name: string) {\n if (props.multiple) {\n const current = (value.value as string[]) ?? []\n const opening = !current.includes(name)\n const next = opening ? [...current, name] : current.filter(n => n !== name)\n\n set(next as ModelType)\n emit('toggle', next as NameType, opening)\n opening ? emit('open', next as NameType) : emit('close', next as NameType)\n return\n }\n\n const opening = value.value !== name\n const next = (opening ? name : null) as ModelType\n\n set(next)\n emit('toggle', (opening ? name : null) as NameType, opening)\n opening ? emit('open', name as NameType) : emit('close', name as NameType)\n}\n\nfunction isOpen(name: string): boolean {\n if (props.multiple) {\n return ((value.value as string[]) ?? []).includes(name)\n }\n return value.value === name\n}\n\n// ── Expose ───────────────────────────────────────────────────────────────────\n\nfunction open(name: string) {\n if (isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction close(name: string) {\n if (!isOpen(name)) {\n return\n }\n toggle(name)\n}\n\nfunction openAll(names: string[]) {\n if (!props.multiple) {\n return\n }\n set(names as ModelType)\n emit('open', names as NameType)\n}\n\nfunction closeAll() {\n const next = (props.multiple ? [] : null) as ModelType\n set(next)\n emit('close', next as NameType)\n}\n\nprovide(ACCORDION_CONTEXT_KEY, { multiple: props.multiple ?? false, modelValue: value, toggle, isOpen })\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n openAll,\n closeAll,\n})\n</script>\n\n<template>\n <div class=\"flex flex-col gap-2\">\n <slot />\n </div>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const ACCORDION_ITEM_CONFIG = createComponentConfigKey('accordionItem')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { ChevronDownIcon, PlusIcon } from '@lucide/vue'\nimport { computed, inject } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport { ACCORDION_ITEM_CONFIG } from './accordion-item.context'\nimport type { AccordionItemProps } from './accordion-item.props'\n</script>\n\n<script setup lang=\"ts\">\n\nconst props = defineProps<AccordionItemProps>()\nconst config = useComponentConfig(ACCORDION_ITEM_CONFIG, props, {\n icon: 'arrow',\n})\n\nconst emit = defineEmits<{\n open: []\n close: []\n toggle: [isOpen: boolean]\n}>()\n\nconst ctx = inject(ACCORDION_CONTEXT_KEY, null)\nconst isOpen = computed(() => ctx?.isOpen(props.name) ?? false)\n\nfunction toggle() {\n ctx?.toggle(props.name)\n const next = !isOpen.value\n\n emit('toggle', next)\n next ? emit('open') : emit('close')\n}\n\nfunction open() {\n if (!isOpen.value) {\n toggle()\n }\n}\n\nfunction close() {\n if (isOpen.value) {\n toggle()\n }\n}\n\nfunction requestFrame(callback: FrameRequestCallback) {\n requestAnimationFrame(callback)\n}\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n})\n</script>\n\n<template>\n <div class=\"rounded-box border border-base-content/10 overflow-hidden\">\n\n <!-- Header -->\n <div\n class=\"flex items-center justify-between gap-3 px-4 py-3 cursor-pointer select-none bg-base-200 hover:bg-base-300 transition-colors\"\n @click=\"toggle\"\n >\n <div class=\"flex-1 min-w-0\">\n <slot name=\"title\" :is-open=\"isOpen\" />\n </div>\n\n <!-- Icon slot with fallback -->\n <slot name=\"icon\" :is-open=\"isOpen\">\n <PlusIcon\n v-if=\"config.icon === 'plus'\"\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-45'\"\n />\n <ChevronDownIcon\n v-else\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-180'\"\n />\n </slot>\n </div>\n\n <!-- Content -->\n <Transition\n name=\"accordion\"\n @enter=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px' }\"\n @after-enter=\"(el: any) => { el.style.maxHeight = 'none' }\"\n @leave=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px'; requestFrame(() => el.style.maxHeight = '0') }\"\n >\n <div v-if=\"isOpen\" class=\"px-4 py-3 bg-base-100\">\n <slot :is-open=\"isOpen\" />\n </div>\n </Transition>\n\n </div>\n</template>\n\n<style scoped>\n.accordion-enter-active,\n.accordion-leave-active {\n transition: max-height 0.2s ease, opacity 0.2s ease;\n overflow: hidden;\n}\n.accordion-enter-from,\n.accordion-leave-to {\n max-height: 0 !important;\n opacity: 0;\n}\n</style>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { ChevronDownIcon, PlusIcon } from '@lucide/vue'\nimport { computed, inject } from 'vue'\nimport { ACCORDION_CONTEXT_KEY } from './accordion.context'\nimport { ACCORDION_ITEM_CONFIG } from './accordion-item.context'\nimport type { AccordionItemProps } from './accordion-item.props'\n</script>\n\n<script setup lang=\"ts\">\n\nconst props = defineProps<AccordionItemProps>()\nconst config = useComponentConfig(ACCORDION_ITEM_CONFIG, props, {\n icon: 'arrow',\n})\n\nconst emit = defineEmits<{\n open: []\n close: []\n toggle: [isOpen: boolean]\n}>()\n\nconst ctx = inject(ACCORDION_CONTEXT_KEY, null)\nconst isOpen = computed(() => ctx?.isOpen(props.name) ?? false)\n\nfunction toggle() {\n ctx?.toggle(props.name)\n const next = !isOpen.value\n\n emit('toggle', next)\n next ? emit('open') : emit('close')\n}\n\nfunction open() {\n if (!isOpen.value) {\n toggle()\n }\n}\n\nfunction close() {\n if (isOpen.value) {\n toggle()\n }\n}\n\nfunction requestFrame(callback: FrameRequestCallback) {\n requestAnimationFrame(callback)\n}\n\ndefineExpose({\n open,\n close,\n toggle,\n isOpen,\n})\n</script>\n\n<template>\n <div class=\"rounded-box border border-base-content/10 overflow-hidden\">\n\n <!-- Header -->\n <div\n class=\"flex items-center justify-between gap-3 px-4 py-3 cursor-pointer select-none bg-base-200 hover:bg-base-300 transition-colors\"\n @click=\"toggle\"\n >\n <div class=\"flex-1 min-w-0\">\n <slot name=\"title\" :is-open=\"isOpen\" />\n </div>\n\n <!-- Icon slot with fallback -->\n <slot name=\"icon\" :is-open=\"isOpen\">\n <PlusIcon\n v-if=\"config.icon === 'plus'\"\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-45'\"\n />\n <ChevronDownIcon\n v-else\n class=\"size-4 opacity-50 transition-transform shrink-0\"\n :class=\"isOpen && 'rotate-180'\"\n />\n </slot>\n </div>\n\n <!-- Content -->\n <Transition\n name=\"accordion\"\n @enter=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px' }\"\n @after-enter=\"(el: any) => { el.style.maxHeight = 'none' }\"\n @leave=\"(el: any) => { el.style.maxHeight = el.scrollHeight + 'px'; requestFrame(() => el.style.maxHeight = '0') }\"\n >\n <div v-if=\"isOpen\" class=\"px-4 py-3 bg-base-100\">\n <slot :is-open=\"isOpen\" />\n </div>\n </Transition>\n\n </div>\n</template>\n\n<style scoped>\n.accordion-enter-active,\n.accordion-leave-active {\n transition: max-height 0.2s ease, opacity 0.2s ease;\n overflow: hidden;\n}\n.accordion-enter-from,\n.accordion-leave-to {\n max-height: 0 !important;\n opacity: 0;\n}\n</style>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const AVATAR_CONFIG = createComponentConfigKey('avatar')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { AVATAR_CONFIG } from './avatar.context'\nimport type { AvatarProps } from './avatar.props'\nimport type { AvatarPresence, AvatarSize } from './avatar.types'\n\nconst avatarSizes: Record<AvatarSize, `w-${number}`> = {\n xs: 'w-8',\n sm: 'w-16',\n md: 'w-20',\n lg: 'w-24',\n xl: 'w-32',\n}\n\nconst avatarPresences: ComponentClass<'avatar', AvatarPresence> = {\n online: 'avatar-online',\n offline: 'avatar-offline',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<AvatarProps>()\nconst config = useComponentConfig(AVATAR_CONFIG, props, {\n shape: 'rounded-full',\n})\n</script>\n\n<template>\n <!-- Group mode -->\n <div\n v-if=\"group\"\n class=\"avatar-group -space-x-6\"\n >\n <slot />\n </div>\n\n <!-- Avatar mode -->\n <div\n v-else\n class=\"avatar\"\n :class=\"[\n getClass(avatarPresences, config.presence),\n placeholder && 'avatar-placeholder',\n ]\"\n >\n <div\n :class=\"[\n getClass(avatarSizes, config.size),\n config.shape,\n ]\"\n >\n <slot />\n </div>\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { AVATAR_CONFIG } from './avatar.context'\nimport type { AvatarProps } from './avatar.props'\nimport type { AvatarPresence, AvatarSize } from './avatar.types'\n\nconst avatarSizes: Record<AvatarSize, `w-${number}`> = {\n xs: 'w-8',\n sm: 'w-16',\n md: 'w-20',\n lg: 'w-24',\n xl: 'w-32',\n}\n\nconst avatarPresences: ComponentClass<'avatar', AvatarPresence> = {\n online: 'avatar-online',\n offline: 'avatar-offline',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<AvatarProps>()\nconst config = useComponentConfig(AVATAR_CONFIG, props, {\n shape: 'rounded-full',\n})\n</script>\n\n<template>\n <!-- Group mode -->\n <div\n v-if=\"group\"\n class=\"avatar-group -space-x-6\"\n >\n <slot />\n </div>\n\n <!-- Avatar mode -->\n <div\n v-else\n class=\"avatar\"\n :class=\"[\n getClass(avatarPresences, config.presence),\n placeholder && 'avatar-placeholder',\n ]\"\n >\n <div\n :class=\"[\n getClass(avatarSizes, config.size),\n config.shape,\n ]\"\n >\n <slot />\n </div>\n </div>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const BADGE_CONFIG = createComponentConfigKey('badge')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { BADGE_CONFIG } from './badge.context'\nimport type { BadgeProps } from './badge.props'\nimport type { BadgeColor, BadgeSize, BadgeVariant } from './badge.types'\n\nconst badgeColors: ComponentClass<'badge', BadgeColor> = {\n neutral: 'badge-neutral',\n primary: 'badge-primary',\n secondary: 'badge-secondary',\n accent: 'badge-accent',\n info: 'badge-info',\n success: 'badge-success',\n warning: 'badge-warning',\n error: 'badge-error',\n}\n\nconst badgeVariants: ComponentClass<'badge', BadgeVariant> = {\n outline: 'badge-outline',\n soft: 'badge-soft',\n dash: 'badge-dash',\n}\n\nconst badgeSizes: ComponentClass<'badge', BadgeSize> = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n md: 'badge-md',\n lg: 'badge-lg',\n xl: 'badge-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<BadgeProps>()\nconst config = useComponentConfig(BADGE_CONFIG, props, {})\n</script>\n\n<template>\n <span\n class=\"badge\"\n :class=\"[\n getClass(badgeColors, config.color),\n getClass(badgeVariants, config.variant),\n getClass(badgeSizes, config.size),\n ]\"\n >\n <slot />\n </span>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { BADGE_CONFIG } from './badge.context'\nimport type { BadgeProps } from './badge.props'\nimport type { BadgeColor, BadgeSize, BadgeVariant } from './badge.types'\n\nconst badgeColors: ComponentClass<'badge', BadgeColor> = {\n neutral: 'badge-neutral',\n primary: 'badge-primary',\n secondary: 'badge-secondary',\n accent: 'badge-accent',\n info: 'badge-info',\n success: 'badge-success',\n warning: 'badge-warning',\n error: 'badge-error',\n}\n\nconst badgeVariants: ComponentClass<'badge', BadgeVariant> = {\n outline: 'badge-outline',\n soft: 'badge-soft',\n dash: 'badge-dash',\n}\n\nconst badgeSizes: ComponentClass<'badge', BadgeSize> = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n md: 'badge-md',\n lg: 'badge-lg',\n xl: 'badge-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<BadgeProps>()\nconst config = useComponentConfig(BADGE_CONFIG, props, {})\n</script>\n\n<template>\n <span\n class=\"badge\"\n :class=\"[\n getClass(badgeColors, config.color),\n getClass(badgeVariants, config.variant),\n getClass(badgeSizes, config.size),\n ]\"\n >\n <slot />\n </span>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const CARD_CONFIG = createComponentConfigKey('card')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CARD_CONFIG } from './card.context'\nimport type { CardProps } from './card.props'\nimport type { CardSize, CardVariant } from './card.types'\n\nconst cardVariants: ComponentClass<'card', CardVariant> = {\n border: 'card-border',\n dash: 'card-dash',\n}\n\nconst cardSizes: ComponentClass<'card', CardSize> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardProps>()\nconst config = useComponentConfig(CARD_CONFIG, props, {})\n</script>\n\n<template>\n <div\n class=\"card bg-base-100\"\n :class=\"[\n getClass(cardVariants, config.variant),\n getClass(cardSizes, config.size),\n config.side && 'card-side',\n config.imageFull && 'image-full',\n ]\"\n >\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CARD_CONFIG } from './card.context'\nimport type { CardProps } from './card.props'\nimport type { CardSize, CardVariant } from './card.types'\n\nconst cardVariants: ComponentClass<'card', CardVariant> = {\n border: 'card-border',\n dash: 'card-dash',\n}\n\nconst cardSizes: ComponentClass<'card', CardSize> = {\n xs: 'card-xs',\n sm: 'card-sm',\n md: 'card-md',\n lg: 'card-lg',\n xl: 'card-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardProps>()\nconst config = useComponentConfig(CARD_CONFIG, props, {})\n</script>\n\n<template>\n <div\n class=\"card bg-base-100\"\n :class=\"[\n getClass(cardVariants, config.variant),\n getClass(cardSizes, config.size),\n config.side && 'card-side',\n config.imageFull && 'image-full',\n ]\"\n >\n <slot />\n </div>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const CARD_ACTIONS_CONFIG = createComponentConfigKey('cardActions')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CARD_ACTIONS_CONFIG } from './card-actions.context'\nimport type { CardActionsProps } from './card-actions.props'\nimport type { CardActionsAlign } from './card-actions.types'\n\nconst cardActionsAligns: ComponentClass<'justify', CardActionsAlign> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardActionsProps>()\nconst config = useComponentConfig(CARD_ACTIONS_CONFIG, props, {\n align: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"card-actions\"\n :class=\"getClass(cardActionsAligns, config.align)\"\n >\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CARD_ACTIONS_CONFIG } from './card-actions.context'\nimport type { CardActionsProps } from './card-actions.props'\nimport type { CardActionsAlign } from './card-actions.types'\n\nconst cardActionsAligns: ComponentClass<'justify', CardActionsAlign> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CardActionsProps>()\nconst config = useComponentConfig(CARD_ACTIONS_CONFIG, props, {\n align: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"card-actions\"\n :class=\"getClass(cardActionsAligns, config.align)\"\n >\n <slot />\n </div>\n</template>","<template>\n <div class=\"card-body\">\n <slot />\n </div>\n</template>","<template>\n <h2 class=\"card-title\">\n <slot />\n </h2>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const CAROUSEL_CONFIG = createComponentConfigKey('carousel')\n","<script lang=\"ts\">\nimport ClassWrapper from '@/components/ClassWrapper.vue'\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { getClass } from '@/utils/build-class.util'\nimport { computed, onMounted, onUnmounted, shallowRef, useTemplateRef } from 'vue'\nimport { CAROUSEL_CONFIG } from './carousel.context'\nimport type { CarouselProps } from './carousel.props'\nimport type { CarouselDirection, CarouselSnap } from './carousel.types'\n\nconst directionClasses: Record<CarouselDirection, string> = {\n horizontal: '',\n vertical: 'carousel-vertical',\n}\n\nconst snapClasses: Record<CarouselSnap, string> = {\n start: 'carousel-start',\n center: 'carousel-center',\n end: 'carousel-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CarouselProps>()\nconst config = useComponentConfig(CAROUSEL_CONFIG, props, {\n direction: 'horizontal',\n snap: 'start',\n indicators: false,\n controls: false,\n autoplay: false,\n interval: 3000,\n initialIndex: 0,\n})\n\nconst carouselRef = useTemplateRef('carouselRef')\nconst currentIndex = shallowRef(props.initialIndex ?? 0)\nlet autoplayTimer: ReturnType<typeof setInterval> | null = null\n\nconst isVertical = computed(() => config.value.direction === 'vertical')\n\nfunction getItemCount(): number {\n if (!carouselRef.value) {\n return 0\n }\n\n return carouselRef.value.querySelectorAll('.carousel-item').length\n}\n\nfunction getItems(): HTMLElement[] {\n if (!carouselRef.value) {\n return []\n }\n\n return Array.from(carouselRef.value.querySelectorAll('.carousel-item')) as HTMLElement[]\n}\n\nfunction scrollTo(index: number) {\n const items = getItems()\n if (!items.length || index < 0 || index >= items.length) {\n return\n }\n\n items[index].scrollIntoView({\n behavior: 'smooth',\n block: isVertical.value ? 'nearest' : undefined,\n inline: isVertical.value ? undefined : 'nearest',\n })\n currentIndex.value = index\n}\n\nfunction goTo(index: number) {\n const count = getItemCount()\n if (count === 0) {\n return\n }\n\n const target = index % count\n scrollTo(target < 0 ? count + target : target)\n}\n\nfunction next() {\n goTo(currentIndex.value + 1)\n}\n\nfunction prev() {\n goTo(currentIndex.value - 1)\n}\n\nfunction startAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n }\n\n if (config.value.autoplay && getItemCount() > 1) {\n autoplayTimer = setInterval(next, config.value.interval)\n }\n}\n\nfunction stopAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n autoplayTimer = null\n }\n}\n\nconst count = computed(() => getItemCount())\n\nonMounted(() => {\n startAutoplay()\n})\n\nonUnmounted(() => {\n stopAutoplay()\n})\n</script>\n\n<template>\n <div\n ref=\"carouselRef\"\n class=\"carousel w-full\"\n :class=\"[\n getClass(directionClasses, config.direction),\n getClass(snapClasses, config.snap),\n ]\"\n @mouseenter=\"stopAutoplay\"\n @mouseleave=\"startAutoplay\"\n >\n <ClassWrapper class=\"carousel-item w-full\">\n <slot />\n </ClassWrapper>\n\n <template v-if=\"config.indicators && count > 1\">\n <div class=\"carousel-indicators absolute bottom-4 left-4 flex gap-2\">\n <button\n v-for=\"(_, index) in count\"\n :key=\"index\"\n class=\"carousel-indicator btn btn-xs btn-circle\"\n :class=\"{ 'btn-active': currentIndex === index }\"\n @click=\"goTo(index)\"\n />\n </div>\n </template>\n </div>\n\n <template v-if=\"config.controls && count > 1\">\n <button class=\"carousel-control carousel-prev absolute left-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"prev\">\n <slot name=\"prev-icon\">\n <ChevronLeftIcon class=\"size-6\" />\n </slot>\n </button>\n <button class=\"carousel-control carousel-next absolute right-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"next\">\n <slot name=\"next-icon\">\n <ChevronRightIcon class=\"size-6\" />\n </slot>\n </button>\n </template>\n</template>\n","<script lang=\"ts\">\nimport ClassWrapper from '@/components/ClassWrapper.vue'\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { getClass } from '@/utils/build-class.util'\nimport { computed, onMounted, onUnmounted, shallowRef, useTemplateRef } from 'vue'\nimport { CAROUSEL_CONFIG } from './carousel.context'\nimport type { CarouselProps } from './carousel.props'\nimport type { CarouselDirection, CarouselSnap } from './carousel.types'\n\nconst directionClasses: Record<CarouselDirection, string> = {\n horizontal: '',\n vertical: 'carousel-vertical',\n}\n\nconst snapClasses: Record<CarouselSnap, string> = {\n start: 'carousel-start',\n center: 'carousel-center',\n end: 'carousel-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CarouselProps>()\nconst config = useComponentConfig(CAROUSEL_CONFIG, props, {\n direction: 'horizontal',\n snap: 'start',\n indicators: false,\n controls: false,\n autoplay: false,\n interval: 3000,\n initialIndex: 0,\n})\n\nconst carouselRef = useTemplateRef('carouselRef')\nconst currentIndex = shallowRef(props.initialIndex ?? 0)\nlet autoplayTimer: ReturnType<typeof setInterval> | null = null\n\nconst isVertical = computed(() => config.value.direction === 'vertical')\n\nfunction getItemCount(): number {\n if (!carouselRef.value) {\n return 0\n }\n\n return carouselRef.value.querySelectorAll('.carousel-item').length\n}\n\nfunction getItems(): HTMLElement[] {\n if (!carouselRef.value) {\n return []\n }\n\n return Array.from(carouselRef.value.querySelectorAll('.carousel-item')) as HTMLElement[]\n}\n\nfunction scrollTo(index: number) {\n const items = getItems()\n if (!items.length || index < 0 || index >= items.length) {\n return\n }\n\n items[index].scrollIntoView({\n behavior: 'smooth',\n block: isVertical.value ? 'nearest' : undefined,\n inline: isVertical.value ? undefined : 'nearest',\n })\n currentIndex.value = index\n}\n\nfunction goTo(index: number) {\n const count = getItemCount()\n if (count === 0) {\n return\n }\n\n const target = index % count\n scrollTo(target < 0 ? count + target : target)\n}\n\nfunction next() {\n goTo(currentIndex.value + 1)\n}\n\nfunction prev() {\n goTo(currentIndex.value - 1)\n}\n\nfunction startAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n }\n\n if (config.value.autoplay && getItemCount() > 1) {\n autoplayTimer = setInterval(next, config.value.interval)\n }\n}\n\nfunction stopAutoplay() {\n if (autoplayTimer) {\n clearInterval(autoplayTimer)\n autoplayTimer = null\n }\n}\n\nconst count = computed(() => getItemCount())\n\nonMounted(() => {\n startAutoplay()\n})\n\nonUnmounted(() => {\n stopAutoplay()\n})\n</script>\n\n<template>\n <div\n ref=\"carouselRef\"\n class=\"carousel w-full\"\n :class=\"[\n getClass(directionClasses, config.direction),\n getClass(snapClasses, config.snap),\n ]\"\n @mouseenter=\"stopAutoplay\"\n @mouseleave=\"startAutoplay\"\n >\n <ClassWrapper class=\"carousel-item w-full\">\n <slot />\n </ClassWrapper>\n\n <template v-if=\"config.indicators && count > 1\">\n <div class=\"carousel-indicators absolute bottom-4 left-4 flex gap-2\">\n <button\n v-for=\"(_, index) in count\"\n :key=\"index\"\n class=\"carousel-indicator btn btn-xs btn-circle\"\n :class=\"{ 'btn-active': currentIndex === index }\"\n @click=\"goTo(index)\"\n />\n </div>\n </template>\n </div>\n\n <template v-if=\"config.controls && count > 1\">\n <button class=\"carousel-control carousel-prev absolute left-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"prev\">\n <slot name=\"prev-icon\">\n <ChevronLeftIcon class=\"size-6\" />\n </slot>\n </button>\n <button class=\"carousel-control carousel-next absolute right-4 top-1/2 -translate-y-1/2 btn btn-circle\" @click=\"next\">\n <slot name=\"next-icon\">\n <ChevronRightIcon class=\"size-6\" />\n </slot>\n </button>\n </template>\n</template>\n","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const CHAT_CONFIG = createComponentConfigKey('chat')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CHAT_CONFIG } from './chat.context'\nimport type { ChatProps } from './chat.props'\nimport type { ChatColor } from './chat.types'\n\nconst chatColors: ComponentClass<'chat-bubble', ChatColor> = {\n neutral: 'chat-bubble-neutral',\n primary: 'chat-bubble-primary',\n secondary: 'chat-bubble-secondary',\n accent: 'chat-bubble-accent',\n info: 'chat-bubble-info',\n success: 'chat-bubble-success',\n warning: 'chat-bubble-warning',\n error: 'chat-bubble-error',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ChatProps>()\nconst config = useComponentConfig(CHAT_CONFIG, props, {\n side: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"chat\"\n :class=\"config.side === 'end' ? 'chat-end' : 'chat-start'\"\n >\n <div v-if=\"$slots.image\" class=\"chat-image\">\n <slot name=\"image\" />\n </div>\n\n <div v-if=\"$slots.header\" class=\"chat-header\">\n <slot name=\"header\" />\n </div>\n\n <div\n class=\"chat-bubble\"\n :class=\"getClass(chatColors, config.color)\"\n >\n <slot />\n </div>\n\n <div v-if=\"$slots.footer\" class=\"chat-footer\">\n <slot name=\"footer\" />\n </div>\n\n <div v-if=\"$slots.meta\" class=\"chat-meta\">\n <slot name=\"meta\" />\n </div>\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { CHAT_CONFIG } from './chat.context'\nimport type { ChatProps } from './chat.props'\nimport type { ChatColor } from './chat.types'\n\nconst chatColors: ComponentClass<'chat-bubble', ChatColor> = {\n neutral: 'chat-bubble-neutral',\n primary: 'chat-bubble-primary',\n secondary: 'chat-bubble-secondary',\n accent: 'chat-bubble-accent',\n info: 'chat-bubble-info',\n success: 'chat-bubble-success',\n warning: 'chat-bubble-warning',\n error: 'chat-bubble-error',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ChatProps>()\nconst config = useComponentConfig(CHAT_CONFIG, props, {\n side: 'start',\n})\n</script>\n\n<template>\n <div\n class=\"chat\"\n :class=\"config.side === 'end' ? 'chat-end' : 'chat-start'\"\n >\n <div v-if=\"$slots.image\" class=\"chat-image\">\n <slot name=\"image\" />\n </div>\n\n <div v-if=\"$slots.header\" class=\"chat-header\">\n <slot name=\"header\" />\n </div>\n\n <div\n class=\"chat-bubble\"\n :class=\"getClass(chatColors, config.color)\"\n >\n <slot />\n </div>\n\n <div v-if=\"$slots.footer\" class=\"chat-footer\">\n <slot name=\"footer\" />\n </div>\n\n <div v-if=\"$slots.meta\" class=\"chat-meta\">\n <slot name=\"meta\" />\n </div>\n </div>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const COUNTDOWN_CONFIG = createComponentConfigKey('countdown')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed, onUnmounted, ref, watch } from 'vue'\nimport { COUNTDOWN_CONFIG } from './countdown.context'\nimport type { CountdownProps } from './countdown.props'\nimport type { CountdownDelta, CountdownTarget } from './countdown.types'\n\n/**\n * Converts any supported CountdownTarget to a Unix timestamp in ms.\n */\nfunction toTimestamp(to: CountdownTarget): number {\n // Native Date\n if (to instanceof Date) return to.getTime()\n\n // String or number\n if (typeof to === 'string' || typeof to === 'number') return new Date(to).getTime()\n\n // Temporal API (feature detection via duck typing)\n if (typeof to === 'object' && to !== null) {\n // Temporal.Instant — has epochMilliseconds\n if ('epochMilliseconds' in to) return (to as Temporal.Instant).epochMilliseconds\n\n // Temporal.ZonedDateTime — has epochMilliseconds\n if ('epochMilliseconds' in to && 'timeZoneId' in to) return (to as Temporal.ZonedDateTime).epochMilliseconds\n\n // Temporal.PlainDateTime — no timezone, convert via Temporal.Now.timeZoneId\n if ('toZonedDateTime' in to) {\n const zdt = (to as Temporal.PlainDateTime).toZonedDateTime(\n typeof Temporal !== 'undefined' ? Temporal.Now.timeZoneId() : 'UTC',\n )\n return zdt.epochMilliseconds\n }\n }\n\n return Number.NaN\n}\n\nfunction getDelta(targetMs: number): CountdownDelta {\n const diff = Math.max(0, targetMs - Date.now())\n return {\n days: Math.floor(diff / 1000 / 60 / 60 / 24),\n hours: Math.floor(diff / 1000 / 60 / 60) % 24,\n minutes: Math.floor(diff / 1000 / 60) % 60,\n seconds: Math.floor(diff / 1000) % 60,\n done: diff === 0,\n }\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CountdownProps>()\nconst config = useComponentConfig(COUNTDOWN_CONFIG, props, { digits: 2 })\n\nconst digits = computed(() => config.value.digits)\n\nconst emit = defineEmits<{\n /**\n * Emitted once when the countdown reaches zero.\n */\n end: []\n}>()\n\nconst targetMs = computed(() => toTimestamp(props.to))\nconst delta = ref<CountdownDelta>(getDelta(targetMs.value))\n\nlet interval: ReturnType<typeof setInterval> | undefined\n\nfunction stop() {\n if (interval !== undefined) {\n clearInterval(interval)\n interval = undefined\n }\n}\n\nfunction start() {\n stop()\n interval = setInterval(() => {\n delta.value = getDelta(targetMs.value)\n if (delta.value.done) {\n stop()\n emit('end')\n }\n }, 500)\n}\n\nwatch(targetMs, () => {\n delta.value = getDelta(targetMs.value)\n start()\n}, { immediate: true })\n\nonUnmounted(stop)\n\ndefineExpose({ delta })\n</script>\n\n<template>\n <slot\n :days=\"delta.days\"\n :hours=\"delta.hours\"\n :minutes=\"delta.minutes\"\n :seconds=\"delta.seconds\"\n :done=\"delta.done\"\n :digits=\"digits\"\n >\n <!-- Default render: hh:mm:ss -->\n <span class=\"countdown font-mono text-2xl\">\n <span :style=\"{ '--value': delta.hours, '--digits': digits }\" :aria-label=\"String(delta.hours)\">{{ delta.hours }}</span>\n :\n <span :style=\"{ '--value': delta.minutes, '--digits': digits }\" :aria-label=\"String(delta.minutes)\">{{ delta.minutes }}</span>\n :\n <span :style=\"{ '--value': delta.seconds, '--digits': digits }\" :aria-label=\"String(delta.seconds)\">{{ delta.seconds }}</span>\n </span>\n </slot>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed, onUnmounted, ref, watch } from 'vue'\nimport { COUNTDOWN_CONFIG } from './countdown.context'\nimport type { CountdownProps } from './countdown.props'\nimport type { CountdownDelta, CountdownTarget } from './countdown.types'\n\n/**\n * Converts any supported CountdownTarget to a Unix timestamp in ms.\n */\nfunction toTimestamp(to: CountdownTarget): number {\n // Native Date\n if (to instanceof Date) return to.getTime()\n\n // String or number\n if (typeof to === 'string' || typeof to === 'number') return new Date(to).getTime()\n\n // Temporal API (feature detection via duck typing)\n if (typeof to === 'object' && to !== null) {\n // Temporal.Instant — has epochMilliseconds\n if ('epochMilliseconds' in to) return (to as Temporal.Instant).epochMilliseconds\n\n // Temporal.ZonedDateTime — has epochMilliseconds\n if ('epochMilliseconds' in to && 'timeZoneId' in to) return (to as Temporal.ZonedDateTime).epochMilliseconds\n\n // Temporal.PlainDateTime — no timezone, convert via Temporal.Now.timeZoneId\n if ('toZonedDateTime' in to) {\n const zdt = (to as Temporal.PlainDateTime).toZonedDateTime(\n typeof Temporal !== 'undefined' ? Temporal.Now.timeZoneId() : 'UTC',\n )\n return zdt.epochMilliseconds\n }\n }\n\n return Number.NaN\n}\n\nfunction getDelta(targetMs: number): CountdownDelta {\n const diff = Math.max(0, targetMs - Date.now())\n return {\n days: Math.floor(diff / 1000 / 60 / 60 / 24),\n hours: Math.floor(diff / 1000 / 60 / 60) % 24,\n minutes: Math.floor(diff / 1000 / 60) % 60,\n seconds: Math.floor(diff / 1000) % 60,\n done: diff === 0,\n }\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<CountdownProps>()\nconst config = useComponentConfig(COUNTDOWN_CONFIG, props, { digits: 2 })\n\nconst digits = computed(() => config.value.digits)\n\nconst emit = defineEmits<{\n /**\n * Emitted once when the countdown reaches zero.\n */\n end: []\n}>()\n\nconst targetMs = computed(() => toTimestamp(props.to))\nconst delta = ref<CountdownDelta>(getDelta(targetMs.value))\n\nlet interval: ReturnType<typeof setInterval> | undefined\n\nfunction stop() {\n if (interval !== undefined) {\n clearInterval(interval)\n interval = undefined\n }\n}\n\nfunction start() {\n stop()\n interval = setInterval(() => {\n delta.value = getDelta(targetMs.value)\n if (delta.value.done) {\n stop()\n emit('end')\n }\n }, 500)\n}\n\nwatch(targetMs, () => {\n delta.value = getDelta(targetMs.value)\n start()\n}, { immediate: true })\n\nonUnmounted(stop)\n\ndefineExpose({ delta })\n</script>\n\n<template>\n <slot\n :days=\"delta.days\"\n :hours=\"delta.hours\"\n :minutes=\"delta.minutes\"\n :seconds=\"delta.seconds\"\n :done=\"delta.done\"\n :digits=\"digits\"\n >\n <!-- Default render: hh:mm:ss -->\n <span class=\"countdown font-mono text-2xl\">\n <span :style=\"{ '--value': delta.hours, '--digits': digits }\" :aria-label=\"String(delta.hours)\">{{ delta.hours }}</span>\n :\n <span :style=\"{ '--value': delta.minutes, '--digits': digits }\" :aria-label=\"String(delta.minutes)\">{{ delta.minutes }}</span>\n :\n <span :style=\"{ '--value': delta.seconds, '--digits': digits }\" :aria-label=\"String(delta.seconds)\">{{ delta.seconds }}</span>\n </span>\n </slot>\n</template>","<script setup lang=\"ts\"></script>\n\n<template>\n <figure class=\"diff\" tabindex=\"0\">\n <div class=\"diff-item-1\" role=\"img\" tabindex=\"0\">\n <slot name=\"item-1\"></slot>\n </div>\n <div class=\"diff-item-2\" role=\"img\">\n <slot name=\"item-2\"></slot>\n </div>\n <div class=\"diff-resizer\"></div>\n </figure>\n</template>","<script lang=\"ts\">\nimport { computed } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { Hover3dProps } from './hover-3d.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<Hover3dProps>()\n\nconst tag = computed(() => props.to ?\n props.to === '#' \n ? 'a'\n : RouterLink \n : 'div')\n\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'div') {\n return {}\n }\n return {\n to: props.to\n }\n})\n</script>\n\n<template>\n <component :is=\"tag\" class=\"hover-3d\" v-bind=\"attr\">\n <slot />\n <!-- 8 empty divs required for the 3D zone detection -->\n <div v-for=\"i in 8\" :key=\"i\" />\n </component>\n</template>","<script lang=\"ts\">\nimport { computed } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { Hover3dProps } from './hover-3d.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<Hover3dProps>()\n\nconst tag = computed(() => props.to ?\n props.to === '#' \n ? 'a'\n : RouterLink \n : 'div')\n\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'div') {\n return {}\n }\n return {\n to: props.to\n }\n})\n</script>\n\n<template>\n <component :is=\"tag\" class=\"hover-3d\" v-bind=\"attr\">\n <slot />\n <!-- 8 empty divs required for the 3D zone detection -->\n <div v-for=\"i in 8\" :key=\"i\" />\n </component>\n</template>","<template>\n <figure class=\"hover-gallery\">\n <slot />\n </figure>\n</template>\n","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const KBD_CONFIG = createComponentConfigKey('kbd')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { KBD_CONFIG } from './kbd.context'\nimport type { KbdProps } from './kbd.props'\nimport type { KbdSize } from './kbd.types'\n\nconst kbdSizes: ComponentClass<'kbd', KbdSize> = {\n xs: 'kbd-xs',\n sm: 'kbd-sm',\n md: 'kbd-md',\n lg: 'kbd-lg',\n xl: 'kbd-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<KbdProps>()\nconst config = useComponentConfig(KBD_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <kbd\n class=\"kbd\"\n :class=\"getClass(kbdSizes, config.size)\"\n >\n <slot />\n </kbd>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { KBD_CONFIG } from './kbd.context'\nimport type { KbdProps } from './kbd.props'\nimport type { KbdSize } from './kbd.types'\n\nconst kbdSizes: ComponentClass<'kbd', KbdSize> = {\n xs: 'kbd-xs',\n sm: 'kbd-sm',\n md: 'kbd-md',\n lg: 'kbd-lg',\n xl: 'kbd-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<KbdProps>()\nconst config = useComponentConfig(KBD_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <kbd\n class=\"kbd\"\n :class=\"getClass(kbdSizes, config.size)\"\n >\n <slot />\n </kbd>\n</template>","<script setup lang=\"ts\">\nimport type { ListProps } from './list.props'\n\ndefineProps<ListProps>()\n</script>\n\n<template>\n <ul class=\"list bg-base-100 rounded-box\">\n <li v-if=\"title || $slots.title\" class=\"p-4 pb-2 text-xs opacity-60 tracking-wide\">\n <slot name=\"title\">{{ title }}</slot>\n </li>\n <slot />\n </ul>\n</template>","<script setup lang=\"ts\">\nimport type { ListProps } from './list.props'\n\ndefineProps<ListProps>()\n</script>\n\n<template>\n <ul class=\"list bg-base-100 rounded-box\">\n <li v-if=\"title || $slots.title\" class=\"p-4 pb-2 text-xs opacity-60 tracking-wide\">\n <slot name=\"title\">{{ title }}</slot>\n </li>\n <slot />\n </ul>\n</template>","<script lang=\"ts\">\nimport { computed, useSlots } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { ListItemProps } from './list-item.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ListItemProps>()\n\nconst tag = computed(() => props.to ? props.to === '#' ? 'a' : RouterLink : 'li')\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'li') {\n return {}\n }\n return {\n to: props.to\n }\n})\n\nconst slots = useSlots()\nconst hasContent = computed(() => !!props.title || !!props.description || !!slots.title || !!slots.description)\n</script>\n\n<template>\n <component\n :is=\"tag\"\n class=\"list-row\"\n v-bind=\"attr\"\n >\n <slot name=\"prefix\" />\n\n <div v-if=\"hasContent\" class=\"list-col-grow\">\n <slot name=\"title\">\n <div>{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div class=\"text-xs uppercase font-semibold opacity-60\">{{ description }}</div>\n </slot>\n </div>\n <slot v-else />\n\n <div v-if=\"$slots.details\" class=\"list-col-wrap text-xs opacity-60\">\n <slot name=\"details\" />\n </div>\n\n <slot name=\"actions\" />\n </component>\n</template>","<script lang=\"ts\">\nimport { computed, useSlots } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport type { ListItemProps } from './list-item.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<ListItemProps>()\n\nconst tag = computed(() => props.to ? props.to === '#' ? 'a' : RouterLink : 'li')\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to\n }\n }\n if (tag.value === 'li') {\n return {}\n }\n return {\n to: props.to\n }\n})\n\nconst slots = useSlots()\nconst hasContent = computed(() => !!props.title || !!props.description || !!slots.title || !!slots.description)\n</script>\n\n<template>\n <component\n :is=\"tag\"\n class=\"list-row\"\n v-bind=\"attr\"\n >\n <slot name=\"prefix\" />\n\n <div v-if=\"hasContent\" class=\"list-col-grow\">\n <slot name=\"title\">\n <div>{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div class=\"text-xs uppercase font-semibold opacity-60\">{{ description }}</div>\n </slot>\n </div>\n <slot v-else />\n\n <div v-if=\"$slots.details\" class=\"list-col-wrap text-xs opacity-60\">\n <slot name=\"details\" />\n </div>\n\n <slot name=\"actions\" />\n </component>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const STAT_CONFIG = createComponentConfigKey('stat')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STAT_CONFIG } from './stat.context'\nimport type { StatProps } from './stat.props'\nimport type { StatAlign } from './stat.types'\n\nconst statAligns: ComponentClass<'place-items', StatAlign> = {\n start: 'place-items-start',\n center: 'place-items-center',\n end: 'place-items-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatProps>()\nconst config = useComponentConfig(STAT_CONFIG, props, {})\n</script>\n\n<template>\n <div\n class=\"stat\"\n :class=\"getClass(statAligns, config.align)\"\n >\n <div v-if=\"$slots.figure\" class=\"stat-figure\" :class=\"figureClass\">\n <slot name=\"figure\" />\n </div>\n <div v-if=\"title || $slots.title\" class=\"stat-title\" :class=\"titleClass\">\n <slot name=\"title\">{{ title }}</slot>\n </div>\n <div v-if=\"value !== undefined || $slots.value\" class=\"stat-value\" :class=\"valueClass\">\n <slot name=\"value\">{{ value }}</slot>\n </div>\n <div v-if=\"desc || $slots.desc\" class=\"stat-desc\" :class=\"descClass\">\n <slot name=\"desc\">{{ desc }}</slot>\n </div>\n <div v-if=\"$slots.actions\" class=\"stat-actions\" :class=\"actionsClass\">\n <slot name=\"actions\" />\n </div>\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STAT_CONFIG } from './stat.context'\nimport type { StatProps } from './stat.props'\nimport type { StatAlign } from './stat.types'\n\nconst statAligns: ComponentClass<'place-items', StatAlign> = {\n start: 'place-items-start',\n center: 'place-items-center',\n end: 'place-items-end',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatProps>()\nconst config = useComponentConfig(STAT_CONFIG, props, {})\n</script>\n\n<template>\n <div\n class=\"stat\"\n :class=\"getClass(statAligns, config.align)\"\n >\n <div v-if=\"$slots.figure\" class=\"stat-figure\" :class=\"figureClass\">\n <slot name=\"figure\" />\n </div>\n <div v-if=\"title || $slots.title\" class=\"stat-title\" :class=\"titleClass\">\n <slot name=\"title\">{{ title }}</slot>\n </div>\n <div v-if=\"value !== undefined || $slots.value\" class=\"stat-value\" :class=\"valueClass\">\n <slot name=\"value\">{{ value }}</slot>\n </div>\n <div v-if=\"desc || $slots.desc\" class=\"stat-desc\" :class=\"descClass\">\n <slot name=\"desc\">{{ desc }}</slot>\n </div>\n <div v-if=\"$slots.actions\" class=\"stat-actions\" :class=\"actionsClass\">\n <slot name=\"actions\" />\n </div>\n <slot />\n </div>\n</template>\n","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const STATS_CONFIG = createComponentConfigKey('stats')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STATS_CONFIG } from './stats.context'\nimport type { StatsProps } from './stats.props'\nimport type { StatsDirection } from './stats.types'\n\nconst statsDirections: ComponentClass<'stats', StatsDirection> = {\n horizontal: 'stats-horizontal',\n vertical: 'stats-vertical',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatsProps>()\nconst config = useComponentConfig(STATS_CONFIG, props, {\n direction: 'horizontal',\n})\n</script>\n\n<template>\n <div\n class=\"stats\"\n :class=\"getClass(statsDirections, config.direction)\"\n >\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STATS_CONFIG } from './stats.context'\nimport type { StatsProps } from './stats.props'\nimport type { StatsDirection } from './stats.types'\n\nconst statsDirections: ComponentClass<'stats', StatsDirection> = {\n horizontal: 'stats-horizontal',\n vertical: 'stats-vertical',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatsProps>()\nconst config = useComponentConfig(STATS_CONFIG, props, {\n direction: 'horizontal',\n})\n</script>\n\n<template>\n <div\n class=\"stats\"\n :class=\"getClass(statsDirections, config.direction)\"\n >\n <slot />\n </div>\n</template>\n","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const STATUS_CONFIG = createComponentConfigKey('status')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STATUS_CONFIG } from './status.context'\nimport type { StatusProps } from './status.props'\nimport type { StatusColor, StatusSize } from './status.types'\n\nconst statusColors: ComponentClass<'status', StatusColor> = {\n neutral: 'status-neutral',\n primary: 'status-primary',\n secondary: 'status-secondary',\n accent: 'status-accent',\n info: 'status-info',\n success: 'status-success',\n warning: 'status-warning',\n error: 'status-error',\n}\n\nconst statusSizes: ComponentClass<'status', StatusSize> = {\n xs: 'status-xs',\n sm: 'status-sm',\n md: 'status-md',\n lg: 'status-lg',\n xl: 'status-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatusProps>()\nconst config = useComponentConfig(STATUS_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <!-- Ping: two overlapping elements via inline-grid -->\n <div\n v-if=\"config.animation === 'ping'\"\n class=\"inline-grid *:[grid-area:1/1]\"\n :aria-label=\"label\"\n >\n <div\n class=\"status animate-ping\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n <div\n class=\"status\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n </div>\n\n <!-- Bounce or default -->\n <div\n v-else\n class=\"status\"\n :aria-label=\"label\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n config.animation === 'bounce' && 'animate-bounce',\n ]\"\n />\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { STATUS_CONFIG } from './status.context'\nimport type { StatusProps } from './status.props'\nimport type { StatusColor, StatusSize } from './status.types'\n\nconst statusColors: ComponentClass<'status', StatusColor> = {\n neutral: 'status-neutral',\n primary: 'status-primary',\n secondary: 'status-secondary',\n accent: 'status-accent',\n info: 'status-info',\n success: 'status-success',\n warning: 'status-warning',\n error: 'status-error',\n}\n\nconst statusSizes: ComponentClass<'status', StatusSize> = {\n xs: 'status-xs',\n sm: 'status-sm',\n md: 'status-md',\n lg: 'status-lg',\n xl: 'status-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<StatusProps>()\nconst config = useComponentConfig(STATUS_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <!-- Ping: two overlapping elements via inline-grid -->\n <div\n v-if=\"config.animation === 'ping'\"\n class=\"inline-grid *:[grid-area:1/1]\"\n :aria-label=\"label\"\n >\n <div\n class=\"status animate-ping\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n <div\n class=\"status\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n ]\"\n />\n </div>\n\n <!-- Bounce or default -->\n <div\n v-else\n class=\"status\"\n :aria-label=\"label\"\n :class=\"[\n getClass(statusColors, config.color),\n getClass(statusSizes, config.size),\n config.animation === 'bounce' && 'animate-bounce',\n ]\"\n />\n</template>"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./symbol-Cleu4XHu.cjs"),t=require("./use-component-config-C-IlXF0W.cjs"),n=require("./build-class.util-Lo1-M_t1.cjs"),r=require("./_plugin-vue_export-helper-BTmtiIyf.cjs");let i=require("vue"),a=require("vue-router");var o=e.t(`breadcrumbs`),s={key:1,class:`inline-flex items-center gap-2`},c=(0,i.defineComponent)({__name:`Breadcrumbs`,props:{items:{},maxWidth:{}},setup(e){let n=e,r=t.n(o,n,{});function c(e){return e===n.items.length-1}return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:(0,i.normalizeClass)([`breadcrumbs text-sm`,(0,i.unref)(r).maxWidth])},[(0,i.createElementVNode)(`ul`,null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.items,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`li`,{key:t},[c(t)?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,s,[e.icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.icon),{key:0,size:16})):(0,i.createCommentVNode)(``,!0),(0,i.createTextVNode)(` `+(0,i.toDisplayString)(e.label),1)])):((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.to?e.to===`#`?`a`:(0,i.unref)(a.RouterLink):`a`),(0,i.mergeProps)({key:0,ref_for:!0},{to:e.to&&e.to!==`#`,href:e.to&&e.to===`#`},{to:e.to,class:`inline-flex items-center gap-2`}),{default:(0,i.withCtx)(()=>[e.icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.icon),{key:0,size:16})):(0,i.createCommentVNode)(``,!0),(0,i.createTextVNode)(` `+(0,i.toDisplayString)(e.label),1)]),_:2},1040,[`to`]))]))),128))])],2))}}),l=e.t(`dock`),u=e.t(`dockItem`),d={xs:`dock-xs`,sm:`dock-sm`,md:`dock-md`,lg:`dock-lg`,xl:`dock-xl`},f=(0,i.defineComponent)({__name:`Dock`,props:{size:{}},setup(e){let r=t.n(l,e,{size:`md`});return(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:(0,i.normalizeClass)([`dock`,(0,i.unref)(n.n)(d,(0,i.unref)(r).size)])},[(0,i.renderSlot)(e.$slots,`default`)],2))}}),p={key:0,class:`dock-label`},m=(0,i.defineComponent)({__name:`DockItem`,props:{icon:{},label:{},to:{}},setup(e){let n=e,r=t.n(u,n,{}),o=(0,i.computed)(()=>n.to?n.to===`#`?`a`:a.RouterLink:`button`),s=(0,i.computed)(()=>o.value===`a`?{href:n.to}:o.value===`button`?{}:{to:n.to}),c=(0,i.computed)(()=>!n.to||n.to===`#`?!1:(0,a.useLink)({to:n.to}).isActive.value);return(e,t)=>{let n=(0,i.resolveDirective)(`binf`);return(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(o.value),{class:(0,i.normalizeClass)(c.value&&`dock-active`)},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)((0,i.unref)(r).icon),{size:20})),(0,i.unref)(r).label?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,p,(0,i.toDisplayString)((0,i.unref)(r).label),1)):(0,i.createCommentVNode)(``,!0)]),_:1},8,[`class`])),[[n,s.value]])}}}),h=e.t(`link`),g={neutral:`link-neutral`,primary:`link-primary`,secondary:`link-secondary`,accent:`link-accent`,info:`link-info`,success:`link-success`,warning:`link-warning`,error:`link-error`},_=(0,i.defineComponent)({__name:`Link`,props:{to:{},color:{},hover:{type:Boolean}},setup(e){let r=e,o=t.n(h,r,{hover:!1}),s=(0,i.computed)(()=>r.to?r.to===`#`?`a`:a.RouterLink:`a`),c=(0,i.computed)(()=>s.value===`a`?{href:r.to}:{to:r.to});return(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(s.value),(0,i.mergeProps)(c.value,{class:[`link`,[(0,i.unref)(n.n)(g,(0,i.unref)(o).color),(0,i.unref)(o).hover&&`link-hover`]]}),{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`default`)]),_:3},16,[`class`]))}}),v=e.t(`menu`),y=e.t(`menuItem`),b={xs:`menu-xs`,sm:`menu-sm`,md:`menu-md`,lg:`menu-lg`,xl:`menu-xl`},x={vertical:`menu-vertical`,horizontal:`menu-horizontal`},S=(0,i.defineComponent)({__name:`Menu`,props:{size:{},direction:{}},setup(e){let r=t.n(v,e,{size:`md`,direction:`vertical`});return(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`ul`,{class:(0,i.normalizeClass)([`menu`,[(0,i.unref)(n.n)(b,(0,i.unref)(r).size),(0,i.unref)(n.n)(x,(0,i.unref)(r).direction)]])},[(0,i.renderSlot)(e.$slots,`default`)],2))}}),C={key:0,class:`menu-title inline-flex items-center gap-2`},w={class:`menu-title inline-flex items-center gap-2`},T={key:0},E=(0,i.defineComponent)({__name:`MenuItem`,props:{icon:{},to:{},title:{type:Boolean},disabled:{type:Boolean},active:{type:Boolean},collapsible:{type:Boolean}},emits:[`click`],setup(e,{emit:n}){let r=e,o=n,s=t.n(y,r,{}),c=(0,i.useSlots)(),l=(0,i.computed)(()=>!!c.submenu),u=(0,i.computed)(()=>r.title),d=(0,i.computed)(()=>r.to?r.to===`#`?`a`:a.RouterLink:`a`),f=(0,i.computed)(()=>d.value===`a`?{href:r.to}:{to:r.to}),p=(0,i.computed)(()=>{if(r.active)return!0;if(!r.to||r.to===`#`)return!1;let{isActive:e}=(0,a.useLink)({to:(0,i.computed)(()=>r.to)});return e.value});return(e,t)=>u.value&&!l.value?((0,i.openBlock)(),(0,i.createElementBlock)(`li`,C,[r.icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(r.icon),{key:0,size:14})):(0,i.createCommentVNode)(``,!0),(0,i.renderSlot)(e.$slots,`default`)])):u.value&&l.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createElementVNode)(`h2`,w,[r.icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(r.icon),{key:0,size:14})):(0,i.createCommentVNode)(``,!0),(0,i.renderSlot)(e.$slots,`default`)]),(0,i.createElementVNode)(`ul`,null,[(0,i.renderSlot)(e.$slots,`submenu`)])],64)):((0,i.openBlock)(),(0,i.createElementBlock)(`li`,{key:2,class:(0,i.normalizeClass)({"menu-disabled":(0,i.unref)(s).disabled})},[l.value&&(0,i.unref)(s).collapsible?((0,i.openBlock)(),(0,i.createElementBlock)(`details`,T,[(0,i.createElementVNode)(`summary`,null,[(0,i.unref)(s).icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)((0,i.unref)(s).icon),{key:0,size:16})):(0,i.createCommentVNode)(``,!0),(0,i.renderSlot)(e.$slots,`default`),(0,i.renderSlot)(e.$slots,`badge`)]),(0,i.createElementVNode)(`ul`,null,[(0,i.renderSlot)(e.$slots,`submenu`)])])):l.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(d.value),(0,i.mergeProps)(f.value,{class:p.value&&`menu-active`,onClick:t[0]||=e=>o(`click`,e)}),{default:(0,i.withCtx)(()=>[(0,i.unref)(s).icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)((0,i.unref)(s).icon),{key:0,size:16})):(0,i.createCommentVNode)(``,!0),(0,i.renderSlot)(e.$slots,`default`),(0,i.renderSlot)(e.$slots,`badge`)]),_:3},16,[`class`])),(0,i.createElementVNode)(`ul`,null,[(0,i.renderSlot)(e.$slots,`submenu`)])],64)):((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(d.value),(0,i.mergeProps)({key:2},f.value,{class:p.value&&`menu-active`,onClick:t[1]||=e=>o(`click`,e)}),{default:(0,i.withCtx)(()=>[(0,i.unref)(s).icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)((0,i.unref)(s).icon),{key:0,size:16})):(0,i.createCommentVNode)(``,!0),(0,i.renderSlot)(e.$slots,`default`),(0,i.renderSlot)(e.$slots,`badge`)]),_:3},16,[`class`]))],2))}}),D={},O={class:`navbar`};function k(e,t){return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,O,[(0,i.renderSlot)(e.$slots,`default`)])}var A=r.t(D,[[`render`,k]]),j=e.t(`tabs`),M=e.t(`tab`),N=Symbol(`tabs`),P=(0,i.defineComponent)({__name:`Tab`,props:{value:{},title:{},active:{type:Boolean},disabled:{type:Boolean},icon:{},to:{}},setup(e,{expose:n}){let r=e,o=t.n(M,r,{}),s=(0,i.inject)(N,null),c=(0,i.useSlots)();s&&r.value!==void 0&&s.register(r.value,!!r.active);let l=(0,i.computed)(()=>r.to?r.to.startsWith(`#`)?`a`:a.RouterLink:`button`),u=(0,i.computed)(()=>l.value===`button`?{}:l.value===`a`?{href:r.to}:{to:r.to}),d=(0,i.computed)(()=>{if(!r.to||r.to===`#`)return!1;let{isExactActive:e}=(0,a.useLink)({to:(0,i.computed)(()=>r.to)});return e.value}),f=(0,i.computed)(()=>s&&r.value!==void 0?s.activeValue.value===r.value:r.to?d.value:o.value.active),p=(0,i.computed)(()=>!!c.default);function m(){!r.to&&s&&r.value!==void 0&&s.setActive(r.value)}let h=(0,i.useTemplateRef)(`tab-el`);return n({$el:h,focus:()=>h.value?.focus()}),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,null,[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(l.value),(0,i.mergeProps)({ref:`tab-el`},u.value,{role:`tab`,class:[`tab`,{"tab-active":f.value,"tab-disabled":(0,i.unref)(o).disabled}],disabled:!r.to&&(0,i.unref)(o).disabled,onClick:m}),{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`icon`,{},()=>[(0,i.unref)(o).icon?((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)((0,i.unref)(o).icon),{key:0,size:16,class:`me-2`})):(0,i.createCommentVNode)(``,!0)]),(0,i.renderSlot)(e.$slots,`title`,{},()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(o).title),1)])]),_:3},16,[`class`,`disabled`])),p.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,class:`tab-content bg-base-100 border-base-300 p-6`,style:(0,i.normalizeStyle)({display:f.value?`block`:`none`})},[(0,i.renderSlot)(e.$slots,`default`)],4)):(0,i.createCommentVNode)(``,!0)],64))}}),F={box:`tabs-box`,border:`tabs-border`,lift:`tabs-lift`},I={xs:`tabs-xs`,sm:`tabs-sm`,md:`tabs-md`,lg:`tabs-lg`,xl:`tabs-xl`},L={top:`tabs-top`,bottom:`tabs-bottom`},R=(0,i.defineComponent)({__name:`Tabs`,props:(0,i.mergeModels)({variant:{},size:{},placement:{}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let r=(0,i.useModel)(e,`modelValue`),a=t.n(j,e,{size:`md`,placement:`top`}),o=[];return(0,i.provide)(N,{activeValue:r,setActive:e=>{r.value=e},register:(e,t)=>{o.push({value:e,initiallyActive:t})}}),(0,i.onMounted)(()=>{if(r.value!==void 0)return;let e=o.find(e=>e.initiallyActive);if(e){r.value=e.value;return}o.length>0&&(r.value=o[0].value)}),(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{role:`tablist`,class:(0,i.normalizeClass)([`tabs`,[(0,i.unref)(n.n)(F,(0,i.unref)(a).variant),(0,i.unref)(n.n)(I,(0,i.unref)(a).size),(0,i.unref)(n.n)(L,(0,i.unref)(a).placement)]])},[(0,i.renderSlot)(e.$slots,`default`)],2))}});Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return R}});
2
+ //# sourceMappingURL=public-D_MhbTxP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-D_MhbTxP.cjs","names":[],"sources":["../src/components/navigation/breadcrumbs/breadcrumbs.context.ts","../src/components/navigation/breadcrumbs/Breadcrumbs.vue","../src/components/navigation/breadcrumbs/Breadcrumbs.vue","../src/components/navigation/dock/dock.context.ts","../src/components/navigation/dock/Dock.vue","../src/components/navigation/dock/Dock.vue","../src/components/navigation/dock/DockItem.vue","../src/components/navigation/dock/DockItem.vue","../src/components/navigation/link/link.context.ts","../src/components/navigation/link/Link.vue","../src/components/navigation/link/Link.vue","../src/components/navigation/menu/menu.context.ts","../src/components/navigation/menu/Menu.vue","../src/components/navigation/menu/Menu.vue","../src/components/navigation/menu/MenuItem.vue","../src/components/navigation/menu/MenuItem.vue","../src/components/navigation/navbar/Navbar.vue","../src/components/navigation/tab/tab.context.ts","../src/components/navigation/tab/Tab.vue","../src/components/navigation/tab/Tab.vue","../src/components/navigation/tab/Tabs.vue","../src/components/navigation/tab/Tabs.vue"],"sourcesContent":["import { createComponentConfigKey } from '@/config/symbol'\n\nexport const BREADCRUMBS_CONFIG = createComponentConfigKey('breadcrumbs')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { RouterLink } from 'vue-router'\nimport { BREADCRUMBS_CONFIG } from './breadcrumbs.context'\nimport type { BreadcrumbsProps } from './breadcrumbs.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<BreadcrumbsProps>()\nconst config = useComponentConfig(BREADCRUMBS_CONFIG, props, {})\n\nfunction isLast(index: number) {\n return index === props.items.length - 1\n}\n</script>\n\n<template>\n <div\n class=\"breadcrumbs text-sm\"\n :class=\"config.maxWidth\"\n >\n <ul>\n <li\n v-for=\"(item, index) in items\"\n :key=\"index\"\n >\n <!-- Clickable item (not the last) -->\n <component\n :is=\"item.to ? item.to === '#' ? 'a' : RouterLink : 'a'\"\n v-if=\"!isLast(index)\"\n v-bind=\"{\n to: item.to && item.to !== '#',\n href: item.to && item.to === '#',\n }\"\n :to=\"item.to\"\n class=\"inline-flex items-center gap-2\"\n >\n <component :is=\"item.icon\" v-if=\"item.icon\" :size=\"16\" />\n {{ item.label }}\n </component>\n\n <!-- Last item (current page, non-clickable) -->\n <span\n v-else\n class=\"inline-flex items-center gap-2\"\n >\n <component :is=\"item.icon\" v-if=\"item.icon\" :size=\"16\" />\n {{ item.label }}\n </span>\n </li>\n </ul>\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { RouterLink } from 'vue-router'\nimport { BREADCRUMBS_CONFIG } from './breadcrumbs.context'\nimport type { BreadcrumbsProps } from './breadcrumbs.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<BreadcrumbsProps>()\nconst config = useComponentConfig(BREADCRUMBS_CONFIG, props, {})\n\nfunction isLast(index: number) {\n return index === props.items.length - 1\n}\n</script>\n\n<template>\n <div\n class=\"breadcrumbs text-sm\"\n :class=\"config.maxWidth\"\n >\n <ul>\n <li\n v-for=\"(item, index) in items\"\n :key=\"index\"\n >\n <!-- Clickable item (not the last) -->\n <component\n :is=\"item.to ? item.to === '#' ? 'a' : RouterLink : 'a'\"\n v-if=\"!isLast(index)\"\n v-bind=\"{\n to: item.to && item.to !== '#',\n href: item.to && item.to === '#',\n }\"\n :to=\"item.to\"\n class=\"inline-flex items-center gap-2\"\n >\n <component :is=\"item.icon\" v-if=\"item.icon\" :size=\"16\" />\n {{ item.label }}\n </component>\n\n <!-- Last item (current page, non-clickable) -->\n <span\n v-else\n class=\"inline-flex items-center gap-2\"\n >\n <component :is=\"item.icon\" v-if=\"item.icon\" :size=\"16\" />\n {{ item.label }}\n </span>\n </li>\n </ul>\n </div>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const DOCK_CONFIG = createComponentConfigKey('dock')\nexport const DOCK_ITEM_CONFIG = createComponentConfigKey('dockItem')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { DOCK_CONFIG } from './dock.context'\nimport type { DockProps } from './dock.props'\nimport type { DockSize } from './dock.types'\n\nconst sizes: ComponentClass<'dock', DockSize> = {\n xs: 'dock-xs',\n sm: 'dock-sm',\n md: 'dock-md',\n lg: 'dock-lg',\n xl: 'dock-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<DockProps>()\nconst config = useComponentConfig(DOCK_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <div\n class=\"dock\"\n :class=\"getClass(sizes, config.size)\"\n >\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { DOCK_CONFIG } from './dock.context'\nimport type { DockProps } from './dock.props'\nimport type { DockSize } from './dock.types'\n\nconst sizes: ComponentClass<'dock', DockSize> = {\n xs: 'dock-xs',\n sm: 'dock-sm',\n md: 'dock-md',\n lg: 'dock-lg',\n xl: 'dock-xl',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<DockProps>()\nconst config = useComponentConfig(DOCK_CONFIG, props, {\n size: 'md',\n})\n</script>\n\n<template>\n <div\n class=\"dock\"\n :class=\"getClass(sizes, config.size)\"\n >\n <slot />\n </div>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed } from 'vue'\nimport { RouterLink, useLink } from 'vue-router'\nimport { DOCK_ITEM_CONFIG } from './dock.context'\nimport type { DockItemProps } from './dock.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<DockItemProps>()\nconst config = useComponentConfig(DOCK_ITEM_CONFIG, props, {})\n\nconst tag = computed(() => {\n return props.to ? props.to === '#' ? 'a' : RouterLink : 'button'\n})\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to,\n }\n }\n if (tag.value === 'button') {\n return {}\n }\n\n return {\n to: props.to,\n }\n})\n\nconst isActive = computed(() => {\n if (!props.to || props.to === '#') {\n return false\n }\n\n const link = useLink({ to: props.to })\n return link.isActive.value\n})\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-binf=\"attr\"\n :class=\"isActive && 'dock-active'\"\n >\n <component :is=\"config.icon\" :size=\"20\" />\n <span v-if=\"config.label\" class=\"dock-label\">{{ config.label }}</span>\n </component>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed } from 'vue'\nimport { RouterLink, useLink } from 'vue-router'\nimport { DOCK_ITEM_CONFIG } from './dock.context'\nimport type { DockItemProps } from './dock.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<DockItemProps>()\nconst config = useComponentConfig(DOCK_ITEM_CONFIG, props, {})\n\nconst tag = computed(() => {\n return props.to ? props.to === '#' ? 'a' : RouterLink : 'button'\n})\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to,\n }\n }\n if (tag.value === 'button') {\n return {}\n }\n\n return {\n to: props.to,\n }\n})\n\nconst isActive = computed(() => {\n if (!props.to || props.to === '#') {\n return false\n }\n\n const link = useLink({ to: props.to })\n return link.isActive.value\n})\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-binf=\"attr\"\n :class=\"isActive && 'dock-active'\"\n >\n <component :is=\"config.icon\" :size=\"20\" />\n <span v-if=\"config.label\" class=\"dock-label\">{{ config.label }}</span>\n </component>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const LINK_CONFIG = createComponentConfigKey('link')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { computed } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport { LINK_CONFIG } from './link.context'\nimport type { LinkProps } from './link.props'\nimport type { LinkColor } from './link.types'\n\nconst colors: ComponentClass<'link', LinkColor> = {\n neutral: 'link-neutral',\n primary: 'link-primary',\n secondary: 'link-secondary',\n accent: 'link-accent',\n info: 'link-info',\n success: 'link-success',\n warning: 'link-warning',\n error: 'link-error',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<LinkProps>()\nconst config = useComponentConfig(LINK_CONFIG, props, {\n hover: false,\n})\n\nconst tag = computed(() => {\n return props.to ? props.to === '#' ? 'a' : RouterLink : 'a'\n})\n\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to,\n }\n }\n return {\n to: props.to,\n }\n})\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-bind=\"attr\"\n class=\"link\"\n :class=\"[\n getClass(colors, config.color),\n config.hover && 'link-hover',\n ]\"\n >\n <slot />\n </component>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { computed } from 'vue'\nimport { RouterLink } from 'vue-router'\nimport { LINK_CONFIG } from './link.context'\nimport type { LinkProps } from './link.props'\nimport type { LinkColor } from './link.types'\n\nconst colors: ComponentClass<'link', LinkColor> = {\n neutral: 'link-neutral',\n primary: 'link-primary',\n secondary: 'link-secondary',\n accent: 'link-accent',\n info: 'link-info',\n success: 'link-success',\n warning: 'link-warning',\n error: 'link-error',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<LinkProps>()\nconst config = useComponentConfig(LINK_CONFIG, props, {\n hover: false,\n})\n\nconst tag = computed(() => {\n return props.to ? props.to === '#' ? 'a' : RouterLink : 'a'\n})\n\nconst attr = computed(() => {\n if (tag.value === 'a') {\n return {\n href: props.to,\n }\n }\n return {\n to: props.to,\n }\n})\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-bind=\"attr\"\n class=\"link\"\n :class=\"[\n getClass(colors, config.color),\n config.hover && 'link-hover',\n ]\"\n >\n <slot />\n </component>\n</template>","import { createComponentConfigKey } from '@/config/symbol'\n\nexport const MENU_CONFIG = createComponentConfigKey('menu')\nexport const MENU_ITEM_CONFIG = createComponentConfigKey('menuItem')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { MENU_CONFIG } from './menu.context'\nimport type { MenuProps } from './menu.props'\nimport type { MenuDirection, MenuSize } from './menu.types'\n\nconst sizes: ComponentClass<'menu', MenuSize> = {\n xs: 'menu-xs',\n sm: 'menu-sm',\n md: 'menu-md',\n lg: 'menu-lg',\n xl: 'menu-xl',\n}\n\nconst directions: ComponentClass<'menu', MenuDirection> = {\n vertical: 'menu-vertical',\n horizontal: 'menu-horizontal',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<MenuProps>()\nconst config = useComponentConfig(MENU_CONFIG, props, {\n size: 'md',\n direction: 'vertical'\n})\n</script>\n\n<template>\n <ul\n class=\"menu\"\n :class=\"[\n getClass(sizes, config.size),\n getClass(directions, config.direction),\n ]\"\n >\n <slot />\n </ul>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { MENU_CONFIG } from './menu.context'\nimport type { MenuProps } from './menu.props'\nimport type { MenuDirection, MenuSize } from './menu.types'\n\nconst sizes: ComponentClass<'menu', MenuSize> = {\n xs: 'menu-xs',\n sm: 'menu-sm',\n md: 'menu-md',\n lg: 'menu-lg',\n xl: 'menu-xl',\n}\n\nconst directions: ComponentClass<'menu', MenuDirection> = {\n vertical: 'menu-vertical',\n horizontal: 'menu-horizontal',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<MenuProps>()\nconst config = useComponentConfig(MENU_CONFIG, props, {\n size: 'md',\n direction: 'vertical'\n})\n</script>\n\n<template>\n <ul\n class=\"menu\"\n :class=\"[\n getClass(sizes, config.size),\n getClass(directions, config.direction),\n ]\"\n >\n <slot />\n </ul>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed, useSlots } from 'vue'\nimport { RouterLink, useLink } from 'vue-router'\nimport { MENU_ITEM_CONFIG } from './menu.context'\nimport type { MenuItemProps } from './menu.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<MenuItemProps>()\nconst emit = defineEmits<{ click: [event: MouseEvent] }>()\nconst config = useComponentConfig(MENU_ITEM_CONFIG, props, {})\n\nconst slots = useSlots()\n\nconst hasSubmenu = computed(() => !!slots.submenu)\nconst isTitle = computed(() => props.title)\n\nconst tag = computed(() => {\n if (!props.to) return 'a'\n return props.to === '#' ? 'a' : RouterLink\n})\n\nconst attr = computed(() => {\n if (tag.value === 'a') return { href: props.to }\n return { to: props.to }\n})\n\nconst isActive = computed(() => {\n if (props.active) return true\n if (!props.to || props.to === '#') return false\n const { isActive } = useLink({ to: computed(() => props.to!) })\n return isActive.value\n})\n</script>\n\n<template>\n <!-- Title item (standalone) -->\n <li v-if=\"isTitle && !hasSubmenu\" class=\"menu-title inline-flex items-center gap-2\">\n <component :is=\"props.icon\" v-if=\"props.icon\" :size=\"14\" />\n <slot />\n </li>\n\n <!-- Title item as parent (with submenu): uses <h2> per DaisyUI spec -->\n <template v-else-if=\"isTitle && hasSubmenu\">\n <h2 class=\"menu-title inline-flex items-center gap-2\">\n <component :is=\"props.icon\" v-if=\"props.icon\" :size=\"14\" />\n <slot />\n </h2>\n <ul>\n <slot name=\"submenu\" />\n </ul>\n </template>\n\n <!-- Regular item -->\n <li v-else :class=\"{\n 'menu-disabled': config.disabled\n }\">\n\n <!-- With submenu + collapsible: <details>/<summary> -->\n <template v-if=\"hasSubmenu && config.collapsible\">\n <details>\n <summary>\n <component :is=\"config.icon\" v-if=\"config.icon\" :size=\"16\" />\n <slot />\n <slot name=\"badge\" />\n </summary>\n <ul>\n <slot name=\"submenu\" />\n </ul>\n </details>\n </template>\n\n <!-- With submenu, static: label + nested <ul> -->\n <template v-else-if=\"hasSubmenu\">\n <component\n :is=\"tag\"\n v-bind=\"attr\"\n :class=\"isActive && 'menu-active'\"\n @click=\"emit('click', $event)\"\n >\n <component :is=\"config.icon\" v-if=\"config.icon\" :size=\"16\" />\n <slot />\n <slot name=\"badge\" />\n </component>\n <ul>\n <slot name=\"submenu\" />\n </ul>\n </template>\n\n <!-- Leaf item -->\n <template v-else>\n <component\n :is=\"tag\"\n v-bind=\"attr\"\n :class=\"isActive && 'menu-active'\"\n @click=\"emit('click', $event)\"\n >\n <component :is=\"config.icon\" v-if=\"config.icon\" :size=\"16\" />\n <slot />\n <slot name=\"badge\" />\n </component>\n </template>\n\n </li>\n</template>","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed, useSlots } from 'vue'\nimport { RouterLink, useLink } from 'vue-router'\nimport { MENU_ITEM_CONFIG } from './menu.context'\nimport type { MenuItemProps } from './menu.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<MenuItemProps>()\nconst emit = defineEmits<{ click: [event: MouseEvent] }>()\nconst config = useComponentConfig(MENU_ITEM_CONFIG, props, {})\n\nconst slots = useSlots()\n\nconst hasSubmenu = computed(() => !!slots.submenu)\nconst isTitle = computed(() => props.title)\n\nconst tag = computed(() => {\n if (!props.to) return 'a'\n return props.to === '#' ? 'a' : RouterLink\n})\n\nconst attr = computed(() => {\n if (tag.value === 'a') return { href: props.to }\n return { to: props.to }\n})\n\nconst isActive = computed(() => {\n if (props.active) return true\n if (!props.to || props.to === '#') return false\n const { isActive } = useLink({ to: computed(() => props.to!) })\n return isActive.value\n})\n</script>\n\n<template>\n <!-- Title item (standalone) -->\n <li v-if=\"isTitle && !hasSubmenu\" class=\"menu-title inline-flex items-center gap-2\">\n <component :is=\"props.icon\" v-if=\"props.icon\" :size=\"14\" />\n <slot />\n </li>\n\n <!-- Title item as parent (with submenu): uses <h2> per DaisyUI spec -->\n <template v-else-if=\"isTitle && hasSubmenu\">\n <h2 class=\"menu-title inline-flex items-center gap-2\">\n <component :is=\"props.icon\" v-if=\"props.icon\" :size=\"14\" />\n <slot />\n </h2>\n <ul>\n <slot name=\"submenu\" />\n </ul>\n </template>\n\n <!-- Regular item -->\n <li v-else :class=\"{\n 'menu-disabled': config.disabled\n }\">\n\n <!-- With submenu + collapsible: <details>/<summary> -->\n <template v-if=\"hasSubmenu && config.collapsible\">\n <details>\n <summary>\n <component :is=\"config.icon\" v-if=\"config.icon\" :size=\"16\" />\n <slot />\n <slot name=\"badge\" />\n </summary>\n <ul>\n <slot name=\"submenu\" />\n </ul>\n </details>\n </template>\n\n <!-- With submenu, static: label + nested <ul> -->\n <template v-else-if=\"hasSubmenu\">\n <component\n :is=\"tag\"\n v-bind=\"attr\"\n :class=\"isActive && 'menu-active'\"\n @click=\"emit('click', $event)\"\n >\n <component :is=\"config.icon\" v-if=\"config.icon\" :size=\"16\" />\n <slot />\n <slot name=\"badge\" />\n </component>\n <ul>\n <slot name=\"submenu\" />\n </ul>\n </template>\n\n <!-- Leaf item -->\n <template v-else>\n <component\n :is=\"tag\"\n v-bind=\"attr\"\n :class=\"isActive && 'menu-active'\"\n @click=\"emit('click', $event)\"\n >\n <component :is=\"config.icon\" v-if=\"config.icon\" :size=\"16\" />\n <slot />\n <slot name=\"badge\" />\n </component>\n </template>\n\n </li>\n</template>","<script lang=\"ts\">\n</script>\n\n<template>\n <div class=\"navbar\">\n <slot />\n </div>\n</template>\n","import { createComponentConfigKey } from '@/config/symbol'\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const TABS_CONFIG = createComponentConfigKey('tabs')\nexport const TAB_CONFIG = createComponentConfigKey('tab')\n\nexport interface TabsContext {\n activeValue: Ref<string | undefined>\n setActive: (value: string) => void\n register: (value: string, initiallyActive: boolean) => void\n}\n\nexport const TABS_CONTEXT: InjectionKey<TabsContext> = Symbol('tabs')\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed, inject, useSlots, useTemplateRef } from 'vue'\nimport { RouterLink, useLink } from 'vue-router'\nimport { TAB_CONFIG, TABS_CONTEXT } from './tab.context'\nimport type { TabProps } from './tab.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<TabProps>()\nconst config = useComponentConfig(TAB_CONFIG, props, {})\nconst tabsContext = inject(TABS_CONTEXT, null)\nconst slots = useSlots()\n\nif (tabsContext && props.value !== undefined) {\n tabsContext.register(props.value, !!props.active)\n}\n\nconst tag = computed(() => {\n if (!props.to) {\n return 'button'\n }\n\n if (props.to.startsWith('#')) {\n return 'a'\n }\n\n return RouterLink\n})\n\nconst attr = computed(() => {\n if (tag.value === 'button') {\n return {}\n }\n\n if (tag.value === 'a') {\n return { href: props.to }\n }\n\n return { to: props.to }\n})\n\nconst isRouterActive = computed(() => {\n if (!props.to || props.to === '#') {\n return false\n }\n\n const { isExactActive } = useLink({ to: computed(() => props.to!) })\n return isExactActive.value\n})\n\nconst isActive = computed(() => {\n if (tabsContext && props.value !== undefined) {\n return tabsContext.activeValue.value === props.value\n }\n\n if (props.to) {\n return isRouterActive.value\n }\n\n return config.value.active\n})\n\nconst hasContent = computed(() => !!slots.default)\n\nfunction onClick() {\n if (!props.to && tabsContext && props.value !== undefined) {\n tabsContext.setActive(props.value)\n }\n}\n\nconst tabEl = useTemplateRef('tab-el')\n\ndefineExpose({\n $el: tabEl,\n focus: () => tabEl.value?.focus(),\n})\n</script>\n\n<template>\n <component\n ref=\"tab-el\"\n :is=\"tag\"\n v-bind=\"attr\"\n role=\"tab\"\n class=\"tab\"\n :class=\"{\n 'tab-active': isActive,\n 'tab-disabled': config.disabled\n }\"\n :disabled=\"!props.to && config.disabled\"\n @click=\"onClick\"\n >\n <slot name=\"icon\">\n <component v-if=\"config.icon\" :is=\"config.icon\" :size=\"16\" class=\"me-2\" />\n </slot>\n <slot name=\"title\">{{ config.title }}</slot>\n </component>\n <div\n v-if=\"hasContent\"\n class=\"tab-content bg-base-100 border-base-300 p-6\"\n :style=\"{ display: isActive ? 'block' : 'none' }\"\n >\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport { computed, inject, useSlots, useTemplateRef } from 'vue'\nimport { RouterLink, useLink } from 'vue-router'\nimport { TAB_CONFIG, TABS_CONTEXT } from './tab.context'\nimport type { TabProps } from './tab.props'\n</script>\n\n<script setup lang=\"ts\">\nconst props = defineProps<TabProps>()\nconst config = useComponentConfig(TAB_CONFIG, props, {})\nconst tabsContext = inject(TABS_CONTEXT, null)\nconst slots = useSlots()\n\nif (tabsContext && props.value !== undefined) {\n tabsContext.register(props.value, !!props.active)\n}\n\nconst tag = computed(() => {\n if (!props.to) {\n return 'button'\n }\n\n if (props.to.startsWith('#')) {\n return 'a'\n }\n\n return RouterLink\n})\n\nconst attr = computed(() => {\n if (tag.value === 'button') {\n return {}\n }\n\n if (tag.value === 'a') {\n return { href: props.to }\n }\n\n return { to: props.to }\n})\n\nconst isRouterActive = computed(() => {\n if (!props.to || props.to === '#') {\n return false\n }\n\n const { isExactActive } = useLink({ to: computed(() => props.to!) })\n return isExactActive.value\n})\n\nconst isActive = computed(() => {\n if (tabsContext && props.value !== undefined) {\n return tabsContext.activeValue.value === props.value\n }\n\n if (props.to) {\n return isRouterActive.value\n }\n\n return config.value.active\n})\n\nconst hasContent = computed(() => !!slots.default)\n\nfunction onClick() {\n if (!props.to && tabsContext && props.value !== undefined) {\n tabsContext.setActive(props.value)\n }\n}\n\nconst tabEl = useTemplateRef('tab-el')\n\ndefineExpose({\n $el: tabEl,\n focus: () => tabEl.value?.focus(),\n})\n</script>\n\n<template>\n <component\n ref=\"tab-el\"\n :is=\"tag\"\n v-bind=\"attr\"\n role=\"tab\"\n class=\"tab\"\n :class=\"{\n 'tab-active': isActive,\n 'tab-disabled': config.disabled\n }\"\n :disabled=\"!props.to && config.disabled\"\n @click=\"onClick\"\n >\n <slot name=\"icon\">\n <component v-if=\"config.icon\" :is=\"config.icon\" :size=\"16\" class=\"me-2\" />\n </slot>\n <slot name=\"title\">{{ config.title }}</slot>\n </component>\n <div\n v-if=\"hasContent\"\n class=\"tab-content bg-base-100 border-base-300 p-6\"\n :style=\"{ display: isActive ? 'block' : 'none' }\"\n >\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { onMounted, provide } from 'vue'\nimport { TABS_CONFIG, TABS_CONTEXT } from './tab.context'\nimport type { TabsProps } from './tab.props'\nimport type { TabPlacement, TabSize, TabVariant } from './tab.types'\n\nconst variants: ComponentClass<'tabs', TabVariant> = {\n box: 'tabs-box',\n border: 'tabs-border',\n lift: 'tabs-lift',\n}\n\nconst sizes: ComponentClass<'tabs', TabSize> = {\n xs: 'tabs-xs',\n sm: 'tabs-sm',\n md: 'tabs-md',\n lg: 'tabs-lg',\n xl: 'tabs-xl',\n}\n\nconst placements: ComponentClass<'tabs', TabPlacement> = {\n top: 'tabs-top',\n bottom: 'tabs-bottom',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst model = defineModel<string>()\nconst props = defineProps<TabsProps>()\nconst config = useComponentConfig(TABS_CONFIG, props, {\n size: 'md',\n placement: 'top',\n})\n\nconst registeredTabs: Array<{ value: string; initiallyActive: boolean }> = []\n\nprovide(TABS_CONTEXT, {\n activeValue: model,\n setActive: (value) => { model.value = value },\n register: (value, initiallyActive) => { registeredTabs.push({ value, initiallyActive }) },\n})\n\nonMounted(() => {\n if (model.value !== undefined) {\n return\n }\n\n const preSelected = registeredTabs.find(t => t.initiallyActive)\n\n if (preSelected) {\n model.value = preSelected.value\n return\n }\n\n if (registeredTabs.length > 0) {\n model.value = registeredTabs[0].value\n }\n})\n</script>\n\n<template>\n <div\n role=\"tablist\"\n class=\"tabs\"\n :class=\"[\n getClass(variants, config.variant),\n getClass(sizes, config.size),\n getClass(placements, config.placement),\n ]\"\n >\n <slot />\n </div>\n</template>\n","<script lang=\"ts\">\nimport { useComponentConfig } from '@/composables/use-component-config'\nimport type { ComponentClass } from '@/types/utils.type'\nimport { getClass } from '@/utils/build-class.util'\nimport { onMounted, provide } from 'vue'\nimport { TABS_CONFIG, TABS_CONTEXT } from './tab.context'\nimport type { TabsProps } from './tab.props'\nimport type { TabPlacement, TabSize, TabVariant } from './tab.types'\n\nconst variants: ComponentClass<'tabs', TabVariant> = {\n box: 'tabs-box',\n border: 'tabs-border',\n lift: 'tabs-lift',\n}\n\nconst sizes: ComponentClass<'tabs', TabSize> = {\n xs: 'tabs-xs',\n sm: 'tabs-sm',\n md: 'tabs-md',\n lg: 'tabs-lg',\n xl: 'tabs-xl',\n}\n\nconst placements: ComponentClass<'tabs', TabPlacement> = {\n top: 'tabs-top',\n bottom: 'tabs-bottom',\n}\n</script>\n\n<script setup lang=\"ts\">\nconst model = defineModel<string>()\nconst props = defineProps<TabsProps>()\nconst config = useComponentConfig(TABS_CONFIG, props, {\n size: 'md',\n placement: 'top',\n})\n\nconst registeredTabs: Array<{ value: string; initiallyActive: boolean }> = []\n\nprovide(TABS_CONTEXT, {\n activeValue: model,\n setActive: (value) => { model.value = value },\n register: (value, initiallyActive) => { registeredTabs.push({ value, initiallyActive }) },\n})\n\nonMounted(() => {\n if (model.value !== undefined) {\n return\n }\n\n const preSelected = registeredTabs.find(t => t.initiallyActive)\n\n if (preSelected) {\n model.value = preSelected.value\n return\n }\n\n if (registeredTabs.length > 0) {\n model.value = registeredTabs[0].value\n }\n})\n</script>\n\n<template>\n <div\n role=\"tablist\"\n class=\"tabs\"\n :class=\"[\n getClass(variants, config.variant),\n getClass(sizes, config.size),\n getClass(placements, config.placement),\n ]\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":"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"}