@dpa-id-components/dpa-shared-components 22.0.0-next.1 → 22.0.0-next.11

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 (299) hide show
  1. package/dist/{activities-BxyZQp7R.js → activities-CNONG76g.js} +2 -2
  2. package/dist/{ai-CvQQ6hUw.js → ai-BORdA1tP.js} +2 -2
  3. package/dist/{alert-BeP6nqRf.js → alert-CEh7TpHk.js} +2 -2
  4. package/dist/{alert-filled-COSmQYAa.js → alert-filled-GUQ1sv5T.js} +2 -2
  5. package/dist/{alert-CdAp0ksh.js → alert-k4dRvZkA.js} +2 -2
  6. package/dist/{alert-octagon-Cd-_T4ON.js → alert-octagon-D6ymVrlL.js} +2 -2
  7. package/dist/{apps-CtY6nO4d.js → apps-31DLZEqJ.js} +2 -2
  8. package/dist/{archive-DmV6cQ50.js → archive-DxH0AmUn.js} +2 -2
  9. package/dist/{arrow-down-Cfib5c-0.js → arrow-down-B9xmpEKh.js} +2 -2
  10. package/dist/{arrow-left-CFSY8V--.js → arrow-left-w89ZP810.js} +2 -2
  11. package/dist/{arrow-nav-left-BRYPr4oj.js → arrow-nav-left-CsT11yHm.js} +2 -2
  12. package/dist/{arrow-nav-right-PqR7W08e.js → arrow-nav-right-CauLQRaf.js} +2 -2
  13. package/dist/{arrow-right-ByFSLzJb.js → arrow-right-Dj7Me-mB.js} +2 -2
  14. package/dist/{arrow-up-DfhQKYKi.js → arrow-up-C7yQWUg5.js} +2 -2
  15. package/dist/{arrowhead-left-BxBCmhZy.js → arrowhead-left-D3prb6lT.js} +2 -2
  16. package/dist/{arrowhead-right-D6Hk6b6x.js → arrowhead-right-DYkeDm5p.js} +2 -2
  17. package/dist/{arrowhead-top-wkcSxZmc.js → arrowhead-top-D6Yiw4OG.js} +2 -2
  18. package/dist/assets/icons/lock-filled.vue.d.ts +3 -0
  19. package/dist/assets/icons/play-filled.vue.d.ts +3 -0
  20. package/dist/{atmo-CqanVC-e.js → atmo-BYdaOrhT.js} +2 -2
  21. package/dist/{audio-DS8plcCU.js → audio-BLhGEnZc.js} +2 -2
  22. package/dist/{audio-Cgg6MUeM.js → audio-CaUo0DpR.js} +2 -2
  23. package/dist/{bag-B28jMR7E.js → bag-DfUnEdIG.js} +2 -2
  24. package/dist/{bell-k_sZgnpL.js → bell-BUoHDgUa.js} +2 -2
  25. package/dist/{bell-filled-7gfK8601.js → bell-filled-9k1Rm3vh.js} +2 -2
  26. package/dist/{book-CqUJ_JRz.js → book-DJ-BeeEm.js} +2 -2
  27. package/dist/{bookmark-D65iW--h.js → bookmark-C6STJXUN.js} +2 -2
  28. package/dist/{bookmark-filled-5lCW1BfF.js → bookmark-filled-CxwMfIfF.js} +2 -2
  29. package/dist/{box-BCDNtaq7.js → box-DFDPFTQ7.js} +2 -2
  30. package/dist/{bulb-12wSYpgA.js → bulb-qwe4TWu7.js} +2 -2
  31. package/dist/{call-CW04DyHi.js → call-CfOzRaYz.js} +2 -2
  32. package/dist/{camera-CbeyxVU5.js → camera-BCW_KVfC.js} +2 -2
  33. package/dist/{check-BpPjjXqx.js → check-CiZxunah.js} +2 -2
  34. package/dist/{checklist-CFCfO7IN.js → checklist-CKV_EHso.js} +2 -2
  35. package/dist/{checkmark-DhUksPvT.js → checkmark-BE0OoZGa.js} +2 -2
  36. package/dist/{checkmark-double-BNGXAUiT.js → checkmark-double-BJAvABOC.js} +2 -2
  37. package/dist/{chevron-down-BjZ6BFFp.js → chevron-down-B5PIbEio.js} +2 -2
  38. package/dist/{chevron-left-Z-D_OY2t.js → chevron-left-BPryaWHJ.js} +2 -2
  39. package/dist/{chevron-right-D1GfZQB6.js → chevron-right-CB2iqaCO.js} +2 -2
  40. package/dist/{chevron-up-DWZ1F8w0.js → chevron-up-NvAEC--2.js} +2 -2
  41. package/dist/{clipboard-CNCIToKK.js → clipboard-BsskWPLx.js} +2 -2
  42. package/dist/{clock-CqWSNhFX.js → clock-D3iR841r.js} +2 -2
  43. package/dist/{close-oHIGT_JQ.js → close-BwgoeQAp.js} +2 -2
  44. package/dist/{cloud-save-CWTQ5IHS.js → cloud-save-C1k851Z_.js} +2 -2
  45. package/dist/{code-BD5nOHqK.js → code-CbwDeiVM.js} +2 -2
  46. package/dist/{collapse-D6QeCZC7.js → collapse-BIUDbTyr.js} +2 -2
  47. package/dist/{color-palette-BpONORjj.js → color-palette-DUY9An-f.js} +2 -2
  48. package/dist/{comment-D5RZxZWG.js → comment-DUUDjk_v.js} +2 -2
  49. package/dist/{comment-filled-Cl_qZ6Fz.js → comment-filled-rvm3HWly.js} +2 -2
  50. package/dist/components/UiBadge/UiBadge.vue.d.ts +1 -1
  51. package/dist/components/UiButton/UiButton.vue.d.ts +1 -1
  52. package/dist/components/UiCheckbox/UiCheckbox.vue.d.ts +35 -32
  53. package/dist/components/UiDialog/UiDialog.vue.d.ts +1 -0
  54. package/dist/components/UiIcon/icons.d.ts +2 -0
  55. package/dist/components/UiInput/UiInput.vue.d.ts +35 -32
  56. package/dist/components/UiListItem/UiListItem.vue.d.ts +2 -3
  57. package/dist/components/UiMenu/UiMenu.vue.d.ts +1 -3
  58. package/dist/components/UiPopover/UiPopover.vue.d.ts +5 -1
  59. package/dist/components/UiToggleButton/UiToggleButton.vue.d.ts +1 -1
  60. package/dist/{copy-BDnlScSS.js → copy-DIcAlkg5.js} +2 -2
  61. package/dist/{copy-link-BSfa58Tb.js → copy-link-Dy9otjUI.js} +2 -2
  62. package/dist/{delete-dDyi0gau.js → delete-BI38E8vg.js} +2 -2
  63. package/dist/{download-B-ZTsIBv.js → download-COkMFqqt.js} +2 -2
  64. package/dist/{dpa-id-DRnjTcHI.js → dpa-id-lBIeVHgX.js} +2 -2
  65. package/dist/dpa-shared-components.d.ts +1 -1
  66. package/dist/dpa-shared-components.js +4339 -4120
  67. package/dist/{edit-BbFkVyRd.js → edit-DFZucLKb.js} +2 -2
  68. package/dist/{edit-add-CAPOsjts.js → edit-add-Cx7x5gfl.js} +2 -2
  69. package/dist/{eil-CzEP-9Lo.js → eil-BjfC8db7.js} +2 -2
  70. package/dist/{emoji-BjLqvypC.js → emoji-CZAa65rh.js} +2 -2
  71. package/dist/{emoji-add-BB4fB4th.js → emoji-add-Bdw-xZuW.js} +2 -2
  72. package/dist/{envelope-DftzB5Ol.js → envelope-BL-sHuqE.js} +2 -2
  73. package/dist/eslint.base.config.js +1 -4
  74. package/dist/{event-FR1JMgj6.js → event-C6fYIB3A.js} +2 -2
  75. package/dist/{expand-DaVQ0gpz.js → expand-CbaTiURl.js} +2 -2
  76. package/dist/{external-link-2Es0qWwd.js → external-link-DKF31dpS.js} +2 -2
  77. package/dist/{file-AHJ00f5M.js → file-DWQzWW7U.js} +2 -2
  78. package/dist/{file-pdf-CJDdjKS0.js → file-pdf-C4WTAvL4.js} +2 -2
  79. package/dist/{filter-CXjBFUUg.js → filter-kGJtnOhb.js} +2 -2
  80. package/dist/{flag-CbX4PUMS.js → flag-L7yd4mwV.js} +2 -2
  81. package/dist/{flag-filled-VmJW-U0p.js → flag-filled-CTDa2efs.js} +2 -2
  82. package/dist/{flags-Buo1j-9g.js → flags-Dl7zJKmO.js} +2 -2
  83. package/dist/{flash-Dlr5gL01.js → flash-DZhODZa2.js} +2 -2
  84. package/dist/{folder-DQwCjGZC.js → folder-9Uwlobw5.js} +2 -2
  85. package/dist/{folder-add-zPr2Gmtj.js → folder-add-BTNpiyeV.js} +2 -2
  86. package/dist/{folder-filled-D6pmcH0e.js → folder-filled-VCsVbqgw.js} +2 -2
  87. package/dist/{gallery-DPl8qZQu.js → gallery-CaJoU7iC.js} +2 -2
  88. package/dist/{gallery-CfUbckcB.js → gallery-D-A6Lk4l.js} +2 -2
  89. package/dist/{graphic-BbhCuiiE.js → graphic-BHfsGi2Y.js} +2 -2
  90. package/dist/{graphic-nXH5ifxc.js → graphic-BtBeBP53.js} +2 -2
  91. package/dist/{graphics-Dp8pQzs-.js → graphics-BQsurkrS.js} +2 -2
  92. package/dist/{grid-1-DZUEMbtb.js → grid-1-CYbZv-UT.js} +2 -2
  93. package/dist/{grid-2-BQ-9yylY.js → grid-2-BTFSXvzD.js} +2 -2
  94. package/dist/{grid-3-BGhZrrCJ.js → grid-3-BjlnBMzz.js} +2 -2
  95. package/dist/{grid-4-DY9N435A.js → grid-4-BQUX0ES8.js} +2 -2
  96. package/dist/{grid-6-B0BR3wbB.js → grid-6-CBmGEiqx.js} +2 -2
  97. package/dist/{grid-9-BWhM7qat.js → grid-9-B4NrxHyA.js} +2 -2
  98. package/dist/{grid-masonry-9-DiiX1pQo.js → grid-masonry-9-5-pMpPJP.js} +2 -2
  99. package/dist/{grid-masonry-1e9tYkSK.js → grid-masonry-CQKadmp9.js} +2 -2
  100. package/dist/{help-CLfj4LQM.js → help-DRp9OUcp.js} +2 -2
  101. package/dist/{home-D6htLjOF.js → home-BXPuwKXk.js} +2 -2
  102. package/dist/{image-DnYnaoeu.js → image-BuaeqPub.js} +2 -2
  103. package/dist/{image-focus-point-BJ7HhehR.js → image-focus-point-TJFo_N1n.js} +2 -2
  104. package/dist/{impact-high-DuECIU0d.js → impact-high-DVgcn-Ae.js} +2 -2
  105. package/dist/{impact-low-DMtzvmWi.js → impact-low-CsvuPmk_.js} +2 -2
  106. package/dist/{impact-medium-B5-WfnV2.js → impact-medium-GY_OHSc1.js} +2 -2
  107. package/dist/{impact-very-high-C1K1nCE9.js → impact-very-high-B3en_oYR.js} +2 -2
  108. package/dist/{impact-very-low-CXbiBK6E.js → impact-very-low-Bb-zEAGB.js} +2 -2
  109. package/dist/{info-Ca-64c_9.js → info-CaNyekC4.js} +2 -2
  110. package/dist/{info-filled-PYbvwGmZ.js → info-filled-BMA19BzN.js} +2 -2
  111. package/dist/{label-D8X5FrVe.js → label-Bw1zj9W1.js} +2 -2
  112. package/dist/{label-filled-DjSc-Fk4.js → label-filled-DrguwEbm.js} +2 -2
  113. package/dist/{language-OE6ZfER_.js → language-rz5Z2ZmC.js} +2 -2
  114. package/dist/{latest-D0dlub5f.js → latest-ChE2cmSz.js} +2 -2
  115. package/dist/{lightbulb-DKJrsADi.js → lightbulb-DNR4PX3F.js} +2 -2
  116. package/dist/{list-BviTrZEl.js → list-Cz72rNRB.js} +2 -2
  117. package/dist/{list-search-Ck6anukf.js → list-search-BFpET5qV.js} +2 -2
  118. package/dist/{lock-C5vUwbkA.js → lock-DJTDJhgw.js} +2 -2
  119. package/dist/lock-filled-DRjvJBj3.js +18 -0
  120. package/dist/{mail-CtA-d2d0.js → mail-Bkf5whgc.js} +2 -2
  121. package/dist/{map-filled-Y8JaYK4Y.js → map-filled-DOurRYP3.js} +2 -2
  122. package/dist/{map-FF2zfEGP.js → map-xA3002JW.js} +2 -2
  123. package/dist/{menu-DFzmvE6J.js → menu-2v2TRGv7.js} +2 -2
  124. package/dist/{minus-COmVHb9S.js → minus-BHrEG9BZ.js} +2 -2
  125. package/dist/{more-horizontal-DzHbd3yn.js → more-horizontal-BiLFHNjR.js} +2 -2
  126. package/dist/{more-vertical-CiJm6ZaV.js → more-vertical-MHbB9_He.js} +2 -2
  127. package/dist/{move-CUyDTrlz.js → move-C2Mel2Fs.js} +2 -2
  128. package/dist/{move-up-down-3AiMDXGu.js → move-up-down-CX9AFsb5.js} +2 -2
  129. package/dist/{navigation-BryXzz7G.js → navigation-BxUEjd2D.js} +2 -2
  130. package/dist/{note-CXIfkCb0.js → note-JDaeQ7KP.js} +2 -2
  131. package/dist/{offline-BlqqTvjx.js → offline-DTVkLzxG.js} +2 -2
  132. package/dist/{package-BEkSqrZt.js → package-Cqki3iBp.js} +2 -2
  133. package/dist/{package-pKbuF39E.js → package-a6wVeuDo.js} +2 -2
  134. package/dist/{paper-plane-CwVjTgAB.js → paper-plane-DAhJxCyF.js} +2 -2
  135. package/dist/{pause-D-nbILiS.js → pause-D9YWbY88.js} +2 -2
  136. package/dist/{pdf-C7o5LP5D.js → pdf-DYHgIGl5.js} +2 -2
  137. package/dist/{pen-5O6IZM5k.js → pen-DpSe4QTA.js} +2 -2
  138. package/dist/{pen-check-GQoVyZ_V.js → pen-check-B6w-qyKk.js} +2 -2
  139. package/dist/{people-CFA1u84D.js → people-L-RBpthJ.js} +2 -2
  140. package/dist/{phone-BmL2p-7F.js → phone-D9f_M1qn.js} +2 -2
  141. package/dist/{picture-jf1PkZfY.js → picture-CN4X8eKB.js} +2 -2
  142. package/dist/{picture-BBiWVmta.js → picture-CmfKLBKL.js} +2 -2
  143. package/dist/{pin-CTaBntUQ.js → pin-BxwEBnT3.js} +2 -2
  144. package/dist/{planning-s3sRV6ix.js → planning-f_b-yvy0.js} +2 -2
  145. package/dist/play-B3HQvb0Y.js +18 -0
  146. package/dist/play-filled-D5vhGrVt.js +18 -0
  147. package/dist/{plus-Dm-ZxxHJ.js → plus-C8VUl4nl.js} +2 -2
  148. package/dist/{print-B5fjHJZL.js → print-l0oxfj0P.js} +2 -2
  149. package/dist/{refresh-gU5ZZuG6.js → refresh-NFCjjw_E.js} +2 -2
  150. package/dist/{reset-CwU1iGF5.js → reset-ejMu30sL.js} +2 -2
  151. package/dist/{responsive-BHNmDmM6.js → responsive-DxkuLBT-.js} +2 -2
  152. package/dist/{rubix-thema-BZvVEFud.js → rubix-thema-C_AFU2TJ.js} +2 -2
  153. package/dist/{save-mTHDeUnL.js → save-CXjuYnpN.js} +2 -2
  154. package/dist/{saved-search-DJO4_yPH.js → saved-search-CFvfKYcT.js} +2 -2
  155. package/dist/{saved-search-filled-CNz5iwu_.js → saved-search-filled-CzEFnSAz.js} +2 -2
  156. package/dist/{search-B5yHBLf_.js → search-DCYa9f-a.js} +2 -2
  157. package/dist/{settings-Hb_Y7Y53.js → settings-D744QSWD.js} +2 -2
  158. package/dist/{share-OpdW8ZmZ.js → share-D4fImRnp.js} +2 -2
  159. package/dist/{share-alternative-C3pSVTYb.js → share-alternative-jYDTaOhB.js} +2 -2
  160. package/dist/{sidebar-DtAUGBof.js → sidebar-CymSOARn.js} +2 -2
  161. package/dist/{sidebar-filled-BnnqCUYl.js → sidebar-filled-gWTXdyC3.js} +2 -2
  162. package/dist/{slack-mCoCq7b9.js → slack-CxvOlRRy.js} +2 -2
  163. package/dist/{slider-config-yjKG-9r9.js → slider-config-D65lpbtz.js} +2 -2
  164. package/dist/{spellcheck-bP4DPCKJ.js → spellcheck-CAd06Iwp.js} +2 -2
  165. package/dist/{spinner-CrCQ6H6L.js → spinner-C2v5HebP.js} +2 -2
  166. package/dist/src/assets/icons/lock-filled.vue +13 -0
  167. package/dist/src/assets/icons/play-filled.vue +13 -0
  168. package/dist/src/assets/icons/play.vue +1 -1
  169. package/dist/src/components/DpaMediaItem/DpaMediaItem.spec.ts +12 -12
  170. package/dist/src/components/UiBadge/UiBadge.spec.ts +3 -3
  171. package/dist/src/components/UiBadge/UiBadge.stories.ts +1 -1
  172. package/dist/src/components/UiBadge/UiBadge.vue +3 -8
  173. package/dist/src/components/UiButton/README.md +8 -8
  174. package/dist/src/components/UiButton/UiButton.spec.ts +3 -1
  175. package/dist/src/components/UiButton/UiButton.stories.ts +18 -1
  176. package/dist/src/components/UiButton/UiButton.vue +12 -7
  177. package/dist/src/components/UiButtonGroup/UiButtonGroup.spec.ts +2 -2
  178. package/dist/src/components/UiButtonGroup/UiButtonGroup.stories.ts +9 -8
  179. package/dist/src/components/UiCard/UiCard.spec.ts +2 -2
  180. package/dist/src/components/UiCheckBoxGroup/UiCheckBoxGroup.spec.ts +4 -4
  181. package/dist/src/components/UiCheckbox/README.md +9 -9
  182. package/dist/src/components/UiCheckbox/UiCheckbox.stories.ts +21 -8
  183. package/dist/src/components/UiCheckbox/UiCheckbox.vue +6 -2
  184. package/dist/src/components/UiChip/UiChip.spec.ts +4 -4
  185. package/dist/src/components/UiChip/UiChip.vue +2 -2
  186. package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.spec.ts +2 -2
  187. package/dist/src/components/UiCollapseNavigation/UiCollapseNavigation.vue +1 -1
  188. package/dist/src/components/UiColorPicker/UiColorPicker.spec.ts +5 -5
  189. package/dist/src/components/UiDatePicker/UiDatePicker.spec.ts +12 -12
  190. package/dist/src/components/UiDatePicker/UiDatePicker.stories.ts +48 -28
  191. package/dist/src/components/UiDatePicker/UiDatePicker.vue +21 -21
  192. package/dist/src/components/UiDialog/UiDialog.spec.ts +5 -5
  193. package/dist/src/components/UiDialog/UiDialog.stories.ts +1 -0
  194. package/dist/src/components/UiDialog/UiDialog.vue +49 -1
  195. package/dist/src/components/UiFilterBadge/UiFilterBadge.spec.ts +6 -6
  196. package/dist/src/components/UiFilterButton/UiFilterButton.spec.ts +6 -6
  197. package/dist/src/components/UiIcon/UiIcon.spec.ts +4 -4
  198. package/dist/src/components/UiIcon/UiIcon.stories.ts +8 -4
  199. package/dist/src/components/UiIcon/UiIconLoading.vue +8 -1
  200. package/dist/src/components/UiIcon/icons.ts +2 -0
  201. package/dist/src/components/UiIconButton/UiIconButton.spec.ts +6 -6
  202. package/dist/src/components/UiInfoContent/UiInfoContent.spec.ts +6 -6
  203. package/dist/src/components/UiInput/README.md +28 -17
  204. package/dist/src/components/UiInput/UiInput.spec.ts +20 -0
  205. package/dist/src/components/UiInput/UiInput.stories.ts +34 -7
  206. package/dist/src/components/UiInput/UiInput.vue +7 -4
  207. package/dist/src/components/UiList/UiList.spec.ts +2 -2
  208. package/dist/src/components/UiListItem/README.md +0 -1
  209. package/dist/src/components/UiListItem/UiListItem.spec.ts +8 -8
  210. package/dist/src/components/UiListItem/UiListItem.vue +5 -8
  211. package/dist/src/components/UiMediaTypeIcon/UiMediaTypeIcon.stories.ts +8 -4
  212. package/dist/src/components/UiMediaTypeIcon/UiMediaTypeIcon.vue +1 -1
  213. package/dist/src/components/UiMenu/README.md +0 -2
  214. package/dist/src/components/UiMenu/UiMenu.spec.ts +5 -5
  215. package/dist/src/components/UiMenu/UiMenu.stories.ts +83 -146
  216. package/dist/src/components/UiMenu/UiMenu.vue +98 -102
  217. package/dist/src/components/UiOverlay/UiOverlay.spec.ts +2 -2
  218. package/dist/src/components/UiOverlayMenu/UiOverlayMenu.spec.ts +2 -2
  219. package/dist/src/components/UiPopover/UiPopover.stories.ts +1 -1
  220. package/dist/src/components/UiPopover/UiPopover.vue +30 -7
  221. package/dist/src/components/UiRadioButton/UiRadioButton.stories.ts +17 -8
  222. package/dist/src/components/UiRadioButton/UiRadioButton.vue +1 -1
  223. package/dist/src/components/UiRadioInputGroup/UiRadioInputGroup.spec.ts +4 -4
  224. package/dist/src/components/UiSearchBar/UiSearchBar.spec.ts +6 -6
  225. package/dist/src/components/UiSearchBar/UiSearchBar.vue +1 -1
  226. package/dist/src/components/UiSearchInput/UiSearchInput.spec.ts +4 -4
  227. package/dist/src/components/UiSection/UiSection.spec.ts +5 -5
  228. package/dist/src/components/UiSectionDivider/UiSectionDivider.spec.ts +3 -3
  229. package/dist/src/components/UiSelect/{UIiSelect.spec.ts → UiSelect.spec.ts} +16 -8
  230. package/dist/src/components/UiSelect/UiSelect.stories.ts +13 -6
  231. package/dist/src/components/UiSelect/UiSelect.vue +14 -2
  232. package/dist/src/components/UiSkeletonBox/UiSkeletonBox.spec.ts +2 -2
  233. package/dist/src/components/UiSnackbar/UiSnackbar.spec.ts +8 -8
  234. package/dist/src/components/UiSpinner/UiSpinner.spec.ts +4 -4
  235. package/dist/src/components/UiSpinner/UiSpinner.stories.ts +1 -1
  236. package/dist/src/components/UiSpinner/UiSpinner.vue +31 -32
  237. package/dist/src/components/UiTextButton/UiTextButton.spec.ts +11 -11
  238. package/dist/src/components/UiToggleButton/UiToggleButton.spec.ts +8 -8
  239. package/dist/src/components/UiToggleButton/UiToggleButton.vue +19 -31
  240. package/dist/src/components/UiTooltip/UiTooltip.spec.ts +9 -9
  241. package/dist/{standard-view-CN0ixRE4.js → standard-view-BoYytoMT.js} +2 -2
  242. package/dist/{star-filled-CdXMXBn7.js → star-filled-CpCXunl1.js} +2 -2
  243. package/dist/{star-BKWqck4u.js → star-h8P_5_mG.js} +2 -2
  244. package/dist/{stop-B8l9lmwT.js → stop-CUitimZI.js} +2 -2
  245. package/dist/{story-DOxZDwJp.js → story-DHD4LNQr.js} +2 -2
  246. package/dist/{story-Cxy8EkgB.js → story-DRn-XI6F.js} +2 -2
  247. package/dist/style.css +2 -2
  248. package/dist/{sync-BW_fAqt6.js → sync-Y2eA3WT_.js} +2 -2
  249. package/dist/{tasks-DLNuebMi.js → tasks-C2MvrwpO.js} +2 -2
  250. package/dist/{text-Bsl2QZz3.js → text-C4wZ-s0Z.js} +2 -2
  251. package/dist/{text-CPSps-qh.js → text-C7Bt0-5h.js} +2 -2
  252. package/dist/{thumbs-down-pSf_ND98.js → thumbs-down-DRz1ad6Z.js} +2 -2
  253. package/dist/{thumbs-up-Braz70N6.js → thumbs-up-Tt4RC_93.js} +2 -2
  254. package/dist/{thumbs-up-double-C6foUkOq.js → thumbs-up-double-BiN5UiKl.js} +2 -2
  255. package/dist/{topic-BamlhBNV.js → topic-D6_NwX-F.js} +2 -2
  256. package/dist/{union-CYw04THu.js → union-s1aVCIT5.js} +2 -2
  257. package/dist/{upload-BL_iLqTa.js → upload-Csz6PEGc.js} +2 -2
  258. package/dist/{user-need-divert-me-2RaqdMMH.js → user-need-divert-me-NGIF6wBc.js} +2 -2
  259. package/dist/{user-need-educate-me-CRi42bIc.js → user-need-educate-me-B5uX-I2R.js} +2 -2
  260. package/dist/{user-need-give-me-perspective-BIF7v9vF.js → user-need-give-me-perspective-D1ivktbZ.js} +2 -2
  261. package/dist/{user-need-help-me-O0XSLzP-.js → user-need-help-me-Re-fEjwm.js} +2 -2
  262. package/dist/{user-need-touch-me-BueJ3SSh.js → user-need-touch-me-D025Uac5.js} +2 -2
  263. package/dist/{user-need-update-me-DP574fsn.js → user-need-update-me-DU3SfxYI.js} +2 -2
  264. package/dist/{video-DhS7zpNF.js → video-07EjnCpD.js} +2 -2
  265. package/dist/{video-CWHoNlON.js → video-B0IVRe8t.js} +2 -2
  266. package/dist/{video-overlay-D6e61Eo7.js → video-overlay-blAbosdl.js} +2 -2
  267. package/dist/{view-Bc5W8beK.js → view-BrJ61_ek.js} +2 -2
  268. package/dist/{view-off-DquC2i3E.js → view-off-Chs7NQif.js} +2 -2
  269. package/dist/{volume-up-DEzoW7Bq.js → volume-up-BDZJhktI.js} +2 -2
  270. package/package.json +33 -33
  271. package/src/assets/icons/lock-filled.vue +13 -0
  272. package/src/assets/icons/play-filled.vue +13 -0
  273. package/src/assets/icons/play.vue +1 -1
  274. package/src/components/UiBadge/UiBadge.vue +3 -8
  275. package/src/components/UiButton/README.md +8 -8
  276. package/src/components/UiButton/UiButton.vue +12 -7
  277. package/src/components/UiCheckbox/README.md +9 -9
  278. package/src/components/UiCheckbox/UiCheckbox.vue +6 -2
  279. package/src/components/UiChip/UiChip.vue +2 -2
  280. package/src/components/UiCollapseNavigation/UiCollapseNavigation.vue +1 -1
  281. package/src/components/UiDatePicker/UiDatePicker.vue +21 -21
  282. package/src/components/UiDialog/UiDialog.vue +49 -1
  283. package/src/components/UiIcon/UiIconLoading.vue +8 -1
  284. package/src/components/UiIcon/icons.ts +2 -0
  285. package/src/components/UiInput/README.md +28 -17
  286. package/src/components/UiInput/UiInput.vue +7 -4
  287. package/src/components/UiListItem/README.md +0 -1
  288. package/src/components/UiListItem/UiListItem.vue +5 -8
  289. package/src/components/UiMediaTypeIcon/UiMediaTypeIcon.vue +1 -1
  290. package/src/components/UiMenu/README.md +0 -2
  291. package/src/components/UiMenu/UiMenu.vue +98 -102
  292. package/src/components/UiPopover/UiPopover.vue +30 -7
  293. package/src/components/UiRadioButton/UiRadioButton.vue +1 -1
  294. package/src/components/UiSearchBar/UiSearchBar.vue +1 -1
  295. package/src/components/UiSelect/UiSelect.vue +14 -2
  296. package/src/components/UiSpinner/UiSpinner.vue +31 -32
  297. package/src/components/UiToggleButton/UiToggleButton.vue +19 -31
  298. package/dist/play-CArB2O7k.js +0 -18
  299. /package/dist/{_plugin-vue_export-helper-BTgDAbhb.js → _plugin-vue_export-helper-B3ysoDQm.js} +0 -0
