@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.
- package/dist/_plugin-vue_export-helper-BTgDAbhb.js +8 -0
- package/dist/{activities-BdgBJTuA.js → activities-BxyZQp7R.js} +5 -4
- package/dist/{ai-CRKea4DD.js → ai-CvQQ6hUw.js} +5 -4
- package/dist/{alert-73LhoiBH.js → alert-BeP6nqRf.js} +5 -4
- package/dist/{alert-fill-CtKKZrZO.js → alert-fill-BHn_Z4vo.js} +5 -4
- package/dist/{alert-octagon-BFcCcEQq.js → alert-octagon-Cd-_T4ON.js} +5 -4
- package/dist/{apps-BcyMOR4e.js → apps-CtY6nO4d.js} +5 -4
- package/dist/{archive-CMuBva_u.js → archive-DmV6cQ50.js} +5 -4
- package/dist/{arrow-down-WJdG351R.js → arrow-down-Cfib5c-0.js} +5 -4
- package/dist/{arrow-left-H5cUyllC.js → arrow-left-CFSY8V--.js} +5 -4
- package/dist/{arrow-nav-left-CvZfWsrk.js → arrow-nav-left-BRYPr4oj.js} +5 -4
- package/dist/{arrow-nav-right-CUN92-9v.js → arrow-nav-right-PqR7W08e.js} +5 -4
- package/dist/{arrow-right-Dai72xIp.js → arrow-right-ByFSLzJb.js} +5 -4
- package/dist/{arrow-up-D9lAqZA8.js → arrow-up-DfhQKYKi.js} +5 -4
- package/dist/{arrowhead-left-SJXGjhbq.js → arrowhead-left-BxBCmhZy.js} +5 -4
- package/dist/{arrowhead-right-BhZbSG2r.js → arrowhead-right-D6Hk6b6x.js} +5 -4
- package/dist/{arrowhead-top-BEqJzGKA.js → arrowhead-top-wkcSxZmc.js} +5 -4
- package/dist/{atmo-CZCUnUYN.js → atmo-CqanVC-e.js} +5 -4
- package/dist/{audio-CnSs3MVV.js → audio-DLQLFJ3x.js} +5 -4
- package/dist/{audio-circled-Cku32Yiu.js → audio-circled-amRbTaDb.js} +5 -4
- package/dist/{audio-filled-CVOOatbn.js → audio-filled-C7m_-PTb.js} +5 -4
- package/dist/{bag-Cx7iHwPQ.js → bag-Br7SrnRJ.js} +5 -4
- package/dist/{bell-fill-D-dFYpLV.js → bell-fill-DHRfa4cC.js} +5 -4
- package/dist/{bell-CwI9Vb62.js → bell-kOosto6B.js} +5 -4
- package/dist/{book-B0ailmur.js → book-D0Xsp8As.js} +5 -4
- package/dist/{bookmark-CLdYV4f9.js → bookmark-DNJYJq0J.js} +5 -4
- package/dist/{bookmark-fill-wdEWET5w.js → bookmark-fill-DbkrXmPt.js} +5 -4
- package/dist/{bookmark-outlined-Dd7PyuTU.js → bookmark-outlined-D41PleT8.js} +5 -4
- package/dist/{box-CfW1bBum.js → box-Bw_tD7Nd.js} +5 -4
- package/dist/{bulb-K8jFZmfR.js → bulb-tXJKei6j.js} +5 -4
- package/dist/{call-CquDMWn4.js → call-BdzulBfZ.js} +5 -4
- package/dist/{camera-CB6fKe82.js → camera-D8so0Wqg.js} +5 -4
- package/dist/{check-BBMwdc1e.js → check-CTBqwPMY.js} +5 -4
- package/dist/{checklist-Df5fhkTx.js → checklist-CVBb2iLT.js} +5 -4
- package/dist/{checkmark-Bk3th8aU.js → checkmark-BkBvk5FP.js} +5 -4
- package/dist/{checkmark-double-JBEWrsse.js → checkmark-double-9tbcPPxC.js} +5 -4
- package/dist/{chevron-down-Sq-Omasi.js → chevron-down-BcjUrqWQ.js} +5 -4
- package/dist/{chevron-left-ka3w4LWP.js → chevron-left-DdChgK6Q.js} +5 -4
- package/dist/{chevron-right-DmvJo-Nn.js → chevron-right-BR3OVahz.js} +5 -4
- package/dist/{chevron-up-DakU_cBn.js → chevron-up-R3uiTZDq.js} +5 -4
- package/dist/{clipboard-DyMMjIVc.js → clipboard-BFi2VbBj.js} +5 -4
- package/dist/{clock-CtkOHG1g.js → clock-C3D4TRfx.js} +5 -4
- package/dist/{close-DjFVZt2u.js → close-CbIMNMG_.js} +5 -4
- package/dist/{cloud-save-acm4FjOr.js → cloud-save-CQCTGXxN.js} +5 -4
- package/dist/{code-BJgY-9g3.js → code-ChJ2qMcZ.js} +5 -4
- package/dist/{collapse-CalQPYhZ.js → collapse-DISUbIVr.js} +5 -4
- package/dist/{color-palette-DRN9z5Vz.js → color-palette-B4pqFFIE.js} +5 -4
- package/dist/{comment-CWIccK83.js → comment-CzF3hkpf.js} +5 -4
- package/dist/{comment-fill-BVza8Jz-.js → comment-fill-Dc-swkQu.js} +5 -4
- package/dist/{copy-Bk8cFSbJ.js → copy-CywrUiK2.js} +5 -4
- package/dist/{copy-link-DOfXU7RD.js → copy-link-DqcNlpUK.js} +5 -4
- package/dist/{delete-DsugmFOu.js → delete-Bl6aSpBn.js} +5 -4
- package/dist/{download-BeWUwd0y.js → download-BdnIOaET.js} +5 -4
- package/dist/{dpa-id-Ly2f4-Kw.js → dpa-id-4HKRxUEF.js} +5 -4
- package/dist/dpa-shared-components.js +4230 -4194
- package/dist/{edit-D69xOR64.js → edit-KtC1G-_s.js} +5 -4
- package/dist/{edit-add-C5WDTIjN.js → edit-add-DjUq6zXq.js} +5 -4
- package/dist/{eil-Cb4014LI.js → eil-CPA4kVQM.js} +5 -4
- package/dist/{emoji-D72nL3d1.js → emoji-C2BmBFxC.js} +5 -4
- package/dist/{emoji-add-BrzLAJ3E.js → emoji-add-NHqne_6m.js} +5 -4
- package/dist/{envelope-kda2hV7_.js → envelope-BDSOA_J7.js} +5 -4
- package/dist/{event-8phFSDv9.js → event-Bo_sb247.js} +5 -4
- package/dist/{expand-BtinEH3A.js → expand-BK_uzKmx.js} +5 -4
- package/dist/{external-link-CNYm-GlZ.js → external-link-BPYyKPIa.js} +5 -4
- package/dist/{file-BOEeXxXs.js → file-B97T9C2M.js} +5 -4
- package/dist/{file-pdf-DJaalWDa.js → file-pdf-lFk-5brY.js} +5 -4
- package/dist/{filter-BjVZbhND.js → filter-BIJnBkRa.js} +5 -4
- package/dist/{filter-outline-BoEVSezK.js → filter-outline-ChWKUbSt.js} +5 -4
- package/dist/{flag-DgOeofob.js → flag-DNP4L-y-.js} +5 -4
- package/dist/{flag-fill-BVhHWhiP.js → flag-fill-C3XgapYW.js} +5 -4
- package/dist/{flag-filled-CTSdIBWY.js → flag-filled-CdVD_QxY.js} +5 -4
- package/dist/{flag-outline-BgYyW8nX.js → flag-outline-ChGgKT6P.js} +5 -4
- package/dist/{flags-CMwN4aB0.js → flags-G-Nbo5ST.js} +5 -4
- package/dist/{flash-BhAeSS1k.js → flash-9TBwsdOx.js} +5 -4
- package/dist/{folder-add-Ya2GcM-i.js → folder-add-B-l2wmwY.js} +5 -4
- package/dist/{folder-fill-Ca6bXRw-.js → folder-fill-CnEmPx6c.js} +5 -4
- package/dist/{folder-filled-BBR8bJQL.js → folder-filled-zwvSw3Sd.js} +5 -4
- package/dist/{folder-D79ZQ9RA.js → folder-s6NWFqjh.js} +5 -4
- package/dist/{gallery-CsCgah-Q.js → gallery-B8I5lJ51.js} +5 -4
- package/dist/{graphic-circled-BYvbiPFv.js → graphic-circled-BtuNYmPh.js} +5 -4
- package/dist/{graphic-CZ1VEgbk.js → graphic-d-_5qmyr.js} +5 -4
- package/dist/{graphic-filled-B640yZW1.js → graphic-filled-DXQvxz4s.js} +5 -4
- package/dist/{graphics-DOD41Q2b.js → graphics-eur3JZ_7.js} +5 -4
- package/dist/{grid-1-reX52mXX.js → grid-1-DOm2nS5Y.js} +5 -4
- package/dist/{grid-2-biGoKZET.js → grid-2-D9XOIyFO.js} +5 -4
- package/dist/{grid-3-B8ccFfrT.js → grid-3-CR1E0m9u.js} +5 -4
- package/dist/{grid-4-CqTE5F_g.js → grid-4-QKKeiUGc.js} +5 -4
- package/dist/{grid-6-DbKV_eBX.js → grid-6-C5bCbXur.js} +5 -4
- package/dist/{grid-9-CTSAZ4UT.js → grid-9-FNxsRYRg.js} +5 -4
- package/dist/{grid-masonry-9-CKioEJuZ.js → grid-masonry-9-CxLBpKCz.js} +5 -4
- package/dist/{grid-masonry-B593q1l6.js → grid-masonry-CuwXzdZ6.js} +5 -4
- package/dist/{help-DiKackos.js → help-DkjfD818.js} +5 -4
- package/dist/{home-Do4YF4Dd.js → home-njHAfgwc.js} +5 -4
- package/dist/{image focus point-C0vK6FzN.js → image focus point-D_hUlTWi.js } +5 -4
- package/dist/{image-BWGxTMMW.js → image-C2RlXeDP.js} +5 -4
- package/dist/{impact-high-DdaQcLOu.js → impact-high-C0SywXT1.js} +5 -4
- package/dist/{impact-low-zbvAdhZ1.js → impact-low-yDd0jU4k.js} +5 -4
- package/dist/{impact-medium-BhfzSQAK.js → impact-medium-Cc_nInN7.js} +5 -4
- package/dist/{impact-very-high-qcPfp2yw.js → impact-very-high-DiOgG_Ji.js} +5 -4
- package/dist/{impact-very-low-Dz86WvEI.js → impact-very-low-CYW4RgJO.js} +5 -4
- package/dist/{info-9llr8kqZ.js → info-NBFIJ3YI.js} +5 -4
- package/dist/{info-fill-DvyOjyX-.js → info-fill-DlgeXJbI.js} +5 -4
- package/dist/{info-filled-c2KLORVR.js → info-filled-Btao1rhT.js} +5 -4
- package/dist/{label-DRVpH3Zf.js → label-CTr8hHIv.js} +5 -4
- package/dist/{label-filled-CTReJE3_.js → label-filled-CnTpOqvX.js} +5 -4
- package/dist/{language-CaK3obhv.js → language-UqPESR_Z.js} +5 -4
- package/dist/{latest-Bh5w8w2R.js → latest-Cq12zjMs.js} +5 -4
- package/dist/{lightbulb-D55X29rD.js → lightbulb-BpK9qU_u.js} +5 -4
- package/dist/{list-Dm0wrpKz.js → list-DKcsNf15.js} +5 -4
- package/dist/{list-search-BWPAGqHW.js → list-search-BzZuYf_P.js} +5 -4
- package/dist/{lock-Bair96dL.js → lock-BFfHVSog.js} +5 -4
- package/dist/{lock-filled-BNZJ0waC.js → lock-filled-C5I60_d0.js} +5 -4
- package/dist/{mail-Mn2wq1aV.js → mail-pagEqHtM.js} +5 -4
- package/dist/{map-D1irc7wN.js → map-BMOQGCce.js} +5 -4
- package/dist/{map-outline-B00hms9f.js → map-outline-uvK8An7m.js} +5 -4
- package/dist/{menu-CVkyyeDW.js → menu-j4cvnLP8.js} +5 -4
- package/dist/{minus-B89-4r0W.js → minus-CGsJ-jkT.js} +5 -4
- package/dist/{more-horizontal-BOq3UKiU.js → more-horizontal-CDZjG5h8.js} +5 -4
- package/dist/{more-vertical-CJOSDU6R.js → more-vertical-YUehtvol.js} +5 -4
- package/dist/{move-B7GHCUbm.js → move-CiU3PwqY.js} +5 -4
- package/dist/{move-up-down-Ch8L5sZC.js → move-up-down-H-qHtTwO.js} +5 -4
- package/dist/{navigation-BTddw232.js → navigation-DmqoQINO.js} +5 -4
- package/dist/{note-BvnqgyHg.js → note-BZ3q-D4L.js} +5 -4
- package/dist/{offline-YOyb2Tfr.js → offline-CLl0pwpv.js} +5 -4
- package/dist/{package-Ckm27fjL.js → package-iJOVTpPH.js} +5 -4
- package/dist/{paper-plane-BttsgNjZ.js → paper-plane-DcYms0cj.js} +5 -4
- package/dist/{paperplane-BqxbaXXQ.js → paperplane-ed0y9oB6.js} +5 -4
- package/dist/{pause-Du648vV9.js → pause-COAxeJRm.js} +5 -4
- package/dist/{pause-circle-C0ua224p.js → pause-circle-ab18LhX3.js} +5 -4
- package/dist/{pdf-Ddg3TU0B.js → pdf-BweFqxRM.js} +5 -4
- package/dist/{pen-CQhBRQVg.js → pen-CmBOMgX_.js} +5 -4
- package/dist/{pen-check-BZme3WMH.js → pen-check-BApB0Zi2.js} +5 -4
- package/dist/{people-COXR5CoD.js → people-D07vIou7.js} +5 -4
- package/dist/{phone-BauDKm-k.js → phone-B9TyVbBj.js} +5 -4
- package/dist/{picture-C3UMrriC.js → picture-DJRwU5Gl.js} +5 -4
- package/dist/{picture-circled-DBlYCjnY.js → picture-circled-DYsNZNYH.js} +5 -4
- package/dist/{picture-filled-O2z4--dy.js → picture-filled-CQYRN3Fa.js} +5 -4
- package/dist/{picture-gallery-C9c2zcxU.js → picture-gallery-BgWYQrqC.js} +5 -4
- package/dist/{pin-BMODlehD.js → pin-BlBzA8ov.js} +5 -4
- package/dist/{planning-Dtx9YzGr.js → planning-BhE-A4FO.js} +5 -4
- package/dist/{play-C5cuKZV0.js → play-BXy8WcYq.js} +5 -4
- package/dist/{play-circle-CL5tEg9v.js → play-circle-B88YxOh-.js} +5 -4
- package/dist/{play-fill-DSV0DW-T.js → play-fill-nWPoHjD3.js} +5 -4
- package/dist/{plus-DCPlMZXW.js → plus-CmEv_iHA.js} +5 -4
- package/dist/{plus-circle-DjR4qFC0.js → plus-circle-DKWKVMiq.js} +5 -4
- package/dist/{print-DXBUPTFP.js → print-ChdLXKHj.js} +5 -4
- package/dist/{refresh-BcwO7Jw6.js → refresh-C7k19NtO.js} +5 -4
- package/dist/{reset-B1yR8nzO.js → reset-CpXqaOj5.js} +5 -4
- package/dist/{responsive-DGZkLyEW.js → responsive-CKNXzAo1.js} +5 -4
- package/dist/{rubix-thema-CCIj5kn3.js → rubix-thema-Cmk-5-bm.js} +5 -4
- package/dist/{save-DvQxrVk-.js → save-BX3-Z5qP.js} +5 -4
- package/dist/{saved-search-BDu5PZQb.js → saved-search-Be8D9tJ9.js} +5 -4
- package/dist/{saved-search-fill-BffgdGo8.js → saved-search-fill-CPoyaMRU.js} +5 -4
- package/dist/{search-CXfaMRZ9.js → search-BeIwOzJl.js} +5 -4
- package/dist/{settings-D7xABZln.js → settings-CLChu_zl.js} +5 -4
- package/dist/{share-alternative-C4HzRC3B.js → share-alternative-BD-WQYvk.js} +5 -4
- package/dist/{share-BQm_gGv6.js → share-j6ezShBH.js} +5 -4
- package/dist/{sidebar-CwFxeKOh.js → sidebar-CPe20Xae.js} +5 -4
- package/dist/{sidebar-fill-BcquZLLX.js → sidebar-fill-CBSJYVQQ.js} +5 -4
- package/dist/{slack-CIhJ-_vs.js → slack-BjvLF16S.js} +5 -4
- package/dist/{slider-config-5UwhkENY.js → slider-config-CTzwxojK.js} +5 -4
- package/dist/{spellcheck-ClGD2dI8.js → spellcheck-thqRUMx9.js} +5 -4
- package/dist/{spinner-Ds5nod21.js → spinner-dy09pOOm.js} +5 -4
- package/dist/src/components/DpaMediaItem/DpaMediaItem.spec.ts +123 -0
- package/dist/src/components/DpaMediaItem/DpaMediaItem.stories.ts +140 -0
- package/dist/src/components/UiAutocomplete/UiAutocomplete.spec.ts +39 -0
- package/dist/src/components/UiAutocomplete/UiAutocomplete.stories.ts +46 -0
- package/dist/src/components/UiBadge/UiBadge.spec.ts +32 -0
- package/dist/src/components/UiBadge/UiBadge.stories.ts +80 -0
- package/dist/src/components/UiButton/UiButton.spec.ts +136 -0
- package/dist/src/components/UiButton/UiButton.stories.ts +57 -0
- package/dist/src/components/UiButtonGroup/UiButtonGroup.spec.ts +16 -0
- package/dist/src/components/UiButtonGroup/UiButtonGroup.stories.ts +50 -0
- package/dist/src/components/UiCard/UiCard.spec.ts +16 -0
- package/dist/src/components/UiCard/UiCard.stories.ts +30 -0
- package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.spec.ts +67 -0
- package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.stories.ts +59 -0
- package/dist/src/components/UiCheckbox/UiCheckbox.spec.ts +173 -0
- package/dist/src/components/UiCheckbox/UiCheckbox.stories.ts +99 -0
- package/dist/src/components/UiChip/UiChip.spec.ts +75 -0
- package/dist/src/components/UiChip/UiChip.stories.ts +39 -0
- package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.spec.ts +21 -0
- package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.stories.ts +66 -0
- package/dist/src/components/UiColorPicker/UiColorPicker.spec.ts +52 -0
- package/dist/src/components/UiColorPicker/UiColorPicker.stories.ts +44 -0
- package/dist/src/components/UiDatePicker/UiDatePicker.spec.ts +335 -0
- package/dist/src/components/UiDatePicker/UiDatePicker.stories.ts +273 -0
- package/dist/src/components/UiDialog/UiDialog.spec.ts +160 -0
- package/dist/src/components/UiDialog/UiDialog.stories.ts +79 -0
- package/dist/src/components/UiFilterBadge/UiFilterBadge.spec.ts +17 -0
- package/dist/src/components/UiFilterBadge/UiFilterBadge.stories.ts +44 -0
- package/dist/src/components/UiFilterBadgeButton/UiFilterBadgeButton.spec.ts +41 -0
- package/dist/src/components/UiFilterBadgeButton/UiFilterBadgeButton.stories.ts +55 -0
- package/dist/src/components/UiFilterButton/UiFilterButton.spec.ts +79 -0
- package/dist/src/components/UiFilterButton/UiFilterButton.stories.ts +88 -0
- package/dist/src/components/UiIcon/IconOverview.stories.vue +23 -0
- package/dist/src/components/UiIcon/UiIcon.spec.ts +56 -0
- package/dist/src/components/UiIcon/UiIcon.stories.ts +48 -0
- package/dist/src/components/UiIconButton/UiIconButton.spec.ts +78 -0
- package/dist/src/components/UiIconButton/UiIconButton.stories.ts +63 -0
- package/dist/src/components/UiInfoContent/UiInfoContent.spec.ts +43 -0
- package/dist/src/components/UiInfoContent/UiInfoContent.stories.ts +56 -0
- package/dist/src/components/UiInput/UiInput.spec.ts +239 -0
- package/dist/src/components/UiInput/UiInput.stories.ts +127 -0
- package/dist/src/components/UiList/UiList.spec.ts +22 -0
- package/dist/src/components/UiList/UiList.stories.ts +64 -0
- package/dist/src/components/UiListItem/UiListItem.spec.ts +99 -0
- package/dist/src/components/UiListItem/UiListItem.stories.ts +83 -0
- package/dist/src/components/UiMenu/UiMenu.spec.ts +319 -0
- package/dist/src/components/UiMenu/UiMenu.stories.ts +634 -0
- package/dist/src/components/UiOverlay/UiOverlay.spec.ts +16 -0
- package/dist/src/components/UiOverlay/UiOverlay.stories.ts +22 -0
- package/dist/src/components/UiOverlayMenu/UiOverlayMenu.spec.ts +32 -0
- package/dist/src/components/UiOverlayMenu/UiOverlayMenu.stories.ts +39 -0
- package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.spec.ts +66 -0
- package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.stories.ts +70 -0
- package/dist/src/components/UiSearchBar/UiSearchBar.spec.ts +82 -0
- package/dist/src/components/UiSearchBar/UiSearchBar.stories.ts +191 -0
- package/dist/src/components/UiSearchInput/UiSearchInput.spec.ts +45 -0
- package/dist/src/components/UiSearchInput/UiSearchInput.stories.ts +61 -0
- package/dist/src/components/UiSection/UiSection.spec.ts +49 -0
- package/dist/src/components/UiSection/UiSection.stories.ts +61 -0
- package/dist/src/components/UiSectionDivider/UiSectionDivider.spec.ts +19 -0
- package/dist/src/components/UiSectionDivider/UiSectionDivider.stories.ts +48 -0
- package/dist/src/components/UiSelect/UIiSelect.spec.ts +102 -0
- package/dist/src/components/UiSelect/UiSelect.stories.ts +94 -0
- package/dist/src/components/UiSimpleInput/UiSimpleInput.spec.ts +58 -0
- package/dist/src/components/UiSimpleInput/UiSimpleInput.stories.ts +53 -0
- package/dist/src/components/UiSkeletonBox/UiSkeletonBox.spec.ts +15 -0
- package/dist/src/components/UiSkeletonBox/UiSkeletonBox.stories.ts +33 -0
- package/dist/src/components/UiSnackbar/UiSnackbar.spec.ts +63 -0
- package/dist/src/components/UiSnackbar/UiSnackbar.stories.ts +65 -0
- package/dist/src/components/UiSpinner/UiSpinner.spec.ts +30 -0
- package/dist/src/components/UiSpinner/UiSpinner.stories.ts +48 -0
- package/dist/src/components/UiTextButton/UiTextButton.spec.ts +99 -0
- package/dist/src/components/UiTextButton/UiTextButton.stories.ts +60 -0
- package/dist/src/components/UiToggleButton/UiToggleButton.spec.ts +89 -0
- package/dist/src/components/UiToggleButton/UiToggleButton.stories.ts +102 -0
- package/dist/src/components/UiTooltip/UiTooltip.spec.ts +139 -0
- package/dist/src/components/UiTooltip/UiTooltip.stories.ts +107 -0
- package/dist/src/compositions/useBreakpoints/UseBreakpoints.stories.ts +23 -0
- package/dist/src/compositions/useBreakpoints/UseBreakpoints.stories.vue +12 -0
- package/dist/src/utils/index.spec.ts +12 -0
- package/dist/{standard-view-hRZ2UVqX.js → standard-view-dE52BPUm.js} +5 -4
- package/dist/{star-fill-B10bjB48.js → star-fill-DIXwg3gQ.js} +5 -4
- package/dist/{star-filled-BISydRRE.js → star-filled-BqrpxMqq.js} +5 -4
- package/dist/{star-DC_rTR6e.js → star-uv_o0S9H.js} +5 -4
- package/dist/{stop-D6NZK5EY.js → stop-CrmQCpqp.js} +5 -4
- package/dist/{story-B3kiPLs0.js → story-CUBTcSOv.js} +5 -4
- package/dist/{sync-B5v_sNSB.js → sync-CPmOdu5b.js} +5 -4
- package/dist/{tasks-COvP7FSq.js → tasks-TKH8SUBe.js} +5 -4
- package/dist/{text--clKJFHw.js → text-BMhu0paW.js} +5 -4
- package/dist/{text-circled-hElWfl5W.js → text-circled-Cykzn5-2.js} +5 -4
- package/dist/{text-filled-BpflMH5s.js → text-filled-BwOhn26K.js} +5 -4
- package/dist/{thumbs-down-BD3Dkcr3.js → thumbs-down-LH8SIeIF.js} +5 -4
- package/dist/{thumbs-up-A2jkWz64.js → thumbs-up-WZQzpqKr.js} +5 -4
- package/dist/{thumbs-up-double-Dm7agvTj.js → thumbs-up-double-SeGWEXZ_.js} +5 -4
- package/dist/{topic-CXey3AGT.js → topic-63EhQ_l1.js} +5 -4
- package/dist/{union-DZ2yepXw.js → union-DKjbjP-9.js} +5 -4
- package/dist/{upload-DPdFqQB3.js → upload-yjh9wxAA.js} +5 -4
- package/dist/{user-need-divert-me-DF4rOe6s.js → user-need-divert-me-B_cSVEIY.js} +5 -4
- package/dist/{user-need-educate-me-ClLznwAg.js → user-need-educate-me-DOgCmShA.js} +5 -4
- package/dist/{user-need-give-me-perspective-BfI5mb08.js → user-need-give-me-perspective-2wacZI2F.js} +5 -4
- package/dist/{user-need-help-me-D-lptTdN.js → user-need-help-me-D4VE0IcH.js} +5 -4
- package/dist/{user-need-touch-me-CikvxxHD.js → user-need-touch-me-u3n8c5IH.js} +5 -4
- package/dist/{user-need-update-me-Ua4YV9Bs.js → user-need-update-me-BcDyXzME.js} +5 -4
- package/dist/{video overlay-cYzYa_B7.js → video overlay-DfhF7VpE.js } +5 -4
- package/dist/{video-CydfS_mz.js → video-BViz7WnQ.js} +5 -4
- package/dist/{video-circled-DcD57AXc.js → video-circled-Bw9Miyyr.js} +5 -4
- package/dist/{video-filled-oePCRIdo.js → video-filled-B5Td1M5L.js} +5 -4
- package/dist/{video-rounded-DCwst-WS.js → video-rounded-ISWC3gUM.js} +5 -4
- package/dist/{view-CJdB2aJG.js → view-C9Xks5Gy.js} +5 -4
- package/dist/{view-off-gIw--Mbm.js → view-off-BuSbQwX0.js} +5 -4
- package/dist/{volume-up-BhnS1V_P.js → volume-up-BLQXZI5X.js} +5 -4
- package/package.json +5 -4
- 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
|
+
});
|