@dpa-id-components/dpa-shared-components 20.0.6 → 20.0.8

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 (276) hide show
  1. package/dist/_plugin-vue_export-helper-BTgDAbhb.js +8 -0
  2. package/dist/{activities-BdgBJTuA.js → activities-BxyZQp7R.js} +5 -4
  3. package/dist/{ai-CRKea4DD.js → ai-CvQQ6hUw.js} +5 -4
  4. package/dist/{alert-73LhoiBH.js → alert-BeP6nqRf.js} +5 -4
  5. package/dist/{alert-fill-CtKKZrZO.js → alert-fill-BHn_Z4vo.js} +5 -4
  6. package/dist/{alert-octagon-BFcCcEQq.js → alert-octagon-Cd-_T4ON.js} +5 -4
  7. package/dist/{apps-BcyMOR4e.js → apps-CtY6nO4d.js} +5 -4
  8. package/dist/{archive-CMuBva_u.js → archive-DmV6cQ50.js} +5 -4
  9. package/dist/{arrow-down-WJdG351R.js → arrow-down-Cfib5c-0.js} +5 -4
  10. package/dist/{arrow-left-H5cUyllC.js → arrow-left-CFSY8V--.js} +5 -4
  11. package/dist/{arrow-nav-left-CvZfWsrk.js → arrow-nav-left-BRYPr4oj.js} +5 -4
  12. package/dist/{arrow-nav-right-CUN92-9v.js → arrow-nav-right-PqR7W08e.js} +5 -4
  13. package/dist/{arrow-right-Dai72xIp.js → arrow-right-ByFSLzJb.js} +5 -4
  14. package/dist/{arrow-up-D9lAqZA8.js → arrow-up-DfhQKYKi.js} +5 -4
  15. package/dist/{arrowhead-left-SJXGjhbq.js → arrowhead-left-BxBCmhZy.js} +5 -4
  16. package/dist/{arrowhead-right-BhZbSG2r.js → arrowhead-right-D6Hk6b6x.js} +5 -4
  17. package/dist/{arrowhead-top-BEqJzGKA.js → arrowhead-top-wkcSxZmc.js} +5 -4
  18. package/dist/{atmo-CZCUnUYN.js → atmo-CqanVC-e.js} +5 -4
  19. package/dist/{audio-CnSs3MVV.js → audio-DLQLFJ3x.js} +5 -4
  20. package/dist/{audio-circled-Cku32Yiu.js → audio-circled-amRbTaDb.js} +5 -4
  21. package/dist/{audio-filled-CVOOatbn.js → audio-filled-C7m_-PTb.js} +5 -4
  22. package/dist/{bag-Cx7iHwPQ.js → bag-Br7SrnRJ.js} +5 -4
  23. package/dist/{bell-fill-D-dFYpLV.js → bell-fill-DHRfa4cC.js} +5 -4
  24. package/dist/{bell-CwI9Vb62.js → bell-kOosto6B.js} +5 -4
  25. package/dist/{book-B0ailmur.js → book-D0Xsp8As.js} +5 -4
  26. package/dist/{bookmark-CLdYV4f9.js → bookmark-DNJYJq0J.js} +5 -4
  27. package/dist/{bookmark-fill-wdEWET5w.js → bookmark-fill-DbkrXmPt.js} +5 -4
  28. package/dist/{bookmark-outlined-Dd7PyuTU.js → bookmark-outlined-D41PleT8.js} +5 -4
  29. package/dist/{box-CfW1bBum.js → box-Bw_tD7Nd.js} +5 -4
  30. package/dist/{bulb-K8jFZmfR.js → bulb-tXJKei6j.js} +5 -4
  31. package/dist/{call-CquDMWn4.js → call-BdzulBfZ.js} +5 -4
  32. package/dist/{camera-CB6fKe82.js → camera-D8so0Wqg.js} +5 -4
  33. package/dist/{check-BBMwdc1e.js → check-CTBqwPMY.js} +5 -4
  34. package/dist/{checklist-Df5fhkTx.js → checklist-CVBb2iLT.js} +5 -4
  35. package/dist/{checkmark-Bk3th8aU.js → checkmark-BkBvk5FP.js} +5 -4
  36. package/dist/{checkmark-double-JBEWrsse.js → checkmark-double-9tbcPPxC.js} +5 -4
  37. package/dist/{chevron-down-Sq-Omasi.js → chevron-down-BcjUrqWQ.js} +5 -4
  38. package/dist/{chevron-left-ka3w4LWP.js → chevron-left-DdChgK6Q.js} +5 -4
  39. package/dist/{chevron-right-DmvJo-Nn.js → chevron-right-BR3OVahz.js} +5 -4
  40. package/dist/{chevron-up-DakU_cBn.js → chevron-up-R3uiTZDq.js} +5 -4
  41. package/dist/{clipboard-DyMMjIVc.js → clipboard-BFi2VbBj.js} +5 -4
  42. package/dist/{clock-CtkOHG1g.js → clock-C3D4TRfx.js} +5 -4
  43. package/dist/{close-DjFVZt2u.js → close-CbIMNMG_.js} +5 -4
  44. package/dist/{cloud-save-acm4FjOr.js → cloud-save-CQCTGXxN.js} +5 -4
  45. package/dist/{code-BJgY-9g3.js → code-ChJ2qMcZ.js} +5 -4
  46. package/dist/{collapse-CalQPYhZ.js → collapse-DISUbIVr.js} +5 -4
  47. package/dist/{color-palette-DRN9z5Vz.js → color-palette-B4pqFFIE.js} +5 -4
  48. package/dist/{comment-CWIccK83.js → comment-CzF3hkpf.js} +5 -4
  49. package/dist/{comment-fill-BVza8Jz-.js → comment-fill-Dc-swkQu.js} +5 -4
  50. package/dist/{copy-Bk8cFSbJ.js → copy-CywrUiK2.js} +5 -4
  51. package/dist/{copy-link-DOfXU7RD.js → copy-link-DqcNlpUK.js} +5 -4
  52. package/dist/{delete-DsugmFOu.js → delete-Bl6aSpBn.js} +5 -4
  53. package/dist/{download-BeWUwd0y.js → download-BdnIOaET.js} +5 -4
  54. package/dist/{dpa-id-Ly2f4-Kw.js → dpa-id-4HKRxUEF.js} +5 -4
  55. package/dist/dpa-shared-components.js +4230 -4194
  56. package/dist/{edit-D69xOR64.js → edit-KtC1G-_s.js} +5 -4
  57. package/dist/{edit-add-C5WDTIjN.js → edit-add-DjUq6zXq.js} +5 -4
  58. package/dist/{eil-Cb4014LI.js → eil-CPA4kVQM.js} +5 -4
  59. package/dist/{emoji-D72nL3d1.js → emoji-C2BmBFxC.js} +5 -4
  60. package/dist/{emoji-add-BrzLAJ3E.js → emoji-add-NHqne_6m.js} +5 -4
  61. package/dist/{envelope-kda2hV7_.js → envelope-BDSOA_J7.js} +5 -4
  62. package/dist/{event-8phFSDv9.js → event-Bo_sb247.js} +5 -4
  63. package/dist/{expand-BtinEH3A.js → expand-BK_uzKmx.js} +5 -4
  64. package/dist/{external-link-CNYm-GlZ.js → external-link-BPYyKPIa.js} +5 -4
  65. package/dist/{file-BOEeXxXs.js → file-B97T9C2M.js} +5 -4
  66. package/dist/{file-pdf-DJaalWDa.js → file-pdf-lFk-5brY.js} +5 -4
  67. package/dist/{filter-BjVZbhND.js → filter-BIJnBkRa.js} +5 -4
  68. package/dist/{filter-outline-BoEVSezK.js → filter-outline-ChWKUbSt.js} +5 -4
  69. package/dist/{flag-DgOeofob.js → flag-DNP4L-y-.js} +5 -4
  70. package/dist/{flag-fill-BVhHWhiP.js → flag-fill-C3XgapYW.js} +5 -4
  71. package/dist/{flag-filled-CTSdIBWY.js → flag-filled-CdVD_QxY.js} +5 -4
  72. package/dist/{flag-outline-BgYyW8nX.js → flag-outline-ChGgKT6P.js} +5 -4
  73. package/dist/{flags-CMwN4aB0.js → flags-G-Nbo5ST.js} +5 -4
  74. package/dist/{flash-BhAeSS1k.js → flash-9TBwsdOx.js} +5 -4
  75. package/dist/{folder-add-Ya2GcM-i.js → folder-add-B-l2wmwY.js} +5 -4
  76. package/dist/{folder-fill-Ca6bXRw-.js → folder-fill-CnEmPx6c.js} +5 -4
  77. package/dist/{folder-filled-BBR8bJQL.js → folder-filled-zwvSw3Sd.js} +5 -4
  78. package/dist/{folder-D79ZQ9RA.js → folder-s6NWFqjh.js} +5 -4
  79. package/dist/{gallery-CsCgah-Q.js → gallery-B8I5lJ51.js} +5 -4
  80. package/dist/{graphic-circled-BYvbiPFv.js → graphic-circled-BtuNYmPh.js} +5 -4
  81. package/dist/{graphic-CZ1VEgbk.js → graphic-d-_5qmyr.js} +5 -4
  82. package/dist/{graphic-filled-B640yZW1.js → graphic-filled-DXQvxz4s.js} +5 -4
  83. package/dist/{graphics-DOD41Q2b.js → graphics-eur3JZ_7.js} +5 -4
  84. package/dist/{grid-1-reX52mXX.js → grid-1-DOm2nS5Y.js} +5 -4
  85. package/dist/{grid-2-biGoKZET.js → grid-2-D9XOIyFO.js} +5 -4
  86. package/dist/{grid-3-B8ccFfrT.js → grid-3-CR1E0m9u.js} +5 -4
  87. package/dist/{grid-4-CqTE5F_g.js → grid-4-QKKeiUGc.js} +5 -4
  88. package/dist/{grid-6-DbKV_eBX.js → grid-6-C5bCbXur.js} +5 -4
  89. package/dist/{grid-9-CTSAZ4UT.js → grid-9-FNxsRYRg.js} +5 -4
  90. package/dist/{grid-masonry-9-CKioEJuZ.js → grid-masonry-9-CxLBpKCz.js} +5 -4
  91. package/dist/{grid-masonry-B593q1l6.js → grid-masonry-CuwXzdZ6.js} +5 -4
  92. package/dist/{help-DiKackos.js → help-DkjfD818.js} +5 -4
  93. package/dist/{home-Do4YF4Dd.js → home-njHAfgwc.js} +5 -4
  94. package/dist/{image focus point-C0vK6FzN.js → image focus point-D_hUlTWi.js } +5 -4
  95. package/dist/{image-BWGxTMMW.js → image-C2RlXeDP.js} +5 -4
  96. package/dist/{impact-high-DdaQcLOu.js → impact-high-C0SywXT1.js} +5 -4
  97. package/dist/{impact-low-zbvAdhZ1.js → impact-low-yDd0jU4k.js} +5 -4
  98. package/dist/{impact-medium-BhfzSQAK.js → impact-medium-Cc_nInN7.js} +5 -4
  99. package/dist/{impact-very-high-qcPfp2yw.js → impact-very-high-DiOgG_Ji.js} +5 -4
  100. package/dist/{impact-very-low-Dz86WvEI.js → impact-very-low-CYW4RgJO.js} +5 -4
  101. package/dist/{info-9llr8kqZ.js → info-NBFIJ3YI.js} +5 -4
  102. package/dist/{info-fill-DvyOjyX-.js → info-fill-DlgeXJbI.js} +5 -4
  103. package/dist/{info-filled-c2KLORVR.js → info-filled-Btao1rhT.js} +5 -4
  104. package/dist/{label-DRVpH3Zf.js → label-CTr8hHIv.js} +5 -4
  105. package/dist/{label-filled-CTReJE3_.js → label-filled-CnTpOqvX.js} +5 -4
  106. package/dist/{language-CaK3obhv.js → language-UqPESR_Z.js} +5 -4
  107. package/dist/{latest-Bh5w8w2R.js → latest-Cq12zjMs.js} +5 -4
  108. package/dist/{lightbulb-D55X29rD.js → lightbulb-BpK9qU_u.js} +5 -4
  109. package/dist/{list-Dm0wrpKz.js → list-DKcsNf15.js} +5 -4
  110. package/dist/{list-search-BWPAGqHW.js → list-search-BzZuYf_P.js} +5 -4
  111. package/dist/{lock-Bair96dL.js → lock-BFfHVSog.js} +5 -4
  112. package/dist/{lock-filled-BNZJ0waC.js → lock-filled-C5I60_d0.js} +5 -4
  113. package/dist/{mail-Mn2wq1aV.js → mail-pagEqHtM.js} +5 -4
  114. package/dist/{map-D1irc7wN.js → map-BMOQGCce.js} +5 -4
  115. package/dist/{map-outline-B00hms9f.js → map-outline-uvK8An7m.js} +5 -4
  116. package/dist/{menu-CVkyyeDW.js → menu-j4cvnLP8.js} +5 -4
  117. package/dist/{minus-B89-4r0W.js → minus-CGsJ-jkT.js} +5 -4
  118. package/dist/{more-horizontal-BOq3UKiU.js → more-horizontal-CDZjG5h8.js} +5 -4
  119. package/dist/{more-vertical-CJOSDU6R.js → more-vertical-YUehtvol.js} +5 -4
  120. package/dist/{move-B7GHCUbm.js → move-CiU3PwqY.js} +5 -4
  121. package/dist/{move-up-down-Ch8L5sZC.js → move-up-down-H-qHtTwO.js} +5 -4
  122. package/dist/{navigation-BTddw232.js → navigation-DmqoQINO.js} +5 -4
  123. package/dist/{note-BvnqgyHg.js → note-BZ3q-D4L.js} +5 -4
  124. package/dist/{offline-YOyb2Tfr.js → offline-CLl0pwpv.js} +5 -4
  125. package/dist/{package-Ckm27fjL.js → package-iJOVTpPH.js} +5 -4
  126. package/dist/{paper-plane-BttsgNjZ.js → paper-plane-DcYms0cj.js} +5 -4
  127. package/dist/{paperplane-BqxbaXXQ.js → paperplane-ed0y9oB6.js} +5 -4
  128. package/dist/{pause-Du648vV9.js → pause-COAxeJRm.js} +5 -4
  129. package/dist/{pause-circle-C0ua224p.js → pause-circle-ab18LhX3.js} +5 -4
  130. package/dist/{pdf-Ddg3TU0B.js → pdf-BweFqxRM.js} +5 -4
  131. package/dist/{pen-CQhBRQVg.js → pen-CmBOMgX_.js} +5 -4
  132. package/dist/{pen-check-BZme3WMH.js → pen-check-BApB0Zi2.js} +5 -4
  133. package/dist/{people-COXR5CoD.js → people-D07vIou7.js} +5 -4
  134. package/dist/{phone-BauDKm-k.js → phone-B9TyVbBj.js} +5 -4
  135. package/dist/{picture-C3UMrriC.js → picture-DJRwU5Gl.js} +5 -4
  136. package/dist/{picture-circled-DBlYCjnY.js → picture-circled-DYsNZNYH.js} +5 -4
  137. package/dist/{picture-filled-O2z4--dy.js → picture-filled-CQYRN3Fa.js} +5 -4
  138. package/dist/{picture-gallery-C9c2zcxU.js → picture-gallery-BgWYQrqC.js} +5 -4
  139. package/dist/{pin-BMODlehD.js → pin-BlBzA8ov.js} +5 -4
  140. package/dist/{planning-Dtx9YzGr.js → planning-BhE-A4FO.js} +5 -4
  141. package/dist/{play-C5cuKZV0.js → play-BXy8WcYq.js} +5 -4
  142. package/dist/{play-circle-CL5tEg9v.js → play-circle-B88YxOh-.js} +5 -4
  143. package/dist/{play-fill-DSV0DW-T.js → play-fill-nWPoHjD3.js} +5 -4
  144. package/dist/{plus-DCPlMZXW.js → plus-CmEv_iHA.js} +5 -4
  145. package/dist/{plus-circle-DjR4qFC0.js → plus-circle-DKWKVMiq.js} +5 -4
  146. package/dist/{print-DXBUPTFP.js → print-ChdLXKHj.js} +5 -4
  147. package/dist/{refresh-BcwO7Jw6.js → refresh-C7k19NtO.js} +5 -4
  148. package/dist/{reset-B1yR8nzO.js → reset-CpXqaOj5.js} +5 -4
  149. package/dist/{responsive-DGZkLyEW.js → responsive-CKNXzAo1.js} +5 -4
  150. package/dist/{rubix-thema-CCIj5kn3.js → rubix-thema-Cmk-5-bm.js} +5 -4
  151. package/dist/{save-DvQxrVk-.js → save-BX3-Z5qP.js} +5 -4
  152. package/dist/{saved-search-BDu5PZQb.js → saved-search-Be8D9tJ9.js} +5 -4
  153. package/dist/{saved-search-fill-BffgdGo8.js → saved-search-fill-CPoyaMRU.js} +5 -4
  154. package/dist/{search-CXfaMRZ9.js → search-BeIwOzJl.js} +5 -4
  155. package/dist/{settings-D7xABZln.js → settings-CLChu_zl.js} +5 -4
  156. package/dist/{share-alternative-C4HzRC3B.js → share-alternative-BD-WQYvk.js} +5 -4
  157. package/dist/{share-BQm_gGv6.js → share-j6ezShBH.js} +5 -4
  158. package/dist/{sidebar-CwFxeKOh.js → sidebar-CPe20Xae.js} +5 -4
  159. package/dist/{sidebar-fill-BcquZLLX.js → sidebar-fill-CBSJYVQQ.js} +5 -4
  160. package/dist/{slack-CIhJ-_vs.js → slack-BjvLF16S.js} +5 -4
  161. package/dist/{slider-config-5UwhkENY.js → slider-config-CTzwxojK.js} +5 -4
  162. package/dist/{spellcheck-ClGD2dI8.js → spellcheck-thqRUMx9.js} +5 -4
  163. package/dist/{spinner-Ds5nod21.js → spinner-dy09pOOm.js} +5 -4
  164. package/dist/src/components/DpaMediaItem/DpaMediaItem.spec.ts +123 -0
  165. package/dist/src/components/DpaMediaItem/DpaMediaItem.stories.ts +140 -0
  166. package/dist/src/components/UiAutocomplete/UiAutocomplete.spec.ts +39 -0
  167. package/dist/src/components/UiAutocomplete/UiAutocomplete.stories.ts +46 -0
  168. package/dist/src/components/UiBadge/UiBadge.spec.ts +32 -0
  169. package/dist/src/components/UiBadge/UiBadge.stories.ts +80 -0
  170. package/dist/src/components/UiButton/UiButton.spec.ts +136 -0
  171. package/dist/src/components/UiButton/UiButton.stories.ts +57 -0
  172. package/dist/src/components/UiButtonGroup/UiButtonGroup.spec.ts +16 -0
  173. package/dist/src/components/UiButtonGroup/UiButtonGroup.stories.ts +50 -0
  174. package/dist/src/components/UiCard/UiCard.spec.ts +16 -0
  175. package/dist/src/components/UiCard/UiCard.stories.ts +30 -0
  176. package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.spec.ts +67 -0
  177. package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.stories.ts +59 -0
  178. package/dist/src/components/UiCheckbox/UiCheckbox.spec.ts +173 -0
  179. package/dist/src/components/UiCheckbox/UiCheckbox.stories.ts +99 -0
  180. package/dist/src/components/UiChip/UiChip.spec.ts +75 -0
  181. package/dist/src/components/UiChip/UiChip.stories.ts +39 -0
  182. package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.spec.ts +21 -0
  183. package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.stories.ts +66 -0
  184. package/dist/src/components/UiColorPicker/UiColorPicker.spec.ts +52 -0
  185. package/dist/src/components/UiColorPicker/UiColorPicker.stories.ts +44 -0
  186. package/dist/src/components/UiDatePicker/UiDatePicker.spec.ts +335 -0
  187. package/dist/src/components/UiDatePicker/UiDatePicker.stories.ts +273 -0
  188. package/dist/src/components/UiDialog/UiDialog.spec.ts +160 -0
  189. package/dist/src/components/UiDialog/UiDialog.stories.ts +79 -0
  190. package/dist/src/components/UiFilterBadge/UiFilterBadge.spec.ts +17 -0
  191. package/dist/src/components/UiFilterBadge/UiFilterBadge.stories.ts +44 -0
  192. package/dist/src/components/UiFilterBadgeButton/UiFilterBadgeButton.spec.ts +41 -0
  193. package/dist/src/components/UiFilterBadgeButton/UiFilterBadgeButton.stories.ts +55 -0
  194. package/dist/src/components/UiFilterButton/UiFilterButton.spec.ts +79 -0
  195. package/dist/src/components/UiFilterButton/UiFilterButton.stories.ts +88 -0
  196. package/dist/src/components/UiIcon/IconOverview.stories.vue +23 -0
  197. package/dist/src/components/UiIcon/UiIcon.spec.ts +56 -0
  198. package/dist/src/components/UiIcon/UiIcon.stories.ts +48 -0
  199. package/dist/src/components/UiIconButton/UiIconButton.spec.ts +78 -0
  200. package/dist/src/components/UiIconButton/UiIconButton.stories.ts +63 -0
  201. package/dist/src/components/UiInfoContent/UiInfoContent.spec.ts +43 -0
  202. package/dist/src/components/UiInfoContent/UiInfoContent.stories.ts +56 -0
  203. package/dist/src/components/UiInput/UiInput.spec.ts +239 -0
  204. package/dist/src/components/UiInput/UiInput.stories.ts +127 -0
  205. package/dist/src/components/UiList/UiList.spec.ts +22 -0
  206. package/dist/src/components/UiList/UiList.stories.ts +64 -0
  207. package/dist/src/components/UiListItem/UiListItem.spec.ts +99 -0
  208. package/dist/src/components/UiListItem/UiListItem.stories.ts +83 -0
  209. package/dist/src/components/UiMenu/UiMenu.spec.ts +319 -0
  210. package/dist/src/components/UiMenu/UiMenu.stories.ts +634 -0
  211. package/dist/src/components/UiOverlay/UiOverlay.spec.ts +16 -0
  212. package/dist/src/components/UiOverlay/UiOverlay.stories.ts +22 -0
  213. package/dist/src/components/UiOverlayMenu/UiOverlayMenu.spec.ts +32 -0
  214. package/dist/src/components/UiOverlayMenu/UiOverlayMenu.stories.ts +39 -0
  215. package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.spec.ts +66 -0
  216. package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.stories.ts +70 -0
  217. package/dist/src/components/UiSearchBar/UiSearchBar.spec.ts +82 -0
  218. package/dist/src/components/UiSearchBar/UiSearchBar.stories.ts +191 -0
  219. package/dist/src/components/UiSearchInput/UiSearchInput.spec.ts +45 -0
  220. package/dist/src/components/UiSearchInput/UiSearchInput.stories.ts +61 -0
  221. package/dist/src/components/UiSection/UiSection.spec.ts +49 -0
  222. package/dist/src/components/UiSection/UiSection.stories.ts +61 -0
  223. package/dist/src/components/UiSectionDivider/UiSectionDivider.spec.ts +19 -0
  224. package/dist/src/components/UiSectionDivider/UiSectionDivider.stories.ts +48 -0
  225. package/dist/src/components/UiSelect/UIiSelect.spec.ts +102 -0
  226. package/dist/src/components/UiSelect/UiSelect.stories.ts +94 -0
  227. package/dist/src/components/UiSimpleInput/UiSimpleInput.spec.ts +58 -0
  228. package/dist/src/components/UiSimpleInput/UiSimpleInput.stories.ts +53 -0
  229. package/dist/src/components/UiSkeletonBox/UiSkeletonBox.spec.ts +15 -0
  230. package/dist/src/components/UiSkeletonBox/UiSkeletonBox.stories.ts +33 -0
  231. package/dist/src/components/UiSnackbar/UiSnackbar.spec.ts +63 -0
  232. package/dist/src/components/UiSnackbar/UiSnackbar.stories.ts +65 -0
  233. package/dist/src/components/UiSpinner/UiSpinner.spec.ts +30 -0
  234. package/dist/src/components/UiSpinner/UiSpinner.stories.ts +48 -0
  235. package/dist/src/components/UiTextButton/UiTextButton.spec.ts +99 -0
  236. package/dist/src/components/UiTextButton/UiTextButton.stories.ts +60 -0
  237. package/dist/src/components/UiToggleButton/UiToggleButton.spec.ts +89 -0
  238. package/dist/src/components/UiToggleButton/UiToggleButton.stories.ts +102 -0
  239. package/dist/src/components/UiTooltip/UiTooltip.spec.ts +139 -0
  240. package/dist/src/components/UiTooltip/UiTooltip.stories.ts +107 -0
  241. package/dist/src/compositions/useBreakpoints/UseBreakpoints.stories.ts +23 -0
  242. package/dist/src/compositions/useBreakpoints/UseBreakpoints.stories.vue +12 -0
  243. package/dist/src/utils/index.spec.ts +12 -0
  244. package/dist/{standard-view-hRZ2UVqX.js → standard-view-dE52BPUm.js} +5 -4
  245. package/dist/{star-fill-B10bjB48.js → star-fill-DIXwg3gQ.js} +5 -4
  246. package/dist/{star-filled-BISydRRE.js → star-filled-BqrpxMqq.js} +5 -4
  247. package/dist/{star-DC_rTR6e.js → star-uv_o0S9H.js} +5 -4
  248. package/dist/{stop-D6NZK5EY.js → stop-CrmQCpqp.js} +5 -4
  249. package/dist/{story-B3kiPLs0.js → story-CUBTcSOv.js} +5 -4
  250. package/dist/{sync-B5v_sNSB.js → sync-CPmOdu5b.js} +5 -4
  251. package/dist/{tasks-COvP7FSq.js → tasks-TKH8SUBe.js} +5 -4
  252. package/dist/{text--clKJFHw.js → text-BMhu0paW.js} +5 -4
  253. package/dist/{text-circled-hElWfl5W.js → text-circled-Cykzn5-2.js} +5 -4
  254. package/dist/{text-filled-BpflMH5s.js → text-filled-BwOhn26K.js} +5 -4
  255. package/dist/{thumbs-down-BD3Dkcr3.js → thumbs-down-LH8SIeIF.js} +5 -4
  256. package/dist/{thumbs-up-A2jkWz64.js → thumbs-up-WZQzpqKr.js} +5 -4
  257. package/dist/{thumbs-up-double-Dm7agvTj.js → thumbs-up-double-SeGWEXZ_.js} +5 -4
  258. package/dist/{topic-CXey3AGT.js → topic-63EhQ_l1.js} +5 -4
  259. package/dist/{union-DZ2yepXw.js → union-DKjbjP-9.js} +5 -4
  260. package/dist/{upload-DPdFqQB3.js → upload-yjh9wxAA.js} +5 -4
  261. package/dist/{user-need-divert-me-DF4rOe6s.js → user-need-divert-me-B_cSVEIY.js} +5 -4
  262. package/dist/{user-need-educate-me-ClLznwAg.js → user-need-educate-me-DOgCmShA.js} +5 -4
  263. package/dist/{user-need-give-me-perspective-BfI5mb08.js → user-need-give-me-perspective-2wacZI2F.js} +5 -4
  264. package/dist/{user-need-help-me-D-lptTdN.js → user-need-help-me-D4VE0IcH.js} +5 -4
  265. package/dist/{user-need-touch-me-CikvxxHD.js → user-need-touch-me-u3n8c5IH.js} +5 -4
  266. package/dist/{user-need-update-me-Ua4YV9Bs.js → user-need-update-me-BcDyXzME.js} +5 -4
  267. package/dist/{video overlay-cYzYa_B7.js → video overlay-DfhF7VpE.js } +5 -4
  268. package/dist/{video-CydfS_mz.js → video-BViz7WnQ.js} +5 -4
  269. package/dist/{video-circled-DcD57AXc.js → video-circled-Bw9Miyyr.js} +5 -4
  270. package/dist/{video-filled-oePCRIdo.js → video-filled-B5Td1M5L.js} +5 -4
  271. package/dist/{video-rounded-DCwst-WS.js → video-rounded-ISWC3gUM.js} +5 -4
  272. package/dist/{view-CJdB2aJG.js → view-C9Xks5Gy.js} +5 -4
  273. package/dist/{view-off-gIw--Mbm.js → view-off-BuSbQwX0.js} +5 -4
  274. package/dist/{volume-up-BhnS1V_P.js → volume-up-BLQXZI5X.js} +5 -4
  275. package/package.json +5 -4
  276. package/dist/_plugin-vue_export-helper-CCTR5HVY.js +0 -2770
