@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,160 @@
|
|
|
1
|
+
import { mount } from "@vue/test-utils";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
|
|
4
|
+
import UiDialog from "./UiDialog.vue";
|
|
5
|
+
|
|
6
|
+
describe("UiDialog", () => {
|
|
7
|
+
it("renders dialog with default slot content", () => {
|
|
8
|
+
const wrapper = mount(UiDialog, {
|
|
9
|
+
slots: {
|
|
10
|
+
default: "Default Slot",
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
expect(wrapper.find("main").text()).toBe("Default Slot");
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("renders dialog with header slot content", () => {
|
|
18
|
+
const wrapper = mount(UiDialog, {
|
|
19
|
+
slots: {
|
|
20
|
+
header: "Header Slot",
|
|
21
|
+
default: "Default Slot",
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
expect(wrapper.find("header").text()).toBe("Header Slot");
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it("renders dialog with close button if by prop provided", () => {
|
|
29
|
+
const wrapper = mount(UiDialog, {
|
|
30
|
+
slots: {
|
|
31
|
+
header: "Header Slot",
|
|
32
|
+
default: "Default Slot",
|
|
33
|
+
},
|
|
34
|
+
props: {
|
|
35
|
+
hasCloseButton: true,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
expect(wrapper.find("button")).toBeTruthy();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("renders dialog with footer slot content", () => {
|
|
43
|
+
const wrapper = mount(UiDialog, {
|
|
44
|
+
slots: {
|
|
45
|
+
default: "Default Slot",
|
|
46
|
+
footer: "Footer Slot",
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
expect(wrapper.find("footer").text()).toBe("Footer Slot");
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("has maximum height set if provided through prop", () => {
|
|
54
|
+
const wrapper = mount(UiDialog, {
|
|
55
|
+
slots: {
|
|
56
|
+
default: "Default Slot",
|
|
57
|
+
},
|
|
58
|
+
props: {
|
|
59
|
+
maxHeight: "100px",
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
expect(
|
|
64
|
+
wrapper
|
|
65
|
+
.find('[data-testid="container"]')
|
|
66
|
+
.attributes()
|
|
67
|
+
.style.includes("max-height: 100px;"),
|
|
68
|
+
).toBeTruthy();
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it("has maximum width set if provided through prop", () => {
|
|
72
|
+
const wrapper = mount(UiDialog, {
|
|
73
|
+
slots: {
|
|
74
|
+
default: "Default Slot",
|
|
75
|
+
},
|
|
76
|
+
props: {
|
|
77
|
+
maxWidth: "700px",
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
expect(
|
|
82
|
+
wrapper
|
|
83
|
+
.find('[data-testid="container"]')
|
|
84
|
+
.attributes()
|
|
85
|
+
.style.includes("max-width: 700px;"),
|
|
86
|
+
).toBeTruthy();
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("is scrollable through prop", () => {
|
|
90
|
+
const wrapper = mount(UiDialog, {
|
|
91
|
+
slots: {
|
|
92
|
+
default: "Default Slot",
|
|
93
|
+
},
|
|
94
|
+
props: {
|
|
95
|
+
scrollable: true,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
expect(wrapper.find('[data-testid="container"]').classes()).toContain(
|
|
100
|
+
"overflow-y-auto",
|
|
101
|
+
);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it("fires 'close' event when background is clicked", async () => {
|
|
105
|
+
const wrapper = mount(UiDialog, {
|
|
106
|
+
slots: {
|
|
107
|
+
default: "Default Slot",
|
|
108
|
+
},
|
|
109
|
+
props: {
|
|
110
|
+
closeOnClickOutside: true,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
const bg = wrapper.find('[data-testid="background"]');
|
|
114
|
+
|
|
115
|
+
await bg.trigger("click");
|
|
116
|
+
await wrapper.vm.$nextTick();
|
|
117
|
+
expect(wrapper.emitted().close).toBeTruthy();
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it("fires 'close' event when close button is clicked", async () => {
|
|
121
|
+
const wrapper = mount(UiDialog, {
|
|
122
|
+
slots: {
|
|
123
|
+
header: "Header Slot",
|
|
124
|
+
default: "Default Slot",
|
|
125
|
+
},
|
|
126
|
+
props: {
|
|
127
|
+
hasCloseButton: true,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
const btn = wrapper.find("button");
|
|
131
|
+
|
|
132
|
+
await btn.trigger("click");
|
|
133
|
+
await wrapper.vm.$nextTick();
|
|
134
|
+
expect(wrapper.emitted().close).toBeTruthy();
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it("fires 'close' event when esc key is pressed and prop is set", async () => {
|
|
138
|
+
// Workaround to make events on `Document` Level work. See: https://test-utils.vuejs.org/api/#attachTo
|
|
139
|
+
|
|
140
|
+
document.body.innerHTML = `
|
|
141
|
+
<div>
|
|
142
|
+
<div id="app"></div>
|
|
143
|
+
</div>
|
|
144
|
+
`;
|
|
145
|
+
|
|
146
|
+
const wrapper = mount(UiDialog, {
|
|
147
|
+
attachTo: "#app",
|
|
148
|
+
slots: {
|
|
149
|
+
header: "Header Slot",
|
|
150
|
+
default: "Default Slot",
|
|
151
|
+
},
|
|
152
|
+
props: {
|
|
153
|
+
closeOnEsc: true,
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
await wrapper.trigger("keyup.Escape");
|
|
157
|
+
await wrapper.vm.$nextTick();
|
|
158
|
+
expect(wrapper.emitted().close).toBeTruthy();
|
|
159
|
+
});
|
|
160
|
+
});
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/vue3-vite";
|
|
2
|
+
import { action } from "storybook/actions";
|
|
3
|
+
|
|
4
|
+
import UiDialog from "./UiDialog.vue";
|
|
5
|
+
|
|
6
|
+
const meta = {
|
|
7
|
+
title: "Ui/UiDialog",
|
|
8
|
+
component: UiDialog,
|
|
9
|
+
argTypes: {
|
|
10
|
+
scrollable: { control: "boolean" },
|
|
11
|
+
roundedBorder: { control: "boolean" },
|
|
12
|
+
hasPaddingX: { control: "boolean" },
|
|
13
|
+
hasPaddingY: { control: "boolean" },
|
|
14
|
+
hasCloseButton: { control: "boolean" },
|
|
15
|
+
maxHeight: { control: "text" },
|
|
16
|
+
maxWidth: { control: "text" },
|
|
17
|
+
headerClasses: { control: "text" },
|
|
18
|
+
mainClasses: { control: "text" },
|
|
19
|
+
closeOnClickOutside: { control: "boolean" },
|
|
20
|
+
positionTop: {
|
|
21
|
+
control: "select",
|
|
22
|
+
options: ["50%", "20%", "40%"],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
args: {
|
|
26
|
+
scrollable: false,
|
|
27
|
+
roundedBorder: false,
|
|
28
|
+
hasPaddingX: true,
|
|
29
|
+
hasPaddingY: true,
|
|
30
|
+
hasCloseButton: true,
|
|
31
|
+
maxHeight: "",
|
|
32
|
+
maxWidth: "600px",
|
|
33
|
+
headerClasses: "",
|
|
34
|
+
mainClasses: "",
|
|
35
|
+
closeOnClickOutside: true,
|
|
36
|
+
positionTop: "50%",
|
|
37
|
+
},
|
|
38
|
+
render: (args) => ({
|
|
39
|
+
setup() {
|
|
40
|
+
return { args };
|
|
41
|
+
},
|
|
42
|
+
components: { UiDialog },
|
|
43
|
+
template:
|
|
44
|
+
"<UiDialog v-bind='args' @close='close'>" +
|
|
45
|
+
"<template #header>Dialog header</template>" +
|
|
46
|
+
"Dialog main" +
|
|
47
|
+
"<template #footer>Dialog footer</template>" +
|
|
48
|
+
"</UiDialog>",
|
|
49
|
+
methods: {
|
|
50
|
+
close: action("close"),
|
|
51
|
+
},
|
|
52
|
+
}),
|
|
53
|
+
} satisfies Meta<typeof UiDialog>;
|
|
54
|
+
|
|
55
|
+
export default meta;
|
|
56
|
+
type Story = StoryObj<typeof meta>;
|
|
57
|
+
|
|
58
|
+
export const Default: Story = {};
|
|
59
|
+
|
|
60
|
+
export const Scrollable: Story = {
|
|
61
|
+
args: {
|
|
62
|
+
scrollable: true,
|
|
63
|
+
maxHeight: "100px",
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const RoundedBorder: Story = {
|
|
68
|
+
args: {
|
|
69
|
+
roundedBorder: true,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export const CustomClasses: Story = {
|
|
74
|
+
args: {
|
|
75
|
+
headerClasses: "bg-transparent",
|
|
76
|
+
mainClasses:
|
|
77
|
+
"h-16 flex flex-row justify-center items-center bg-green-night text-white mx-4 rounded-lg",
|
|
78
|
+
},
|
|
79
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { mount } from "@vue/test-utils";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
|
|
4
|
+
import UiFilterBadge from "./UiFilterBadge.vue";
|
|
5
|
+
describe("UiFilterBadge", () => {
|
|
6
|
+
it("renders with colors set", () => {
|
|
7
|
+
const wrapper = mount(UiFilterBadge, {
|
|
8
|
+
props: {
|
|
9
|
+
color: "#000",
|
|
10
|
+
fill: "#fff",
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
expect(wrapper.attributes().style).toBe("color: rgb(255, 255, 255);");
|
|
14
|
+
const innerText = wrapper.find('[data-testid="innerText"]');
|
|
15
|
+
expect(innerText.attributes().style).toBe("color: rgb(0, 0, 0);");
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/vue3-vite";
|
|
2
|
+
|
|
3
|
+
import UiIconButton from "../UiIconButton/UiIconButton.vue";
|
|
4
|
+
import UiFilterBadge from "./UiFilterBadge.vue";
|
|
5
|
+
|
|
6
|
+
const meta = {
|
|
7
|
+
title: "Ui/UiFilterBadge",
|
|
8
|
+
component: UiFilterBadge,
|
|
9
|
+
argTypes: {
|
|
10
|
+
size: {
|
|
11
|
+
control: "select",
|
|
12
|
+
options: ["small", "medium", "large", "xl"],
|
|
13
|
+
},
|
|
14
|
+
color: {
|
|
15
|
+
control: "color",
|
|
16
|
+
},
|
|
17
|
+
fill: {
|
|
18
|
+
control: "color",
|
|
19
|
+
},
|
|
20
|
+
iconIsFilled: {
|
|
21
|
+
control: "boolean",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
args: {
|
|
25
|
+
size: "medium",
|
|
26
|
+
color: "#666",
|
|
27
|
+
fill: "#666",
|
|
28
|
+
iconIsFilled: true,
|
|
29
|
+
},
|
|
30
|
+
render: (args) => ({
|
|
31
|
+
setup() {
|
|
32
|
+
return { args };
|
|
33
|
+
},
|
|
34
|
+
components: { UiFilterBadge, UiIconButton },
|
|
35
|
+
template: "<UiFilterBadge v-bind='args'> slot </UiFilterBadge>",
|
|
36
|
+
}),
|
|
37
|
+
} satisfies Meta<typeof UiFilterBadge>;
|
|
38
|
+
|
|
39
|
+
export default meta;
|
|
40
|
+
type Story = StoryObj<typeof meta>;
|
|
41
|
+
|
|
42
|
+
export const Default: Story = {};
|
|
43
|
+
|
|
44
|
+
export const WithIsOutlined: Story = { args: { iconIsFilled: false } };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { mount } from "@vue/test-utils";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
|
|
4
|
+
import UiFilterBadgeButton from "./UiFilterBadgeButton.vue";
|
|
5
|
+
|
|
6
|
+
describe("UiFilterBadgeButton", () => {
|
|
7
|
+
it("renders with colors set", () => {
|
|
8
|
+
const wrapper = mount(UiFilterBadgeButton, {
|
|
9
|
+
props: {
|
|
10
|
+
color: "#000",
|
|
11
|
+
fill: "#fff",
|
|
12
|
+
label: "Foo",
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
expect(wrapper.attributes().style).toBe("color: rgb(255, 255, 255);");
|
|
16
|
+
const innerText = wrapper.find('[data-testid="labelText"]');
|
|
17
|
+
expect(innerText.attributes().style).toBe("color: rgb(0, 0, 0);");
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("renders the label correctly", () => {
|
|
21
|
+
const wrapper = mount(UiFilterBadgeButton, {
|
|
22
|
+
props: {
|
|
23
|
+
label: "Foo",
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
expect(wrapper.text()).toBe("Foo");
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("should emit click event when clicked", async () => {
|
|
31
|
+
const wrapper = mount(UiFilterBadgeButton, {
|
|
32
|
+
props: {
|
|
33
|
+
label: "Foo",
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
const label = wrapper.find('[data-testid="labelText"]');
|
|
37
|
+
await label.trigger("click");
|
|
38
|
+
|
|
39
|
+
expect(wrapper.emitted().click).toBeTruthy();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/vue3-vite";
|
|
2
|
+
import { action } from "storybook/actions";
|
|
3
|
+
|
|
4
|
+
import UiIconButton from "../UiIconButton/UiIconButton.vue";
|
|
5
|
+
import UiFilterBadgeButton from "./UiFilterBadgeButton.vue";
|
|
6
|
+
|
|
7
|
+
const meta = {
|
|
8
|
+
title: "Ui/UiFilterBadgeButton",
|
|
9
|
+
component: UiFilterBadgeButton,
|
|
10
|
+
argTypes: {
|
|
11
|
+
color: {
|
|
12
|
+
control: "color",
|
|
13
|
+
defaultValue: "#666",
|
|
14
|
+
},
|
|
15
|
+
fill: {
|
|
16
|
+
control: "color",
|
|
17
|
+
defaultValue: "#666",
|
|
18
|
+
},
|
|
19
|
+
iconIsFilled: {
|
|
20
|
+
control: "boolean",
|
|
21
|
+
defaultValue: true,
|
|
22
|
+
},
|
|
23
|
+
label: {
|
|
24
|
+
control: "text",
|
|
25
|
+
defaultValue: "Example Label",
|
|
26
|
+
},
|
|
27
|
+
isActive: {
|
|
28
|
+
control: "boolean",
|
|
29
|
+
defaultValue: false,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
args: {
|
|
33
|
+
color: "#666",
|
|
34
|
+
fill: "#666",
|
|
35
|
+
iconIsFilled: true,
|
|
36
|
+
label: "Example Label",
|
|
37
|
+
isActive: false,
|
|
38
|
+
},
|
|
39
|
+
render: (args) => ({
|
|
40
|
+
setup() {
|
|
41
|
+
return { args };
|
|
42
|
+
},
|
|
43
|
+
components: { UiFilterBadgeButton, UiIconButton },
|
|
44
|
+
template:
|
|
45
|
+
"<UiFilterBadgeButton v-bind='args' @click='click'> <UiIconButton icon-color='gray' background-color='none' icon-name='more-horizontal'/> </UiFilterBadgeButton>",
|
|
46
|
+
methods: {
|
|
47
|
+
click: action("click"),
|
|
48
|
+
},
|
|
49
|
+
}),
|
|
50
|
+
} satisfies Meta<typeof UiFilterBadgeButton>;
|
|
51
|
+
|
|
52
|
+
export default meta;
|
|
53
|
+
type Story = StoryObj<typeof meta>;
|
|
54
|
+
|
|
55
|
+
export const Default: Story = {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type ComponentMountingOptions, mount } from "@vue/test-utils";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
|
|
4
|
+
import UiFilterButton from "./UiFilterButton.vue";
|
|
5
|
+
|
|
6
|
+
function createWrapper(
|
|
7
|
+
options: ComponentMountingOptions<typeof UiFilterButton> = {},
|
|
8
|
+
) {
|
|
9
|
+
return mount(UiFilterButton, {
|
|
10
|
+
...options,
|
|
11
|
+
props: {
|
|
12
|
+
title: "Foo Bar",
|
|
13
|
+
...options.props,
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
describe("UiFilterBadge", () => {
|
|
19
|
+
it("renders attributes on correct element", () => {
|
|
20
|
+
const wrapper = createWrapper({
|
|
21
|
+
props: {
|
|
22
|
+
id: "id",
|
|
23
|
+
class: "testClass",
|
|
24
|
+
"data-testid": "testId",
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const root = wrapper.find(":first-child");
|
|
29
|
+
expect(root.element.classList.contains("testClass")).toBe(true);
|
|
30
|
+
expect(root.element.getAttribute("data-testid")).toBe("testId");
|
|
31
|
+
expect(root.element.getAttribute("id")).toBe("id");
|
|
32
|
+
|
|
33
|
+
const button = wrapper.find('[data-testid="filter-button"]');
|
|
34
|
+
expect(button.element.classList.contains("testClass")).toBe(false);
|
|
35
|
+
expect(button.element.getAttribute("data-testid")).not.toBe("testId");
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("renders with given Title", () => {
|
|
39
|
+
const wrapper = createWrapper();
|
|
40
|
+
expect(wrapper.text()).toBe("Foo Bar");
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("changes colour according to prop change", () => {
|
|
44
|
+
const wrapper = createWrapper({
|
|
45
|
+
props: {
|
|
46
|
+
variant: "blue-rounded",
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
expect(wrapper.classes("bg-blue-default")).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it("emits click event", async () => {
|
|
53
|
+
const wrapper = createWrapper();
|
|
54
|
+
const button = wrapper.find('[data-testid="filter-button"]');
|
|
55
|
+
await button.trigger("click");
|
|
56
|
+
|
|
57
|
+
const lastEvent = (wrapper.emitted("click") ?? []).at(-1);
|
|
58
|
+
expect(lastEvent).toEqual([]);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("renders attributes on correct element", () => {
|
|
62
|
+
const wrapper = mount(UiFilterButton, {
|
|
63
|
+
props: {
|
|
64
|
+
options: [],
|
|
65
|
+
groupName: "",
|
|
66
|
+
id: "id",
|
|
67
|
+
class: "testClass pr-8",
|
|
68
|
+
"data-testid": "testId",
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const root = wrapper.find(":first-child");
|
|
73
|
+
expect(root.attributes("id")).toBe("id");
|
|
74
|
+
expect(root.element.classList.contains("testClass")).toBe(true);
|
|
75
|
+
expect(root.element.classList.contains("pr-4")).toBe(false);
|
|
76
|
+
expect(root.element.classList.contains("pr-8")).toBe(true);
|
|
77
|
+
expect(root.attributes("data-testid")).toBe("testId");
|
|
78
|
+
});
|
|
79
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/vue3-vite";
|
|
2
|
+
|
|
3
|
+
import { icons } from "../UiIcon/icons.js";
|
|
4
|
+
import UiFilterButton from "./UiFilterButton.vue";
|
|
5
|
+
|
|
6
|
+
const meta = {
|
|
7
|
+
title: "Ui/UiFilterButton",
|
|
8
|
+
component: UiFilterButton,
|
|
9
|
+
argTypes: {
|
|
10
|
+
title: {
|
|
11
|
+
control: "text",
|
|
12
|
+
},
|
|
13
|
+
variant: {
|
|
14
|
+
control: "select",
|
|
15
|
+
options: [
|
|
16
|
+
"blue-rounded",
|
|
17
|
+
"white-rounded",
|
|
18
|
+
"blank",
|
|
19
|
+
"blue-blank",
|
|
20
|
+
"transparent-rounded",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
buttonWidth: {
|
|
24
|
+
control: "select",
|
|
25
|
+
options: ["max", "full"],
|
|
26
|
+
},
|
|
27
|
+
chevronIcon: {
|
|
28
|
+
control: "select",
|
|
29
|
+
options: Object.keys(icons),
|
|
30
|
+
},
|
|
31
|
+
rotateIcon: {
|
|
32
|
+
control: "boolean",
|
|
33
|
+
},
|
|
34
|
+
disabled: {
|
|
35
|
+
control: "boolean",
|
|
36
|
+
},
|
|
37
|
+
active: {
|
|
38
|
+
control: "boolean",
|
|
39
|
+
},
|
|
40
|
+
hasIcon: {
|
|
41
|
+
control: "boolean",
|
|
42
|
+
},
|
|
43
|
+
iconLeft: {
|
|
44
|
+
control: "select",
|
|
45
|
+
options: Object.keys(icons),
|
|
46
|
+
},
|
|
47
|
+
iconSize: {
|
|
48
|
+
control: "select",
|
|
49
|
+
options: ["xs", "small", "large"],
|
|
50
|
+
},
|
|
51
|
+
size: {
|
|
52
|
+
control: "select",
|
|
53
|
+
options: ["xs", "small"],
|
|
54
|
+
},
|
|
55
|
+
iconLeftClass: {
|
|
56
|
+
control: "text",
|
|
57
|
+
},
|
|
58
|
+
iconRightClass: {
|
|
59
|
+
control: "text",
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
args: {
|
|
63
|
+
title: "Filter",
|
|
64
|
+
variant: "white-rounded",
|
|
65
|
+
buttonWidth: "max",
|
|
66
|
+
chevronIcon: "chevron-down",
|
|
67
|
+
rotateIcon: false,
|
|
68
|
+
disabled: false,
|
|
69
|
+
active: false,
|
|
70
|
+
hasIcon: true,
|
|
71
|
+
iconSize: "xs",
|
|
72
|
+
iconLeft: null,
|
|
73
|
+
iconLeftClass: undefined,
|
|
74
|
+
iconRightClass: undefined,
|
|
75
|
+
},
|
|
76
|
+
render: (args) => ({
|
|
77
|
+
setup() {
|
|
78
|
+
return { args };
|
|
79
|
+
},
|
|
80
|
+
components: { UiFilterButton },
|
|
81
|
+
template: "<UiFilterButton v-bind='args'>Slot</UiFilterButton>",
|
|
82
|
+
}),
|
|
83
|
+
} satisfies Meta<typeof UiFilterButton>;
|
|
84
|
+
|
|
85
|
+
export default meta;
|
|
86
|
+
type Story = StoryObj<typeof meta>;
|
|
87
|
+
|
|
88
|
+
export const Default: Story = {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="grid grid-cols-6 gap-8">
|
|
3
|
+
<div
|
|
4
|
+
v-for="(_import, icon) in icons"
|
|
5
|
+
:key="icon"
|
|
6
|
+
class="h-25 content-center border-2 p-2 text-center"
|
|
7
|
+
>
|
|
8
|
+
<h2 class="mb-2">{{ icon }}</h2>
|
|
9
|
+
<UiIcon :name="icon" :size="props.size"></UiIcon>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
</template>
|
|
13
|
+
<script setup lang="ts">
|
|
14
|
+
import { icons } from "./icons.js";
|
|
15
|
+
import UiIcon from "./UiIcon.vue";
|
|
16
|
+
|
|
17
|
+
const props = withDefaults(
|
|
18
|
+
defineProps<{
|
|
19
|
+
size: "xs" | "small" | "medium" | "large" | "xl";
|
|
20
|
+
}>(),
|
|
21
|
+
{},
|
|
22
|
+
);
|
|
23
|
+
</script>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type ComponentMountingOptions, mount } from "@vue/test-utils";
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
|
|
4
|
+
import { icons } from "./icons.js";
|
|
5
|
+
import UiIcon from "./UiIcon.vue";
|
|
6
|
+
|
|
7
|
+
function createWrapper(options: ComponentMountingOptions<typeof UiIcon> = {}) {
|
|
8
|
+
return mount(UiIcon, {
|
|
9
|
+
...options,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
describe("UiIcon", () => {
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
// Important to get isolated tests for this component as it dynamically imports components which will be cached in subsequent tests.
|
|
16
|
+
vi.resetModules();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it.each<[Partial<InstanceType<typeof UiIcon>["$props"]>, string]>([
|
|
20
|
+
[{ size: "xs" }, "size-3"],
|
|
21
|
+
[{ size: "small" }, "size-4"],
|
|
22
|
+
[{ size: "medium" }, "size-5"],
|
|
23
|
+
[{}, "size-6"],
|
|
24
|
+
[{ size: "large" }, "size-6"],
|
|
25
|
+
[{ size: "xl" }, "size-10"],
|
|
26
|
+
[{ size: "2xl" }, "size-14"],
|
|
27
|
+
])("renders large size by default", (props, expectedClassNames) => {
|
|
28
|
+
const wrapper = createWrapper({
|
|
29
|
+
props: {
|
|
30
|
+
name: "alert",
|
|
31
|
+
...props,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
expect(wrapper.classes(expectedClassNames)).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("should be able to resolve all icons", async () => {
|
|
39
|
+
await Promise.all(Object.values(icons));
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("throws on non-existing icon name", async () => {
|
|
43
|
+
function callback() {
|
|
44
|
+
createWrapper({
|
|
45
|
+
props: {
|
|
46
|
+
// @ts-expect-error
|
|
47
|
+
name: "does-not-exist",
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
expect(callback).toThrowError(
|
|
53
|
+
"UiIcon: No icon named “does-not-exist” exists.",
|
|
54
|
+
);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/vue3-vite";
|
|
2
|
+
|
|
3
|
+
import IconOverview from "./IconOverview.stories.vue";
|
|
4
|
+
import { icons } from "./icons.js";
|
|
5
|
+
import UiIcon from "./UiIcon.vue";
|
|
6
|
+
|
|
7
|
+
const meta = {
|
|
8
|
+
title: "Ui/UiIcon",
|
|
9
|
+
component: UiIcon,
|
|
10
|
+
argTypes: {
|
|
11
|
+
name: {
|
|
12
|
+
control: "select",
|
|
13
|
+
options: Object.keys(icons),
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
control: "select",
|
|
17
|
+
options: ["xs", "small", "medium", "large", "xl", "2xl"],
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
args: {
|
|
21
|
+
name: "alert",
|
|
22
|
+
size: "large",
|
|
23
|
+
},
|
|
24
|
+
} satisfies Meta<typeof UiIcon>;
|
|
25
|
+
|
|
26
|
+
export default meta;
|
|
27
|
+
type Story = StoryObj<typeof meta>;
|
|
28
|
+
|
|
29
|
+
export const Default: Story = {
|
|
30
|
+
render: (args) => ({
|
|
31
|
+
setup() {
|
|
32
|
+
return { args };
|
|
33
|
+
},
|
|
34
|
+
components: { UiIcon },
|
|
35
|
+
template: "<UiIcon v-bind='args'></UiIcon>",
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const Overview: Story = {
|
|
40
|
+
render: (args) => ({
|
|
41
|
+
setup() {
|
|
42
|
+
const size = args.size || "large";
|
|
43
|
+
return { args, size };
|
|
44
|
+
},
|
|
45
|
+
components: { IconOverview },
|
|
46
|
+
template: "<IconOverview :size='size'></IconOverview>",
|
|
47
|
+
}),
|
|
48
|
+
};
|