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