@@ -0,0 +1,39 @@
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
+
3
+ import UiList from "../UiList/UiList.vue";
4
+ import UiListItem from "../UiListItem/UiListItem.vue";
5
+ import UiOverlayMenu from "./UiOverlayMenu.vue";
6
+
7
+ const meta = {
8
+ title: "Ui/UiOverlayMenu",
9
+ component: UiOverlayMenu,
10
+ subcomponents: { UiList, UiListItem },
11
+ argTypes: {
12
+ isOpen: {
13
+ control: "boolean",
14
+ },
15
+ },
16
+ args: {
17
+ isOpen: true,
18
+ },
19
+ render: (args) => ({
20
+ setup() {
21
+ return { args };
22
+ },
23
+ components: { UiOverlayMenu, UiList, UiListItem },
24
+ template:
25
+ "<UiOverlayMenu v-bind='args'>" +
26
+ "<UiList>" +
27
+ "<UiListItem checkBoxMenu='true'>Test</UiListItem>" +
28
+ "<UiListItem checkBoxMenu='true'>Test</UiListItem>" +
29
+ "<UiListItem checkBoxMenu='true'>Test</UiListItem>" +
30
+ "</UiList>" +
31
+ "</UiOverlayMenu>",
32
+ }),
33
+ tags: ["deprecated"],
34
+ } satisfies Meta<typeof UiOverlayMenu>;
35
+
36
+ export default meta;
37
+ type Story = StoryObj<typeof meta>;
38
+
39
+ export const Default: Story = {};
@@ -0,0 +1,66 @@
1
+ import { mount } from "@vue/test-utils";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ import UiRadioInput from "./UiRadioInputGroup.vue";
5
+
6
+ describe("UiRadioInput", () => {
7
+ it("renders UiRadioInputGroup with props content", () => {
8
+ const wrapper = mount(UiRadioInput, {
9
+ props: {
10
+ options: [
11
+ {
12
+ label: "default name",
13
+ selected: false,
14
+ value: "default value",
15
+ },
16
+ ],
17
+ groupName: "Options",
18
+ },
19
+ });
20
+ expect(wrapper.text()).toBe("default name");
21
+ });
22
+
23
+ it("should click change value", async () => {
24
+ const wrapper = mount(UiRadioInput, {
25
+ props: {
26
+ modelValue: "default value",
27
+ "onUpdate:modelValue": (e) => wrapper.setProps({ modelValue: e }),
28
+ options: [
29
+ {
30
+ label: "default name",
31
+ selected: true,
32
+ value: "default value",
33
+ },
34
+ {
35
+ label: "second option",
36
+ selected: false,
37
+ value: "second option",
38
+ },
39
+ ],
40
+ groupName: "Options",
41
+ },
42
+ });
43
+
44
+ await wrapper.find("input[value='second option']").setValue(true);
45
+ expect(wrapper.props("modelValue")).toBe("second option");
46
+ });
47
+
48
+ it("renders attributes on correct element", () => {
49
+ const wrapper = mount(UiRadioInput, {
50
+ props: {
51
+ options: [],
52
+ groupName: "",
53
+ id: "id",
54
+ class: "testClass gap-8",
55
+ "data-testid": "testId",
56
+ },
57
+ });
58
+
59
+ const root = wrapper.find(":first-child");
60
+ expect(root.attributes("id")).toBe("id");
61
+ expect(root.element.classList.contains("testClass")).toBe(true);
62
+ expect(root.element.classList.contains("gap-4")).toBe(false);
63
+ expect(root.element.classList.contains("gap-8")).toBe(true);
64
+ expect(root.attributes("data-testid")).toBe("testId");
65
+ });
66
+ });
@@ -0,0 +1,70 @@
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
+ import { action } from "storybook/actions";
3
+
4
+ import UiRadioInputGroup from "./UiRadioInputGroup.vue";
5
+
6
+ const meta = {
7
+ title: "Ui/UiRadioInputGroup",
8
+ // @ts-expect-error generic components seem to cause type issues here that aren't easy to solve
9
+ component: UiRadioInputGroup,
10
+ argTypes: {
11
+ options: {
12
+ control: "object",
13
+ },
14
+ variant: {
15
+ control: "select",
16
+ options: ["blue", "gray"],
17
+ },
18
+ size: {
19
+ control: "select",
20
+ options: ["small", "medium"],
21
+ },
22
+ direction: {
23
+ control: "select",
24
+ options: ["horizontal", "vertical"],
25
+ },
26
+ disabled: { control: "boolean" },
27
+ groupName: { control: "text" },
28
+ class: { control: "text" },
29
+ },
30
+ args: {
31
+ options: [
32
+ {
33
+ label: "Option A",
34
+ value: "value 1",
35
+ selected: true,
36
+ },
37
+ {
38
+ label: "Option B",
39
+ value: "value 2",
40
+ selected: false,
41
+ },
42
+ {
43
+ label: "Option C",
44
+ value: "value 3",
45
+ selected: false,
46
+ },
47
+ ],
48
+ variant: "blue",
49
+ size: "medium",
50
+ direction: "horizontal",
51
+ disabled: false,
52
+ groupName: "default",
53
+ },
54
+ render: (args) => ({
55
+ setup() {
56
+ return { args };
57
+ },
58
+ components: { UiRadioInputGroup },
59
+ template:
60
+ "<UiRadioInputGroup v-bind='args' @input='input'></UiRadioInputGroup>",
61
+ methods: { input: action("input") },
62
+ }),
63
+ tags: ["deprecated"],
64
+ } satisfies Meta<typeof UiRadioInputGroup>;
65
+
66
+ export default meta;
67
+ type Story = StoryObj<typeof meta>;
68
+ // TODO: Remove this again once possible.
69
+ // @ts-ignore Bogus TypeScript error
70
+ export const Default: Story = {};
@@ -0,0 +1,82 @@
1
+ import { type ComponentMountingOptions, mount } from "@vue/test-utils";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ import UiSearchBar from "./UiSearchBar.vue";
5
+
6
+ function createWrapper(
7
+ options: ComponentMountingOptions<typeof UiSearchBar> = {},
8
+ ) {
9
+ return mount(UiSearchBar, {
10
+ ...options,
11
+ });
12
+ }
13
+
14
+ describe("UiSearchBar", () => {
15
+ it("renders the placeholder", () => {
16
+ const placeholder = "Example query";
17
+ const wrapper = createWrapper({ props: { placeholder } });
18
+
19
+ const textInput = wrapper.find("input");
20
+ expect(textInput.element.placeholder).toBe(placeholder);
21
+ });
22
+
23
+ it("renders the value", async () => {
24
+ const wrapper = createWrapper();
25
+
26
+ const searchQuery = "Ein Suchbegriff";
27
+ const textInput = wrapper.find("input");
28
+ await textInput.setValue(searchQuery);
29
+ expect(wrapper.emitted()["update:modelValue"]).toBeTruthy();
30
+ expect(textInput.element.value).toBe(searchQuery);
31
+ });
32
+
33
+ it("emits focus event", async () => {
34
+ const wrapper = createWrapper();
35
+
36
+ const textInput = wrapper.find("input");
37
+ await textInput.trigger("focus");
38
+ expect(wrapper.emitted("focus")).toBeTruthy();
39
+ });
40
+
41
+ it("emits blur event", async () => {
42
+ const wrapper = createWrapper();
43
+
44
+ const textInput = wrapper.find("input");
45
+ await textInput.trigger("blur");
46
+ expect(wrapper.emitted("blur")).toBeTruthy();
47
+ });
48
+
49
+ it("renders slots", () => {
50
+ const wrapper = createWrapper({
51
+ props: {
52
+ modelValue: "Test",
53
+ placeholder: "Suchen",
54
+ backgroundColor: "gray",
55
+ hiddenFilterRules: 0,
56
+ isFilterChipEditable: true,
57
+ },
58
+ slots: {
59
+ searchCriteriaButton: "<button>+ 1 Suchkriterium</button>",
60
+ extendedSearchButton: "<button>Erweiterte Suche</button>",
61
+ nonEditableChips: "<p>Favorite</p>",
62
+ editableChips: "<p>Hamburg</p>",
63
+ },
64
+ });
65
+ expect(wrapper.html()).toContain("<button>+ 1 Suchkriterium</button>");
66
+ expect(wrapper.html()).toContain("<button>Erweiterte Suche</button>");
67
+ expect(wrapper.html()).toContain("<p>Favorite</p>");
68
+ expect(wrapper.html()).toContain("<p>Hamburg</p>");
69
+ });
70
+
71
+ it("can clear input value by setting modelValue to empty string (bug fix)", async () => {
72
+ const wrapper = createWrapper();
73
+ const input = wrapper.find("input");
74
+ expect(input.element.value).toBe("");
75
+
76
+ await input.setValue("test");
77
+ expect(input.element.value).toBe("test");
78
+
79
+ await wrapper.setProps({ modelValue: "" });
80
+ expect(input.element.value).toBe("");
81
+ });
82
+ });
@@ -0,0 +1,191 @@
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
+
3
+ import UiButton from "../UiButton/UiButton.vue";
4
+ import UiChip from "../UiChip/UiChip.vue";
5
+ import UiIcon from "../UiIcon/UiIcon.vue";
6
+ import UiIconButton from "../UiIconButton/UiIconButton.vue";
7
+ import UiSearchBar from "./UiSearchBar.vue";
8
+
9
+ type PropsAndStoryProps = InstanceType<typeof UiSearchBar> & {
10
+ hiddenFilterRules: number;
11
+ };
12
+
13
+ const meta = {
14
+ title: "Ui/UiSearchBar",
15
+ component: UiSearchBar,
16
+ argTypes: {
17
+ modelValue: { control: "text" },
18
+ placeholder: { control: "text" },
19
+ backgroundColor: {
20
+ control: "select",
21
+ options: ["gray", "white"],
22
+ },
23
+ hiddenFilterRules: { control: "number" },
24
+ isFilterChipEditable: { control: "boolean" },
25
+ hasShadow: { control: "boolean" },
26
+ slotClass: { control: "text" },
27
+ resetButtonWrapperClass: { control: "text" },
28
+ },
29
+ args: {
30
+ modelValue: "",
31
+ placeholder: "Suchen",
32
+ backgroundColor: "gray",
33
+ hiddenFilterRules: 0,
34
+ isFilterChipEditable: true,
35
+ hasShadow: false,
36
+ slotClass: "",
37
+ resetButtonWrapperClass: "",
38
+ },
39
+ } satisfies Meta<PropsAndStoryProps>;
40
+
41
+ export default meta;
42
+ type Story = StoryObj<PropsAndStoryProps>;
43
+
44
+ export const Default: Story = {
45
+ render: (args) => ({
46
+ components: { UiSearchBar },
47
+ setup() {
48
+ return { args };
49
+ },
50
+ template:
51
+ "<div class='bg-white h-24 flex items-center p-4 w-full'><UiSearchBar v-bind='args'></UiSearchBar></div>",
52
+ }),
53
+ };
54
+
55
+ export const WithActionButtons: Story = {
56
+ render: (args) => ({
57
+ components: {
58
+ UiSearchBar,
59
+ UiButton,
60
+ UiIconButton,
61
+ UiIcon,
62
+ },
63
+ setup() {
64
+ const getLabelText = (num: number) => {
65
+ if (!num) {
66
+ return "";
67
+ }
68
+ if (num > 1) {
69
+ return `+ ${num} Suchkriterien`;
70
+ }
71
+ return "+ 1 Suchkriterium";
72
+ };
73
+ const criteriaLabelText = () => {
74
+ return getLabelText(args.hiddenFilterRules);
75
+ };
76
+ return { args, criteriaLabelText };
77
+ },
78
+ template: `
79
+ <div class="bg-white h-24 flex items-center p-4 w-full">
80
+ <UiSearchBar v-bind="args">
81
+ <template #searchCriteriaButton>
82
+ <div class="mr-2">
83
+ <span
84
+ v-if="criteriaLabelText"
85
+ class="
86
+ self-center
87
+ mr-1
88
+ text-xs
89
+ font-medium
90
+ whitespace-no-wrap
91
+ cursor-pointer
92
+ text-blue
93
+ hover:text-blue-dark
94
+ "
95
+ >
96
+ {{ criteriaLabelText() }}
97
+ </span>
98
+ </div>
99
+ </template>
100
+ <template #extendedSearchButton>
101
+ <UiButton
102
+ size="xs"
103
+ class="border-none mr-1 font-semibold text-gray-800 hover:text-blue-default"
104
+ color="transparent"
105
+
106
+ >
107
+ Erweiterte Suche
108
+ <UiIcon
109
+ name="chevron-down"
110
+ size="medium"
111
+ />
112
+ </UiButton>
113
+ </template>
114
+ <template #resetButton>
115
+ <div class="mx-2">
116
+ <div
117
+ class="
118
+ flex
119
+ items-center
120
+ justify-center
121
+ flex-none
122
+ h-full
123
+ bg-gray-100
124
+ "
125
+ >
126
+ <UiIconButton icon-name="close" background-color="none" icon-color="gray" size="large" />
127
+ </div>
128
+ </div>
129
+ </template>
130
+ <template #searchButton>
131
+ <div class="flex items-center justify-center">
132
+ <div class="w-2 h-8 border-l border-gray-300"></div>
133
+ <UiIconButton icon-name="search" background-color="none" icon-color="gray" size="large" />
134
+ </div>
135
+ </template>
136
+ </UiSearchBar>
137
+ </div>`,
138
+ }),
139
+ };
140
+
141
+ export const WithChips: Story = {
142
+ render: (args) => ({
143
+ components: {
144
+ UiSearchBar,
145
+ UiButton,
146
+ UiIconButton,
147
+ UiIcon,
148
+ UiChip,
149
+ },
150
+ setup() {
151
+ return { args };
152
+ },
153
+ template: `
154
+ <div class="bg-white h-24 flex items-center p-4 w-full">
155
+ <UiSearchBar v-bind="args">
156
+ <template #nonEditableChips>
157
+ <UiChip v-if="!args.isFilterChipEditable" class="ml-2">
158
+ <UiIcon
159
+ name="pin"
160
+ size="small"
161
+ class="mr-2"
162
+ />
163
+ <span class="text-small">Nur Top-Einträge</span>
164
+ <UiIconButton icon-name="close" background-color="none" icon-color="gray" size="small"
165
+ class="hover:bg-gray-400 active:bg-gray-500 ml-1" />
166
+ </UiChip>
167
+ </template>
168
+ <template #editableChips>
169
+ <UiChip v-if="args.value" class="ml-2">
170
+ <span class="text-small">{{ args.value }}</span>
171
+ <UiIconButton icon-name="close" background-color="none" icon-color="gray" size="small"
172
+ class="hover:bg-gray-400 active:bg-gray-500 ml-1" />
173
+ </UiChip>
174
+ </template>
175
+ <template #extendedSearchButton>
176
+ <UiButton
177
+ size="xs"
178
+ class="border-none mr-1 font-semibold text-gray-800 hover:text-blue-default"
179
+ color="transparent"
180
+ >
181
+ Erweiterte Suche
182
+ <UiIcon
183
+ name="chevron-down"
184
+ size="medium"
185
+ />
186
+ </UiButton>
187
+ </template>
188
+ </UiSearchBar>
189
+ </div>`,
190
+ }),
191
+ };
@@ -0,0 +1,45 @@
1
+ import { mount } from "@vue/test-utils";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ import UiSearchInput from "./UiSearchInput.vue";
5
+
6
+ describe("UiSearchInput", () => {
7
+ const wrapper = mount(UiSearchInput, {
8
+ props: {
9
+ hasAddEntryOption: true,
10
+ placeholder: "Default placeholder",
11
+ modelValue: [""],
12
+ },
13
+ });
14
+
15
+ it("displays and emits entries", async () => {
16
+ const searchQuery = "Suchbegriff";
17
+ const textInput = wrapper.find("input");
18
+ await textInput.setValue(searchQuery);
19
+ expect(wrapper.emitted().input).toBeTruthy();
20
+ expect(textInput.element.value).toBe(searchQuery);
21
+ });
22
+
23
+ it("adds searchbar row when addRow button is clicked", async () => {
24
+ const searchQuery = "Suchbegriff";
25
+ const textInput = wrapper.find("input");
26
+ await textInput.setValue(searchQuery);
27
+ await textInput.trigger("input");
28
+ const addRowButton = wrapper.find("button");
29
+ await addRowButton.trigger("click");
30
+ expect(wrapper.findAll("input")).toHaveLength(2);
31
+ });
32
+
33
+ it("deletes second row when there is no text in the searchbar", async () => {
34
+ const searchQuery = "Suchbegriff";
35
+ const textInput = wrapper.find("input");
36
+ await textInput.setValue(searchQuery);
37
+ await textInput.trigger("input");
38
+ const addRowButton = wrapper.find("button");
39
+ await addRowButton.trigger("click");
40
+
41
+ const [, secondInput] = wrapper.findAll("input");
42
+ await secondInput.trigger("keyup.delete");
43
+ expect(wrapper.findAll("input")).toHaveLength(1);
44
+ });
45
+ });
@@ -0,0 +1,61 @@
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
+ import { action } from "storybook/actions";
3
+
4
+ import UiSearchInput from "./UiSearchInput.vue";
5
+
6
+ const meta = {
7
+ title: "Ui/UiSearchInput",
8
+ component: UiSearchInput,
9
+ argTypes: {
10
+ hasAddEntryOption: {
11
+ control: "boolean",
12
+ },
13
+ label: {
14
+ control: "text",
15
+ },
16
+ modelValue: {
17
+ control: {
18
+ type: "object",
19
+ },
20
+ },
21
+ placeholder: {
22
+ control: "text",
23
+ },
24
+ },
25
+ args: {
26
+ hasAddEntryOption: false,
27
+ label: "",
28
+ modelValue: [""],
29
+ placeholder: "Default placeholder",
30
+ },
31
+ parameters: {
32
+ backgrounds: { default: "white" },
33
+ },
34
+ render: (args) => ({
35
+ setup() {
36
+ return { args };
37
+ },
38
+ components: { UiSearchInput },
39
+ template:
40
+ "<UiSearchInput v-bind='args' :model-value='args.modelValue' @update:model-value='action' />",
41
+ methods: { action: action("update:modelValue") },
42
+ }),
43
+ } satisfies Meta<typeof UiSearchInput>;
44
+
45
+ export default meta;
46
+ type Story = StoryObj<typeof meta>;
47
+
48
+ export const Default: Story = {};
49
+
50
+ export const WithLabel = {
51
+ args: {
52
+ label: "Default label",
53
+ },
54
+ };
55
+
56
+ export const MultipleInputs = {
57
+ args: {
58
+ label: "Default label",
59
+ hasAddEntryOption: true,
60
+ },
61
+ };
@@ -0,0 +1,49 @@
1
+ import { mount } from "@vue/test-utils";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ import UiSection from "./UiSection.vue";
5
+
6
+ describe("UiSection", () => {
7
+ const wrapper = mount(UiSection, {
8
+ slots: {
9
+ default: "Slot text",
10
+ },
11
+ });
12
+
13
+ it("renders with slot content", () => {
14
+ const inner = wrapper.find('[data-testid="inner"]');
15
+
16
+ expect(inner.text()).toBe("Slot text");
17
+ });
18
+
19
+ it("renders with border classes", async () => {
20
+ await wrapper.setProps({
21
+ borderTop: true,
22
+ borderBottom: true,
23
+ });
24
+ expect(wrapper.classes("border-t")).toBe(true);
25
+ expect(wrapper.classes("border-b")).toBe(true);
26
+ });
27
+
28
+ it("renders with padding classes", async () => {
29
+ await wrapper.setProps({
30
+ verticalPadding: "small",
31
+ });
32
+ const inner = wrapper.find('[data-testid="inner"]');
33
+
34
+ expect(inner.classes("lg:py-12")).toBe(true);
35
+ expect(inner.classes("pt-8")).toBe(true);
36
+ expect(inner.classes("pb-12")).toBe(true);
37
+ });
38
+
39
+ it("renders with size classes", async () => {
40
+ await wrapper.setProps({
41
+ size: "small",
42
+ });
43
+ const inner = wrapper.find('[data-testid="inner"]');
44
+
45
+ expect(inner.classes("w-full")).toBe(true);
46
+ expect(inner.classes("lg:mx-auto")).toBe(true);
47
+ expect(inner.classes("lg:w-2/3")).toBe(true);
48
+ });
49
+ });
@@ -0,0 +1,61 @@
1
+ import type { Meta, StoryObj } from "@storybook/vue3-vite";
2
+
3
+ import UiSection from "./UiSection.vue";
4
+
5
+ const meta = {
6
+ title: "Ui/UiSection",
7
+ component: UiSection,
8
+ argTypes: {
9
+ size: {
10
+ control: "select",
11
+ options: ["wide", "small"],
12
+ },
13
+ verticalPadding: {
14
+ control: "select",
15
+ options: ["small", "large", "none"],
16
+ },
17
+ borderTop: {
18
+ control: "boolean",
19
+ },
20
+ borderBottom: {
21
+ control: "boolean",
22
+ },
23
+ },
24
+ args: {
25
+ size: "small",
26
+ verticalPadding: "large",
27
+ borderTop: false,
28
+ borderBottom: false,
29
+ },
30
+ parameters: {
31
+ backgrounds: { default: "gray-100" },
32
+ },
33
+ tags: ["deprecated"],
34
+ } satisfies Meta<typeof UiSection>;
35
+
36
+ export default meta;
37
+ type Story = StoryObj<typeof meta>;
38
+
39
+ export const Default: Story = {
40
+ render: (args) => ({
41
+ setup() {
42
+ return { args };
43
+ },
44
+ components: { UiSection },
45
+ template: "<UiSection v-bind='args'>Slot</UiSection>",
46
+ }),
47
+ };
48
+
49
+ export const Multiple: Story = {
50
+ render: (args) => ({
51
+ setup() {
52
+ return { args };
53
+ },
54
+ components: { UiSection },
55
+ template:
56
+ "<UiSection v-bind='args'>Slot1</UiSection>" +
57
+ "<UiSection v-bind='args'>Slot2</UiSection>" +
58
+ "<UiSection v-bind='args'>Slot3</UiSection>" +
59
+ "<UiSection v-bind='args'>Slot4</UiSection>",
60
+ }),
61
+ };
@@ -0,0 +1,19 @@
1
+ import { mount } from "@vue/test-utils";
2
+ import { describe, expect, it } from "vitest";
3
+
4
+ import UiSectionDivider from "./UiSectionDivider.vue";
5
+
6
+ describe("UiSectionDivider", () => {
7
+ const wrapper = mount(UiSectionDivider);
8
+
9
+ it("renders default size class", () => {
10
+ expect(wrapper.classes("h-4")).toBe(true);
11
+ });
12
+
13
+ it("renders small size class", async () => {
14
+ await wrapper.setProps({
15
+ size: "small",
16
+ });
17
+ expect(wrapper.classes("h-px")).toBe(true);
18
+ });
19
+ });