@@ -9,6 +9,7 @@ const meta = {
9
9
  title: "Ui/UiDialog",
10
10
  args: {
11
11
  hasCloseButton: true,
12
+ animate: true,
12
13
  },
13
14
  render: (args) => ({
14
15
  setup() {
@@ -5,6 +5,7 @@
5
5
  cn(
6
6
  'fixed inset-0 m-auto w-120 rounded-2xl bg-surface-level-1 text-current shadow-lg backdrop:bg-shadow-strong',
7
7
  $attrs.class,
8
+ { animate },
8
9
  )
9
10
  "
10
11
  @click.self="dialog?.requestClose()"
@@ -64,9 +65,14 @@ defineSlots<{
64
65
  }) => any;
65
66
  }>();
66
67
 
67
- const { hasCloseButton = true, closeLabel = undefined } = defineProps<{
68
+ const {
69
+ hasCloseButton = true,
70
+ closeLabel = undefined,
71
+ animate = false,
72
+ } = defineProps<{
68
73
  hasCloseButton?: boolean;
69
74
  closeLabel?: string;
75
+ animate?: boolean;
70
76
  }>();
71
77
 
72
78
  function close() {
@@ -87,3 +93,45 @@ defineExpose({
87
93
  requestClose,
88
94
  });
89
95
  </script>
96
+
97
+ <style scoped>
98
+ @media (prefers-reduced-motion: no-preference) {
99
+ /* Backdrop */
100
+ .animate::backdrop {
101
+ background: rgb(0 0 0 / 0%);
102
+ transition:
103
+ background 0.3s ease,
104
+ display 0.2s ease allow-discrete,
105
+ overlay 0.2s ease allow-discrete;
106
+ }
107
+
108
+ .animate[open]::backdrop {
109
+ background: rgb(0 0 0 / 50%);
110
+
111
+ @starting-style {
112
+ background: rgb(0 0 0 / 0%);
113
+ }
114
+ }
115
+
116
+ /* Dialog box — fade + scale */
117
+ .animate {
118
+ opacity: 0;
119
+ transform: scale(0.95);
120
+ transition:
121
+ opacity 0.2s ease,
122
+ transform 0.2s ease,
123
+ display 0.2s ease allow-discrete,
124
+ overlay 0.2s ease allow-discrete;
125
+ }
126
+
127
+ .animate[open] {
128
+ opacity: 1;
129
+ transform: scale(1);
130
+
131
+ @starting-style {
132
+ opacity: 0;
133
+ transform: scale(0.95);
134
+ }
135
+ }
136
+ }
137
+ </style>
@@ -1,10 +1,10 @@
1
1
  import { mount } from "@vue/test-utils";
2
- import { describe, expect, it } from "vitest";
2
+ import { describe, expect, test } from "vitest";
3
3
 
4
4
  import UiFilterBadge from "./UiFilterBadge.vue";
5
5
 
6
6
  describe("UiFilterBadge", () => {
7
- it("renders with colors set", () => {
7
+ test("renders with colors set", () => {
8
8
  const wrapper = mount(UiFilterBadge, {
9
9
  props: {
10
10
  textColor: "#000",
@@ -17,7 +17,7 @@ describe("UiFilterBadge", () => {
17
17
  expect(innerText.attributes().style).toBe("color: rgb(0, 0, 0);");
18
18
  });
19
19
 
20
- it("renders large size by default", () => {
20
+ test("renders large size by default", () => {
21
21
  const wrapper = mount(UiFilterBadge);
22
22
  const innerText = wrapper.find('[data-testid="innerText"]');
23
23
 
@@ -26,7 +26,7 @@ describe("UiFilterBadge", () => {
26
26
  expect(innerText.classes("leading-relaxed")).toBe(true);
27
27
  });
28
28
 
29
- it("renders small size", () => {
29
+ test("renders small size", () => {
30
30
  const wrapper = mount(UiFilterBadge, {
31
31
  props: { size: "sm" },
32
32
  });
@@ -37,7 +37,7 @@ describe("UiFilterBadge", () => {
37
37
  expect(innerText.classes("leading-normal")).toBe(true);
38
38
  });
39
39
 
40
- it("renders medium size", () => {
40
+ test("renders medium size", () => {
41
41
  const wrapper = mount(UiFilterBadge, {
42
42
  props: { size: "md" },
43
43
  });
@@ -48,7 +48,7 @@ describe("UiFilterBadge", () => {
48
48
  expect(innerText.classes("leading-normal")).toBe(true);
49
49
  });
50
50
 
51
- it("renders xl size", () => {
51
+ test("renders xl size", () => {
52
52
  const wrapper = mount(UiFilterBadge, {
53
53
  props: { size: "xl" },
54
54
  });
@@ -1,5 +1,5 @@
1
1
  import { type ComponentMountingOptions, mount } from "@vue/test-utils";
2
- import { describe, expect, it } from "vitest";
2
+ import { describe, expect, test } from "vitest";
3
3
 
4
4
  import UiFilterButton from "./UiFilterButton.vue";
5
5
 
@@ -16,7 +16,7 @@ function createWrapper(
16
16
  }
17
17
 
18
18
  describe("UiFilterBadge", () => {
19
- it("renders attributes on correct element", () => {
19
+ test("renders attributes on correct element", () => {
20
20
  const wrapper = createWrapper({
21
21
  props: {
22
22
  id: "id",
@@ -35,12 +35,12 @@ describe("UiFilterBadge", () => {
35
35
  expect(button.element.getAttribute("data-testid")).not.toBe("testId");
36
36
  });
37
37
 
38
- it("renders with given Title", () => {
38
+ test("renders with given Title", () => {
39
39
  const wrapper = createWrapper();
40
40
  expect(wrapper.text()).toBe("Foo Bar");
41
41
  });
42
42
 
43
- it("changes colour according to prop change", () => {
43
+ test("changes colour according to prop change", () => {
44
44
  const wrapper = createWrapper({
45
45
  props: {
46
46
  variant: "blue-rounded",
@@ -49,7 +49,7 @@ describe("UiFilterBadge", () => {
49
49
  expect(wrapper.classes("bg-primary")).toBe(true);
50
50
  });
51
51
 
52
- it("emits click event", async () => {
52
+ test("emits click event", async () => {
53
53
  const wrapper = createWrapper();
54
54
  const button = wrapper.find('[data-testid="filter-button"]');
55
55
  await button.trigger("click");
@@ -58,7 +58,7 @@ describe("UiFilterBadge", () => {
58
58
  expect(lastEvent).toEqual([]);
59
59
  });
60
60
 
61
- it("renders attributes on correct element", () => {
61
+ test("renders attributes on correct element", () => {
62
62
  const wrapper = mount(UiFilterButton, {
63
63
  props: {
64
64
  options: [],
@@ -1,5 +1,5 @@
1
1
  import { type ComponentMountingOptions, mount } from "@vue/test-utils";
2
- import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { beforeEach, describe, expect, test, vi } from "vitest";
3
3
 
4
4
  import { icons } from "./icons.ts";
5
5
  import UiIcon from "./UiIcon.vue";
@@ -16,7 +16,7 @@ describe("UiIcon", () => {
16
16
  vi.resetModules();
17
17
  });
18
18
 
19
- it.each<[Partial<InstanceType<typeof UiIcon>["$props"]>, string]>([
19
+ test.each<[Partial<InstanceType<typeof UiIcon>["$props"]>, string]>([
20
20
  [{ size: "xs" }, "size-3"],
21
21
  [{ size: "sm" }, "size-4"],
22
22
  [{ size: "md" }, "size-5"],
@@ -35,11 +35,11 @@ describe("UiIcon", () => {
35
35
  expect(wrapper.classes(expectedClassNames)).toBe(true);
36
36
  });
37
37
 
38
- it("should be able to resolve all icons", async () => {
38
+ test("should be able to resolve all icons", async () => {
39
39
  await Promise.all(Object.values(icons));
40
40
  });
41
41
 
42
- it("throws on non-existing icon name", async () => {
42
+ test("throws on non-existing icon name", async () => {
43
43
  function callback() {
44
44
  createWrapper({
45
45
  props: {
@@ -1,9 +1,13 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3-vite";
1
+ import type {
2
+ ComponentPropsAndSlots,
3
+ Meta,
4
+ StoryObj,
5
+ } from "@storybook/vue3-vite";
2
6
 
3
7
  import { icons } from "./icons.ts";
4
8
  import UiIcon from "./UiIcon.vue";
5
9
 
6
- type PropsAndStoryProps = InstanceType<typeof UiIcon> & {
10
+ type PropsAndCustomArgs = ComponentPropsAndSlots<typeof UiIcon> & {
7
11
  outline: boolean;
8
12
  };
9
13
 
@@ -18,10 +22,10 @@ const meta = {
18
22
  argTypes: {
19
23
  outline: { control: "boolean" },
20
24
  },
21
- } satisfies Meta<PropsAndStoryProps>;
25
+ } satisfies Meta<PropsAndCustomArgs>;
22
26
 
23
27
  export default meta;
24
- type Story = StoryObj<typeof meta>;
28
+ type Story = StoryObj<PropsAndCustomArgs>;
25
29
 
26
30
  export const Default: Story = {
27
31
  render: (args) => ({
@@ -1 +1,8 @@
1
- <template><div></div></template>
1
+ <template>
2
+ <svg
3
+ width="24"
4
+ height="24"
5
+ viewBox="0 0 24 24"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ ></svg>
8
+ </template>
@@ -100,6 +100,7 @@ export const icons = {
100
100
  "list": () => import("../../assets/icons/list.vue"),
101
101
  "list-search": () => import("../../assets/icons/list-search.vue"),
102
102
  "lock": () => import("../../assets/icons/lock.vue"),
103
+ "lock-filled": () => import("../../assets/icons/lock-filled.vue"),
103
104
  "mail": () => import("../../assets/icons/mail.vue"),
104
105
  "map": () => import("../../assets/icons/map.vue"),
105
106
  "map-filled": () => import("../../assets/icons/map-filled.vue"),
@@ -124,6 +125,7 @@ export const icons = {
124
125
  "pin": () => import("../../assets/icons/pin.vue"),
125
126
  "planning": () => import("../../assets/icons/planning.vue"),
126
127
  "play": () => import("../../assets/icons/play.vue"),
128
+ "play-filled": () => import("../../assets/icons/play-filled.vue"),
127
129
  "plus": () => import("../../assets/icons/plus.vue"),
128
130
  "print": () => import("../../assets/icons/print.vue"),
129
131
  "refresh": () => import("../../assets/icons/refresh.vue"),
@@ -1,5 +1,5 @@
1
1
  import { type ComponentMountingOptions, mount } from "@vue/test-utils";
2
- import { describe, expect, it } from "vitest";
2
+ import { describe, expect, test } from "vitest";
3
3
 
4
4
  import UiIconButton from "./UiIconButton.vue";
5
5
 
@@ -12,7 +12,7 @@ function createWrapper(
12
12
  }
13
13
 
14
14
  describe("UiIconButton", () => {
15
- it("should have no background when color none is taken ", () => {
15
+ test("should have no background when color none is taken ", () => {
16
16
  const wrapper = createWrapper({
17
17
  props: {
18
18
  title: "Title",
@@ -25,7 +25,7 @@ describe("UiIconButton", () => {
25
25
  expect(wrapper.classes("bg-primary")).toBe(false);
26
26
  });
27
27
 
28
- it("should render small sized button by default", () => {
28
+ test("should render small sized button by default", () => {
29
29
  const wrapper = createWrapper({
30
30
  props: {
31
31
  iconName: "alert",
@@ -39,7 +39,7 @@ describe("UiIconButton", () => {
39
39
  expect(wrapper.classes("w-8")).toBe(true);
40
40
  });
41
41
 
42
- it("should emit a click event when clicked", async () => {
42
+ test("should emit a click event when clicked", async () => {
43
43
  const wrapper = createWrapper({
44
44
  props: {
45
45
  title: "Title",
@@ -52,7 +52,7 @@ describe("UiIconButton", () => {
52
52
  expect(wrapper.emitted().click).toBeTruthy();
53
53
  });
54
54
 
55
- it("should not emit click event when disabled", async () => {
55
+ test("should not emit click event when disabled", async () => {
56
56
  const wrapper = createWrapper({
57
57
  props: {
58
58
  title: "Title",
@@ -65,7 +65,7 @@ describe("UiIconButton", () => {
65
65
  expect(wrapper.emitted().click).toBeFalsy();
66
66
  });
67
67
 
68
- it("should have no hover effect when disabled", async () => {
68
+ test("should have no hover effect when disabled", async () => {
69
69
  const wrapper = createWrapper({
70
70
  props: {
71
71
  title: "Title",
@@ -1,5 +1,5 @@
1
1
  import { mount } from "@vue/test-utils";
2
- import { describe, expect, it } from "vitest";
2
+ import { describe, expect, test } from "vitest";
3
3
 
4
4
  import UiInfoContent from "./UiInfoContent.vue";
5
5
 
@@ -15,7 +15,7 @@ describe("UiInfoContent", () => {
15
15
  props: { appearance: "default", iconName: "search" },
16
16
  });
17
17
 
18
- it("renders slot content for title, text and action content", () => {
18
+ test("renders slot content for title, text and action content", () => {
19
19
  expect(wrapper.find("[data-testid='info-title']").text()).toBe(
20
20
  "Keine Ergebnisse",
21
21
  );
@@ -25,23 +25,23 @@ describe("UiInfoContent", () => {
25
25
  expect(wrapper.find("button").text()).toBe("Klick mich");
26
26
  });
27
27
 
28
- it("renders correct icon classes for default appearance", () => {
28
+ test("renders correct icon classes for default appearance", () => {
29
29
  const icon = wrapper.find("[data-testid='info-icon']");
30
30
  expect(icon.classes("bg-surface-base")).toBe(true);
31
31
  expect(icon.classes("text-neutral-subtle")).toBe(true);
32
32
  });
33
33
 
34
- it("renders responsive icon size classes", () => {
34
+ test("renders responsive icon size classes", () => {
35
35
  const icon = wrapper.find("[data-testid='icon']");
36
36
  expect(icon.classes("size-6")).toBe(true);
37
37
  expect(icon.classes("sm:size-10")).toBe(true);
38
38
  });
39
39
 
40
- it("renders correct layout background for default appearance", () => {
40
+ test("renders correct layout background for default appearance", () => {
41
41
  expect(wrapper.find("div").classes("bg-surface-level-1")).toBe(true);
42
42
  });
43
43
 
44
- it("renders correct layout background for default-alt appearance", () => {
44
+ test("renders correct layout background for default-alt appearance", () => {
45
45
  const defaultAltWrapper = mount(UiInfoContent, {
46
46
  slots: defaultSlots,
47
47
  props: { appearance: "default-alt", iconName: "search" },
@@ -3,29 +3,40 @@
3
3
  ## Usage
4
4
 
5
5
  ```vue
6
- <template>
7
- <UiInput
8
- label="Postal code"
9
- id="postal_code-1"
10
- name="postal_code"
11
- value="04277"
12
- required
13
- placeholder="12345"
14
- ></UiInput>
15
- </template>
16
-
17
- <script setup lang="ts">
18
- import { UiInput } from "@dpa-id-components/dpa-shared-components";
19
- </script>
6
+ <UiInput
7
+ id="postal-code"
8
+ name="postal_code"
9
+ value="04277"
10
+ required
11
+ placeholder="12345"
12
+ >
13
+ Postal code
14
+ </UiInput>
15
+ ```
16
+
17
+ **Using `v-model`**:
18
+
19
+ ```vue
20
+ <UiInput v-model="postalCode">
21
+ Postal code
22
+ </UiInput>
23
+ ```
24
+
25
+ **With `number` value**:
26
+
27
+ ```vue
28
+ <UiInput v-model="count" type="number">
29
+ Count
30
+ </UiInput>
20
31
  ```
21
32
 
22
33
  ## API
23
34
 
24
35
  ### Models
25
36
 
26
- | Name | Type | Default | Description |
27
- |-----------|----------|-------------|----------------------|
28
- | _default_ | `string` | `undefined` | Sets the input value |
37
+ | Name | Type | Default | Description |
38
+ |-----------|--------------------|-------------|----------------------|
39
+ | _default_ | `string \| number` | `undefined` | Sets the input value |
29
40
 
30
41
  ### Props
31
42
 
@@ -205,4 +205,24 @@ describe("UiInput", () => {
205
205
  await wrapper.setProps({ modelValue: "" });
206
206
  expect(input.element.value).toBe("");
207
207
  });
208
+
209
+ test("works with number model", async () => {
210
+ const wrapper = mount(UiInput, {
211
+ props: {
212
+ type: "number",
213
+ modelValue: 1,
214
+ },
215
+ });
216
+
217
+ const input = wrapper.find("input");
218
+ expect(input.element.value).toBe("1");
219
+
220
+ await input.setValue(2);
221
+ expect(input.element.value).toBe("2");
222
+ expect((wrapper.emitted("update:modelValue") ?? []).at(-1)).toEqual([2]);
223
+
224
+ await input.setValue(3);
225
+ expect(input.element.value).toBe("3");
226
+ expect((wrapper.emitted("update:modelValue") ?? []).at(-1)).toEqual([3]);
227
+ });
208
228
  });
@@ -1,22 +1,37 @@
1
- import type { Meta, StoryObj } from "@storybook/vue3-vite";
1
+ import type {
2
+ ComponentPropsAndSlots,
3
+ Meta,
4
+ StoryObj,
5
+ } from "@storybook/vue3-vite";
2
6
  import { action } from "storybook/actions";
3
7
 
4
8
  import UiInput from "./UiInput.vue";
5
9
 
10
+ type PropsAndCustomArgs = ComponentPropsAndSlots<typeof UiInput> & {
11
+ name?: string;
12
+ placeholder?: string;
13
+ disabled?: boolean;
14
+ readonly?: boolean;
15
+ autocomplete?: string;
16
+ };
17
+
6
18
  const meta = {
7
19
  title: "forms/UiInput",
20
+ // @ts-expect-error generic components seem to cause type issues here that aren't easy to solve
8
21
  component: UiInput,
9
22
  args: {
10
23
  // Attributes
11
- // @ts-ignore Storybook doesn't know that **any** component can receive arbitrary attributes and enforces this on the type level.
12
24
  name: "name",
25
+ placeholder: undefined,
13
26
  disabled: false,
14
27
  readonly: false,
28
+ autocomplete: "on",
15
29
 
16
30
  // Props
17
31
  modelValue: "",
18
32
  type: "text",
19
33
  inputStatus: undefined,
34
+ label: "",
20
35
  isTextarea: false,
21
36
 
22
37
  // Slots
@@ -24,8 +39,8 @@ const meta = {
24
39
  },
25
40
  argTypes: {
26
41
  // Attributes
27
- // @ts-ignore Storybook doesn't know that **any** component can receive arbitrary attributes and enforces this on the type level.
28
42
  name: { control: "text" },
43
+ placeholder: { control: "text" },
29
44
  disabled: { control: "boolean" },
30
45
  readonly: { control: "boolean" },
31
46
  },
@@ -53,17 +68,16 @@ const meta = {
53
68
  update: action("update:modelValue"),
54
69
  },
55
70
  }),
56
- } satisfies Meta<typeof UiInput>;
71
+ } satisfies Meta<PropsAndCustomArgs>;
57
72
 
58
73
  export default meta;
59
- type Story = StoryObj<typeof meta>;
74
+ type Story = StoryObj<PropsAndCustomArgs>;
60
75
 
61
76
  export const Default: Story = {};
62
77
 
63
78
  export const Placeholder: Story = {
64
79
  args: {
65
80
  // Attributes
66
- // @ts-ignore
67
81
  placeholder: "Some placeholder text",
68
82
 
69
83
  // Slots
@@ -71,7 +85,7 @@ export const Placeholder: Story = {
71
85
  },
72
86
  };
73
87
 
74
- export const Value: Story = {
88
+ export const StringValue: Story = {
75
89
  args: {
76
90
  // Props
77
91
  modelValue: "Text value",
@@ -81,6 +95,19 @@ export const Value: Story = {
81
95
  },
82
96
  };
83
97
 
98
+ export const NumberValue: Story = {
99
+ args: {
100
+ // Attributes
101
+ type: "number",
102
+
103
+ // Props
104
+ modelValue: 2,
105
+
106
+ // Slots
107
+ default: "Count",
108
+ },
109
+ };
110
+
84
111
  export const Errors: Story = {
85
112
  args: {
86
113
  // Props
@@ -34,7 +34,7 @@
34
34
  data-testid="input-value"
35
35
  v-bind="{ ...$attrs, class: null }"
36
36
  :data-is-label-raised="
37
- $attrs.placeholder || isFocused || model ? '' : undefined
37
+ $attrs.placeholder || isFocused || hasInput ? '' : undefined
38
38
  "
39
39
  @focus="isFocused = true"
40
40
  @blur="isFocused = false"
@@ -55,7 +55,7 @@
55
55
  data-testid="input-value"
56
56
  v-bind="{ ...$attrs, class: null }"
57
57
  :data-is-label-raised="
58
- $attrs.placeholder || isFocused || model ? '' : undefined
58
+ $attrs.placeholder || isFocused || hasInput ? '' : undefined
59
59
  "
60
60
  @focus="isFocused = true"
61
61
  @blur="isFocused = false"
@@ -82,7 +82,7 @@
82
82
  </div>
83
83
  </template>
84
84
 
85
- <script setup lang="ts">
85
+ <script setup lang="ts" generic="ModelValue extends string | number">
86
86
  import { computed, ref, useId } from "vue";
87
87
 
88
88
  import { cn } from "../../utils/cn.ts";
@@ -130,8 +130,11 @@ const {
130
130
  inputStatus?: "info" | "warning" | "error";
131
131
  }>();
132
132
 
133
- const model = defineModel<string>();
133
+ const model = defineModel<ModelValue>();
134
134
 
135
+ const hasInput = computed(
136
+ () => model.value !== undefined && model.value !== "",
137
+ );
135
138
  const isFocused = ref(false);
136
139
 
137
140
  const defaultId = useId();
@@ -1,12 +1,12 @@
1
1
  import { mount } from "@vue/test-utils";
2
- import { describe, expect, it } from "vitest";
2
+ import { describe, expect, test } from "vitest";
3
3
 
4
4
  import UiListItem from "../UiListItem/UiListItem.vue";
5
5
 
6
6
  import UiList from "./UiList.vue";
7
7
 
8
8
  describe("UiList", () => {
9
- it("renders with slot content", () => {
9
+ test("renders with slot content", () => {
10
10
  const wrapper = mount(UiList, {
11
11
  slots: {
12
12
  default: UiListItem,
@@ -31,7 +31,6 @@
31
31
  | `imageSrc` | `String` | `""` | Image to be displayed at the beginning of the list item. |
32
32
  | `imageShape` | `"rounded" &#124; "square"` | `"square"` | Shape pf the image to be displayed. |
33
33
  | `checkboxColor` | `"blue" &#124; "gray"` | `"blue"` | Checkbox color style. |
34
- | `checkboxSize` | `"small" &#124; "medium"` | `"medium"` | Checkbox size style. |
35
34
 
36
35
  ### Events
37
36
 
@@ -1,5 +1,5 @@
1
1
  import { type ComponentMountingOptions, mount } from "@vue/test-utils";
2
- import { describe, expect, it } from "vitest";
2
+ import { describe, expect, test } from "vitest";
3
3
 
4
4
  import UiIcon from "../UiIcon/UiIcon.vue";
5
5
 
@@ -18,7 +18,7 @@ function createWrapper(
18
18
  }
19
19
 
20
20
  describe("UiListItem", () => {
21
- it("renders attributes on correct element", () => {
21
+ test("renders attributes on correct element", () => {
22
22
  const wrapper = createWrapper({
23
23
  props: {
24
24
  checkBoxMenu: true,
@@ -36,18 +36,18 @@ describe("UiListItem", () => {
36
36
  expect(input.element.classList.contains("testClass")).toBe(false);
37
37
  });
38
38
 
39
- it("renders default slot", () => {
39
+ test("renders default slot", () => {
40
40
  const wrapper = createWrapper();
41
41
  expect(wrapper.text()).toBe("Default Slot");
42
42
  });
43
43
 
44
- it("emits list-item-click event", async () => {
44
+ test("emits list-item-click event", async () => {
45
45
  const wrapper = createWrapper();
46
46
  await wrapper.trigger("click");
47
47
  expect(wrapper.emitted("list-item-click")).toBeTruthy();
48
48
  });
49
49
 
50
- it("renders checkbox within and gets checked", () => {
50
+ test("renders checkbox within and gets checked", () => {
51
51
  const wrapper = createWrapper({
52
52
  props: { checkBoxMenu: true, isChecked: true },
53
53
  });
@@ -55,7 +55,7 @@ describe("UiListItem", () => {
55
55
  expect(checkbox.element.checked).toBe(true);
56
56
  });
57
57
 
58
- it("renders checkmark within", () => {
58
+ test("renders checkmark within", () => {
59
59
  const wrapper = createWrapper({
60
60
  props: {
61
61
  checkBoxMenu: false,
@@ -69,7 +69,7 @@ describe("UiListItem", () => {
69
69
  expect(checkmark.props("name")).toBe("checkmark");
70
70
  });
71
71
 
72
- it("renders custom icon within", () => {
72
+ test("renders custom icon within", () => {
73
73
  const wrapper = createWrapper({
74
74
  props: {
75
75
  selected: false,
@@ -82,7 +82,7 @@ describe("UiListItem", () => {
82
82
  expect(icon.props("name")).toBe("alert");
83
83
  });
84
84
 
85
- it("renders custom image within", () => {
85
+ test("renders custom image within", () => {
86
86
  const wrapper = createWrapper({
87
87
  props: {
88
88
  imageSrc: