@dpa-id-components/dpa-shared-components 21.1.1 → 22.0.0-next.1
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/{alert-fill-BHn_Z4vo.js → alert-filled-COSmQYAa.js} +1 -1
- package/dist/{bell-fill-DHRfa4cC.js → bell-filled-7gfK8601.js} +1 -1
- package/dist/{bookmark-outlined-D41PleT8.js → bookmark-D65iW--h.js} +1 -1
- package/dist/{bookmark-DNJYJq0J.js → bookmark-filled-5lCW1BfF.js} +1 -1
- package/dist/{comment-fill-Dc-swkQu.js → comment-filled-Cl_qZ6Fz.js} +1 -1
- package/dist/components/UiBadge/UiBadge.vue.d.ts +3 -16
- package/dist/components/UiButton/UiButton.vue.d.ts +15 -21
- package/dist/components/UiButtonGroup/UiButtonGroup.vue.d.ts +5 -11
- package/dist/components/UiCheckbox/UiCheckbox.vue.d.ts +14 -21
- package/dist/components/UiChip/UiChip.vue.d.ts +11 -12
- package/dist/components/UiColorPicker/UiColorPicker.vue.d.ts +6 -8
- package/dist/components/UiDatePicker/UiDatePicker.vue.d.ts +47 -84
- package/dist/components/UiDialog/UiDialog.vue.d.ts +20 -37
- package/dist/components/UiFilterBadge/UiFilterBadge.vue.d.ts +10 -9
- package/dist/components/UiFilterButton/UiFilterButton.vue.d.ts +26 -10
- package/dist/components/UiIcon/UiIcon.vue.d.ts +11 -6
- package/dist/components/UiIcon/icons.d.ts +14 -39
- package/dist/components/UiIconButton/UiIconButton.vue.d.ts +15 -6
- package/dist/components/UiInfoContent/UiInfoContent.vue.d.ts +17 -10
- package/dist/components/UiInput/UiInput.vue.d.ts +6 -48
- package/dist/components/UiList/UiList.vue.d.ts +5 -11
- package/dist/components/UiListItem/UiListItem.vue.d.ts +12 -24
- package/dist/components/UiMenu/UiMenu.vue.d.ts +30 -35
- package/dist/components/UiMenu/UiMenuItem.vue.d.ts +8 -5
- package/dist/components/UiMenu/UiMenuList.vue.d.ts +13 -11
- package/dist/components/UiPopover/UiPopover.vue.d.ts +45 -0
- package/dist/components/UiRadioButton/UiRadioButton.vue.d.ts +35 -0
- package/dist/components/UiRadioInputGroup/UiRadioInputGroup.vue.d.ts +27 -31
- package/dist/components/UiSearchBar/UiSearchBar.vue.d.ts +16 -39
- package/dist/components/UiSearchInput/UiSearchInput.vue.d.ts +2 -2
- package/dist/components/UiSkeletonBox/UiSkeletonBox.vue.d.ts +1 -5
- package/dist/components/UiSnackbar/UiSnackbar.vue.d.ts +4 -10
- package/dist/components/UiSpinner/UiSpinner.vue.d.ts +5 -8
- package/dist/components/UiTextButton/UiTextButton.vue.d.ts +22 -13
- package/dist/components/UiToggleButton/UiToggleButton.vue.d.ts +10 -24
- package/dist/components/UiTooltip/UiTooltip.vue.d.ts +3 -31
- package/dist/components/index.d.ts +3 -4
- package/dist/dpa-shared-components.js +4263 -4873
- package/dist/{flag-fill-C3XgapYW.js → flag-filled-VmJW-U0p.js} +1 -1
- package/dist/{folder-fill-CnEmPx6c.js → folder-filled-D6pmcH0e.js} +1 -1
- package/dist/{image focus point-D_hUlTWi.js → image-focus-point-BJ7HhehR.js} +1 -1
- package/dist/{info-fill-DlgeXJbI.js → info-filled-PYbvwGmZ.js} +1 -1
- package/dist/{map-outline-uvK8An7m.js → map-FF2zfEGP.js} +1 -1
- package/dist/{map-BMOQGCce.js → map-filled-Y8JaYK4Y.js} +1 -1
- package/dist/{video-rounded-ISWC3gUM.js → play-CArB2O7k.js} +1 -1
- package/dist/{saved-search-fill-CPoyaMRU.js → saved-search-filled-CNz5iwu_.js} +1 -1
- package/dist/{sidebar-fill-CBSJYVQQ.js → sidebar-filled-BnnqCUYl.js} +1 -1
- package/dist/spinner-CrCQ6H6L.js +32 -0
- package/dist/src/assets/icons/{bookmark-fill.vue → bookmark-filled.vue} +1 -1
- package/dist/src/assets/icons/bookmark.vue +4 -7
- package/dist/src/assets/icons/flag-filled.vue +4 -4
- package/dist/src/assets/icons/folder-filled.vue +4 -4
- package/dist/src/assets/icons/info-filled.vue +4 -4
- package/dist/src/assets/icons/map-filled.vue +13 -0
- package/dist/src/assets/icons/map.vue +1 -1
- package/dist/src/assets/icons/play.vue +1 -1
- package/dist/src/assets/icons/spinner.vue +27 -3
- package/dist/src/components/DpaMediaItem/DpaMediaItem.spec.ts +3 -3
- package/dist/src/components/DpaMediaItem/DpaMediaItem.vue +17 -17
- package/dist/src/components/UiBadge/README.md +8 -13
- package/dist/src/components/UiBadge/UiBadge.spec.ts +9 -15
- package/dist/src/components/UiBadge/UiBadge.stories.ts +52 -42
- package/dist/src/components/UiBadge/UiBadge.vue +29 -77
- package/dist/src/components/UiButton/README.md +20 -18
- package/dist/src/components/UiButton/UiButton.spec.ts +12 -41
- package/dist/src/components/UiButton/UiButton.stories.ts +53 -33
- package/dist/src/components/UiButton/UiButton.vue +55 -111
- package/dist/src/components/UiButtonGroup/UiButtonGroup.stories.ts +3 -2
- package/dist/src/components/UiButtonGroup/UiButtonGroup.vue +23 -1
- package/dist/src/components/UiCard/UiCard.vue +3 -3
- package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.spec.ts +4 -2
- package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.stories.ts +1 -1
- package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.vue +2 -3
- package/dist/src/components/UiCheckbox/README.md +4 -16
- package/dist/src/components/UiCheckbox/UiCheckbox.spec.ts +15 -141
- package/dist/src/components/UiCheckbox/UiCheckbox.stories.ts +18 -32
- package/dist/src/components/UiCheckbox/UiCheckbox.vue +48 -84
- package/dist/src/components/UiChip/README.md +10 -5
- package/dist/src/components/UiChip/UiChip.spec.ts +5 -60
- package/dist/src/components/UiChip/UiChip.stories.ts +53 -17
- package/dist/src/components/UiChip/UiChip.vue +31 -33
- package/dist/src/components/UiCollapseNavigation/README.md +3 -3
- package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.stories.ts +12 -12
- package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.vue +8 -6
- package/dist/src/components/UiColorPicker/UiColorPicker.spec.ts +12 -24
- package/dist/src/components/UiColorPicker/UiColorPicker.stories.ts +5 -6
- package/dist/src/components/UiColorPicker/UiColorPicker.vue +21 -60
- package/dist/src/components/UiColorPicker/lib/colors.ts +9 -9
- package/dist/src/components/UiDatePicker/README.md +68 -46
- package/dist/src/components/UiDatePicker/UiDatePicker.spec.ts +92 -284
- package/dist/src/components/UiDatePicker/UiDatePicker.stories.ts +210 -196
- package/dist/src/components/UiDatePicker/UiDatePicker.vue +301 -432
- package/dist/src/components/UiDialog/README.md +17 -22
- package/dist/src/components/UiDialog/UiDialog.spec.ts +3 -110
- package/dist/src/components/UiDialog/UiDialog.stories.ts +45 -54
- package/dist/src/components/UiDialog/UiDialog.vue +75 -104
- package/dist/src/components/UiFilterBadge/README.md +7 -7
- package/dist/src/components/UiFilterBadge/UiFilterBadge.spec.ts +47 -3
- package/dist/src/components/UiFilterBadge/UiFilterBadge.stories.ts +3 -18
- package/dist/src/components/UiFilterBadge/UiFilterBadge.vue +31 -26
- package/dist/src/components/UiFilterButton/README.md +2 -0
- package/dist/src/components/UiFilterButton/UiFilterButton.spec.ts +1 -1
- package/dist/src/components/UiFilterButton/UiFilterButton.stories.ts +2 -1
- package/dist/src/components/UiFilterButton/UiFilterButton.vue +31 -23
- package/dist/src/components/UiIcon/UiIcon.spec.ts +3 -3
- package/dist/src/components/UiIcon/UiIcon.stories.ts +1 -1
- package/dist/src/components/UiIcon/UiIcon.vue +24 -25
- package/dist/src/components/UiIcon/icons.ts +113 -141
- package/dist/src/components/UiIconButton/UiIconButton.spec.ts +1 -1
- package/dist/src/components/UiIconButton/UiIconButton.stories.ts +1 -0
- package/dist/src/components/UiIconButton/UiIconButton.vue +28 -10
- package/dist/src/components/UiInfoContent/README.md +7 -8
- package/dist/src/components/UiInfoContent/UiInfoContent.spec.ts +29 -21
- package/dist/src/components/UiInfoContent/UiInfoContent.stories.ts +11 -33
- package/dist/src/components/UiInfoContent/UiInfoContent.vue +34 -33
- package/dist/src/components/UiInput/README.md +15 -32
- package/dist/src/components/UiInput/UiInput.spec.ts +71 -102
- package/dist/src/components/UiInput/UiInput.stories.ts +67 -58
- package/dist/src/components/UiInput/UiInput.vue +87 -286
- package/dist/src/components/UiLabel/README.md +0 -9
- package/dist/src/components/UiLabel/UiLabel.vue +1 -1
- package/dist/src/components/UiList/UiList.stories.ts +1 -0
- package/dist/src/components/UiList/UiList.vue +22 -0
- package/dist/src/components/UiListItem/UiListItem.spec.ts +1 -2
- package/dist/src/components/UiListItem/UiListItem.stories.ts +2 -2
- package/dist/src/components/UiListItem/UiListItem.vue +73 -93
- package/dist/src/components/UiMenu/README.md +64 -7
- package/dist/src/components/UiMenu/UiMenu.spec.ts +87 -99
- package/dist/src/components/UiMenu/UiMenu.stories.ts +166 -411
- package/dist/src/components/UiMenu/UiMenu.vue +228 -408
- package/dist/src/components/UiMenu/UiMenuItem.vue +28 -9
- package/dist/src/components/UiMenu/UiMenuList.vue +22 -0
- package/dist/src/components/UiOverlay/README.md +1 -1
- package/dist/src/components/UiOverlay/UiOverlay.stories.ts +1 -1
- package/dist/src/components/UiOverlay/UiOverlay.vue +2 -2
- package/dist/src/components/UiOverlayMenu/README.md +1 -1
- package/dist/src/components/UiOverlayMenu/UiOverlayMenu.vue +3 -3
- package/dist/src/components/UiPopover/README.md +56 -0
- package/dist/src/components/UiPopover/UiPopover.stories.ts +49 -0
- package/dist/src/components/UiPopover/UiPopover.vue +187 -0
- package/dist/src/components/UiRadioButton/README.md +44 -0
- package/dist/src/components/UiRadioButton/UiRadioButton.stories.ts +85 -0
- package/dist/src/components/UiRadioButton/UiRadioButton.vue +82 -0
- package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.spec.ts +5 -5
- package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.stories.ts +5 -30
- package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.vue +44 -69
- package/dist/src/components/UiSearchBar/README.md +40 -37
- package/dist/src/components/UiSearchBar/UiSearchBar.spec.ts +6 -23
- package/dist/src/components/UiSearchBar/UiSearchBar.stories.ts +25 -127
- package/dist/src/components/UiSearchBar/UiSearchBar.vue +73 -179
- package/dist/src/components/UiSearchInput/UiSearchInput.vue +27 -22
- package/dist/src/components/UiSection/UiSection.vue +4 -4
- package/dist/src/components/UiSectionDivider/UiSectionDivider.vue +3 -3
- package/dist/src/components/UiSelect/UiSelect.stories.ts +1 -1
- package/dist/src/components/UiSelect/UiSelect.vue +17 -76
- package/dist/src/components/UiSkeletonBox/UiSkeletonBox.spec.ts +1 -1
- package/dist/src/components/UiSkeletonBox/UiSkeletonBox.vue +12 -17
- package/dist/src/components/UiSnackbar/UiSnackbar.spec.ts +45 -0
- package/dist/src/components/UiSnackbar/UiSnackbar.stories.ts +19 -22
- package/dist/src/components/UiSnackbar/UiSnackbar.vue +23 -26
- package/dist/src/components/UiSpinner/README.md +6 -4
- package/dist/src/components/UiSpinner/UiSpinner.spec.ts +33 -19
- package/dist/src/components/UiSpinner/UiSpinner.stories.ts +16 -20
- package/dist/src/components/UiSpinner/UiSpinner.vue +55 -87
- package/dist/src/components/UiTextButton/UiTextButton.spec.ts +3 -3
- package/dist/src/components/UiTextButton/UiTextButton.stories.ts +1 -0
- package/dist/src/components/UiTextButton/UiTextButton.vue +28 -9
- package/dist/src/components/UiToggleButton/README.md +16 -15
- package/dist/src/components/UiToggleButton/UiToggleButton.spec.ts +48 -62
- package/dist/src/components/UiToggleButton/UiToggleButton.stories.ts +30 -40
- package/dist/src/components/UiToggleButton/UiToggleButton.vue +54 -129
- package/dist/src/components/UiTooltip/README.md +25 -36
- package/dist/src/components/UiTooltip/UiTooltip.spec.ts +45 -25
- package/dist/src/components/UiTooltip/UiTooltip.stories.ts +21 -64
- package/dist/src/components/UiTooltip/UiTooltip.vue +64 -136
- package/dist/src/components/index.ts +4 -6
- package/dist/src/compositions/useBreakpoints/UseBreakpoints.stories.vue +4 -2
- package/dist/src/tailwindPreset.css +161 -56
- package/dist/src/types/index.ts +1 -0
- package/dist/src/utils/cn.spec.ts +21 -4
- package/dist/src/utils/cn.ts +11 -4
- package/dist/style.css +1 -1
- package/dist/tailwindPreset.css +161 -56
- package/dist/types/index.d.ts +1 -0
- package/dist/utils/cn.d.ts +8 -0
- package/dist/{video overlay-DfhF7VpE.js → video-overlay-D6e61Eo7.js} +1 -1
- package/package.json +1 -2
- package/src/assets/icons/{bookmark-fill.vue → bookmark-filled.vue} +1 -1
- package/src/assets/icons/bookmark.vue +4 -7
- package/src/assets/icons/flag-filled.vue +4 -4
- package/src/assets/icons/folder-filled.vue +4 -4
- package/src/assets/icons/info-filled.vue +4 -4
- package/src/assets/icons/map-filled.vue +13 -0
- package/src/assets/icons/map.vue +1 -1
- package/src/assets/icons/play.vue +1 -1
- package/src/assets/icons/spinner.vue +27 -3
- package/src/components/DpaMediaItem/DpaMediaItem.vue +17 -17
- package/src/components/UiBadge/README.md +8 -13
- package/src/components/UiBadge/UiBadge.vue +29 -77
- package/src/components/UiButton/README.md +20 -18
- package/src/components/UiButton/UiButton.vue +55 -111
- package/src/components/UiButtonGroup/UiButtonGroup.vue +23 -1
- package/src/components/UiCard/UiCard.vue +3 -3
- package/src/components/UiCheckBoxGroup/UiCheckBoxGroup.vue +2 -3
- package/src/components/UiCheckbox/README.md +4 -16
- package/src/components/UiCheckbox/UiCheckbox.vue +48 -84
- package/src/components/UiChip/README.md +10 -5
- package/src/components/UiChip/UiChip.vue +31 -33
- package/src/components/UiCollapseNavigation/README.md +3 -3
- package/src/components/UiCollapseNavigation/UiCollapseNavigation.vue +8 -6
- package/src/components/UiColorPicker/UiColorPicker.vue +21 -60
- package/src/components/UiColorPicker/lib/colors.ts +9 -9
- package/src/components/UiDatePicker/README.md +68 -46
- package/src/components/UiDatePicker/UiDatePicker.vue +301 -432
- package/src/components/UiDialog/README.md +17 -22
- package/src/components/UiDialog/UiDialog.vue +75 -104
- package/src/components/UiFilterBadge/README.md +7 -7
- package/src/components/UiFilterBadge/UiFilterBadge.vue +31 -26
- package/src/components/UiFilterButton/README.md +2 -0
- package/src/components/UiFilterButton/UiFilterButton.vue +31 -23
- package/src/components/UiIcon/UiIcon.vue +24 -25
- package/src/components/UiIcon/icons.ts +113 -141
- package/src/components/UiIconButton/UiIconButton.vue +28 -10
- package/src/components/UiInfoContent/README.md +7 -8
- package/src/components/UiInfoContent/UiInfoContent.vue +34 -33
- package/src/components/UiInput/README.md +15 -32
- package/src/components/UiInput/UiInput.vue +87 -286
- package/src/components/UiLabel/README.md +0 -9
- package/src/components/UiLabel/UiLabel.vue +1 -1
- package/src/components/UiList/UiList.vue +22 -0
- package/src/components/UiListItem/UiListItem.vue +73 -93
- package/src/components/UiMenu/README.md +64 -7
- package/src/components/UiMenu/UiMenu.vue +228 -408
- package/src/components/UiMenu/UiMenuItem.vue +28 -9
- package/src/components/UiMenu/UiMenuList.vue +22 -0
- package/src/components/UiOverlay/README.md +1 -1
- package/src/components/UiOverlay/UiOverlay.vue +2 -2
- package/src/components/UiOverlayMenu/README.md +1 -1
- package/src/components/UiOverlayMenu/UiOverlayMenu.vue +3 -3
- package/src/components/UiPopover/README.md +56 -0
- package/src/components/UiPopover/UiPopover.vue +187 -0
- package/src/components/UiRadioButton/README.md +44 -0
- package/src/components/UiRadioButton/UiRadioButton.vue +82 -0
- package/src/components/UiRadioInputGroup/UiRadioInputGroup.vue +44 -69
- package/src/components/UiSearchBar/README.md +40 -37
- package/src/components/UiSearchBar/UiSearchBar.vue +73 -179
- package/src/components/UiSearchInput/UiSearchInput.vue +27 -22
- package/src/components/UiSection/UiSection.vue +4 -4
- package/src/components/UiSectionDivider/UiSectionDivider.vue +3 -3
- package/src/components/UiSelect/UiSelect.vue +17 -76
- package/src/components/UiSkeletonBox/UiSkeletonBox.vue +12 -17
- package/src/components/UiSnackbar/UiSnackbar.vue +23 -26
- package/src/components/UiSpinner/README.md +6 -4
- package/src/components/UiSpinner/UiSpinner.vue +55 -87
- package/src/components/UiTextButton/UiTextButton.vue +28 -9
- package/src/components/UiToggleButton/README.md +16 -15
- package/src/components/UiToggleButton/UiToggleButton.vue +54 -129
- package/src/components/UiTooltip/README.md +25 -36
- package/src/components/UiTooltip/UiTooltip.vue +64 -136
- package/src/tailwindPreset.css +161 -56
- package/src/types/index.ts +1 -0
- package/src/utils/cn.ts +11 -4
- package/dist/assets/icons/flag-outline.vue.d.ts +0 -3
- package/dist/assets/icons/folder-fill.vue.d.ts +0 -3
- package/dist/assets/icons/graphic-circled.vue.d.ts +0 -3
- package/dist/assets/icons/graphic-filled.vue.d.ts +0 -3
- package/dist/assets/icons/image focus point.vue.d.ts +0 -3
- package/dist/assets/icons/info-fill.vue.d.ts +0 -3
- package/dist/assets/icons/lock-filled.vue.d.ts +0 -3
- package/dist/assets/icons/map-outline.vue.d.ts +0 -3
- package/dist/assets/icons/paperplane.vue.d.ts +0 -3
- package/dist/assets/icons/pause-circle.vue.d.ts +0 -3
- package/dist/assets/icons/picture-circled.vue.d.ts +0 -3
- package/dist/assets/icons/picture-filled.vue.d.ts +0 -3
- package/dist/assets/icons/picture-gallery.vue.d.ts +0 -3
- package/dist/assets/icons/play-circle.vue.d.ts +0 -3
- package/dist/assets/icons/play-fill.vue.d.ts +0 -3
- package/dist/assets/icons/plus-circle.vue.d.ts +0 -3
- package/dist/assets/icons/saved-search-fill.vue.d.ts +0 -3
- package/dist/assets/icons/sidebar-fill.vue.d.ts +0 -3
- package/dist/assets/icons/star-fill.vue.d.ts +0 -3
- package/dist/assets/icons/text-circled.vue.d.ts +0 -3
- package/dist/assets/icons/text-filled.vue.d.ts +0 -3
- package/dist/assets/icons/video overlay.vue.d.ts +0 -3
- package/dist/assets/icons/video-circled.vue.d.ts +0 -3
- package/dist/assets/icons/video-filled.vue.d.ts +0 -3
- package/dist/assets/icons/video-rounded.vue.d.ts +0 -3
- package/dist/audio-circled-amRbTaDb.js +0 -15
- package/dist/audio-filled-C7m_-PTb.js +0 -15
- package/dist/bookmark-fill-DbkrXmPt.js +0 -20
- package/dist/components/UiAutocomplete/UiAutocomplete.vue.d.ts +0 -22
- package/dist/components/UiFilterBadgeButton/UiFilterBadgeButton.vue.d.ts +0 -29
- package/dist/components/UiSimpleInput/UiSimpleInput.vue.d.ts +0 -20
- package/dist/filter-outline-ChWKUbSt.js +0 -16
- package/dist/flag-filled-CdVD_QxY.js +0 -18
- package/dist/flag-outline-ChGgKT6P.js +0 -18
- package/dist/folder-filled-zwvSw3Sd.js +0 -18
- package/dist/graphic-circled-BtuNYmPh.js +0 -15
- package/dist/graphic-filled-DXQvxz4s.js +0 -15
- package/dist/info-filled-Btao1rhT.js +0 -18
- package/dist/lock-filled-C5I60_d0.js +0 -18
- package/dist/paperplane-ed0y9oB6.js +0 -18
- package/dist/pause-circle-ab18LhX3.js +0 -19
- package/dist/picture-circled-DYsNZNYH.js +0 -15
- package/dist/picture-filled-CQYRN3Fa.js +0 -15
- package/dist/picture-gallery-BgWYQrqC.js +0 -16
- package/dist/play-BXy8WcYq.js +0 -18
- package/dist/play-circle-B88YxOh-.js +0 -18
- package/dist/play-fill-nWPoHjD3.js +0 -18
- package/dist/plus-circle-DKWKVMiq.js +0 -18
- package/dist/spinner-dy09pOOm.js +0 -13
- package/dist/src/assets/icons/audio-circled.vue +0 -12
- package/dist/src/assets/icons/audio-filled.vue +0 -12
- package/dist/src/assets/icons/bookmark-outlined.vue +0 -12
- package/dist/src/assets/icons/filter-outline.vue +0 -8
- package/dist/src/assets/icons/flag-fill.vue +0 -13
- package/dist/src/assets/icons/flag-outline.vue +0 -13
- package/dist/src/assets/icons/folder-fill.vue +0 -13
- package/dist/src/assets/icons/graphic-circled.vue +0 -12
- package/dist/src/assets/icons/graphic-filled.vue +0 -12
- package/dist/src/assets/icons/info-fill.vue +0 -13
- package/dist/src/assets/icons/lock-filled.vue +0 -13
- package/dist/src/assets/icons/map-outline.vue +0 -13
- package/dist/src/assets/icons/paperplane.vue +0 -13
- package/dist/src/assets/icons/pause-circle.vue +0 -14
- package/dist/src/assets/icons/picture-circled.vue +0 -12
- package/dist/src/assets/icons/picture-filled.vue +0 -12
- package/dist/src/assets/icons/picture-gallery.vue +0 -13
- package/dist/src/assets/icons/play-circle.vue +0 -13
- package/dist/src/assets/icons/play-fill.vue +0 -13
- package/dist/src/assets/icons/plus-circle.vue +0 -13
- package/dist/src/assets/icons/star-fill.vue +0 -13
- package/dist/src/assets/icons/text-circled.vue +0 -12
- package/dist/src/assets/icons/text-filled.vue +0 -12
- package/dist/src/assets/icons/video-circled.vue +0 -12
- package/dist/src/assets/icons/video-filled.vue +0 -12
- package/dist/src/assets/icons/video-rounded.vue +0 -13
- package/dist/src/components/UiAutocomplete/README.md +0 -44
- package/dist/src/components/UiAutocomplete/UiAutocomplete.spec.ts +0 -39
- package/dist/src/components/UiAutocomplete/UiAutocomplete.stories.ts +0 -46
- package/dist/src/components/UiAutocomplete/UiAutocomplete.vue +0 -159
- package/dist/src/components/UiFilterBadgeButton/README.md +0 -38
- package/dist/src/components/UiFilterBadgeButton/UiFilterBadgeButton.spec.ts +0 -41
- package/dist/src/components/UiFilterBadgeButton/UiFilterBadgeButton.stories.ts +0 -56
- package/dist/src/components/UiFilterBadgeButton/UiFilterBadgeButton.vue +0 -50
- package/dist/src/components/UiSimpleInput/README.md +0 -38
- package/dist/src/components/UiSimpleInput/UiSimpleInput.spec.ts +0 -58
- package/dist/src/components/UiSimpleInput/UiSimpleInput.stories.ts +0 -53
- package/dist/src/components/UiSimpleInput/UiSimpleInput.vue +0 -98
- package/dist/src/utils/index.spec.ts +0 -12
- package/dist/star-fill-DIXwg3gQ.js +0 -18
- package/dist/text-circled-Cykzn5-2.js +0 -15
- package/dist/text-filled-BwOhn26K.js +0 -15
- package/dist/video-circled-Bw9Miyyr.js +0 -15
- package/dist/video-filled-B5Td1M5L.js +0 -15
- package/src/assets/icons/audio-circled.vue +0 -12
- package/src/assets/icons/audio-filled.vue +0 -12
- package/src/assets/icons/bookmark-outlined.vue +0 -12
- package/src/assets/icons/filter-outline.vue +0 -8
- package/src/assets/icons/flag-fill.vue +0 -13
- package/src/assets/icons/flag-outline.vue +0 -13
- package/src/assets/icons/folder-fill.vue +0 -13
- package/src/assets/icons/graphic-circled.vue +0 -12
- package/src/assets/icons/graphic-filled.vue +0 -12
- package/src/assets/icons/info-fill.vue +0 -13
- package/src/assets/icons/lock-filled.vue +0 -13
- package/src/assets/icons/map-outline.vue +0 -13
- package/src/assets/icons/paperplane.vue +0 -13
- package/src/assets/icons/pause-circle.vue +0 -14
- package/src/assets/icons/picture-circled.vue +0 -12
- package/src/assets/icons/picture-filled.vue +0 -12
- package/src/assets/icons/picture-gallery.vue +0 -13
- package/src/assets/icons/play-circle.vue +0 -13
- package/src/assets/icons/play-fill.vue +0 -13
- package/src/assets/icons/plus-circle.vue +0 -13
- package/src/assets/icons/star-fill.vue +0 -13
- package/src/assets/icons/text-circled.vue +0 -12
- package/src/assets/icons/text-filled.vue +0 -12
- package/src/assets/icons/video-circled.vue +0 -12
- package/src/assets/icons/video-filled.vue +0 -12
- package/src/assets/icons/video-rounded.vue +0 -13
- package/src/components/UiAutocomplete/README.md +0 -44
- package/src/components/UiAutocomplete/UiAutocomplete.vue +0 -159
- package/src/components/UiFilterBadgeButton/README.md +0 -38
- package/src/components/UiFilterBadgeButton/UiFilterBadgeButton.vue +0 -50
- package/src/components/UiSimpleInput/README.md +0 -38
- package/src/components/UiSimpleInput/UiSimpleInput.vue +0 -98
- /package/dist/{alert-BMmH4q6y.js → alert-CdAp0ksh.js} +0 -0
- /package/dist/assets/icons/{alert-fill.vue.d.ts → alert-filled.vue.d.ts} +0 -0
- /package/dist/assets/icons/{audio-circled.vue.d.ts → bell-filled.vue.d.ts} +0 -0
- /package/dist/assets/icons/{audio-filled.vue.d.ts → bookmark-filled.vue.d.ts} +0 -0
- /package/dist/assets/icons/{bell-fill.vue.d.ts → comment-filled.vue.d.ts} +0 -0
- /package/dist/assets/icons/{bookmark-fill.vue.d.ts → image-focus-point.vue.d.ts} +0 -0
- /package/dist/assets/icons/{bookmark-outlined.vue.d.ts → map-filled.vue.d.ts} +0 -0
- /package/dist/assets/icons/{comment-fill.vue.d.ts → saved-search-filled.vue.d.ts} +0 -0
- /package/dist/assets/icons/{filter-outline.vue.d.ts → sidebar-filled.vue.d.ts} +0 -0
- /package/dist/assets/icons/{flag-fill.vue.d.ts → video-overlay.vue.d.ts} +0 -0
- /package/dist/{audio-BN2iVbbp.js → audio-Cgg6MUeM.js} +0 -0
- /package/dist/{audio-DLQLFJ3x.js → audio-DS8plcCU.js} +0 -0
- /package/dist/{bag-Br7SrnRJ.js → bag-B28jMR7E.js} +0 -0
- /package/dist/{bell-kOosto6B.js → bell-k_sZgnpL.js} +0 -0
- /package/dist/{book-D0Xsp8As.js → book-CqUJ_JRz.js} +0 -0
- /package/dist/{box-Bw_tD7Nd.js → box-BCDNtaq7.js} +0 -0
- /package/dist/{bulb-tXJKei6j.js → bulb-12wSYpgA.js} +0 -0
- /package/dist/{call-BdzulBfZ.js → call-CW04DyHi.js} +0 -0
- /package/dist/{camera-D8so0Wqg.js → camera-CbeyxVU5.js} +0 -0
- /package/dist/{check-CTBqwPMY.js → check-BpPjjXqx.js} +0 -0
- /package/dist/{checklist-CVBb2iLT.js → checklist-CFCfO7IN.js} +0 -0
- /package/dist/{checkmark-BkBvk5FP.js → checkmark-DhUksPvT.js} +0 -0
- /package/dist/{checkmark-double-9tbcPPxC.js → checkmark-double-BNGXAUiT.js} +0 -0
- /package/dist/{chevron-down-BcjUrqWQ.js → chevron-down-BjZ6BFFp.js} +0 -0
- /package/dist/{chevron-left-DdChgK6Q.js → chevron-left-Z-D_OY2t.js} +0 -0
- /package/dist/{chevron-right-BR3OVahz.js → chevron-right-D1GfZQB6.js} +0 -0
- /package/dist/{chevron-up-R3uiTZDq.js → chevron-up-DWZ1F8w0.js} +0 -0
- /package/dist/{clipboard-BFi2VbBj.js → clipboard-CNCIToKK.js} +0 -0
- /package/dist/{clock-C3D4TRfx.js → clock-CqWSNhFX.js} +0 -0
- /package/dist/{close-CbIMNMG_.js → close-oHIGT_JQ.js} +0 -0
- /package/dist/{cloud-save-CQCTGXxN.js → cloud-save-CWTQ5IHS.js} +0 -0
- /package/dist/{code-ChJ2qMcZ.js → code-BD5nOHqK.js} +0 -0
- /package/dist/{collapse-DISUbIVr.js → collapse-D6QeCZC7.js} +0 -0
- /package/dist/{color-palette-B4pqFFIE.js → color-palette-BpONORjj.js} +0 -0
- /package/dist/{comment-CzF3hkpf.js → comment-D5RZxZWG.js} +0 -0
- /package/dist/{copy-CywrUiK2.js → copy-BDnlScSS.js} +0 -0
- /package/dist/{copy-link-DqcNlpUK.js → copy-link-BSfa58Tb.js} +0 -0
- /package/dist/{delete-Bl6aSpBn.js → delete-dDyi0gau.js} +0 -0
- /package/dist/{download-BdnIOaET.js → download-B-ZTsIBv.js} +0 -0
- /package/dist/{dpa-id-4HKRxUEF.js → dpa-id-DRnjTcHI.js} +0 -0
- /package/dist/{edit-KtC1G-_s.js → edit-BbFkVyRd.js} +0 -0
- /package/dist/{edit-add-DjUq6zXq.js → edit-add-CAPOsjts.js} +0 -0
- /package/dist/{eil-CPA4kVQM.js → eil-CzEP-9Lo.js} +0 -0
- /package/dist/{emoji-C2BmBFxC.js → emoji-BjLqvypC.js} +0 -0
- /package/dist/{emoji-add-NHqne_6m.js → emoji-add-BB4fB4th.js} +0 -0
- /package/dist/{envelope-BDSOA_J7.js → envelope-DftzB5Ol.js} +0 -0
- /package/dist/{event-Bo_sb247.js → event-FR1JMgj6.js} +0 -0
- /package/dist/{expand-BK_uzKmx.js → expand-DaVQ0gpz.js} +0 -0
- /package/dist/{external-link-BPYyKPIa.js → external-link-2Es0qWwd.js} +0 -0
- /package/dist/{file-B97T9C2M.js → file-AHJ00f5M.js} +0 -0
- /package/dist/{file-pdf-lFk-5brY.js → file-pdf-CJDdjKS0.js} +0 -0
- /package/dist/{filter-BIJnBkRa.js → filter-CXjBFUUg.js} +0 -0
- /package/dist/{flag-DNP4L-y-.js → flag-CbX4PUMS.js} +0 -0
- /package/dist/{flags-G-Nbo5ST.js → flags-Buo1j-9g.js} +0 -0
- /package/dist/{flash-9TBwsdOx.js → flash-Dlr5gL01.js} +0 -0
- /package/dist/{folder-s6NWFqjh.js → folder-DQwCjGZC.js} +0 -0
- /package/dist/{folder-add-B-l2wmwY.js → folder-add-zPr2Gmtj.js} +0 -0
- /package/dist/{gallery-B8I5lJ51.js → gallery-CfUbckcB.js} +0 -0
- /package/dist/{gallery-DSmOoCFT.js → gallery-DPl8qZQu.js} +0 -0
- /package/dist/{graphic-BMtcGj5R.js → graphic-BbhCuiiE.js} +0 -0
- /package/dist/{graphic-d-_5qmyr.js → graphic-nXH5ifxc.js} +0 -0
- /package/dist/{graphics-eur3JZ_7.js → graphics-Dp8pQzs-.js} +0 -0
- /package/dist/{grid-1-DOm2nS5Y.js → grid-1-DZUEMbtb.js} +0 -0
- /package/dist/{grid-2-D9XOIyFO.js → grid-2-BQ-9yylY.js} +0 -0
- /package/dist/{grid-3-CR1E0m9u.js → grid-3-BGhZrrCJ.js} +0 -0
- /package/dist/{grid-4-QKKeiUGc.js → grid-4-DY9N435A.js} +0 -0
- /package/dist/{grid-6-C5bCbXur.js → grid-6-B0BR3wbB.js} +0 -0
- /package/dist/{grid-9-FNxsRYRg.js → grid-9-BWhM7qat.js} +0 -0
- /package/dist/{grid-masonry-CuwXzdZ6.js → grid-masonry-1e9tYkSK.js} +0 -0
- /package/dist/{grid-masonry-9-CxLBpKCz.js → grid-masonry-9-DiiX1pQo.js} +0 -0
- /package/dist/{help-DkjfD818.js → help-CLfj4LQM.js} +0 -0
- /package/dist/{home-njHAfgwc.js → home-D6htLjOF.js} +0 -0
- /package/dist/{image-C2RlXeDP.js → image-DnYnaoeu.js} +0 -0
- /package/dist/{impact-high-C0SywXT1.js → impact-high-DuECIU0d.js} +0 -0
- /package/dist/{impact-low-yDd0jU4k.js → impact-low-DMtzvmWi.js} +0 -0
- /package/dist/{impact-medium-Cc_nInN7.js → impact-medium-B5-WfnV2.js} +0 -0
- /package/dist/{impact-very-high-DiOgG_Ji.js → impact-very-high-C1K1nCE9.js} +0 -0
- /package/dist/{impact-very-low-CYW4RgJO.js → impact-very-low-CXbiBK6E.js} +0 -0
- /package/dist/{info-NBFIJ3YI.js → info-Ca-64c_9.js} +0 -0
- /package/dist/{label-CTr8hHIv.js → label-D8X5FrVe.js} +0 -0
- /package/dist/{label-filled-CnTpOqvX.js → label-filled-DjSc-Fk4.js} +0 -0
- /package/dist/{language-UqPESR_Z.js → language-OE6ZfER_.js} +0 -0
- /package/dist/{latest-Cq12zjMs.js → latest-D0dlub5f.js} +0 -0
- /package/dist/{lightbulb-BpK9qU_u.js → lightbulb-DKJrsADi.js} +0 -0
- /package/dist/{list-DKcsNf15.js → list-BviTrZEl.js} +0 -0
- /package/dist/{list-search-BzZuYf_P.js → list-search-Ck6anukf.js} +0 -0
- /package/dist/{lock-BFfHVSog.js → lock-C5vUwbkA.js} +0 -0
- /package/dist/{mail-pagEqHtM.js → mail-CtA-d2d0.js} +0 -0
- /package/dist/{menu-j4cvnLP8.js → menu-DFzmvE6J.js} +0 -0
- /package/dist/{minus-CGsJ-jkT.js → minus-COmVHb9S.js} +0 -0
- /package/dist/{more-horizontal-CDZjG5h8.js → more-horizontal-DzHbd3yn.js} +0 -0
- /package/dist/{more-vertical-YUehtvol.js → more-vertical-CiJm6ZaV.js} +0 -0
- /package/dist/{move-CiU3PwqY.js → move-CUyDTrlz.js} +0 -0
- /package/dist/{move-up-down-H-qHtTwO.js → move-up-down-3AiMDXGu.js} +0 -0
- /package/dist/{navigation-DmqoQINO.js → navigation-BryXzz7G.js} +0 -0
- /package/dist/{note-BZ3q-D4L.js → note-CXIfkCb0.js} +0 -0
- /package/dist/{offline-CLl0pwpv.js → offline-BlqqTvjx.js} +0 -0
- /package/dist/{package-iJOVTpPH.js → package-BEkSqrZt.js} +0 -0
- /package/dist/{package-D_Bh8bgp.js → package-pKbuF39E.js} +0 -0
- /package/dist/{paper-plane-DcYms0cj.js → paper-plane-CwVjTgAB.js} +0 -0
- /package/dist/{pause-COAxeJRm.js → pause-D-nbILiS.js} +0 -0
- /package/dist/{pdf-BweFqxRM.js → pdf-C7o5LP5D.js} +0 -0
- /package/dist/{pen-CmBOMgX_.js → pen-5O6IZM5k.js} +0 -0
- /package/dist/{pen-check-BApB0Zi2.js → pen-check-GQoVyZ_V.js} +0 -0
- /package/dist/{people-D07vIou7.js → people-CFA1u84D.js} +0 -0
- /package/dist/{phone-B9TyVbBj.js → phone-BmL2p-7F.js} +0 -0
- /package/dist/{picture-D7kBYru_.js → picture-BBiWVmta.js} +0 -0
- /package/dist/{picture-DJRwU5Gl.js → picture-jf1PkZfY.js} +0 -0
- /package/dist/{pin-BlBzA8ov.js → pin-CTaBntUQ.js} +0 -0
- /package/dist/{planning-BhE-A4FO.js → planning-s3sRV6ix.js} +0 -0
- /package/dist/{plus-CmEv_iHA.js → plus-Dm-ZxxHJ.js} +0 -0
- /package/dist/{print-ChdLXKHj.js → print-B5fjHJZL.js} +0 -0
- /package/dist/{refresh-C7k19NtO.js → refresh-gU5ZZuG6.js} +0 -0
- /package/dist/{reset-CpXqaOj5.js → reset-CwU1iGF5.js} +0 -0
- /package/dist/{responsive-CKNXzAo1.js → responsive-BHNmDmM6.js} +0 -0
- /package/dist/{rubix-thema-Cmk-5-bm.js → rubix-thema-BZvVEFud.js} +0 -0
- /package/dist/{save-BX3-Z5qP.js → save-mTHDeUnL.js} +0 -0
- /package/dist/{saved-search-Be8D9tJ9.js → saved-search-DJO4_yPH.js} +0 -0
- /package/dist/{search-BeIwOzJl.js → search-B5yHBLf_.js} +0 -0
- /package/dist/{settings-CLChu_zl.js → settings-Hb_Y7Y53.js} +0 -0
- /package/dist/{share-j6ezShBH.js → share-OpdW8ZmZ.js} +0 -0
- /package/dist/{share-alternative-BD-WQYvk.js → share-alternative-C3pSVTYb.js} +0 -0
- /package/dist/{sidebar-CPe20Xae.js → sidebar-DtAUGBof.js} +0 -0
- /package/dist/{slack-BjvLF16S.js → slack-mCoCq7b9.js} +0 -0
- /package/dist/{slider-config-CTzwxojK.js → slider-config-yjKG-9r9.js} +0 -0
- /package/dist/{spellcheck-thqRUMx9.js → spellcheck-bP4DPCKJ.js} +0 -0
- /package/dist/src/assets/icons/{alert-fill.vue → alert-filled.vue} +0 -0
- /package/dist/src/assets/icons/{bell-fill.vue → bell-filled.vue} +0 -0
- /package/dist/src/assets/icons/{comment-fill.vue → comment-filled.vue} +0 -0
- /package/dist/src/assets/icons/{image focus point.vue → image-focus-point.vue} +0 -0
- /package/dist/src/assets/icons/{saved-search-fill.vue → saved-search-filled.vue} +0 -0
- /package/dist/src/assets/icons/{sidebar-fill.vue → sidebar-filled.vue} +0 -0
- /package/dist/src/assets/icons/{video overlay.vue → video-overlay.vue} +0 -0
- /package/dist/{standard-view-dE52BPUm.js → standard-view-CN0ixRE4.js} +0 -0
- /package/dist/{star-uv_o0S9H.js → star-BKWqck4u.js} +0 -0
- /package/dist/{star-filled-BqrpxMqq.js → star-filled-CdXMXBn7.js} +0 -0
- /package/dist/{stop-CrmQCpqp.js → stop-B8l9lmwT.js} +0 -0
- /package/dist/{story-BdUCZQmb.js → story-Cxy8EkgB.js} +0 -0
- /package/dist/{story-DEvV0oQv.js → story-DOxZDwJp.js} +0 -0
- /package/dist/{sync-CPmOdu5b.js → sync-BW_fAqt6.js} +0 -0
- /package/dist/{tasks-TKH8SUBe.js → tasks-DLNuebMi.js} +0 -0
- /package/dist/{text-7i2atLMM.js → text-Bsl2QZz3.js} +0 -0
- /package/dist/{text-BMhu0paW.js → text-CPSps-qh.js} +0 -0
- /package/dist/{thumbs-down-LH8SIeIF.js → thumbs-down-pSf_ND98.js} +0 -0
- /package/dist/{thumbs-up-WZQzpqKr.js → thumbs-up-Braz70N6.js} +0 -0
- /package/dist/{thumbs-up-double-SeGWEXZ_.js → thumbs-up-double-C6foUkOq.js} +0 -0
- /package/dist/{topic-63EhQ_l1.js → topic-BamlhBNV.js} +0 -0
- /package/dist/{union-DKjbjP-9.js → union-CYw04THu.js} +0 -0
- /package/dist/{upload-yjh9wxAA.js → upload-BL_iLqTa.js} +0 -0
- /package/dist/{user-need-divert-me-B_cSVEIY.js → user-need-divert-me-2RaqdMMH.js} +0 -0
- /package/dist/{user-need-educate-me-DOgCmShA.js → user-need-educate-me-CRi42bIc.js} +0 -0
- /package/dist/{user-need-give-me-perspective-2wacZI2F.js → user-need-give-me-perspective-BIF7v9vF.js} +0 -0
- /package/dist/{user-need-help-me-D4VE0IcH.js → user-need-help-me-O0XSLzP-.js} +0 -0
- /package/dist/{user-need-touch-me-u3n8c5IH.js → user-need-touch-me-BueJ3SSh.js} +0 -0
- /package/dist/{user-need-update-me-BcDyXzME.js → user-need-update-me-DP574fsn.js} +0 -0
- /package/dist/{video-BViz7WnQ.js → video-CWHoNlON.js} +0 -0
- /package/dist/{video-hhs4-tLq.js → video-DhS7zpNF.js} +0 -0
- /package/dist/{view-C9Xks5Gy.js → view-Bc5W8beK.js} +0 -0
- /package/dist/{view-off-BuSbQwX0.js → view-off-DquC2i3E.js} +0 -0
- /package/dist/{volume-up-BLQXZI5X.js → volume-up-DEzoW7Bq.js} +0 -0
- /package/src/assets/icons/{alert-fill.vue → alert-filled.vue} +0 -0
- /package/src/assets/icons/{bell-fill.vue → bell-filled.vue} +0 -0
- /package/src/assets/icons/{comment-fill.vue → comment-filled.vue} +0 -0
- /package/src/assets/icons/{image focus point.vue → image-focus-point.vue} +0 -0
- /package/src/assets/icons/{saved-search-fill.vue → saved-search-filled.vue} +0 -0
- /package/src/assets/icons/{sidebar-fill.vue → sidebar-filled.vue} +0 -0
- /package/src/assets/icons/{video overlay.vue → video-overlay.vue} +0 -0
|
@@ -1,192 +1,149 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
></UiFilterButton>
|
|
17
|
-
<Transition :name="animate ? `fade-up` : 'none'">
|
|
18
|
-
<div
|
|
19
|
-
v-if="isOpen"
|
|
20
|
-
ref="uiMenuDropdown"
|
|
21
|
-
:class="[
|
|
22
|
-
'absolute',
|
|
23
|
-
cn(
|
|
24
|
-
'z-10 [--transition-close-duration:100ms] [--transition-duration:200ms]',
|
|
25
|
-
placedListClass,
|
|
26
|
-
),
|
|
27
|
-
props.listWidth === 'full' ? 'w-full' : 'w-max',
|
|
28
|
-
]"
|
|
29
|
-
:data-side="floatingUi.placement.value"
|
|
30
|
-
:style="
|
|
31
|
-
floatingStylesActive
|
|
32
|
-
? {
|
|
33
|
-
...floatingStyles,
|
|
34
|
-
transform: floatingUi.isPositioned
|
|
35
|
-
? floatingStyles.transform
|
|
36
|
-
: 'translate(0,-200%)',
|
|
37
|
-
}
|
|
38
|
-
: null
|
|
2
|
+
<UiPopover :initially-open="isOpen" :animate :placement="floatingUiPlacement">
|
|
3
|
+
<template #button="{ toggle, isOpen: isPopoverOpen }">
|
|
4
|
+
<UiButton
|
|
5
|
+
class="w-full justify-between"
|
|
6
|
+
:class="{
|
|
7
|
+
'border-neutral-subtle': isPopoverOpen,
|
|
8
|
+
}"
|
|
9
|
+
:appearance="active ? 'primary' : buttonAppearance"
|
|
10
|
+
:disabled
|
|
11
|
+
:size="filterButtonSize"
|
|
12
|
+
data-testid="menu-button"
|
|
13
|
+
@click="
|
|
14
|
+
toggle();
|
|
15
|
+
isPopoverOpen ? $emit('close') : $emit('open');
|
|
39
16
|
"
|
|
40
|
-
data-testid="menu"
|
|
41
17
|
>
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
18
|
+
<div class="flex items-center gap-2">
|
|
19
|
+
<UiIcon v-if="iconLeft" :name="iconLeft" size="sm" />
|
|
20
|
+
{{ selectedOptionLabel }}
|
|
21
|
+
</div>
|
|
22
|
+
<UiIcon name="chevron-down" size="sm" />
|
|
23
|
+
</UiButton>
|
|
24
|
+
</template>
|
|
25
|
+
|
|
26
|
+
<template #default="{ close }">
|
|
27
|
+
<div
|
|
28
|
+
class="block w-max max-w-full divide-y overflow-hidden rounded-sm text-base/6 shadow-lg focus:outline-hidden sm:text-sm/5"
|
|
29
|
+
>
|
|
30
|
+
<div
|
|
31
|
+
v-if="hasSearch"
|
|
32
|
+
class="flex items-center gap-2 rounded-t-sm px-4 py-2 text-neutral-primary [&:has(>input:focus-visible)]:focus-outline [&:has(>input:focus-visible)]:-outline-offset-2"
|
|
51
33
|
>
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
34
|
+
<UiIcon
|
|
35
|
+
class="shrink-0 text-neutral-emphasis"
|
|
36
|
+
name="search"
|
|
37
|
+
size="sm"
|
|
38
|
+
/>
|
|
39
|
+
<input
|
|
40
|
+
ref="search-input"
|
|
41
|
+
v-model="queryModel"
|
|
42
|
+
type="text"
|
|
43
|
+
spellcheck="false"
|
|
44
|
+
class="w-full text-sm focus:outline-hidden"
|
|
45
|
+
:placeholder="searchPlaceholder"
|
|
46
|
+
data-testid="menu-search-input"
|
|
47
|
+
/>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<slot
|
|
51
|
+
v-bind="{
|
|
52
|
+
checkboxAppearance,
|
|
53
|
+
checkboxSize,
|
|
54
|
+
iconSize,
|
|
55
|
+
imageShape,
|
|
56
|
+
listVariant,
|
|
57
|
+
options,
|
|
58
|
+
groupedOptions,
|
|
59
|
+
}"
|
|
60
|
+
>
|
|
61
|
+
<ul
|
|
62
|
+
v-if="processedOptions.some(({ options }) => options.length > 0)"
|
|
63
|
+
class="max-h-80 overflow-y-auto"
|
|
64
|
+
data-testid="menu-option-list"
|
|
75
65
|
>
|
|
76
|
-
<
|
|
77
|
-
v-
|
|
78
|
-
|
|
79
|
-
groupedOptions.some(
|
|
80
|
-
(groupedOption) => groupedOption.options.length > 0,
|
|
81
|
-
)
|
|
82
|
-
"
|
|
83
|
-
class="max-h-80 overflow-y-auto"
|
|
84
|
-
tabindex="0"
|
|
66
|
+
<template
|
|
67
|
+
v-for="group in processedOptions"
|
|
68
|
+
:key="`group-${group.groupLabel ?? 'default'}`"
|
|
85
69
|
>
|
|
86
|
-
<template
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
:
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
70
|
+
<template v-if="group.options.length > 0">
|
|
71
|
+
<li
|
|
72
|
+
v-if="group.groupLabel"
|
|
73
|
+
class="flex h-6 items-center bg-neutral-whisper px-4 text-xs font-semibold tracking-wider text-neutral-subtle uppercase"
|
|
74
|
+
>
|
|
75
|
+
{{ group.groupLabel }}
|
|
76
|
+
</li>
|
|
77
|
+
|
|
78
|
+
<UiListItem
|
|
79
|
+
v-for="(option, index) in group.options"
|
|
80
|
+
:key="`option-${option.value}`"
|
|
81
|
+
:selected="option.selected"
|
|
82
|
+
:selectable="listVariant === 'selectable'"
|
|
83
|
+
:is-checked="option.selected"
|
|
84
|
+
:check-box-menu="listVariant === 'checkbox'"
|
|
85
|
+
:icon-size="iconSize"
|
|
86
|
+
:image-shape="imageShape"
|
|
87
|
+
:image-src="option.imageSrc"
|
|
88
|
+
:icon-name="option.iconName"
|
|
89
|
+
:checkbox-size="checkboxSize"
|
|
90
|
+
:checkbox-appearance="checkboxAppearance"
|
|
91
|
+
class="hover:bg-neutral-whisper focus:bg-neutral-faint"
|
|
92
|
+
:class="{
|
|
93
|
+
'border-t': option.hasDividerAbove,
|
|
94
|
+
}"
|
|
95
|
+
:data-testid="`menu-option-button-${index}`"
|
|
96
|
+
@list-item-click="
|
|
97
|
+
(value, shouldCloseMenu) => {
|
|
98
|
+
selectOption(option);
|
|
99
|
+
if (shouldCloseMenu) {
|
|
100
|
+
close();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
"
|
|
104
|
+
>{{ option.label }}</UiListItem
|
|
105
|
+
>
|
|
117
106
|
</template>
|
|
118
|
-
</
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
:icon-name="option.iconName"
|
|
131
|
-
:checkbox-size="checkboxSize"
|
|
132
|
-
:check-box-color="checkboxColor"
|
|
133
|
-
class="hover:bg-gray-100 focus:bg-gray-300"
|
|
134
|
-
:data-testid="`menu-option-button-${index}`"
|
|
135
|
-
@list-item-click="selectOption(option)"
|
|
136
|
-
>{{ option.label }}
|
|
137
|
-
</UiListItem>
|
|
138
|
-
</ul>
|
|
139
|
-
</slot>
|
|
140
|
-
|
|
141
|
-
<li
|
|
142
|
-
v-if="hasResetOption"
|
|
143
|
-
style="outline-offset: -2px"
|
|
144
|
-
class="border-t fill-current px-4 py-2 text-gray-900 shadow-none"
|
|
145
|
-
data-testid="reset-button"
|
|
107
|
+
</template>
|
|
108
|
+
</ul>
|
|
109
|
+
</slot>
|
|
110
|
+
|
|
111
|
+
<div v-if="hasResetOption" class="px-4 py-2 text-neutral-primary">
|
|
112
|
+
<UiButton
|
|
113
|
+
appearance="secondary"
|
|
114
|
+
:disabled="disabledReset"
|
|
115
|
+
icon-name="reset"
|
|
116
|
+
size="xs"
|
|
117
|
+
data-testid="menu-search-reset-button"
|
|
118
|
+
@click="$emit('reset')"
|
|
146
119
|
>
|
|
147
|
-
<
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
icon-name="reset"
|
|
152
|
-
size="xs"
|
|
153
|
-
data-testid="menu-search-reset-button"
|
|
154
|
-
@click="handleReset"
|
|
155
|
-
>{{ resetLabel }}</UiButton
|
|
156
|
-
>
|
|
157
|
-
</li>
|
|
158
|
-
</UiList>
|
|
120
|
+
<UiIcon name="reset" />
|
|
121
|
+
{{ resetLabel }}
|
|
122
|
+
</UiButton>
|
|
123
|
+
</div>
|
|
159
124
|
</div>
|
|
160
|
-
</
|
|
161
|
-
</
|
|
125
|
+
</template>
|
|
126
|
+
</UiPopover>
|
|
162
127
|
</template>
|
|
163
128
|
|
|
164
129
|
<script setup lang="ts" generic="Value">
|
|
165
|
-
import {
|
|
166
|
-
|
|
167
|
-
flip,
|
|
168
|
-
type Placement,
|
|
169
|
-
shift,
|
|
170
|
-
useFloating,
|
|
171
|
-
type UseFloatingOptions,
|
|
172
|
-
} from "@floating-ui/vue";
|
|
173
|
-
import { computed, type HTMLAttributes, ref, watchPostEffect } from "vue";
|
|
130
|
+
import type { Placement } from "@floating-ui/vue";
|
|
131
|
+
import { computed, onMounted, useTemplateRef } from "vue";
|
|
174
132
|
|
|
175
|
-
import { vClickAway } from "../../directives/vClickAway.ts";
|
|
176
|
-
import { cn } from "../../utils/cn.ts";
|
|
177
133
|
import UiButton from "../UiButton/UiButton.vue";
|
|
178
|
-
import UiFilterButton from "../UiFilterButton/UiFilterButton.vue";
|
|
179
134
|
import type { UiIconName } from "../UiIcon/UiIcon.vue";
|
|
180
|
-
import
|
|
135
|
+
import UiIcon from "../UiIcon/UiIcon.vue";
|
|
181
136
|
import UiListItem from "../UiListItem/UiListItem.vue";
|
|
182
|
-
import
|
|
137
|
+
import UiPopover from "../UiPopover/UiPopover.vue";
|
|
183
138
|
|
|
184
139
|
export type UiMenuOptionType<Value = unknown> = {
|
|
185
140
|
label: string;
|
|
186
|
-
imageSrc?: string
|
|
187
|
-
iconName?: UiIconName
|
|
141
|
+
imageSrc?: string;
|
|
142
|
+
iconName?: UiIconName;
|
|
188
143
|
selected: boolean;
|
|
189
144
|
value: Value;
|
|
145
|
+
/** @default false */
|
|
146
|
+
hasDividerAbove?: boolean;
|
|
190
147
|
};
|
|
191
148
|
|
|
192
149
|
export type UiMenuSelectedOption<Value = unknown> = UiMenuOptionType<Value> & {
|
|
@@ -199,268 +156,131 @@ export type UiMenuGroupedOption<Value = unknown> = {
|
|
|
199
156
|
};
|
|
200
157
|
|
|
201
158
|
defineSlots<{
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}): any;
|
|
159
|
+
default?: (props: {
|
|
160
|
+
checkboxAppearance: typeof checkboxAppearance;
|
|
161
|
+
checkboxSize: typeof checkboxSize;
|
|
162
|
+
iconSize: typeof iconSize;
|
|
163
|
+
imageShape: typeof imageShape;
|
|
164
|
+
listVariant: typeof listVariant;
|
|
165
|
+
options: typeof options;
|
|
166
|
+
groupedOptions: typeof groupedOptions;
|
|
167
|
+
}) => any;
|
|
212
168
|
}>();
|
|
213
169
|
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
floatingUiPlacement: "bottom-start",
|
|
278
|
-
floatingUiOptions: null,
|
|
279
|
-
animate: false,
|
|
280
|
-
placedListClass: undefined,
|
|
281
|
-
query: "",
|
|
282
|
-
},
|
|
283
|
-
);
|
|
170
|
+
const queryModel = defineModel<string>("query", { default: "" });
|
|
171
|
+
|
|
172
|
+
const {
|
|
173
|
+
options = undefined,
|
|
174
|
+
groupedOptions = undefined,
|
|
175
|
+
isOpen = false,
|
|
176
|
+
floatingUiPlacement = "bottom-start",
|
|
177
|
+
animate = false,
|
|
178
|
+
|
|
179
|
+
// Button slot
|
|
180
|
+
disabled = false,
|
|
181
|
+
active = false,
|
|
182
|
+
iconLeft = null,
|
|
183
|
+
buttonAppearance = "secondary-alt",
|
|
184
|
+
filterButtonSize = "sm",
|
|
185
|
+
defaultTitle = "",
|
|
186
|
+
multiLabel = "",
|
|
187
|
+
noTitle = false,
|
|
188
|
+
|
|
189
|
+
// Search
|
|
190
|
+
hasSearch = false,
|
|
191
|
+
searchPlaceholder = "",
|
|
192
|
+
hasAutoFocus = false,
|
|
193
|
+
hasResetOption = false,
|
|
194
|
+
resetLabel = "",
|
|
195
|
+
|
|
196
|
+
// Menu
|
|
197
|
+
iconSize = "sm",
|
|
198
|
+
imageShape = "square",
|
|
199
|
+
checkboxSize = "md",
|
|
200
|
+
checkboxAppearance = "primary",
|
|
201
|
+
listVariant = "blank",
|
|
202
|
+
} = defineProps<{
|
|
203
|
+
options?: UiMenuOptionType<Value>[];
|
|
204
|
+
groupedOptions?: UiMenuGroupedOption<Value>[];
|
|
205
|
+
isOpen?: boolean;
|
|
206
|
+
floatingUiPlacement?: Placement;
|
|
207
|
+
animate?: boolean;
|
|
208
|
+
|
|
209
|
+
// Button slot
|
|
210
|
+
disabled?: boolean;
|
|
211
|
+
active?: boolean;
|
|
212
|
+
iconLeft?: UiIconName;
|
|
213
|
+
buttonAppearance?: "primary" | "secondary" | "secondary-alt" | "ghost";
|
|
214
|
+
filterButtonSize?: "sm" | "xs";
|
|
215
|
+
defaultTitle?: string;
|
|
216
|
+
multiLabel?: string;
|
|
217
|
+
noTitle?: boolean;
|
|
218
|
+
|
|
219
|
+
// Search
|
|
220
|
+
hasSearch?: boolean;
|
|
221
|
+
searchPlaceholder?: string;
|
|
222
|
+
hasAutoFocus?: boolean;
|
|
223
|
+
hasResetOption?: boolean;
|
|
224
|
+
resetLabel?: string;
|
|
225
|
+
|
|
226
|
+
// Menu
|
|
227
|
+
iconSize?: "sm" | "md" | "lg";
|
|
228
|
+
imageShape?: "rounded" | "square";
|
|
229
|
+
checkboxSize?: "sm" | "md";
|
|
230
|
+
checkboxAppearance?: "primary" | "secondary";
|
|
231
|
+
listVariant?: "checkbox" | "selectable" | "blank";
|
|
232
|
+
}>();
|
|
284
233
|
|
|
285
234
|
const emit = defineEmits<{
|
|
286
235
|
open: [];
|
|
287
236
|
close: [];
|
|
288
237
|
"option-selected": [UiMenuSelectedOption<Value>];
|
|
289
|
-
input: [string];
|
|
290
238
|
reset: [];
|
|
291
|
-
placed: [];
|
|
292
239
|
}>();
|
|
293
240
|
|
|
294
|
-
const
|
|
295
|
-
const uiMenuDropdown = ref();
|
|
241
|
+
const searchInputRef = useTemplateRef("search-input");
|
|
296
242
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
{
|
|
301
|
-
placement: props.floatingUiPlacement,
|
|
302
|
-
middleware: [flip(), shift()],
|
|
303
|
-
whileElementsMounted: autoUpdate,
|
|
304
|
-
...(props.floatingUiOptions ? props.floatingUiOptions : {}),
|
|
305
|
-
},
|
|
306
|
-
);
|
|
307
|
-
|
|
308
|
-
watchPostEffect(() => {
|
|
309
|
-
if (floatingUi.isPositioned.value) {
|
|
310
|
-
emit("placed");
|
|
243
|
+
onMounted(() => {
|
|
244
|
+
if (hasAutoFocus) {
|
|
245
|
+
searchInputRef.value?.focus();
|
|
311
246
|
}
|
|
312
247
|
});
|
|
313
248
|
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const selectedOptions = options?.filter((option) => option?.selected);
|
|
318
|
-
const selectedValues = [
|
|
319
|
-
...new Set(selectedOptions?.map(({ value }) => value)),
|
|
320
|
-
];
|
|
321
|
-
if (selectedOptions && selectedValues.length > 0) {
|
|
322
|
-
if (props.noTitle) {
|
|
323
|
-
return "";
|
|
324
|
-
}
|
|
325
|
-
if (selectedValues.length === 1) {
|
|
326
|
-
return selectedOptions[0].label;
|
|
327
|
-
} else {
|
|
328
|
-
return `${selectedValues.length} ${props.multiLabel}`;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return "";
|
|
332
|
-
});
|
|
333
|
-
|
|
334
|
-
const selectOption = (selectedOption: UiMenuOptionType<Value>): void => {
|
|
335
|
-
const options =
|
|
336
|
-
props.options || props.groupedOptions?.map((group) => group.options).flat();
|
|
337
|
-
const index = options?.findIndex(
|
|
338
|
-
(option) => option.value === selectedOption.value,
|
|
339
|
-
) as number;
|
|
340
|
-
|
|
341
|
-
emit("option-selected", {
|
|
342
|
-
...selectedOption,
|
|
343
|
-
index,
|
|
344
|
-
});
|
|
345
|
-
};
|
|
346
|
-
|
|
347
|
-
const toggleDisplay = (): void => {
|
|
348
|
-
(props.isOpen ? close : open)();
|
|
349
|
-
};
|
|
350
|
-
|
|
351
|
-
const close = (): void => {
|
|
352
|
-
if (props.isOpen) emit("close");
|
|
353
|
-
};
|
|
354
|
-
|
|
355
|
-
const open = (): void => {
|
|
356
|
-
if (!props.isOpen) emit("open");
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
const updateValue = (value: string): void => {
|
|
360
|
-
emit("input", value);
|
|
361
|
-
};
|
|
362
|
-
|
|
363
|
-
const handleReset = () => {
|
|
364
|
-
emit("reset");
|
|
365
|
-
};
|
|
366
|
-
</script>
|
|
249
|
+
const processedOptions = computed<UiMenuGroupedOption<Value>[]>(
|
|
250
|
+
() => groupedOptions ?? [{ options: options ?? [] }],
|
|
251
|
+
);
|
|
367
252
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
}
|
|
374
|
-
100% {
|
|
375
|
-
opacity: 1;
|
|
376
|
-
transform: translate3d(0, 0, 0);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
253
|
+
const disabledReset = computed(() => {
|
|
254
|
+
return processedOptions.value
|
|
255
|
+
.flatMap(({ options }) => options)
|
|
256
|
+
.every((option) => !option.selected);
|
|
257
|
+
});
|
|
379
258
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
transform: translate3d(4px, 0, 0);
|
|
384
|
-
}
|
|
385
|
-
100% {
|
|
386
|
-
opacity: 1;
|
|
387
|
-
transform: translate3d(0, 0, 0);
|
|
259
|
+
const selectedOptionLabel = computed<string>(() => {
|
|
260
|
+
if (noTitle) {
|
|
261
|
+
return defaultTitle;
|
|
388
262
|
}
|
|
389
|
-
}
|
|
390
263
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
transform: translate3d(-4px, 0, 0);
|
|
395
|
-
}
|
|
396
|
-
100% {
|
|
397
|
-
opacity: 1;
|
|
398
|
-
transform: translate3d(0, 0, 0);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
264
|
+
const selectedOptions = processedOptions.value
|
|
265
|
+
.flatMap((group) => group.options)
|
|
266
|
+
.filter((option) => option.selected);
|
|
401
267
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
opacity: 0;
|
|
405
|
-
transform: translate3d(0, 4px, 0);
|
|
406
|
-
}
|
|
407
|
-
100% {
|
|
408
|
-
opacity: 1;
|
|
409
|
-
transform: translate3d(0, 0, 0);
|
|
268
|
+
if (selectedOptions.length === 0) {
|
|
269
|
+
return defaultTitle;
|
|
410
270
|
}
|
|
411
|
-
}
|
|
412
271
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
opacity: 0;
|
|
272
|
+
if (selectedOptions.length === 1) {
|
|
273
|
+
return selectedOptions[0].label;
|
|
416
274
|
}
|
|
417
|
-
100% {
|
|
418
|
-
opacity: 1;
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
.fade-up-enter-active {
|
|
423
|
-
animation: fade-in calc(var(--transition-duration) + 5ms);
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
.fade-up-leave-active {
|
|
427
|
-
animation: fade-in calc(var(--transition-close-duration) + 5ms);
|
|
428
|
-
animation-direction: reverse;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
[data-side*="bottom"].fade-up-enter-active > * {
|
|
432
|
-
animation: fade-slide-up var(--transition-duration);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
[data-side*="bottom"].fade-up-leave-active > * {
|
|
436
|
-
animation: fade-slide-up var(--transition-close-duration);
|
|
437
|
-
animation-direction: reverse;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
[data-side*="top"].fade-up-enter-active > * {
|
|
441
|
-
animation: fade-slide-down var(--transition-duration);
|
|
442
|
-
}
|
|
443
275
|
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
animation-direction: reverse;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
[data-side*="left"].fade-up-enter-active > * {
|
|
450
|
-
animation: fade-slide-left var(--transition-duration);
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
[data-side*="left"].fade-up-leave-active > * {
|
|
454
|
-
animation: fade-slide-left var(--transition-close-duration);
|
|
455
|
-
animation-direction: reverse;
|
|
456
|
-
}
|
|
276
|
+
return `${selectedOptions.length} ${multiLabel}`.trim();
|
|
277
|
+
});
|
|
457
278
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
279
|
+
const selectOption = (selectedOption: UiMenuOptionType<Value>): void => {
|
|
280
|
+
const index = processedOptions.value
|
|
281
|
+
.flatMap((group) => group.options)
|
|
282
|
+
.findIndex(({ value }) => value === selectedOption.value);
|
|
461
283
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
}
|
|
466
|
-
</style>
|
|
284
|
+
emit("option-selected", { ...selectedOption, index });
|
|
285
|
+
};
|
|
286
|
+
</script>
|