@poppy-ui/vue 0.5.6 → 0.5.7-beta.0

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 (795) 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-BEnfZApB.cjs +2 -0
  8. package/dist/Toast-BEnfZApB.cjs.map +1 -0
  9. package/dist/Toast-BWTVE5_U.js +62 -0
  10. package/dist/Toast-BWTVE5_U.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 +18 -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 +59 -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 +61 -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 +39 -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 +32 -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 +319 -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 +19 -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 +41 -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 +20 -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 +35 -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/form/Form.d.ts +37 -0
  84. package/dist/components/data/form/Form.d.ts.map +1 -0
  85. package/dist/components/data/form/form.context.d.ts +53 -0
  86. package/dist/components/data/form/form.context.d.ts.map +1 -0
  87. package/dist/components/data/form/form.props.d.ts +28 -0
  88. package/dist/components/data/form/form.props.d.ts.map +1 -0
  89. package/dist/components/data/form/form.types.d.ts +25 -0
  90. package/dist/components/data/form/form.types.d.ts.map +1 -0
  91. package/dist/components/data/form-field/FormField.d.ts +26 -0
  92. package/dist/components/data/form-field/FormField.d.ts.map +1 -0
  93. package/dist/components/data/form-field/form-field.context.d.ts +37 -0
  94. package/dist/components/data/form-field/form-field.context.d.ts.map +1 -0
  95. package/dist/components/data/form-field/form-field.props.d.ts +30 -0
  96. package/dist/components/data/form-field/form-field.props.d.ts.map +1 -0
  97. package/dist/components/data/form-field/form-field.types.d.ts +2 -0
  98. package/dist/components/data/form-field/form-field.types.d.ts.map +1 -0
  99. package/dist/components/data/input/Input.d.ts +44 -0
  100. package/dist/components/data/input/Input.d.ts.map +1 -0
  101. package/dist/components/data/input/input.context.d.ts +2 -0
  102. package/dist/components/data/input/input.context.d.ts.map +1 -0
  103. package/dist/components/data/input/input.props.d.ts +73 -0
  104. package/dist/components/data/input/input.props.d.ts.map +1 -0
  105. package/dist/components/data/input/input.types.d.ts +6 -0
  106. package/dist/components/data/input/input.types.d.ts.map +1 -0
  107. package/dist/components/data/public.d.ts +11 -0
  108. package/dist/components/data/public.d.ts.map +1 -0
  109. package/dist/components/data/public.es.js +1355 -0
  110. package/dist/components/data/public.es.js.map +1 -0
  111. package/dist/components/data/public.types.d.ts +21 -0
  112. package/dist/components/data/public.types.d.ts.map +1 -0
  113. package/dist/components/data/public.umd.js +2 -0
  114. package/dist/components/data/public.umd.js.map +1 -0
  115. package/dist/components/data/radio/Radio.d.ts +20 -0
  116. package/dist/components/data/radio/Radio.d.ts.map +1 -0
  117. package/dist/components/data/radio/radio.context.d.ts +2 -0
  118. package/dist/components/data/radio/radio.context.d.ts.map +1 -0
  119. package/dist/components/data/radio/radio.props.d.ts +41 -0
  120. package/dist/components/data/radio/radio.props.d.ts.map +1 -0
  121. package/dist/components/data/radio/radio.types.d.ts +4 -0
  122. package/dist/components/data/radio/radio.types.d.ts.map +1 -0
  123. package/dist/components/data/rating/Rating.d.ts +23 -0
  124. package/dist/components/data/rating/Rating.d.ts.map +1 -0
  125. package/dist/components/data/rating/rating.context.d.ts +2 -0
  126. package/dist/components/data/rating/rating.context.d.ts.map +1 -0
  127. package/dist/components/data/rating/rating.props.d.ts +45 -0
  128. package/dist/components/data/rating/rating.props.d.ts.map +1 -0
  129. package/dist/components/data/rating/rating.types.d.ts +6 -0
  130. package/dist/components/data/rating/rating.types.d.ts.map +1 -0
  131. package/dist/components/data/select/Select.d.ts +48 -0
  132. package/dist/components/data/select/Select.d.ts.map +1 -0
  133. package/dist/components/data/select/select.context.d.ts +2 -0
  134. package/dist/components/data/select/select.context.d.ts.map +1 -0
  135. package/dist/components/data/select/select.props.d.ts +60 -0
  136. package/dist/components/data/select/select.props.d.ts.map +1 -0
  137. package/dist/components/data/select/select.types.d.ts +11 -0
  138. package/dist/components/data/select/select.types.d.ts.map +1 -0
  139. package/dist/components/data/slider/Slider.d.ts +26 -0
  140. package/dist/components/data/slider/Slider.d.ts.map +1 -0
  141. package/dist/components/data/slider/slider.context.d.ts +2 -0
  142. package/dist/components/data/slider/slider.context.d.ts.map +1 -0
  143. package/dist/components/data/slider/slider.props.d.ts +71 -0
  144. package/dist/components/data/slider/slider.props.d.ts.map +1 -0
  145. package/dist/components/data/slider/slider.types.d.ts +7 -0
  146. package/dist/components/data/slider/slider.types.d.ts.map +1 -0
  147. package/dist/components/data/textarea/Textarea.d.ts +44 -0
  148. package/dist/components/data/textarea/Textarea.d.ts.map +1 -0
  149. package/dist/components/data/textarea/textarea.context.d.ts +2 -0
  150. package/dist/components/data/textarea/textarea.context.d.ts.map +1 -0
  151. package/dist/components/data/textarea/textarea.props.d.ts +66 -0
  152. package/dist/components/data/textarea/textarea.props.d.ts.map +1 -0
  153. package/dist/components/data/textarea/textarea.types.d.ts +5 -0
  154. package/dist/components/data/textarea/textarea.types.d.ts.map +1 -0
  155. package/dist/components/data/toggle/Toggle.d.ts +28 -0
  156. package/dist/components/data/toggle/Toggle.d.ts.map +1 -0
  157. package/dist/components/data/toggle/toggle.context.d.ts +2 -0
  158. package/dist/components/data/toggle/toggle.context.d.ts.map +1 -0
  159. package/dist/components/data/toggle/toggle.props.d.ts +28 -0
  160. package/dist/components/data/toggle/toggle.props.d.ts.map +1 -0
  161. package/dist/components/data/toggle/toggle.types.d.ts +4 -0
  162. package/dist/components/data/toggle/toggle.types.d.ts.map +1 -0
  163. package/dist/components/display/accordion/Accordion.d.ts +42 -0
  164. package/dist/components/display/accordion/Accordion.d.ts.map +1 -0
  165. package/dist/components/display/accordion/AccordionItem.d.ts +35 -0
  166. package/dist/components/display/accordion/AccordionItem.d.ts.map +1 -0
  167. package/dist/components/display/accordion/accordion-item.context.d.ts +2 -0
  168. package/dist/components/display/accordion/accordion-item.context.d.ts.map +1 -0
  169. package/dist/components/display/accordion/accordion-item.props.d.ts +19 -0
  170. package/dist/components/display/accordion/accordion-item.props.d.ts.map +1 -0
  171. package/dist/components/display/accordion/accordion-item.types.d.ts +2 -0
  172. package/dist/components/display/accordion/accordion-item.types.d.ts.map +1 -0
  173. package/dist/components/display/accordion/accordion.context.d.ts +9 -0
  174. package/dist/components/display/accordion/accordion.context.d.ts.map +1 -0
  175. package/dist/components/display/accordion/accordion.props.d.ts +15 -0
  176. package/dist/components/display/accordion/accordion.props.d.ts.map +1 -0
  177. package/dist/components/display/avatar/Avatar.d.ts +14 -0
  178. package/dist/components/display/avatar/Avatar.d.ts.map +1 -0
  179. package/dist/components/display/avatar/avatar.context.d.ts +2 -0
  180. package/dist/components/display/avatar/avatar.context.d.ts.map +1 -0
  181. package/dist/components/display/avatar/avatar.props.d.ts +46 -0
  182. package/dist/components/display/avatar/avatar.props.d.ts.map +1 -0
  183. package/dist/components/display/avatar/avatar.types.d.ts +5 -0
  184. package/dist/components/display/avatar/avatar.types.d.ts.map +1 -0
  185. package/dist/components/display/badge/Badge.d.ts +12 -0
  186. package/dist/components/display/badge/Badge.d.ts.map +1 -0
  187. package/dist/components/display/badge/badge.context.d.ts +2 -0
  188. package/dist/components/display/badge/badge.context.d.ts.map +1 -0
  189. package/dist/components/display/badge/badge.props.d.ts +20 -0
  190. package/dist/components/display/badge/badge.props.d.ts.map +1 -0
  191. package/dist/components/display/badge/badge.types.d.ts +5 -0
  192. package/dist/components/display/badge/badge.types.d.ts.map +1 -0
  193. package/dist/components/display/card/Card.d.ts +12 -0
  194. package/dist/components/display/card/Card.d.ts.map +1 -0
  195. package/dist/components/display/card/CardActions.d.ts +12 -0
  196. package/dist/components/display/card/CardActions.d.ts.map +1 -0
  197. package/dist/components/display/card/CardBody.d.ts +14 -0
  198. package/dist/components/display/card/CardBody.d.ts.map +1 -0
  199. package/dist/components/display/card/CardTitle.d.ts +14 -0
  200. package/dist/components/display/card/CardTitle.d.ts.map +1 -0
  201. package/dist/components/display/card/card-actions.context.d.ts +2 -0
  202. package/dist/components/display/card/card-actions.context.d.ts.map +1 -0
  203. package/dist/components/display/card/card-actions.props.d.ts +15 -0
  204. package/dist/components/display/card/card-actions.props.d.ts.map +1 -0
  205. package/dist/components/display/card/card-actions.types.d.ts +2 -0
  206. package/dist/components/display/card/card-actions.types.d.ts.map +1 -0
  207. package/dist/components/display/card/card.context.d.ts +2 -0
  208. package/dist/components/display/card/card.context.d.ts.map +1 -0
  209. package/dist/components/display/card/card.props.d.ts +31 -0
  210. package/dist/components/display/card/card.props.d.ts.map +1 -0
  211. package/dist/components/display/card/card.types.d.ts +4 -0
  212. package/dist/components/display/card/card.types.d.ts.map +1 -0
  213. package/dist/components/display/carousel/Carousel.d.ts +16 -0
  214. package/dist/components/display/carousel/Carousel.d.ts.map +1 -0
  215. package/dist/components/display/carousel/carousel.context.d.ts +2 -0
  216. package/dist/components/display/carousel/carousel.context.d.ts.map +1 -0
  217. package/dist/components/display/carousel/carousel.props.d.ts +53 -0
  218. package/dist/components/display/carousel/carousel.props.d.ts.map +1 -0
  219. package/dist/components/display/carousel/carousel.types.d.ts +3 -0
  220. package/dist/components/display/carousel/carousel.types.d.ts.map +1 -0
  221. package/dist/components/display/chat/Chat.d.ts +20 -0
  222. package/dist/components/display/chat/Chat.d.ts.map +1 -0
  223. package/dist/components/display/chat/chat.context.d.ts +2 -0
  224. package/dist/components/display/chat/chat.context.d.ts.map +1 -0
  225. package/dist/components/display/chat/chat.props.d.ts +18 -0
  226. package/dist/components/display/chat/chat.props.d.ts.map +1 -0
  227. package/dist/components/display/chat/chat.types.d.ts +3 -0
  228. package/dist/components/display/chat/chat.types.d.ts.map +1 -0
  229. package/dist/components/display/countdown/Countdown.d.ts +38 -0
  230. package/dist/components/display/countdown/Countdown.d.ts.map +1 -0
  231. package/dist/components/display/countdown/countdown.props.d.ts +23 -0
  232. package/dist/components/display/countdown/countdown.props.d.ts.map +1 -0
  233. package/dist/components/display/countdown/countdown.types.d.ts +23 -0
  234. package/dist/components/display/countdown/countdown.types.d.ts.map +1 -0
  235. package/dist/components/display/diff/Diff.d.ts +16 -0
  236. package/dist/components/display/diff/Diff.d.ts.map +1 -0
  237. package/dist/components/display/hover-3d/Hover3d.d.ts +12 -0
  238. package/dist/components/display/hover-3d/Hover3d.d.ts.map +1 -0
  239. package/dist/components/display/hover-3d/hover-3d.props.d.ts +9 -0
  240. package/dist/components/display/hover-3d/hover-3d.props.d.ts.map +1 -0
  241. package/dist/components/display/hover-gallery/HoverGallery.d.ts +14 -0
  242. package/dist/components/display/hover-gallery/HoverGallery.d.ts.map +1 -0
  243. package/dist/components/display/kbd/Kbd.d.ts +12 -0
  244. package/dist/components/display/kbd/Kbd.d.ts.map +1 -0
  245. package/dist/components/display/kbd/kbd.context.d.ts +2 -0
  246. package/dist/components/display/kbd/kbd.context.d.ts.map +1 -0
  247. package/dist/components/display/kbd/kbd.props.d.ts +12 -0
  248. package/dist/components/display/kbd/kbd.props.d.ts.map +1 -0
  249. package/dist/components/display/kbd/kbd.types.d.ts +3 -0
  250. package/dist/components/display/kbd/kbd.types.d.ts.map +1 -0
  251. package/dist/components/display/list/List.d.ts +17 -0
  252. package/dist/components/display/list/List.d.ts.map +1 -0
  253. package/dist/components/display/list/ListItem.d.ts +22 -0
  254. package/dist/components/display/list/ListItem.d.ts.map +1 -0
  255. package/dist/components/display/list/list-item.props.d.ts +17 -0
  256. package/dist/components/display/list/list-item.props.d.ts.map +1 -0
  257. package/dist/components/display/list/list.props.d.ts +8 -0
  258. package/dist/components/display/list/list.props.d.ts.map +1 -0
  259. package/dist/components/display/public.d.ts +19 -0
  260. package/dist/components/display/public.d.ts.map +1 -0
  261. package/dist/components/display/public.es.js +2 -0
  262. package/dist/components/display/public.types.d.ts +24 -0
  263. package/dist/components/display/public.types.d.ts.map +1 -0
  264. package/dist/components/display/public.umd.js +1 -0
  265. package/dist/components/display/status/Status.d.ts +5 -0
  266. package/dist/components/display/status/Status.d.ts.map +1 -0
  267. package/dist/components/display/status/status.context.d.ts +2 -0
  268. package/dist/components/display/status/status.context.d.ts.map +1 -0
  269. package/dist/components/display/status/status.props.d.ts +27 -0
  270. package/dist/components/display/status/status.props.d.ts.map +1 -0
  271. package/dist/components/display/status/status.types.d.ts +5 -0
  272. package/dist/components/display/status/status.types.d.ts.map +1 -0
  273. package/dist/components/feedback/alert/Alert.d.ts +14 -0
  274. package/dist/components/feedback/alert/Alert.d.ts.map +1 -0
  275. package/dist/components/feedback/alert/alert.context.d.ts +2 -0
  276. package/dist/components/feedback/alert/alert.context.d.ts.map +1 -0
  277. package/dist/components/feedback/alert/alert.props.d.ts +27 -0
  278. package/dist/components/feedback/alert/alert.props.d.ts.map +1 -0
  279. package/dist/components/feedback/alert/alert.types.d.ts +4 -0
  280. package/dist/components/feedback/alert/alert.types.d.ts.map +1 -0
  281. package/dist/components/feedback/loading/Loading.d.ts +5 -0
  282. package/dist/components/feedback/loading/Loading.d.ts.map +1 -0
  283. package/dist/components/feedback/loading/loading.context.d.ts +2 -0
  284. package/dist/components/feedback/loading/loading.context.d.ts.map +1 -0
  285. package/dist/components/feedback/loading/loading.props.d.ts +23 -0
  286. package/dist/components/feedback/loading/loading.props.d.ts.map +1 -0
  287. package/dist/components/feedback/loading/loading.types.d.ts +5 -0
  288. package/dist/components/feedback/loading/loading.types.d.ts.map +1 -0
  289. package/dist/components/feedback/progress/Progress.d.ts +5 -0
  290. package/dist/components/feedback/progress/Progress.d.ts.map +1 -0
  291. package/dist/components/feedback/progress/progress.context.d.ts +2 -0
  292. package/dist/components/feedback/progress/progress.context.d.ts.map +1 -0
  293. package/dist/components/feedback/progress/progress.props.d.ts +29 -0
  294. package/dist/components/feedback/progress/progress.props.d.ts.map +1 -0
  295. package/dist/components/feedback/progress/progress.types.d.ts +2 -0
  296. package/dist/components/feedback/progress/progress.types.d.ts.map +1 -0
  297. package/dist/components/feedback/public.d.ts +6 -0
  298. package/dist/components/feedback/public.d.ts.map +1 -0
  299. package/dist/components/feedback/public.es.js +129 -0
  300. package/dist/components/feedback/public.es.js.map +1 -0
  301. package/dist/components/feedback/public.types.d.ts +13 -0
  302. package/dist/components/feedback/public.types.d.ts.map +1 -0
  303. package/dist/components/feedback/public.umd.js +2 -0
  304. package/dist/components/feedback/public.umd.js.map +1 -0
  305. package/dist/components/feedback/radial-progress/radial-progress.context.d.ts +2 -0
  306. package/dist/components/feedback/radial-progress/radial-progress.context.d.ts.map +1 -0
  307. package/dist/components/feedback/radial-progress/radial-progress.props.d.ts +32 -0
  308. package/dist/components/feedback/radial-progress/radial-progress.props.d.ts.map +1 -0
  309. package/dist/components/feedback/radial-progress/radial-progress.types.d.ts +2 -0
  310. package/dist/components/feedback/radial-progress/radial-progress.types.d.ts.map +1 -0
  311. package/dist/components/feedback/toast/Toast.d.ts +12 -0
  312. package/dist/components/feedback/toast/Toast.d.ts.map +1 -0
  313. package/dist/components/feedback/toast/toast.context.d.ts +9 -0
  314. package/dist/components/feedback/toast/toast.context.d.ts.map +1 -0
  315. package/dist/components/feedback/toast/toast.props.d.ts +31 -0
  316. package/dist/components/feedback/toast/toast.props.d.ts.map +1 -0
  317. package/dist/components/feedback/toast/toast.types.d.ts +5 -0
  318. package/dist/components/feedback/toast/toast.types.d.ts.map +1 -0
  319. package/dist/components/feedback/tooltip/Tooltip.d.ts +14 -0
  320. package/dist/components/feedback/tooltip/Tooltip.d.ts.map +1 -0
  321. package/dist/components/feedback/tooltip/tooltip.context.d.ts +2 -0
  322. package/dist/components/feedback/tooltip/tooltip.context.d.ts.map +1 -0
  323. package/dist/components/feedback/tooltip/tooltip.props.d.ts +39 -0
  324. package/dist/components/feedback/tooltip/tooltip.props.d.ts.map +1 -0
  325. package/dist/components/feedback/tooltip/tooltip.types.d.ts +3 -0
  326. package/dist/components/feedback/tooltip/tooltip.types.d.ts.map +1 -0
  327. package/dist/components/layout/divider/Divider.d.ts +12 -0
  328. package/dist/components/layout/divider/Divider.d.ts.map +1 -0
  329. package/dist/components/layout/divider/divider.context.d.ts +2 -0
  330. package/dist/components/layout/divider/divider.context.d.ts.map +1 -0
  331. package/dist/components/layout/divider/divider.props.d.ts +26 -0
  332. package/dist/components/layout/divider/divider.props.d.ts.map +1 -0
  333. package/dist/components/layout/divider/divider.types.d.ts +4 -0
  334. package/dist/components/layout/divider/divider.types.d.ts.map +1 -0
  335. package/dist/components/layout/drawer/Drawer.d.ts +39 -0
  336. package/dist/components/layout/drawer/Drawer.d.ts.map +1 -0
  337. package/dist/components/layout/drawer/drawer.context.d.ts +2 -0
  338. package/dist/components/layout/drawer/drawer.context.d.ts.map +1 -0
  339. package/dist/components/layout/drawer/drawer.props.d.ts +28 -0
  340. package/dist/components/layout/drawer/drawer.props.d.ts.map +1 -0
  341. package/dist/components/layout/drawer/drawer.types.d.ts +6 -0
  342. package/dist/components/layout/drawer/drawer.types.d.ts.map +1 -0
  343. package/dist/components/layout/indicator/Indicator.d.ts +14 -0
  344. package/dist/components/layout/indicator/Indicator.d.ts.map +1 -0
  345. package/dist/components/layout/indicator/indicator.context.d.ts +2 -0
  346. package/dist/components/layout/indicator/indicator.context.d.ts.map +1 -0
  347. package/dist/components/layout/indicator/indicator.props.d.ts +29 -0
  348. package/dist/components/layout/indicator/indicator.props.d.ts.map +1 -0
  349. package/dist/components/layout/indicator/indicator.types.d.ts +3 -0
  350. package/dist/components/layout/indicator/indicator.types.d.ts.map +1 -0
  351. package/dist/components/layout/join/Join.d.ts +12 -0
  352. package/dist/components/layout/join/Join.d.ts.map +1 -0
  353. package/dist/components/layout/join/join.context.d.ts +2 -0
  354. package/dist/components/layout/join/join.context.d.ts.map +1 -0
  355. package/dist/components/layout/join/join.props.d.ts +14 -0
  356. package/dist/components/layout/join/join.props.d.ts.map +1 -0
  357. package/dist/components/layout/join/join.types.d.ts +2 -0
  358. package/dist/components/layout/join/join.types.d.ts.map +1 -0
  359. package/dist/components/layout/mask/Mask.d.ts +12 -0
  360. package/dist/components/layout/mask/Mask.d.ts.map +1 -0
  361. package/dist/components/layout/mask/mask.context.d.ts +2 -0
  362. package/dist/components/layout/mask/mask.context.d.ts.map +1 -0
  363. package/dist/components/layout/mask/mask.props.d.ts +38 -0
  364. package/dist/components/layout/mask/mask.props.d.ts.map +1 -0
  365. package/dist/components/layout/mask/mask.types.d.ts +3 -0
  366. package/dist/components/layout/mask/mask.types.d.ts.map +1 -0
  367. package/dist/components/layout/public.d.ts +7 -0
  368. package/dist/components/layout/public.d.ts.map +1 -0
  369. package/dist/components/layout/public.es.js +207 -0
  370. package/dist/components/layout/public.es.js.map +1 -0
  371. package/dist/components/layout/public.types.d.ts +13 -0
  372. package/dist/components/layout/public.types.d.ts.map +1 -0
  373. package/dist/components/layout/public.umd.js +2 -0
  374. package/dist/components/layout/public.umd.js.map +1 -0
  375. package/dist/components/layout/stack/Stack.d.ts +12 -0
  376. package/dist/components/layout/stack/Stack.d.ts.map +1 -0
  377. package/dist/components/layout/stack/stack.context.d.ts +2 -0
  378. package/dist/components/layout/stack/stack.context.d.ts.map +1 -0
  379. package/dist/components/layout/stack/stack.props.d.ts +12 -0
  380. package/dist/components/layout/stack/stack.props.d.ts.map +1 -0
  381. package/dist/components/layout/stack/stack.types.d.ts +2 -0
  382. package/dist/components/layout/stack/stack.types.d.ts.map +1 -0
  383. package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts +5 -0
  384. package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  385. package/dist/components/navigation/breadcrumbs/breadcrumbs.context.d.ts +2 -0
  386. package/dist/components/navigation/breadcrumbs/breadcrumbs.context.d.ts.map +1 -0
  387. package/dist/components/navigation/breadcrumbs/breadcrumbs.props.d.ts +17 -0
  388. package/dist/components/navigation/breadcrumbs/breadcrumbs.props.d.ts.map +1 -0
  389. package/dist/components/navigation/breadcrumbs/breadcrumbs.types.d.ts +11 -0
  390. package/dist/components/navigation/breadcrumbs/breadcrumbs.types.d.ts.map +1 -0
  391. package/dist/components/navigation/dock/Dock.d.ts +12 -0
  392. package/dist/components/navigation/dock/Dock.d.ts.map +1 -0
  393. package/dist/components/navigation/dock/DockItem.d.ts +5 -0
  394. package/dist/components/navigation/dock/DockItem.d.ts.map +1 -0
  395. package/dist/components/navigation/dock/dock.context.d.ts +3 -0
  396. package/dist/components/navigation/dock/dock.context.d.ts.map +1 -0
  397. package/dist/components/navigation/dock/dock.props.d.ts +30 -0
  398. package/dist/components/navigation/dock/dock.props.d.ts.map +1 -0
  399. package/dist/components/navigation/dock/dock.types.d.ts +3 -0
  400. package/dist/components/navigation/dock/dock.types.d.ts.map +1 -0
  401. package/dist/components/navigation/link/Link.d.ts +12 -0
  402. package/dist/components/navigation/link/Link.d.ts.map +1 -0
  403. package/dist/components/navigation/link/link.context.d.ts +2 -0
  404. package/dist/components/navigation/link/link.context.d.ts.map +1 -0
  405. package/dist/components/navigation/link/link.props.d.ts +22 -0
  406. package/dist/components/navigation/link/link.props.d.ts.map +1 -0
  407. package/dist/components/navigation/link/link.types.d.ts +2 -0
  408. package/dist/components/navigation/link/link.types.d.ts.map +1 -0
  409. package/dist/components/navigation/menu/Menu.d.ts +12 -0
  410. package/dist/components/navigation/menu/Menu.d.ts.map +1 -0
  411. package/dist/components/navigation/menu/menu.context.d.ts +3 -0
  412. package/dist/components/navigation/menu/menu.context.d.ts.map +1 -0
  413. package/dist/components/navigation/menu/menu.props.d.ts +62 -0
  414. package/dist/components/navigation/menu/menu.props.d.ts.map +1 -0
  415. package/dist/components/navigation/menu/menu.types.d.ts +4 -0
  416. package/dist/components/navigation/menu/menu.types.d.ts.map +1 -0
  417. package/dist/components/navigation/public.d.ts +6 -0
  418. package/dist/components/navigation/public.d.ts.map +1 -0
  419. package/dist/components/navigation/public.es.js +128 -0
  420. package/dist/components/navigation/public.es.js.map +1 -0
  421. package/dist/components/navigation/public.types.d.ts +9 -0
  422. package/dist/components/navigation/public.types.d.ts.map +1 -0
  423. package/dist/components/navigation/public.umd.js +2 -0
  424. package/dist/components/navigation/public.umd.js.map +1 -0
  425. package/dist/composables/public.d.ts +4 -0
  426. package/dist/composables/public.d.ts.map +1 -0
  427. package/dist/composables/public.es.js +12 -0
  428. package/dist/composables/public.es.js.map +1 -0
  429. package/dist/composables/public.umd.js +2 -0
  430. package/dist/composables/public.umd.js.map +1 -0
  431. package/dist/composables/use-component-config.d.ts +27 -0
  432. package/dist/composables/use-component-config.d.ts.map +1 -0
  433. package/dist/composables/use-config.d.ts +2 -0
  434. package/dist/composables/use-config.d.ts.map +1 -0
  435. package/dist/composables/use-form-field.d.ts +24 -0
  436. package/dist/composables/use-form-field.d.ts.map +1 -0
  437. package/dist/composables/use-select-counter.d.ts +13 -0
  438. package/dist/composables/use-select-counter.d.ts.map +1 -0
  439. package/dist/composables/use-toast.d.ts +36 -0
  440. package/dist/composables/use-toast.d.ts.map +1 -0
  441. package/dist/favicon.svg +1 -0
  442. package/dist/icons.svg +24 -0
  443. package/dist/is-true-B9ixxcRp.js +8 -0
  444. package/dist/is-true-B9ixxcRp.js.map +1 -0
  445. package/dist/is-true-D7MXJ1b7.cjs +2 -0
  446. package/dist/is-true-D7MXJ1b7.cjs.map +1 -0
  447. package/dist/plugin-vue.d.ts +33 -0
  448. package/dist/plugin-vue.d.ts.map +1 -0
  449. package/dist/public-CsUi4LK8.cjs +2 -0
  450. package/dist/public-CsUi4LK8.cjs.map +1 -0
  451. package/dist/public-D8Z0iHnm.js +563 -0
  452. package/dist/public-D8Z0iHnm.js.map +1 -0
  453. package/dist/public.d.ts +9 -0
  454. package/dist/public.d.ts.map +1 -0
  455. package/dist/public.es.js +15 -0
  456. package/dist/public.es.js.map +1 -0
  457. package/dist/public.umd.js +2 -0
  458. package/dist/public.umd.js.map +1 -0
  459. package/dist/symbol-6E8gXxBa.cjs +2 -0
  460. package/dist/symbol-6E8gXxBa.cjs.map +1 -0
  461. package/dist/symbol-Dy7mXgB5.js +14 -0
  462. package/dist/symbol-Dy7mXgB5.js.map +1 -0
  463. package/dist/symbol.d.ts +6 -0
  464. package/dist/symbol.d.ts.map +1 -0
  465. package/dist/types/config.type.d.ts +85 -0
  466. package/dist/types/config.type.d.ts.map +1 -0
  467. package/dist/types/public.d.ts +4 -0
  468. package/dist/types/public.d.ts.map +1 -0
  469. package/dist/types/public.es.js +0 -0
  470. package/dist/types/public.umd.js +1 -0
  471. package/dist/types/size.type.d.ts +2 -0
  472. package/dist/types/size.type.d.ts.map +1 -0
  473. package/dist/types/utils.type.d.ts +6 -0
  474. package/dist/types/utils.type.d.ts.map +1 -0
  475. package/dist/use-component-config-DX0jSicI.cjs +2 -0
  476. package/dist/use-component-config-DX0jSicI.cjs.map +1 -0
  477. package/dist/use-component-config-DfXvZ0-o.js +20 -0
  478. package/dist/use-component-config-DfXvZ0-o.js.map +1 -0
  479. package/dist/use-form-field-CHsU-LtQ.js +57 -0
  480. package/dist/use-form-field-CHsU-LtQ.js.map +1 -0
  481. package/dist/use-form-field-Zw9_0CVq.cjs +2 -0
  482. package/dist/use-form-field-Zw9_0CVq.cjs.map +1 -0
  483. package/dist/utils/build-class.util.d.ts +4 -0
  484. package/dist/utils/build-class.util.d.ts.map +1 -0
  485. package/dist/utils/get-validation-message.d.ts +22 -0
  486. package/dist/utils/get-validation-message.d.ts.map +1 -0
  487. package/dist/utils/is-true.d.ts +3 -0
  488. package/dist/utils/is-true.d.ts.map +1 -0
  489. package/dist/utils/path.d.ts +20 -0
  490. package/dist/utils/path.d.ts.map +1 -0
  491. package/dist/utils/props.util.d.ts +2 -0
  492. package/dist/utils/props.util.d.ts.map +1 -0
  493. package/dist/utils/public.d.ts +2 -0
  494. package/dist/utils/public.d.ts.map +1 -0
  495. package/dist/vue.css +2 -0
  496. package/package.json +106 -56
  497. package/src/assets/hero.png +0 -0
  498. package/src/assets/vite.svg +1 -0
  499. package/src/assets/vue.svg +1 -0
  500. package/src/components/ClassWrapper.vue +42 -0
  501. package/src/components/actions/button/Button.story.vue +187 -0
  502. package/src/components/actions/button/Button.vue +103 -0
  503. package/src/components/actions/button/button.context.ts +3 -0
  504. package/src/components/actions/button/button.props.ts +67 -0
  505. package/src/components/actions/button/button.types.ts +7 -0
  506. package/src/components/actions/dropdown/Dropdown.story.vue +349 -0
  507. package/src/components/actions/dropdown/Dropdown.vue +219 -0
  508. package/src/components/actions/dropdown/dropdown.context.ts +3 -0
  509. package/src/components/actions/dropdown/dropdown.props.ts +67 -0
  510. package/src/components/actions/dropdown/dropdown.types.ts +4 -0
  511. package/src/components/actions/fab/Fab.story.vue +227 -0
  512. package/src/components/actions/fab/Fab.vue +33 -0
  513. package/src/components/actions/fab/fab.context.ts +3 -0
  514. package/src/components/actions/fab/fab.props.ts +11 -0
  515. package/src/components/actions/fab/fab.types.ts +1 -0
  516. package/src/components/actions/modal/Modal.story.vue +284 -0
  517. package/src/components/actions/modal/Modal.vue +104 -0
  518. package/src/components/actions/modal/modal.context.ts +3 -0
  519. package/src/components/actions/modal/modal.props.ts +34 -0
  520. package/src/components/actions/modal/modal.types.ts +1 -0
  521. package/src/components/actions/public.ts +5 -0
  522. package/src/components/actions/public.types.ts +15 -0
  523. package/src/components/actions/swap/Swap.story.vue +302 -0
  524. package/src/components/actions/swap/Swap.vue +60 -0
  525. package/src/components/actions/swap/swap.context.ts +3 -0
  526. package/src/components/actions/swap/swap.props.ts +20 -0
  527. package/src/components/actions/swap/swap.types.ts +1 -0
  528. package/src/components/app/PoppyApp.vue +48 -0
  529. package/src/components/app/public.ts +1 -0
  530. package/src/components/data/checkbox/Checkbox.story.vue +156 -0
  531. package/src/components/data/checkbox/Checkbox.vue +119 -0
  532. package/src/components/data/checkbox/checkbox.context.ts +3 -0
  533. package/src/components/data/checkbox/checkbox.props.ts +38 -0
  534. package/src/components/data/checkbox/checkbox.types.ts +5 -0
  535. package/src/components/data/form/Form.story.vue +144 -0
  536. package/src/components/data/form/Form.vue +222 -0
  537. package/src/components/data/form/form.context.ts +76 -0
  538. package/src/components/data/form/form.props.ts +30 -0
  539. package/src/components/data/form/form.types.ts +25 -0
  540. package/src/components/data/form-field/FormField.vue +133 -0
  541. package/src/components/data/form-field/form-field.context.ts +51 -0
  542. package/src/components/data/form-field/form-field.props.ts +34 -0
  543. package/src/components/data/form-field/form-field.types.ts +1 -0
  544. package/src/components/data/input/Input.story.vue +219 -0
  545. package/src/components/data/input/Input.vue +196 -0
  546. package/src/components/data/input/input.context.ts +3 -0
  547. package/src/components/data/input/input.props.ts +83 -0
  548. package/src/components/data/input/input.types.ts +10 -0
  549. package/src/components/data/public.ts +10 -0
  550. package/src/components/data/public.types.ts +30 -0
  551. package/src/components/data/radio/Radio.story.vue +158 -0
  552. package/src/components/data/radio/Radio.vue +105 -0
  553. package/src/components/data/radio/radio.context.ts +3 -0
  554. package/src/components/data/radio/radio.props.ts +46 -0
  555. package/src/components/data/radio/radio.types.ts +5 -0
  556. package/src/components/data/rating/Rating.story.vue +150 -0
  557. package/src/components/data/rating/Rating.vue +178 -0
  558. package/src/components/data/rating/rating.context.ts +3 -0
  559. package/src/components/data/rating/rating.props.ts +51 -0
  560. package/src/components/data/rating/rating.types.ts +8 -0
  561. package/src/components/data/select/Select.story.vue +221 -0
  562. package/src/components/data/select/Select.vue +329 -0
  563. package/src/components/data/select/select.context.ts +3 -0
  564. package/src/components/data/select/select.props.ts +65 -0
  565. package/src/components/data/select/select.types.ts +13 -0
  566. package/src/components/data/slider/Slider.story.vue +276 -0
  567. package/src/components/data/slider/Slider.vue +772 -0
  568. package/src/components/data/slider/slider.context.ts +3 -0
  569. package/src/components/data/slider/slider.props.ts +84 -0
  570. package/src/components/data/slider/slider.types.ts +11 -0
  571. package/src/components/data/textarea/Textarea.story.vue +222 -0
  572. package/src/components/data/textarea/Textarea.vue +179 -0
  573. package/src/components/data/textarea/textarea.context.ts +3 -0
  574. package/src/components/data/textarea/textarea.props.ts +75 -0
  575. package/src/components/data/textarea/textarea.types.ts +7 -0
  576. package/src/components/data/toggle/Toggle.story.vue +146 -0
  577. package/src/components/data/toggle/Toggle.vue +115 -0
  578. package/src/components/data/toggle/toggle.context.ts +3 -0
  579. package/src/components/data/toggle/toggle.props.ts +30 -0
  580. package/src/components/data/toggle/toggle.types.ts +5 -0
  581. package/src/components/display/accordion/Accordion.story.vue +482 -0
  582. package/src/components/display/accordion/Accordion.vue +112 -0
  583. package/src/components/display/accordion/AccordionItem.vue +111 -0
  584. package/src/components/display/accordion/accordion-item.context.ts +3 -0
  585. package/src/components/display/accordion/accordion-item.props.ts +20 -0
  586. package/src/components/display/accordion/accordion-item.types.ts +1 -0
  587. package/src/components/display/accordion/accordion.context.ts +10 -0
  588. package/src/components/display/accordion/accordion.props.ts +16 -0
  589. package/src/components/display/avatar/Avatar.story.vue +341 -0
  590. package/src/components/display/avatar/Avatar.vue +58 -0
  591. package/src/components/display/avatar/avatar.context.ts +3 -0
  592. package/src/components/display/avatar/avatar.props.ts +50 -0
  593. package/src/components/display/avatar/avatar.types.ts +5 -0
  594. package/src/components/display/badge/Badge.story.vue +156 -0
  595. package/src/components/display/badge/Badge.vue +51 -0
  596. package/src/components/display/badge/badge.context.ts +3 -0
  597. package/src/components/display/badge/badge.props.ts +22 -0
  598. package/src/components/display/badge/badge.types.ts +5 -0
  599. package/src/components/display/card/Card.story.vue +308 -0
  600. package/src/components/display/card/Card.vue +41 -0
  601. package/src/components/display/card/CardActions.vue +30 -0
  602. package/src/components/display/card/CardBody.vue +5 -0
  603. package/src/components/display/card/CardTitle.vue +5 -0
  604. package/src/components/display/card/card-actions.context.ts +3 -0
  605. package/src/components/display/card/card-actions.props.ts +15 -0
  606. package/src/components/display/card/card-actions.types.ts +1 -0
  607. package/src/components/display/card/card.context.ts +3 -0
  608. package/src/components/display/card/card.props.ts +34 -0
  609. package/src/components/display/card/card.types.ts +4 -0
  610. package/src/components/display/carousel/Carousel.story.vue +216 -0
  611. package/src/components/display/carousel/Carousel.vue +157 -0
  612. package/src/components/display/carousel/carousel.context.ts +3 -0
  613. package/src/components/display/carousel/carousel.props.ts +59 -0
  614. package/src/components/display/carousel/carousel.types.ts +2 -0
  615. package/src/components/display/chat/Chat.story.vue +251 -0
  616. package/src/components/display/chat/Chat.vue +56 -0
  617. package/src/components/display/chat/chat.context.ts +3 -0
  618. package/src/components/display/chat/chat.props.ts +19 -0
  619. package/src/components/display/chat/chat.types.ts +2 -0
  620. package/src/components/display/countdown/Countdown.story.vue +284 -0
  621. package/src/components/display/countdown/Countdown.vue +111 -0
  622. package/src/components/display/countdown/countdown.props.ts +24 -0
  623. package/src/components/display/countdown/countdown.types.ts +24 -0
  624. package/src/components/display/diff/Diff.story.vue +118 -0
  625. package/src/components/display/diff/Diff.vue +13 -0
  626. package/src/components/display/hover-3d/Hover3d.story.vue +154 -0
  627. package/src/components/display/hover-3d/Hover3d.vue +37 -0
  628. package/src/components/display/hover-3d/hover-3d.props.ts +9 -0
  629. package/src/components/display/hover-gallery/HoverGallery.story.vue +121 -0
  630. package/src/components/display/hover-gallery/HoverGallery.vue +5 -0
  631. package/src/components/display/kbd/Kbd.story.vue +214 -0
  632. package/src/components/display/kbd/Kbd.vue +32 -0
  633. package/src/components/display/kbd/kbd.context.ts +3 -0
  634. package/src/components/display/kbd/kbd.props.ts +12 -0
  635. package/src/components/display/kbd/kbd.types.ts +3 -0
  636. package/src/components/display/list/List.story.vue +381 -0
  637. package/src/components/display/list/List.vue +14 -0
  638. package/src/components/display/list/ListItem.vue +53 -0
  639. package/src/components/display/list/list-item.props.ts +19 -0
  640. package/src/components/display/list/list.props.ts +7 -0
  641. package/src/components/display/public.ts +18 -0
  642. package/src/components/display/public.types.ts +34 -0
  643. package/src/components/display/status/Status.story.vue +195 -0
  644. package/src/components/display/status/Status.vue +70 -0
  645. package/src/components/display/status/status.context.ts +3 -0
  646. package/src/components/display/status/status.props.ts +30 -0
  647. package/src/components/display/status/status.types.ts +5 -0
  648. package/src/components/feedback/alert/Alert.story.vue +243 -0
  649. package/src/components/feedback/alert/Alert.vue +46 -0
  650. package/src/components/feedback/alert/alert.context.ts +3 -0
  651. package/src/components/feedback/alert/alert.props.ts +29 -0
  652. package/src/components/feedback/alert/alert.types.ts +3 -0
  653. package/src/components/feedback/loading/Loading.story.vue +156 -0
  654. package/src/components/feedback/loading/Loading.vue +55 -0
  655. package/src/components/feedback/loading/loading.context.ts +3 -0
  656. package/src/components/feedback/loading/loading.props.ts +25 -0
  657. package/src/components/feedback/loading/loading.types.ts +5 -0
  658. package/src/components/feedback/progress/Progress.story.vue +96 -0
  659. package/src/components/feedback/progress/Progress.vue +37 -0
  660. package/src/components/feedback/progress/progress.context.ts +3 -0
  661. package/src/components/feedback/progress/progress.props.ts +32 -0
  662. package/src/components/feedback/progress/progress.types.ts +1 -0
  663. package/src/components/feedback/public.ts +5 -0
  664. package/src/components/feedback/public.types.ts +18 -0
  665. package/src/components/feedback/radial-progress/RadialProgress.story.vue +118 -0
  666. package/src/components/feedback/radial-progress/RadialProgress.vue +46 -0
  667. package/src/components/feedback/radial-progress/radial-progress.context.ts +3 -0
  668. package/src/components/feedback/radial-progress/radial-progress.props.ts +35 -0
  669. package/src/components/feedback/radial-progress/radial-progress.types.ts +9 -0
  670. package/src/components/feedback/toast/Toast.story.vue +356 -0
  671. package/src/components/feedback/toast/Toast.vue +40 -0
  672. package/src/components/feedback/toast/toast.context.ts +12 -0
  673. package/src/components/feedback/toast/toast.props.ts +33 -0
  674. package/src/components/feedback/toast/toast.types.ts +5 -0
  675. package/src/components/feedback/tooltip/Tooltip.story.vue +256 -0
  676. package/src/components/feedback/tooltip/Tooltip.vue +123 -0
  677. package/src/components/feedback/tooltip/tooltip.context.ts +3 -0
  678. package/src/components/feedback/tooltip/tooltip.props.ts +44 -0
  679. package/src/components/feedback/tooltip/tooltip.types.ts +2 -0
  680. package/src/components/layout/divider/Divider.story.vue +217 -0
  681. package/src/components/layout/divider/Divider.vue +48 -0
  682. package/src/components/layout/divider/divider.context.ts +3 -0
  683. package/src/components/layout/divider/divider.props.ts +28 -0
  684. package/src/components/layout/divider/divider.types.ts +3 -0
  685. package/src/components/layout/drawer/Drawer.story.vue +301 -0
  686. package/src/components/layout/drawer/Drawer.vue +91 -0
  687. package/src/components/layout/drawer/drawer.context.ts +3 -0
  688. package/src/components/layout/drawer/drawer.props.ts +31 -0
  689. package/src/components/layout/drawer/drawer.types.ts +6 -0
  690. package/src/components/layout/indicator/Indicator.story.vue +264 -0
  691. package/src/components/layout/indicator/Indicator.vue +44 -0
  692. package/src/components/layout/indicator/indicator.context.ts +3 -0
  693. package/src/components/layout/indicator/indicator.props.ts +31 -0
  694. package/src/components/layout/indicator/indicator.types.ts +2 -0
  695. package/src/components/layout/join/Join.story.vue +147 -0
  696. package/src/components/layout/join/Join.vue +32 -0
  697. package/src/components/layout/join/join.context.ts +3 -0
  698. package/src/components/layout/join/join.props.ts +14 -0
  699. package/src/components/layout/join/join.types.ts +1 -0
  700. package/src/components/layout/mask/Mask.story.vue +181 -0
  701. package/src/components/layout/mask/Mask.vue +50 -0
  702. package/src/components/layout/mask/mask.context.ts +3 -0
  703. package/src/components/layout/mask/mask.props.ts +40 -0
  704. package/src/components/layout/mask/mask.types.ts +18 -0
  705. package/src/components/layout/public.ts +6 -0
  706. package/src/components/layout/public.types.ts +18 -0
  707. package/src/components/layout/stack/Stack.story.vue +170 -0
  708. package/src/components/layout/stack/Stack.vue +29 -0
  709. package/src/components/layout/stack/stack.context.ts +3 -0
  710. package/src/components/layout/stack/stack.props.ts +12 -0
  711. package/src/components/layout/stack/stack.types.ts +1 -0
  712. package/src/components/navigation/breadcrumbs/Breadcrumbs.story.vue +94 -0
  713. package/src/components/navigation/breadcrumbs/Breadcrumbs.vue +53 -0
  714. package/src/components/navigation/breadcrumbs/breadcrumbs.context.ts +3 -0
  715. package/src/components/navigation/breadcrumbs/breadcrumbs.props.ts +18 -0
  716. package/src/components/navigation/breadcrumbs/breadcrumbs.types.ts +13 -0
  717. package/src/components/navigation/dock/Dock.story.vue +109 -0
  718. package/src/components/navigation/dock/Dock.vue +32 -0
  719. package/src/components/navigation/dock/DockItem.vue +50 -0
  720. package/src/components/navigation/dock/dock.context.ts +4 -0
  721. package/src/components/navigation/dock/dock.props.ts +34 -0
  722. package/src/components/navigation/dock/dock.types.ts +3 -0
  723. package/src/components/navigation/link/Link.story.vue +129 -0
  724. package/src/components/navigation/link/Link.vue +58 -0
  725. package/src/components/navigation/link/link.context.ts +3 -0
  726. package/src/components/navigation/link/link.props.ts +24 -0
  727. package/src/components/navigation/link/link.types.ts +1 -0
  728. package/src/components/navigation/menu/Menu.story.vue +284 -0
  729. package/src/components/navigation/menu/Menu.vue +41 -0
  730. package/src/components/navigation/menu/MenuItem.vue +104 -0
  731. package/src/components/navigation/menu/menu.context.ts +4 -0
  732. package/src/components/navigation/menu/menu.props.ts +70 -0
  733. package/src/components/navigation/menu/menu.types.ts +4 -0
  734. package/src/components/navigation/public.ts +5 -0
  735. package/src/components/navigation/public.types.ts +12 -0
  736. package/src/composables/public.ts +3 -0
  737. package/src/composables/use-component-config.ts +44 -0
  738. package/src/composables/use-config.ts +6 -0
  739. package/src/composables/use-form-field.ts +84 -0
  740. package/src/composables/use-select-counter.ts +59 -0
  741. package/src/composables/use-toast.ts +47 -0
  742. package/src/histoire.css +8 -0
  743. package/src/plugin-vue.ts +53 -0
  744. package/src/public.ts +9 -0
  745. package/src/stories/Configuration.story.md +55 -0
  746. package/src/style.css +6 -0
  747. package/src/symbol.ts +18 -0
  748. package/src/types/config.type.ts +96 -0
  749. package/src/types/public.ts +3 -0
  750. package/src/types/size.type.ts +1 -0
  751. package/src/types/utils.type.ts +7 -0
  752. package/src/utils/build-class.util.ts +38 -0
  753. package/src/utils/get-validation-message.ts +61 -0
  754. package/src/utils/is-true.ts +12 -0
  755. package/src/utils/path.ts +102 -0
  756. package/src/utils/props.util.ts +11 -0
  757. package/src/utils/public.ts +1 -0
  758. package/src/vite-env.d.ts +11 -0
  759. package/src/vue.d.ts +15 -0
  760. package/css/core.css +0 -1
  761. package/css/core.css.map +0 -1
  762. package/css/global.bundle.css +0 -1
  763. package/css/global.bundle.css.map +0 -1
  764. package/css/normalize.css +0 -1
  765. package/css/normalize.css.map +0 -1
  766. package/css/poppy.bundle.css +0 -1
  767. package/css/poppy.bundle.css.map +0 -1
  768. package/css/structure.css +0 -1
  769. package/css/structure.css.map +0 -1
  770. package/css/themes/dark.always.css +0 -1
  771. package/css/themes/dark.always.css.map +0 -1
  772. package/css/themes/dark.class.css +0 -1
  773. package/css/themes/dark.class.css.map +0 -1
  774. package/css/themes/dark.system.css +0 -1
  775. package/css/themes/dark.system.css.map +0 -1
  776. package/css/themes/dark.theme.css +0 -1
  777. package/css/themes/dark.theme.css.map +0 -1
  778. package/css/themes/light.always.css +0 -1
  779. package/css/themes/light.always.css.map +0 -1
  780. package/css/themes/light.class.css +0 -1
  781. package/css/themes/light.class.css.map +0 -1
  782. package/css/themes/light.system.css +0 -1
  783. package/css/themes/light.system.css.map +0 -1
  784. package/css/themes/light.theme.css +0 -1
  785. package/css/themes/light.theme.css.map +0 -1
  786. package/dist/index.js +0 -448
  787. package/dist/index.js.map +0 -1
  788. package/dist/types/generated/components.d.ts +0 -38
  789. package/dist/types/generated/vue-component-lib/utils.d.ts +0 -16
  790. package/dist/types/index.d.ts +0 -6
  791. package/dist/types/plugin.d.ts +0 -3
  792. package/dist/vetur/attributes.json +0 -1392
  793. package/dist/vetur/tags.json +0 -376
  794. package/dist/web-types.json +0 -2940
  795. package/readme.md +0 -39
