@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-Dqelew6J.js","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,296 @@
1
+ import { t as e } from "./symbol-CziS7Pho.js";
2
+ import { n as t } from "./use-component-config-CaJQbJOW.js";
3
+ import { n } from "./build-class.util-Cp-ZBFgO.js";
4
+ import { t as r } from "./_plugin-vue_export-helper-B3ysoDQm.js";
5
+ import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, defineComponent as d, inject as f, mergeModels as p, mergeProps as m, normalizeClass as h, normalizeStyle as g, onMounted as _, openBlock as v, provide as y, renderList as b, renderSlot as x, resolveDirective as S, resolveDynamicComponent as C, toDisplayString as w, unref as T, useModel as E, useSlots as D, useTemplateRef as ee, withCtx as O, withDirectives as k } from "vue";
6
+ import { RouterLink as A, useLink as j } from "vue-router";
7
+ //#region src/components/navigation/breadcrumbs/breadcrumbs.context.ts
8
+ var te = e("breadcrumbs"), M = {
9
+ key: 1,
10
+ class: "inline-flex items-center gap-2"
11
+ }, N = /* @__PURE__ */ d({
12
+ __name: "Breadcrumbs",
13
+ props: {
14
+ items: {},
15
+ maxWidth: {}
16
+ },
17
+ setup(e) {
18
+ let n = e, r = t(te, n, {});
19
+ function a(e) {
20
+ return e === n.items.length - 1;
21
+ }
22
+ return (t, n) => (v(), c("div", { class: h(["breadcrumbs text-sm", T(r).maxWidth]) }, [l("ul", null, [(v(!0), c(i, null, b(e.items, (e, t) => (v(), c("li", { key: t }, [a(t) ? (v(), c("span", M, [e.icon ? (v(), o(C(e.icon), {
23
+ key: 0,
24
+ size: 16
25
+ })) : s("", !0), u(" " + w(e.label), 1)])) : (v(), o(C(e.to ? e.to === "#" ? "a" : T(A) : "a"), m({
26
+ key: 0,
27
+ ref_for: !0
28
+ }, {
29
+ to: e.to && e.to !== "#",
30
+ href: e.to && e.to === "#"
31
+ }, {
32
+ to: e.to,
33
+ class: "inline-flex items-center gap-2"
34
+ }), {
35
+ default: O(() => [e.icon ? (v(), o(C(e.icon), {
36
+ key: 0,
37
+ size: 16
38
+ })) : s("", !0), u(" " + w(e.label), 1)]),
39
+ _: 2
40
+ }, 1040, ["to"]))]))), 128))])], 2));
41
+ }
42
+ }), P = e("dock"), F = e("dockItem"), I = {
43
+ xs: "dock-xs",
44
+ sm: "dock-sm",
45
+ md: "dock-md",
46
+ lg: "dock-lg",
47
+ xl: "dock-xl"
48
+ }, L = /* @__PURE__ */ d({
49
+ __name: "Dock",
50
+ props: { size: {} },
51
+ setup(e) {
52
+ let r = t(P, e, { size: "md" });
53
+ return (e, t) => (v(), c("div", { class: h(["dock", T(n)(I, T(r).size)]) }, [x(e.$slots, "default")], 2));
54
+ }
55
+ }), R = {
56
+ key: 0,
57
+ class: "dock-label"
58
+ }, z = /* @__PURE__ */ d({
59
+ __name: "DockItem",
60
+ props: {
61
+ icon: {},
62
+ label: {},
63
+ to: {}
64
+ },
65
+ setup(e) {
66
+ let n = e, r = t(F, n, {}), i = a(() => n.to ? n.to === "#" ? "a" : A : "button"), l = a(() => i.value === "a" ? { href: n.to } : i.value === "button" ? {} : { to: n.to }), u = a(() => !n.to || n.to === "#" ? !1 : j({ to: n.to }).isActive.value);
67
+ return (e, t) => {
68
+ let n = S("binf");
69
+ return k((v(), o(C(i.value), { class: h(u.value && "dock-active") }, {
70
+ default: O(() => [(v(), o(C(T(r).icon), { size: 20 })), T(r).label ? (v(), c("span", R, w(T(r).label), 1)) : s("", !0)]),
71
+ _: 1
72
+ }, 8, ["class"])), [[n, l.value]]);
73
+ };
74
+ }
75
+ }), B = e("link"), V = {
76
+ neutral: "link-neutral",
77
+ primary: "link-primary",
78
+ secondary: "link-secondary",
79
+ accent: "link-accent",
80
+ info: "link-info",
81
+ success: "link-success",
82
+ warning: "link-warning",
83
+ error: "link-error"
84
+ }, H = /* @__PURE__ */ d({
85
+ __name: "Link",
86
+ props: {
87
+ to: {},
88
+ color: {},
89
+ hover: { type: Boolean }
90
+ },
91
+ setup(e) {
92
+ let r = e, i = t(B, r, { hover: !1 }), s = a(() => r.to ? r.to === "#" ? "a" : A : "a"), c = a(() => s.value === "a" ? { href: r.to } : { to: r.to });
93
+ return (e, t) => (v(), o(C(s.value), m(c.value, { class: ["link", [T(n)(V, T(i).color), T(i).hover && "link-hover"]] }), {
94
+ default: O(() => [x(e.$slots, "default")]),
95
+ _: 3
96
+ }, 16, ["class"]));
97
+ }
98
+ }), U = e("menu"), W = e("menuItem"), G = {
99
+ xs: "menu-xs",
100
+ sm: "menu-sm",
101
+ md: "menu-md",
102
+ lg: "menu-lg",
103
+ xl: "menu-xl"
104
+ }, K = {
105
+ vertical: "menu-vertical",
106
+ horizontal: "menu-horizontal"
107
+ }, q = /* @__PURE__ */ d({
108
+ __name: "Menu",
109
+ props: {
110
+ size: {},
111
+ direction: {}
112
+ },
113
+ setup(e) {
114
+ let r = t(U, e, {
115
+ size: "md",
116
+ direction: "vertical"
117
+ });
118
+ return (e, t) => (v(), c("ul", { class: h(["menu", [T(n)(G, T(r).size), T(n)(K, T(r).direction)]]) }, [x(e.$slots, "default")], 2));
119
+ }
120
+ }), J = {
121
+ key: 0,
122
+ class: "menu-title inline-flex items-center gap-2"
123
+ }, Y = { class: "menu-title inline-flex items-center gap-2" }, X = { key: 0 }, Z = /* @__PURE__ */ d({
124
+ __name: "MenuItem",
125
+ props: {
126
+ icon: {},
127
+ to: {},
128
+ title: { type: Boolean },
129
+ disabled: { type: Boolean },
130
+ active: { type: Boolean },
131
+ collapsible: { type: Boolean }
132
+ },
133
+ emits: ["click"],
134
+ setup(e, { emit: n }) {
135
+ let r = e, u = n, d = t(W, r, {}), f = D(), p = a(() => !!f.submenu), g = a(() => r.title), _ = a(() => r.to ? r.to === "#" ? "a" : A : "a"), y = a(() => _.value === "a" ? { href: r.to } : { to: r.to }), b = a(() => {
136
+ if (r.active) return !0;
137
+ if (!r.to || r.to === "#") return !1;
138
+ let { isActive: e } = j({ to: a(() => r.to) });
139
+ return e.value;
140
+ });
141
+ return (e, t) => g.value && !p.value ? (v(), c("li", J, [r.icon ? (v(), o(C(r.icon), {
142
+ key: 0,
143
+ size: 14
144
+ })) : s("", !0), x(e.$slots, "default")])) : g.value && p.value ? (v(), c(i, { key: 1 }, [l("h2", Y, [r.icon ? (v(), o(C(r.icon), {
145
+ key: 0,
146
+ size: 14
147
+ })) : s("", !0), x(e.$slots, "default")]), l("ul", null, [x(e.$slots, "submenu")])], 64)) : (v(), c("li", {
148
+ key: 2,
149
+ class: h({ "menu-disabled": T(d).disabled })
150
+ }, [p.value && T(d).collapsible ? (v(), c("details", X, [l("summary", null, [
151
+ T(d).icon ? (v(), o(C(T(d).icon), {
152
+ key: 0,
153
+ size: 16
154
+ })) : s("", !0),
155
+ x(e.$slots, "default"),
156
+ x(e.$slots, "badge")
157
+ ]), l("ul", null, [x(e.$slots, "submenu")])])) : p.value ? (v(), c(i, { key: 1 }, [(v(), o(C(_.value), m(y.value, {
158
+ class: b.value && "menu-active",
159
+ onClick: t[0] ||= (e) => u("click", e)
160
+ }), {
161
+ default: O(() => [
162
+ T(d).icon ? (v(), o(C(T(d).icon), {
163
+ key: 0,
164
+ size: 16
165
+ })) : s("", !0),
166
+ x(e.$slots, "default"),
167
+ x(e.$slots, "badge")
168
+ ]),
169
+ _: 3
170
+ }, 16, ["class"])), l("ul", null, [x(e.$slots, "submenu")])], 64)) : (v(), o(C(_.value), m({ key: 2 }, y.value, {
171
+ class: b.value && "menu-active",
172
+ onClick: t[1] ||= (e) => u("click", e)
173
+ }), {
174
+ default: O(() => [
175
+ T(d).icon ? (v(), o(C(T(d).icon), {
176
+ key: 0,
177
+ size: 16
178
+ })) : s("", !0),
179
+ x(e.$slots, "default"),
180
+ x(e.$slots, "badge")
181
+ ]),
182
+ _: 3
183
+ }, 16, ["class"]))], 2));
184
+ }
185
+ }), ne = {}, re = { class: "navbar" };
186
+ function ie(e, t) {
187
+ return v(), c("div", re, [x(e.$slots, "default")]);
188
+ }
189
+ var ae = /*#__PURE__*/ r(ne, [["render", ie]]), oe = e("tabs"), se = e("tab"), Q = Symbol("tabs"), ce = /* @__PURE__ */ d({
190
+ __name: "Tab",
191
+ props: {
192
+ value: {},
193
+ title: {},
194
+ active: { type: Boolean },
195
+ disabled: { type: Boolean },
196
+ icon: {},
197
+ to: {}
198
+ },
199
+ setup(e, { expose: n }) {
200
+ let r = e, l = t(se, r, {}), d = f(Q, null), p = D();
201
+ d && r.value !== void 0 && d.register(r.value, !!r.active);
202
+ let h = a(() => r.to ? r.to.startsWith("#") ? "a" : A : "button"), _ = a(() => h.value === "button" ? {} : h.value === "a" ? { href: r.to } : { to: r.to }), y = a(() => {
203
+ if (!r.to || r.to === "#") return !1;
204
+ let { isExactActive: e } = j({ to: a(() => r.to) });
205
+ return e.value;
206
+ }), b = a(() => d && r.value !== void 0 ? d.activeValue.value === r.value : r.to ? y.value : l.value.active), S = a(() => !!p.default);
207
+ function E() {
208
+ !r.to && d && r.value !== void 0 && d.setActive(r.value);
209
+ }
210
+ let k = ee("tab-el");
211
+ return n({
212
+ $el: k,
213
+ focus: () => k.value?.focus()
214
+ }), (e, t) => (v(), c(i, null, [(v(), o(C(h.value), m({ ref: "tab-el" }, _.value, {
215
+ role: "tab",
216
+ class: ["tab", {
217
+ "tab-active": b.value,
218
+ "tab-disabled": T(l).disabled
219
+ }],
220
+ disabled: !r.to && T(l).disabled,
221
+ onClick: E
222
+ }), {
223
+ default: O(() => [x(e.$slots, "icon", {}, () => [T(l).icon ? (v(), o(C(T(l).icon), {
224
+ key: 0,
225
+ size: 16,
226
+ class: "me-2"
227
+ })) : s("", !0)]), x(e.$slots, "title", {}, () => [u(w(T(l).title), 1)])]),
228
+ _: 3
229
+ }, 16, ["class", "disabled"])), S.value ? (v(), c("div", {
230
+ key: 0,
231
+ class: "tab-content bg-base-100 border-base-300 p-6",
232
+ style: g({ display: b.value ? "block" : "none" })
233
+ }, [x(e.$slots, "default")], 4)) : s("", !0)], 64));
234
+ }
235
+ }), le = {
236
+ box: "tabs-box",
237
+ border: "tabs-border",
238
+ lift: "tabs-lift"
239
+ }, $ = {
240
+ xs: "tabs-xs",
241
+ sm: "tabs-sm",
242
+ md: "tabs-md",
243
+ lg: "tabs-lg",
244
+ xl: "tabs-xl"
245
+ }, ue = {
246
+ top: "tabs-top",
247
+ bottom: "tabs-bottom"
248
+ }, de = /* @__PURE__ */ d({
249
+ __name: "Tabs",
250
+ props: /*@__PURE__*/ p({
251
+ variant: {},
252
+ size: {},
253
+ placement: {}
254
+ }, {
255
+ modelValue: {},
256
+ modelModifiers: {}
257
+ }),
258
+ emits: ["update:modelValue"],
259
+ setup(e) {
260
+ let r = E(e, "modelValue"), i = t(oe, e, {
261
+ size: "md",
262
+ placement: "top"
263
+ }), a = [];
264
+ return y(Q, {
265
+ activeValue: r,
266
+ setActive: (e) => {
267
+ r.value = e;
268
+ },
269
+ register: (e, t) => {
270
+ a.push({
271
+ value: e,
272
+ initiallyActive: t
273
+ });
274
+ }
275
+ }), _(() => {
276
+ if (r.value !== void 0) return;
277
+ let e = a.find((e) => e.initiallyActive);
278
+ if (e) {
279
+ r.value = e.value;
280
+ return;
281
+ }
282
+ a.length > 0 && (r.value = a[0].value);
283
+ }), (e, t) => (v(), c("div", {
284
+ role: "tablist",
285
+ class: h(["tabs", [
286
+ T(n)(le, T(i).variant),
287
+ T(n)($, T(i).size),
288
+ T(n)(ue, T(i).placement)
289
+ ]])
290
+ }, [x(e.$slots, "default")], 2));
291
+ }
292
+ });
293
+ //#endregion
294
+ export { q as a, L as c, Z as i, N as l, ce as n, H as o, ae as r, z as s, de as t };
295
+
296
+ //# sourceMappingURL=public-H9TCdoJr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-H9TCdoJr.js","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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"}
@@ -0,0 +1,12 @@
1
+ import { PoppyUi } from './plugin-vue';
2
+ export default PoppyUi;
3
+ export * from './components/actions/public.types';
4
+ export * from './components/data/public.types';
5
+ export * from './components/display/public.types';
6
+ export * from './components/feedback/public.types';
7
+ export * from './components/layout/public.types';
8
+ export * from './components/media/public.types';
9
+ export * from './components/navigation/public.types';
10
+ export * from './config/public.types';
11
+ export type { PluginOptions } from './plugin-vue';
12
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,eAAe,OAAO,CAAA;AACtB,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,uBAAuB,CAAA;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}