@@ -0,0 +1,482 @@
1
+ <script lang="ts">
2
+ import { logEvent } from 'histoire/client'
3
+ import { reactive, shallowRef, useTemplateRef } from 'vue'
4
+ import Accordion from './Accordion.vue'
5
+ import AccordionItem from './AccordionItem.vue'
6
+ import type { AccordionItemProps } from './accordion-item.props'
7
+ </script>
8
+
9
+ <script setup lang="ts">
10
+ const state = reactive<AccordionItemProps>({
11
+ name: 'item-1',
12
+ icon: 'arrow',
13
+ })
14
+
15
+ // Default
16
+ const defaultValue = shallowRef<string | null>(null)
17
+
18
+ // Multiple
19
+ const multipleValue = shallowRef<string[]>([])
20
+
21
+ // Controlled
22
+ const controlledValue = shallowRef<string | null>('item-1')
23
+
24
+ // Expose — Accordion
25
+ const accordionRef = useTemplateRef('accordion-expose')
26
+
27
+ // Expose — AccordionItem
28
+ const item1Ref = useTemplateRef('accordion-item-1')
29
+ const item2Ref = useTemplateRef('accordion-item-2')
30
+ </script>
31
+
32
+ <template>
33
+ <Story group="components" title="Display/Accordion" auto-props-disabled>
34
+ <template #default>
35
+
36
+ <Variant title="Default">
37
+ <template #controls>
38
+ <HstSelect title="Icon" v-model="state.icon" :options="['arrow', 'plus']" />
39
+ </template>
40
+
41
+ <Accordion v-model="defaultValue">
42
+ <AccordionItem v-bind="state" name="item-1">
43
+ <template #title>Item 1</template>
44
+ Content of item 1. Click the header to toggle.
45
+ </AccordionItem>
46
+ <AccordionItem v-bind="state" name="item-2">
47
+ <template #title>Item 2</template>
48
+ Content of item 2.
49
+ </AccordionItem>
50
+ <AccordionItem v-bind="state" name="item-3">
51
+ <template #title>Item 3</template>
52
+ Content of item 3.
53
+ </AccordionItem>
54
+ </Accordion>
55
+ </Variant>
56
+
57
+ <Variant title="Icons">
58
+ <div class="accordion-story accordion-story--col">
59
+ <div class="accordion-story--item">
60
+ <span class="accordion-story--label">arrow (default)</span>
61
+ <Accordion>
62
+ <AccordionItem name="a" icon="arrow">
63
+ <template #title>Arrow icon</template>
64
+ The chevron rotates 180° when open.
65
+ </AccordionItem>
66
+ </Accordion>
67
+ </div>
68
+ <div class="accordion-story--item">
69
+ <span class="accordion-story--label">plus</span>
70
+ <Accordion>
71
+ <AccordionItem name="a" icon="plus">
72
+ <template #title>Plus icon</template>
73
+ The plus rotates 45° (becoming a cross) when open.
74
+ </AccordionItem>
75
+ </Accordion>
76
+ </div>
77
+ </div>
78
+ </Variant>
79
+
80
+ <Variant title="Multiple">
81
+ <Accordion v-model="multipleValue" :multiple="true">
82
+ <AccordionItem name="item-1">
83
+ <template #title>Item 1</template>
84
+ Content of item 1.
85
+ </AccordionItem>
86
+ <AccordionItem name="item-2">
87
+ <template #title>Item 2</template>
88
+ Content of item 2.
89
+ </AccordionItem>
90
+ <AccordionItem name="item-3">
91
+ <template #title>Item 3</template>
92
+ Content of item 3.
93
+ </AccordionItem>
94
+ </Accordion>
95
+ </Variant>
96
+
97
+ <Variant title="Default open">
98
+ <div class="accordion-story accordion-story--col">
99
+ <div class="accordion-story--item">
100
+ <span class="accordion-story--label">single — defaultOpen: 'item-2'</span>
101
+ <Accordion default-open="item-2">
102
+ <AccordionItem name="item-1">
103
+ <template #title>Item 1</template>
104
+ Content of item 1.
105
+ </AccordionItem>
106
+ <AccordionItem name="item-2">
107
+ <template #title>Item 2 (open by default)</template>
108
+ This item is open on first render.
109
+ </AccordionItem>
110
+ <AccordionItem name="item-3">
111
+ <template #title>Item 3</template>
112
+ Content of item 3.
113
+ </AccordionItem>
114
+ </Accordion>
115
+ </div>
116
+ <div class="accordion-story--item">
117
+ <span class="accordion-story--label">multiple — defaultOpen: ['item-1', 'item-3']</span>
118
+ <Accordion :multiple="true" :default-open="['item-1', 'item-3']">
119
+ <AccordionItem name="item-1">
120
+ <template #title>Item 1 (open by default)</template>
121
+ Content of item 1.
122
+ </AccordionItem>
123
+ <AccordionItem name="item-2">
124
+ <template #title>Item 2</template>
125
+ Content of item 2.
126
+ </AccordionItem>
127
+ <AccordionItem name="item-3">
128
+ <template #title>Item 3 (open by default)</template>
129
+ Content of item 3.
130
+ </AccordionItem>
131
+ </Accordion>
132
+ </div>
133
+ </div>
134
+ </Variant>
135
+
136
+ <Variant title="Controlled">
137
+ <div class="accordion-story accordion-story--col">
138
+ <div class="accordion-story--actions">
139
+ <span class="accordion-story--label">v-model: {{ controlledValue ?? 'null' }}</span>
140
+ <div class="accordion-story--row">
141
+ <button class="accordion-story--btn" @click="controlledValue = 'item-1'">Open item-1</button>
142
+ <button class="accordion-story--btn" @click="controlledValue = 'item-2'">Open item-2</button>
143
+ <button class="accordion-story--btn" @click="controlledValue = null">Close all</button>
144
+ </div>
145
+ </div>
146
+ <Accordion v-model="controlledValue">
147
+ <AccordionItem name="item-1">
148
+ <template #title>Item 1</template>
149
+ Content of item 1.
150
+ </AccordionItem>
151
+ <AccordionItem name="item-2">
152
+ <template #title>Item 2</template>
153
+ Content of item 2.
154
+ </AccordionItem>
155
+ </Accordion>
156
+ </div>
157
+ </Variant>
158
+
159
+ <Variant title="Events — Accordion">
160
+ <Accordion
161
+ @change="logEvent('change', $event ? [$event] : [])"
162
+ @open="logEvent('open', $event ? [$event] : [])"
163
+ @close="logEvent('close', $event ? [$event] : [])"
164
+ @toggle="logEvent('toggle', $event ? [$event] : [])"
165
+ >
166
+ <AccordionItem name="item-1">
167
+ <template #title>Item 1</template>
168
+ Content of item 1.
169
+ </AccordionItem>
170
+ <AccordionItem name="item-2">
171
+ <template #title>Item 2</template>
172
+ Content of item 2.
173
+ </AccordionItem>
174
+ <AccordionItem name="item-3">
175
+ <template #title>Item 3</template>
176
+ Content of item 3.
177
+ </AccordionItem>
178
+ </Accordion>
179
+ </Variant>
180
+
181
+ <Variant title="Events — AccordionItem">
182
+ <Accordion>
183
+ <AccordionItem
184
+ name="item-1"
185
+ @open="logEvent('open', $event)"
186
+ @close="logEvent('close', $event)"
187
+ @toggle="logEvent('toggle', $event)"
188
+ >
189
+ <template #title>Item 1 — watch the event log</template>
190
+ Content of item 1.
191
+ </AccordionItem>
192
+ <AccordionItem
193
+ name="item-2"
194
+ @open="logEvent('open', $event)"
195
+ @close="logEvent('close', $event)"
196
+ @toggle="logEvent('toggle', $event)"
197
+ >
198
+ <template #title>Item 2 — watch the event log</template>
199
+ Content of item 2.
200
+ </AccordionItem>
201
+ </Accordion>
202
+ </Variant>
203
+
204
+ <Variant title="Expose — Accordion">
205
+ <div class="accordion-story accordion-story--col">
206
+ <div class="accordion-story--actions">
207
+ <div class="accordion-story--row">
208
+ <button class="accordion-story--btn" @click="accordionRef?.open('item-1')">open('item-1')</button>
209
+ <button class="accordion-story--btn" @click="accordionRef?.open('item-2')">open('item-2')</button>
210
+ <button class="accordion-story--btn" @click="accordionRef?.open('item-3')">open('item-3')</button>
211
+ </div>
212
+ <div class="accordion-story--row">
213
+ <button class="accordion-story--btn" @click="accordionRef?.close('item-1')">close('item-1')</button>
214
+ <button class="accordion-story--btn" @click="accordionRef?.close('item-2')">close('item-2')</button>
215
+ <button class="accordion-story--btn" @click="accordionRef?.close('item-3')">close('item-3')</button>
216
+ </div>
217
+ <div class="accordion-story--row">
218
+ <button class="accordion-story--btn" @click="accordionRef?.toggle('item-1')">toggle('item-1')</button>
219
+ <button class="accordion-story--btn" @click="accordionRef?.toggle('item-2')">toggle('item-2')</button>
220
+ <button class="accordion-story--btn" @click="accordionRef?.toggle('item-3')">toggle('item-3')</button>
221
+ </div>
222
+ <div class="accordion-story--row">
223
+ <button class="accordion-story--btn" @click="accordionRef?.openAll(['item-1', 'item-2', 'item-3'])">openAll()</button>
224
+ <button class="accordion-story--btn" @click="accordionRef?.closeAll()">closeAll()</button>
225
+ </div>
226
+ </div>
227
+ <Accordion ref="accordion-expose" :multiple="true">
228
+ <AccordionItem name="item-1">
229
+ <template #title>Item 1</template>
230
+ Content of item 1.
231
+ </AccordionItem>
232
+ <AccordionItem name="item-2">
233
+ <template #title>Item 2</template>
234
+ Content of item 2.
235
+ </AccordionItem>
236
+ <AccordionItem name="item-3">
237
+ <template #title>Item 3</template>
238
+ Content of item 3.
239
+ </AccordionItem>
240
+ </Accordion>
241
+ </div>
242
+ </Variant>
243
+
244
+ <Variant title="Expose — AccordionItem">
245
+ <div class="accordion-story accordion-story--col">
246
+ <div class="accordion-story--actions">
247
+ <div class="accordion-story--row">
248
+ <span class="accordion-story--label">item-1 — isOpen: {{ item1Ref?.isOpen }}</span>
249
+ </div>
250
+ <div class="accordion-story--row">
251
+ <button class="accordion-story--btn" @click="item1Ref?.open()">item1.open()</button>
252
+ <button class="accordion-story--btn" @click="item1Ref?.close()">item1.close()</button>
253
+ <button class="accordion-story--btn" @click="item1Ref?.toggle()">item1.toggle()</button>
254
+ </div>
255
+ <div class="accordion-story--row">
256
+ <button class="accordion-story--btn" @click="item2Ref?.open()">item2.open()</button>
257
+ <button class="accordion-story--btn" @click="item2Ref?.close()">item2.close()</button>
258
+ <button class="accordion-story--btn" @click="item2Ref?.toggle()">item2.toggle()</button>
259
+ </div>
260
+ </div>
261
+ <Accordion>
262
+ <AccordionItem ref="accordion-item-1" name="item-1">
263
+ <template #title>Item 1</template>
264
+ Content of item 1.
265
+ </AccordionItem>
266
+ <AccordionItem ref="accordion-item-2" name="item-2">
267
+ <template #title>Item 2</template>
268
+ Content of item 2.
269
+ </AccordionItem>
270
+ </Accordion>
271
+ </div>
272
+ </Variant>
273
+
274
+ <Variant title="Custom icon slot">
275
+ <Accordion>
276
+ <AccordionItem name="item-1">
277
+ <template #title>Custom icon</template>
278
+ <template #icon="{ isOpen }">
279
+ <span class="accordion-story--custom-icon">{{ isOpen ? '▲' : '▼' }}</span>
280
+ </template>
281
+ The icon slot exposes <code>isOpen</code> so you can render anything.
282
+ </AccordionItem>
283
+ <AccordionItem name="item-2">
284
+ <template #title>Another item</template>
285
+ <template #icon="{ isOpen }">
286
+ <span class="accordion-story--custom-icon">{{ isOpen ? '▲' : '▼' }}</span>
287
+ </template>
288
+ Content of item 2.
289
+ </AccordionItem>
290
+ </Accordion>
291
+ </Variant>
292
+
293
+ </template>
294
+ </Story>
295
+ </template>
296
+
297
+ <style scoped>
298
+ .accordion-story {
299
+ display: flex;
300
+ flex-direction: column;
301
+ gap: 0.5rem;
302
+ }
303
+
304
+ .accordion-story--col {
305
+ display: flex;
306
+ flex-direction: column;
307
+ gap: 1.25rem;
308
+ }
309
+
310
+ .accordion-story--item {
311
+ display: flex;
312
+ flex-direction: column;
313
+ gap: 0.375rem;
314
+ }
315
+
316
+ .accordion-story--label {
317
+ font-size: 0.7rem;
318
+ color: #9ca3af;
319
+ font-family: monospace;
320
+ }
321
+
322
+ .accordion-story--actions {
323
+ display: flex;
324
+ flex-direction: column;
325
+ gap: 0.5rem;
326
+ }
327
+
328
+ .accordion-story--row {
329
+ display: flex;
330
+ gap: 0.5rem;
331
+ flex-wrap: wrap;
332
+ align-items: center;
333
+ }
334
+
335
+ .accordion-story--btn {
336
+ font-size: 0.75rem;
337
+ padding: 4px 10px;
338
+ border-radius: 4px;
339
+ border: 1px solid #d1d5db;
340
+ background: #f9fafb;
341
+ cursor: pointer;
342
+ color: #374151;
343
+ }
344
+
345
+ .accordion-story--btn:hover {
346
+ background: #f3f4f6;
347
+ }
348
+
349
+ .accordion-story--custom-icon {
350
+ font-size: 0.75rem;
351
+ opacity: 0.5;
352
+ }
353
+ </style>
354
+
355
+ <docs lang="md">
356
+ # Accordion
357
+
358
+ ## Description
359
+
360
+ A vertically stacked set of collapsible sections. Each section is controlled by an `AccordionItem`
361
+ nested inside `Accordion`. Supports single and multiple open modes, controlled and uncontrolled usage,
362
+ animated transitions, and a customisable icon.
363
+
364
+ ## API
365
+
366
+ <details>
367
+ <summary>Accordion</summary>
368
+
369
+ ### Props
370
+
371
+ | Prop | Type | Default | Required | Configurable | Description |
372
+ |---------------|------------------------|-------------|----------|--------------|------------------------------------------------------------------------------------------------|
373
+ | `multiple` | `boolean` | `false` | :x: | :x: | When `true`, multiple items can be open at the same time. |
374
+ | `defaultOpen` | `string` \| `string[]` | `undefined` | :x: | :x: | Item name(s) open on first render. Accepts a string in single mode, an array in multiple mode. |
375
+
376
+ ### Events
377
+
378
+ | Event | Payload | Description |
379
+ |-----------|-------------------------------------------|-------------------------------------------------------------------|
380
+ | `@change` | `string \| null` \| `string[]` | Emitted on every state change with the new value. |
381
+ | `@open` | `string` \| `string[]` | Emitted when an item opens. Payload is inferred from `multiple`. |
382
+ | `@close` | `string` \| `string[]` | Emitted when an item closes. Payload is inferred from `multiple`. |
383
+ | `@toggle` | `string` \| `string[]`, `isOpen: boolean` | Emitted on every toggle with the name and new state. |
384
+
385
+ ### Expose
386
+
387
+ | Method | Signature | Description |
388
+ |------------------|-----------------------------|------------------------------------------------------ |
389
+ | `open(name)` | `(name: string) => void` | Opens the item with the given name. |
390
+ | `close(name)` | `(name: string) => void` | Closes the item with the given name. |
391
+ | `toggle(name)` | `(name: string) => void` | Toggles the item with the given name. |
392
+ | `isOpen(name)` | `(name: string) => boolean` | Returns `true` if the item is currently open. |
393
+ | `openAll(names)` | `(names: string[]) => void` | Opens all given items. Only works in `multiple` mode. |
394
+ | `closeAll()` | `() => void` | Closes all items. |
395
+
396
+ </details>
397
+
398
+ <details>
399
+ <summary>AccordionItem</summary>
400
+
401
+ ### Props
402
+
403
+ | Prop | Type | Default | Required | Configurable | Description |
404
+ |--------|---------------------|-------------|--------------------|--------------------|--------------------------------------------------------------------------------|
405
+ | `name` | `string` | `undefined` | :white_check_mark: | :x: | Unique identifier within the parent `Accordion`. Used to track open state. |
406
+ | `icon` | `AccordionItemIcon` | `'arrow'` | :x: | :white_check_mark: | Icon shown in the header. `'arrow'` rotates on open, `'plus'` becomes a cross. |
407
+
408
+ > **Configurable** props can be set globally via the Poppy UI plugin (`components.accordionItem` option). See [Plugin Configuration](../../../stories/Configuration.story.md) for more information.
409
+
410
+ ### Events
411
+
412
+ | Event | Payload | Description |
413
+ |-----------|------------------|---------------------------------------|
414
+ | `@open` | undefined | Emitted when this item opens. |
415
+ | `@close` | undefined | Emitted when this item closes. |
416
+ | `@toggle` | `isOpen: boolean`| Emitted on toggle with the new state. |
417
+
418
+ ### Slots
419
+
420
+ | Slot | Bindings | Description |
421
+ |-----------|-----------------------|-----------------------------------------------------------------------------------|
422
+ | `title` | `{ isOpen: boolean }` | Header content. Rendered inside the clickable trigger area. |
423
+ | `icon` | `{ isOpen: boolean }` | Overrides the default icon. Use `isOpen` to render a custom open/close indicator. |
424
+ | `default` | `{ isOpen: boolean }` | Content revealed when the item is open. |
425
+
426
+ ### Expose
427
+
428
+ | Member | Type | Description |
429
+ |------------|------------- |-----------------------------------|
430
+ | `open()` | `() => void` | Opens this item. |
431
+ | `close()` | `() => void` | Closes this item. |
432
+ | `toggle()` | `() => void` | Toggles this item. |
433
+ | `isOpen` | `boolean` | Reactive open state of this item. |
434
+
435
+ </details>
436
+
437
+ ## Usage
438
+
439
+ ```vue
440
+ <!-- Basic single -->
441
+ <Accordion>
442
+ <AccordionItem name="faq-1">
443
+ <template #title>What is Poppy UI?</template>
444
+ A Vue component library built on DaisyUI.
445
+ </AccordionItem>
446
+ </Accordion>
447
+
448
+ <!-- Multiple open -->
449
+ <Accordion :multiple="true" @open="onOpen" @close="onClose">
450
+ <AccordionItem name="a">
451
+ <template #title>Section A</template>
452
+ ...
453
+ </AccordionItem>
454
+ <AccordionItem name="b">
455
+ <template #title>Section B</template>
456
+ ...
457
+ </AccordionItem>
458
+ </Accordion>
459
+
460
+ <!-- Programmatic control via Accordion ref -->
461
+ <Accordion ref="accordionRef" :multiple="true">
462
+ <AccordionItem name="item-1">
463
+ <template #title>Item 1</template>
464
+ ...
465
+ </AccordionItem>
466
+ <AccordionItem name="item-2">
467
+ <template #title>Item 2</template>
468
+ ...
469
+ </AccordionItem>
470
+ </Accordion>
471
+ <button @click="accordionRef?.openAll(['item-1', 'item-2'])">Open all</button>
472
+
473
+ <!-- Programmatic control via AccordionItem ref -->
474
+ <Accordion>
475
+ <AccordionItem ref="itemRef" name="item-1" @toggle="onToggle">
476
+ <template #title>Item 1</template>
477
+ Content here.
478
+ </AccordionItem>
479
+ </Accordion>
480
+ <button @click="itemRef?.open()">Open item</button>
481
+ ```
482
+ </docs>
@@ -0,0 +1,112 @@
1
+ <script lang="ts">
2
+ import { computed, provide, shallowRef } from 'vue'
3
+ import { ACCORDION_CONTEXT_KEY } from './accordion.context'
4
+ import type { AccordionProps } from './accordion.props'
5
+ </script>
6
+
7
+ <script setup lang="ts" generic="M extends boolean = false">
8
+ type ModelType = M extends true ? string[] : string | null
9
+ type NameType = M extends true ? string[] : string
10
+
11
+ const props = defineProps<AccordionProps<M>>()
12
+
13
+ /**
14
+ * Controlled open state. Use `v-model` to bind reactively.
15
+ * In single mode: the name of the open item, or `null` if none.
16
+ * In multiple mode: an array of open item names.
17
+ */
18
+ const model = defineModel<M extends true ? string[] : string | null>()
19
+
20
+ const emit = defineEmits<{
21
+ change: [value: ModelType]
22
+ open: [name: NameType]
23
+ close: [name: NameType]
24
+ toggle: [name: NameType, isOpen: boolean]
25
+ }>()
26
+
27
+ const internalValue = shallowRef<ModelType>((props.defaultOpen ?? (props.multiple ? [] : null)) as ModelType)
28
+
29
+ const value = computed(() => (model.value !== undefined ? model.value : internalValue.value))
30
+
31
+ function set(value: ModelType) {
32
+ internalValue.value = value
33
+ model.value = value
34
+ emit('change', value)
35
+ }
36
+
37
+ // ── Core ─────────────────────────────────────────────────────────────────────
38
+
39
+ function toggle(name: string) {
40
+ if (props.multiple) {
41
+ const current = (value.value as string[]) ?? []
42
+ const opening = !current.includes(name)
43
+ const next = opening ? [...current, name] : current.filter(n => n !== name)
44
+
45
+ set(next as ModelType)
46
+ emit('toggle', next as NameType, opening)
47
+ opening ? emit('open', next as NameType) : emit('close', next as NameType)
48
+ return
49
+ }
50
+
51
+ const opening = value.value !== name
52
+ const next = (opening ? name : null) as ModelType
53
+
54
+ set(next)
55
+ emit('toggle', (opening ? name : null) as NameType, opening)
56
+ opening ? emit('open', name as NameType) : emit('close', name as NameType)
57
+ }
58
+
59
+ function isOpen(name: string): boolean {
60
+ if (props.multiple) {
61
+ return ((value.value as string[]) ?? []).includes(name)
62
+ }
63
+ return value.value === name
64
+ }
65
+
66
+ // ── Expose ───────────────────────────────────────────────────────────────────
67
+
68
+ function open(name: string) {
69
+ if (isOpen(name)) {
70
+ return
71
+ }
72
+ toggle(name)
73
+ }
74
+
75
+ function close(name: string) {
76
+ if (!isOpen(name)) {
77
+ return
78
+ }
79
+ toggle(name)
80
+ }
81
+
82
+ function openAll(names: string[]) {
83
+ if (!props.multiple) {
84
+ return
85
+ }
86
+ set(names as ModelType)
87
+ emit('open', names as NameType)
88
+ }
89
+
90
+ function closeAll() {
91
+ const next = (props.multiple ? [] : null) as ModelType
92
+ set(next)
93
+ emit('close', next as NameType)
94
+ }
95
+
96
+ provide(ACCORDION_CONTEXT_KEY, { multiple: props.multiple ?? false, modelValue: value, toggle, isOpen })
97
+
98
+ defineExpose({
99
+ open,
100
+ close,
101
+ toggle,
102
+ isOpen,
103
+ openAll,
104
+ closeAll,
105
+ })
106
+ </script>
107
+
108
+ <template>
109
+ <div class="flex flex-col gap-2">
110
+ <slot />
111
+ </div>
112
+ </template>