@baloise/ds-core 20.0.0-next.7 → 20.0.0-next.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/components/ds-accordion.js +1 -1
  2. package/components/ds-app.js +1 -1
  3. package/components/ds-badge.js +1 -1
  4. package/components/ds-button-group.js +1 -1
  5. package/components/ds-button.js +1 -1
  6. package/components/ds-card-actions.js +1 -1
  7. package/components/ds-card-content.js +1 -1
  8. package/components/ds-card-subtitle.js +1 -1
  9. package/components/ds-card-title.js +1 -1
  10. package/components/ds-card.js +1 -1
  11. package/components/ds-carousel.js +1 -1
  12. package/components/ds-checkbox-group.js +1 -1
  13. package/components/ds-close.js +1 -1
  14. package/components/ds-content.js +1 -1
  15. package/components/ds-data-item.js +1 -1
  16. package/components/ds-date.js +1 -1
  17. package/components/ds-drawer.js +1 -1
  18. package/components/ds-file-upload.js +1 -1
  19. package/components/ds-footer.js +1 -1
  20. package/components/ds-heading.js +1 -1
  21. package/components/ds-hint.js +1 -1
  22. package/components/ds-icon.js +1 -1
  23. package/components/ds-input-slider.js +1 -1
  24. package/components/ds-input.js +1 -1
  25. package/components/ds-item.js +1 -1
  26. package/components/ds-modal.js +1 -1
  27. package/components/ds-navbar.js +1 -1
  28. package/components/ds-notification.js +1 -1
  29. package/components/ds-number-input.js +1 -1
  30. package/components/ds-pagination.js +1 -1
  31. package/components/ds-popup.js +1 -1
  32. package/components/ds-radio-group.js +1 -1
  33. package/components/ds-segment.js +1 -1
  34. package/components/ds-select.js +1 -1
  35. package/components/ds-snackbar.js +1 -1
  36. package/components/ds-spinner.js +1 -1
  37. package/components/ds-stack.js +1 -1
  38. package/components/ds-step.js +1 -1
  39. package/components/ds-tabs.js +1 -1
  40. package/components/ds-tag.js +1 -1
  41. package/components/ds-textarea.js +1 -1
  42. package/components/ds-toast.js +1 -1
  43. package/components/index.js +1 -1
  44. package/components/{p-DenZRIeA.js → p-BXJT6RzI.js} +1 -1
  45. package/components/p-BdLq-Ecc.js +4 -0
  46. package/components/{p-DSeYzuO7.js → p-BmKEBYP4.js} +1 -1
  47. package/components/p-BoWAkGY5.js +4 -0
  48. package/components/{p-DYTOWDAA.js → p-CTbJFS-e.js} +1 -1
  49. package/components/{p-VsWv65bD.js → p-CaMOovXn.js} +1 -1
  50. package/components/p-Ce8PV2ZO.js +4 -0
  51. package/components/p-CmBtAxar.js +4 -0
  52. package/components/p-D8gpyiFZ.js +4 -0
  53. package/components/{p-ng5ZzTOj.js → p-DBX_haol.js} +1 -1
  54. package/components/{p-ABj0eATe.js → p-DPbhygsR.js} +1 -1
  55. package/components/{p-BwwAKEvn.js → p-DZzsZ_YH.js} +1 -1
  56. package/components/p-DbUsvqrz.js +4 -0
  57. package/components/p-Dbqy6lZU.js +5 -0
  58. package/components/{p-D9YYP2SG.js → p-fS80bKHo.js} +1 -1
  59. package/components/{p-D5zw5ezD.js → p-hPpcXLRP.js} +1 -1
  60. package/components/p-o0H7eIVX.js +4 -0
  61. package/components/p-std0LSH2.js +4 -0
  62. package/components/p-wud2RGEy.js +4 -0
  63. package/dist/cjs/{breakpoints.decorator-DY5iYsA5.js → breakpoints.decorator-DbttiLa9.js} +1 -1
  64. package/dist/cjs/{breakpoints.subject-CzhLlIwN.js → breakpoints.subject-CNyiZaBe.js} +3 -3
  65. package/dist/cjs/{button.interfaces-CqlUGR-N.js → button.interfaces-BKyK0H_f.js} +0 -1
  66. package/dist/cjs/{config.decorator-C64wi-MA.js → config.decorator-bU7c6ybP.js} +1 -1
  67. package/dist/cjs/{config.utils-BhWbrVRz.js → config.utils-BhJig3l5.js} +1 -1
  68. package/dist/cjs/{create-validator-decorator-Ctd288ve.js → create-validator-decorator-CiRieHJL.js} +1 -1
  69. package/dist/cjs/design-system.cjs.js +2 -2
  70. package/dist/cjs/{device-CIliLOe9.js → device-DM1GXL99.js} +1 -1
  71. package/dist/cjs/ds-accordion.cjs.entry.js +9 -9
  72. package/dist/cjs/ds-alert-container.cjs.entry.js +6 -6
  73. package/dist/cjs/ds-app.cjs.entry.js +35 -8
  74. package/dist/cjs/ds-badge.cjs.entry.js +20 -39
  75. package/dist/cjs/ds-button-group.cjs.entry.js +7 -7
  76. package/dist/cjs/ds-button_2.cjs.entry.js +20 -20
  77. package/dist/cjs/ds-card-actions.cjs.entry.js +4 -4
  78. package/dist/cjs/ds-card-content.cjs.entry.js +3 -3
  79. package/dist/cjs/ds-card-header.cjs.entry.js +5 -5
  80. package/dist/cjs/ds-card-subtitle.cjs.entry.js +10 -14
  81. package/dist/cjs/ds-card-title.cjs.entry.js +8 -14
  82. package/dist/cjs/ds-card.cjs.entry.js +7 -7
  83. package/dist/cjs/ds-carousel-item.cjs.entry.js +6 -6
  84. package/dist/cjs/ds-carousel.cjs.entry.js +8 -8
  85. package/dist/cjs/ds-checkbox-group.cjs.entry.js +22 -15
  86. package/dist/cjs/ds-checkbox.cjs.entry.js +7 -7
  87. package/dist/cjs/ds-content_2.cjs.entry.js +18 -68
  88. package/dist/cjs/ds-data-item.cjs.entry.js +6 -6
  89. package/dist/cjs/ds-data-label.cjs.entry.js +4 -4
  90. package/dist/cjs/ds-data-value.cjs.entry.js +2 -2
  91. package/dist/cjs/ds-data.cjs.entry.js +4 -4
  92. package/dist/cjs/ds-date.cjs.entry.js +18 -12
  93. package/dist/cjs/ds-divider_2.cjs.entry.js +12 -12
  94. package/dist/cjs/ds-drawer_2.cjs.entry.js +9 -9
  95. package/dist/cjs/ds-file-upload.cjs.entry.js +18 -11
  96. package/dist/cjs/ds-footer.cjs.entry.js +7 -7
  97. package/dist/cjs/ds-heading.cjs.entry.js +21 -37
  98. package/dist/cjs/ds-hint-text.cjs.entry.js +2 -2
  99. package/dist/cjs/ds-hint-title.cjs.entry.js +2 -2
  100. package/dist/cjs/ds-hint.cjs.entry.js +11 -11
  101. package/dist/cjs/ds-icon_2.cjs.entry.js +19 -23
  102. package/dist/cjs/ds-input-slider.cjs.entry.js +21 -14
  103. package/dist/cjs/ds-input.cjs.entry.js +20 -11
  104. package/dist/cjs/ds-item.cjs.entry.js +7 -7
  105. package/dist/cjs/ds-label.cjs.entry.js +8 -8
  106. package/dist/cjs/ds-list.cjs.entry.js +4 -4
  107. package/dist/cjs/ds-modal-body.cjs.entry.js +2 -2
  108. package/dist/cjs/ds-modal-header.cjs.entry.js +2 -2
  109. package/dist/cjs/ds-modal.cjs.entry.js +7 -7
  110. package/dist/cjs/ds-navbar.cjs.entry.js +14 -14
  111. package/dist/cjs/ds-notification.cjs.entry.js +7 -7
  112. package/dist/cjs/ds-number-input.cjs.entry.js +20 -11
  113. package/dist/cjs/ds-pagination.cjs.entry.js +12 -12
  114. package/dist/cjs/ds-progress-bar.cjs.entry.js +12 -12
  115. package/dist/cjs/ds-radio-group.cjs.entry.js +21 -14
  116. package/dist/cjs/ds-radio.cjs.entry.js +7 -7
  117. package/dist/cjs/ds-segment-item.cjs.entry.js +4 -4
  118. package/dist/cjs/ds-segment.cjs.entry.js +21 -15
  119. package/dist/cjs/ds-select-optgroup.cjs.entry.js +4 -4
  120. package/dist/cjs/ds-select-option.cjs.entry.js +4 -4
  121. package/dist/cjs/ds-select.cjs.entry.js +18 -13
  122. package/dist/cjs/ds-shape.cjs.entry.js +4 -4
  123. package/dist/cjs/ds-snackbar.cjs.entry.js +14 -14
  124. package/dist/cjs/ds-step-panel.cjs.entry.js +5 -5
  125. package/dist/cjs/ds-step.cjs.entry.js +5 -5
  126. package/dist/cjs/ds-steps.cjs.entry.js +6 -6
  127. package/dist/cjs/ds-tab-panel.cjs.entry.js +5 -5
  128. package/dist/cjs/ds-tab.cjs.entry.js +5 -5
  129. package/dist/cjs/ds-tabs.cjs.entry.js +8 -8
  130. package/dist/cjs/ds-tag-group.cjs.entry.js +2 -2
  131. package/dist/cjs/ds-tag.cjs.entry.js +7 -7
  132. package/dist/cjs/ds-text.cjs.entry.js +6 -6
  133. package/dist/cjs/ds-textarea.cjs.entry.js +19 -10
  134. package/dist/cjs/ds-toast.cjs.entry.js +12 -12
  135. package/dist/cjs/ds-toggle.cjs.entry.js +5 -5
  136. package/dist/cjs/ds-tooltip.cjs.entry.js +4 -4
  137. package/dist/cjs/{field.util-g9nhtuZH.js → field.util-C7hgA41e.js} +32 -2
  138. package/dist/cjs/{focus-BUszBnbl.js → focus-CHzvkERd.js} +1 -1
  139. package/dist/cjs/{form-control-B4Qf8fg-.js → form-control-CmRONWa7.js} +1 -1
  140. package/dist/cjs/{has-value-rj502MLA.js → has-value-3s9rhB3K.js} +1 -1
  141. package/dist/cjs/{heading.interfaces-B5NJ2yjL.js → heading.interfaces-CAc5LNKb.js} +2 -3
  142. package/dist/cjs/{index-CqInh7Vc.js → index-DD7qcaNz.js} +75 -1
  143. package/dist/cjs/index.cjs.js +7 -7
  144. package/dist/cjs/{listener-1PZJDuOW.js → listener-CAzIWSXQ.js} +1 -1
  145. package/dist/cjs/loader.cjs.js +2 -2
  146. package/dist/cjs/{one-of-BotLfpAZ.js → one-of-xdIxH9e7.js} +1 -1
  147. package/dist/cjs/{required-BAhZ8oRM.js → required-Dh6TQNa1.js} +1 -1
  148. package/dist/cjs/{resize.decorator-Sqefy8ta.js → resize.decorator-C53-TjuS.js} +2 -2
  149. package/dist/cjs/{scroll--5tnvpG1.js → scroll-BOeiw1-E.js} +1 -1
  150. package/dist/cjs/{svg-D9RbiR8R.js → svg-B9eUbG7a.js} +96 -33
  151. package/dist/cjs/{tslib.es6-BIB10hMZ.js → tslib.es6-DMgN1vwG.js} +1 -1
  152. package/dist/cjs/{type-Br_NbeTX.js → type-BcP2cAG-.js} +1 -1
  153. package/dist/collection/components/accordion/accordion.host.css +1 -1
  154. package/dist/collection/components/alert/snackbar/snackbar.host.css +1 -1
  155. package/dist/collection/components/alert/toast/toast.host.css +1 -1
  156. package/dist/collection/components/app/app.js +30 -3
  157. package/dist/collection/components/badge/badge.host.css +1 -1
  158. package/dist/collection/components/badge/badge.interfaces.js +3 -3
  159. package/dist/collection/components/badge/badge.js +20 -42
  160. package/dist/collection/components/button/button.interfaces.js +0 -1
  161. package/dist/collection/components/button/button.js +1 -1
  162. package/dist/collection/components/card/card-content/card-content.host.css +1 -1
  163. package/dist/collection/components/card/card-subtitle/card-subtitle.js +6 -11
  164. package/dist/collection/components/card/card-title/card-title.js +4 -11
  165. package/dist/collection/components/card/card.host.css +1 -1
  166. package/dist/collection/components/checkbox/checkbox-group/checkbox-group.js +16 -7
  167. package/dist/collection/components/checkbox/test/checkbox.visual.play.js +1 -0
  168. package/dist/collection/components/close/close.host.css +1 -1
  169. package/dist/collection/components/close/close.interfaces.js +1 -1
  170. package/dist/collection/components/close/close.js +14 -16
  171. package/dist/collection/components/content/content.host.css +1 -1
  172. package/dist/collection/components/content/content.interfaces.js +2 -3
  173. package/dist/collection/components/content/content.js +21 -60
  174. package/dist/collection/components/date/date.js +12 -4
  175. package/dist/collection/components/date/test/date.visual.play.js +1 -0
  176. package/dist/collection/components/file-upload/file-upload.js +13 -4
  177. package/dist/collection/components/file-upload/test/file-upload.visual.play.js +10 -1
  178. package/dist/collection/components/heading/heading.host.css +1 -1
  179. package/dist/collection/components/heading/heading.interfaces.js +2 -3
  180. package/dist/collection/components/heading/heading.js +25 -45
  181. package/dist/collection/components/input/field.util.js +1 -1
  182. package/dist/collection/components/input/input.js +14 -3
  183. package/dist/collection/components/input/test/input.visual.play.js +2 -1
  184. package/dist/collection/components/input-slider/input-slider.js +17 -8
  185. package/dist/collection/components/input-slider/test/input-slider.visual.play.js +1 -0
  186. package/dist/collection/components/list/item/item.host.css +1 -1
  187. package/dist/collection/components/number-input/number-input.js +13 -2
  188. package/dist/collection/components/number-input/test/number-input.visual.play.js +1 -1
  189. package/dist/collection/components/radio/radio-group/radio-group.js +16 -7
  190. package/dist/collection/components/radio/test/radio.visual.play.js +1 -0
  191. package/dist/collection/components/segment/segment/segment.js +15 -7
  192. package/dist/collection/components/segment/test/segment.visual.play.js +1 -0
  193. package/dist/collection/components/select/select.host.css +1 -1
  194. package/dist/collection/components/select/select.js +11 -4
  195. package/dist/collection/components/select/test/select.visual.play.js +2 -2
  196. package/dist/collection/components/spinner/spinner.host.css +1 -1
  197. package/dist/collection/components/spinner/spinner.interfaces.js +1 -1
  198. package/dist/collection/components/spinner/spinner.js +12 -16
  199. package/dist/collection/components/stack/stack.host.css +1 -1
  200. package/dist/collection/components/stack/stack.interfaces.js +1 -2
  201. package/dist/collection/components/stack/stack.js +13 -33
  202. package/dist/collection/components/tag/tag.host.css +1 -1
  203. package/dist/collection/components/textarea/test/textarea.visual.play.js +2 -2
  204. package/dist/collection/components/textarea/textarea.js +13 -2
  205. package/dist/collection/global/constants/version.constant.js +1 -1
  206. package/dist/collection/global/global.js +2 -0
  207. package/dist/collection/global/token-preview.js +75 -0
  208. package/dist/collection/global/token-preview.types.js +1 -0
  209. package/dist/collection/utils/index.js +1 -0
  210. package/dist/collection/utils/invalid-text-slot.js +31 -0
  211. package/dist/design-system/design-system.esm.js +1 -1
  212. package/dist/design-system/index.esm.js +1 -1
  213. package/dist/design-system/{p-b4738dc266.entry.js → p-001b20140b.entry.js} +1 -1
  214. package/dist/design-system/p-0c031d8d90.entry.js +4 -0
  215. package/dist/design-system/p-0c18812daa.entry.js +4 -0
  216. package/dist/design-system/{p-564ee4d78f.entry.js → p-19e0638e5c.entry.js} +1 -1
  217. package/dist/design-system/{p-ee76bf354e.entry.js → p-1dc3406415.entry.js} +1 -1
  218. package/dist/design-system/{p-3d2539929c.entry.js → p-200a0ea72c.entry.js} +1 -1
  219. package/dist/design-system/{p-ce67cbbed5.entry.js → p-2516721737.entry.js} +1 -1
  220. package/dist/design-system/{p-24c85e99f5.entry.js → p-2a67e9b4eb.entry.js} +1 -1
  221. package/dist/design-system/p-2cc9740eb6.entry.js +4 -0
  222. package/dist/design-system/{p-d4d9205dda.entry.js → p-33165c2b03.entry.js} +1 -1
  223. package/dist/design-system/p-37295c3a5d.entry.js +4 -0
  224. package/dist/design-system/{p-b44641ec28.entry.js → p-3d1f15112e.entry.js} +1 -1
  225. package/dist/design-system/p-3de8e2b6c9.entry.js +4 -0
  226. package/dist/design-system/{p-0bf3d4d939.entry.js → p-4042b35fee.entry.js} +1 -1
  227. package/dist/design-system/{p-00e6b1b780.entry.js → p-40b3d4d0f9.entry.js} +1 -1
  228. package/dist/design-system/{p-5f1a8be21c.entry.js → p-45af50a69f.entry.js} +1 -1
  229. package/dist/design-system/p-4df80c06f8.entry.js +4 -0
  230. package/dist/design-system/p-4f12c6449d.entry.js +4 -0
  231. package/dist/design-system/p-4f95f06b86.entry.js +4 -0
  232. package/dist/design-system/{p-2eb6067210.entry.js → p-662983c8bd.entry.js} +1 -1
  233. package/dist/design-system/{p-32e156bc72.entry.js → p-68693c06a1.entry.js} +1 -1
  234. package/dist/design-system/{p-9f9364d7df.entry.js → p-69784a200e.entry.js} +1 -1
  235. package/dist/design-system/{p-ChSKXFK5.js → p-6Iq8BM7N.js} +1 -1
  236. package/dist/design-system/{p-a42ecb68a0.entry.js → p-6ba71ce374.entry.js} +1 -1
  237. package/dist/design-system/{p-5ded2b6438.entry.js → p-72c08ce551.entry.js} +1 -1
  238. package/dist/design-system/p-72fe1ab876.entry.js +4 -0
  239. package/dist/design-system/p-73b26207bf.entry.js +4 -0
  240. package/dist/design-system/{p-b8669a617c.entry.js → p-7576fb01bf.entry.js} +1 -1
  241. package/dist/design-system/p-819d71abe1.entry.js +4 -0
  242. package/dist/design-system/{p-6c60833550.entry.js → p-88682a66d5.entry.js} +1 -1
  243. package/dist/design-system/{p-ab8bee7022.entry.js → p-8a7c2f5b0a.entry.js} +1 -1
  244. package/dist/design-system/{p-5d4a5d0b61.entry.js → p-8bfcfd7b07.entry.js} +1 -1
  245. package/dist/design-system/{p-f7be5b6114.entry.js → p-9537ebc880.entry.js} +1 -1
  246. package/dist/design-system/{p-3e3a6799d6.entry.js → p-96d37205c9.entry.js} +1 -1
  247. package/dist/design-system/{p-4bfc094a03.entry.js → p-97ad0e648a.entry.js} +1 -1
  248. package/dist/design-system/p-9e0f190f06.entry.js +4 -0
  249. package/dist/design-system/{p-adc58b2821.entry.js → p-9f746ea4e3.entry.js} +1 -1
  250. package/dist/design-system/{p-DJBD4skP.js → p-B2dqoehY.js} +2 -2
  251. package/dist/design-system/p-B9ddSbbe.js +4 -0
  252. package/dist/design-system/p-BDcIydUK.js +4 -0
  253. package/dist/design-system/p-BdLq-Ecc.js +4 -0
  254. package/dist/design-system/{p-Dk0GEN2t.js → p-BjaiDrCD.js} +1 -1
  255. package/dist/design-system/{p-DoHCSvjl.js → p-BnJgNfen.js} +1 -1
  256. package/dist/design-system/{p-DOvdnojj.js → p-Bnpwi9iD.js} +1 -1
  257. package/dist/design-system/p-C6AmBSV7.js +4 -0
  258. package/dist/design-system/{p-Chgme2NJ.js → p-CBGYLNZZ.js} +1 -1
  259. package/dist/design-system/{p-1A9jKraP.js → p-CR2JnhVY.js} +1 -1
  260. package/dist/design-system/{p-CfgwSore.js → p-ClSAXeZN.js} +1 -1
  261. package/dist/design-system/p-D-_px2sY.js +5 -0
  262. package/dist/design-system/p-DNQg2PVW.js +4 -0
  263. package/dist/design-system/p-DQGbRzw_.js +4 -0
  264. package/dist/design-system/{p-x2KazRjl.js → p-DWdcUUdS.js} +1 -1
  265. package/dist/design-system/{p-C5Rtikeh.js → p-DuKlHFAK.js} +1 -1
  266. package/dist/design-system/{p-B-v2Wm-V.js → p-MUUOiuTm.js} +2 -2
  267. package/dist/design-system/p-_Ywzmi-B.js +4 -0
  268. package/dist/design-system/{p-Y0rKqVvm.js → p-_rk5qARQ.js} +1 -1
  269. package/dist/design-system/{p-44981aaf8d.entry.js → p-a343b84e8a.entry.js} +1 -1
  270. package/dist/design-system/p-a3ed278181.entry.js +4 -0
  271. package/dist/design-system/{p-16b03e0b02.entry.js → p-a71c22bc50.entry.js} +1 -1
  272. package/dist/design-system/{p-CrYAd3JT.js → p-aPnyJLhr.js} +1 -1
  273. package/dist/design-system/{p-fa613cd0d1.entry.js → p-abcc8edf7e.entry.js} +1 -1
  274. package/dist/design-system/{p-3d675c6507.entry.js → p-ac55e3783c.entry.js} +1 -1
  275. package/dist/design-system/{p-3e43fa2bc6.entry.js → p-ac7f3f89be.entry.js} +1 -1
  276. package/dist/design-system/{p-1b1e3ad99c.entry.js → p-ae8753bf2a.entry.js} +1 -1
  277. package/dist/design-system/{p-d3a80b8422.entry.js → p-afea3755c2.entry.js} +1 -1
  278. package/dist/design-system/{p-0ea6cdd218.entry.js → p-bd31b396d8.entry.js} +1 -1
  279. package/dist/design-system/p-bd740897a1.entry.js +4 -0
  280. package/dist/design-system/{p-1750b3c4f1.entry.js → p-bf03129378.entry.js} +1 -1
  281. package/dist/design-system/{p-85bf3794f9.entry.js → p-bfd0557b47.entry.js} +1 -1
  282. package/dist/design-system/{p-7246bfb9a0.entry.js → p-c07aa25e4d.entry.js} +1 -1
  283. package/dist/design-system/p-c19c74c2b1.entry.js +4 -0
  284. package/dist/design-system/{p-a782c877ea.entry.js → p-d5d7700fd3.entry.js} +1 -1
  285. package/dist/design-system/p-d727654ec3.entry.js +4 -0
  286. package/dist/design-system/{p-aa3aee2591.entry.js → p-dadd7a84bc.entry.js} +1 -1
  287. package/dist/design-system/p-dd5e815ef3.entry.js +4 -0
  288. package/dist/design-system/{p-a8df8f067b.entry.js → p-dfebad2acc.entry.js} +1 -1
  289. package/dist/design-system/p-e16572468e.entry.js +4 -0
  290. package/dist/design-system/{p-8a9d617f75.entry.js → p-e23b6d59c0.entry.js} +1 -1
  291. package/dist/design-system/{p-5f28436626.entry.js → p-e743fa4c17.entry.js} +1 -1
  292. package/dist/design-system/p-e94b66c13e.entry.js +4 -0
  293. package/dist/design-system/{p-78112e7b35.entry.js → p-ec3f2ded29.entry.js} +1 -1
  294. package/dist/design-system/{p-2b038255c5.entry.js → p-ed3f364d1f.entry.js} +1 -1
  295. package/dist/design-system/{p-599a693db3.entry.js → p-eedaf7fe85.entry.js} +1 -1
  296. package/dist/design-system/p-ef1bf78788.entry.js +4 -0
  297. package/dist/design-system/{p-0f2a87fa39.entry.js → p-f0b0376beb.entry.js} +1 -1
  298. package/dist/design-system/p-f7787fca37.entry.js +4 -0
  299. package/dist/design-system/{p-dbd3d3b3d3.entry.js → p-fd868dc1f5.entry.js} +1 -1
  300. package/dist/esm/{breakpoints.decorator-D9M4v98c.js → breakpoints.decorator-CIweMjJQ.js} +1 -1
  301. package/dist/esm/{breakpoints.subject-DHZ7TzYV.js → breakpoints.subject-CUVOWezN.js} +3 -3
  302. package/dist/esm/{button.interfaces-BPGfTrrM.js → button.interfaces-C6AmBSV7.js} +0 -1
  303. package/dist/esm/{config.decorator-CRYVBTkX.js → config.decorator-CyvsD1EY.js} +1 -1
  304. package/dist/esm/{config.utils-CR4Xudpz.js → config.utils-Db2OSTX3.js} +1 -1
  305. package/dist/esm/{create-validator-decorator-fUav5byo.js → create-validator-decorator-g9TfAa1g.js} +1 -1
  306. package/dist/esm/design-system.js +3 -3
  307. package/dist/esm/{device-CapioAfe.js → device-CtidwsPr.js} +1 -1
  308. package/dist/esm/ds-accordion.entry.js +9 -9
  309. package/dist/esm/ds-alert-container.entry.js +6 -6
  310. package/dist/esm/ds-app.entry.js +35 -8
  311. package/dist/esm/ds-badge.entry.js +20 -39
  312. package/dist/esm/ds-button-group.entry.js +7 -7
  313. package/dist/esm/ds-button_2.entry.js +20 -20
  314. package/dist/esm/ds-card-actions.entry.js +4 -4
  315. package/dist/esm/ds-card-content.entry.js +3 -3
  316. package/dist/esm/ds-card-header.entry.js +5 -5
  317. package/dist/esm/ds-card-subtitle.entry.js +10 -14
  318. package/dist/esm/ds-card-title.entry.js +8 -14
  319. package/dist/esm/ds-card.entry.js +7 -7
  320. package/dist/esm/ds-carousel-item.entry.js +6 -6
  321. package/dist/esm/ds-carousel.entry.js +8 -8
  322. package/dist/esm/ds-checkbox-group.entry.js +22 -15
  323. package/dist/esm/ds-checkbox.entry.js +7 -7
  324. package/dist/esm/ds-content_2.entry.js +18 -68
  325. package/dist/esm/ds-data-item.entry.js +6 -6
  326. package/dist/esm/ds-data-label.entry.js +4 -4
  327. package/dist/esm/ds-data-value.entry.js +2 -2
  328. package/dist/esm/ds-data.entry.js +4 -4
  329. package/dist/esm/ds-date.entry.js +18 -12
  330. package/dist/esm/ds-divider_2.entry.js +12 -12
  331. package/dist/esm/ds-drawer_2.entry.js +9 -9
  332. package/dist/esm/ds-file-upload.entry.js +18 -11
  333. package/dist/esm/ds-footer.entry.js +7 -7
  334. package/dist/esm/ds-heading.entry.js +21 -37
  335. package/dist/esm/ds-hint-text.entry.js +2 -2
  336. package/dist/esm/ds-hint-title.entry.js +2 -2
  337. package/dist/esm/ds-hint.entry.js +11 -11
  338. package/dist/esm/ds-icon_2.entry.js +19 -23
  339. package/dist/esm/ds-input-slider.entry.js +21 -14
  340. package/dist/esm/ds-input.entry.js +20 -11
  341. package/dist/esm/ds-item.entry.js +7 -7
  342. package/dist/esm/ds-label.entry.js +8 -8
  343. package/dist/esm/ds-list.entry.js +4 -4
  344. package/dist/esm/ds-modal-body.entry.js +2 -2
  345. package/dist/esm/ds-modal-header.entry.js +2 -2
  346. package/dist/esm/ds-modal.entry.js +7 -7
  347. package/dist/esm/ds-navbar.entry.js +14 -14
  348. package/dist/esm/ds-notification.entry.js +7 -7
  349. package/dist/esm/ds-number-input.entry.js +20 -11
  350. package/dist/esm/ds-pagination.entry.js +12 -12
  351. package/dist/esm/ds-progress-bar.entry.js +12 -12
  352. package/dist/esm/ds-radio-group.entry.js +21 -14
  353. package/dist/esm/ds-radio.entry.js +7 -7
  354. package/dist/esm/ds-segment-item.entry.js +4 -4
  355. package/dist/esm/ds-segment.entry.js +21 -15
  356. package/dist/esm/ds-select-optgroup.entry.js +4 -4
  357. package/dist/esm/ds-select-option.entry.js +4 -4
  358. package/dist/esm/ds-select.entry.js +18 -13
  359. package/dist/esm/ds-shape.entry.js +4 -4
  360. package/dist/esm/ds-snackbar.entry.js +14 -14
  361. package/dist/esm/ds-step-panel.entry.js +5 -5
  362. package/dist/esm/ds-step.entry.js +5 -5
  363. package/dist/esm/ds-steps.entry.js +6 -6
  364. package/dist/esm/ds-tab-panel.entry.js +5 -5
  365. package/dist/esm/ds-tab.entry.js +5 -5
  366. package/dist/esm/ds-tabs.entry.js +8 -8
  367. package/dist/esm/ds-tag-group.entry.js +2 -2
  368. package/dist/esm/ds-tag.entry.js +7 -7
  369. package/dist/esm/ds-text.entry.js +6 -6
  370. package/dist/esm/ds-textarea.entry.js +19 -10
  371. package/dist/esm/ds-toast.entry.js +12 -12
  372. package/dist/esm/ds-toggle.entry.js +5 -5
  373. package/dist/esm/ds-tooltip.entry.js +4 -4
  374. package/dist/esm/{field.util-neIQBS-h.js → field.util-Dl02gvlr.js} +32 -3
  375. package/dist/esm/{focus-6OAqvfus.js → focus-C1_jVoAm.js} +1 -1
  376. package/dist/esm/{form-control-DhinyMa9.js → form-control-BAP86QSm.js} +1 -1
  377. package/dist/esm/{has-value-Dmsj8ZQw.js → has-value-CADjf9QZ.js} +1 -1
  378. package/dist/esm/{heading.interfaces-Ceu7FIWM.js → heading.interfaces-BdLq-Ecc.js} +2 -3
  379. package/dist/esm/{index-B-v2Wm-V.js → index-MUUOiuTm.js} +75 -1
  380. package/dist/esm/index.js +10 -10
  381. package/dist/esm/{listener-DIZDQOuO.js → listener-DiVrGAqj.js} +1 -1
  382. package/dist/esm/loader.js +3 -3
  383. package/dist/esm/{one-of-CjRvS2Tk.js → one-of-rLykP5eX.js} +1 -1
  384. package/dist/esm/{required-Dtml5IID.js → required-BsfIY-qW.js} +1 -1
  385. package/dist/esm/{resize.decorator-eogZBBk6.js → resize.decorator-BNy5tJCt.js} +2 -2
  386. package/dist/esm/{scroll-v2MaEkiZ.js → scroll-D4cC-Fsr.js} +1 -1
  387. package/dist/esm/{svg-B8KVoKrH.js → svg-D-_px2sY.js} +96 -33
  388. package/dist/esm/{tslib.es6-n47B6oUi.js → tslib.es6-C7vR-gMn.js} +1 -1
  389. package/dist/esm/{type-7qEQcw90.js → type-Bqge296W.js} +1 -1
  390. package/dist/types/components/app/app.d.ts +23 -0
  391. package/dist/types/components/badge/badge.d.ts +12 -4
  392. package/dist/types/components/badge/badge.interfaces.d.ts +3 -3
  393. package/dist/types/components/button/button.interfaces.d.ts +1 -1
  394. package/dist/types/components/card/card-subtitle/card-subtitle.d.ts +1 -1
  395. package/dist/types/components/card/card-title/card-title.d.ts +1 -1
  396. package/dist/types/components/checkbox/checkbox-group/checkbox-group.d.ts +4 -0
  397. package/dist/types/components/close/close.d.ts +14 -2
  398. package/dist/types/components/close/close.interfaces.d.ts +1 -1
  399. package/dist/types/components/content/content.d.ts +6 -6
  400. package/dist/types/components/content/content.interfaces.d.ts +3 -3
  401. package/dist/types/components/date/date.d.ts +3 -0
  402. package/dist/types/components/file-upload/file-upload.d.ts +3 -0
  403. package/dist/types/components/heading/heading.d.ts +10 -10
  404. package/dist/types/components/heading/heading.interfaces.d.ts +3 -3
  405. package/dist/types/components/input/input.d.ts +4 -0
  406. package/dist/types/components/input-slider/input-slider.d.ts +4 -1
  407. package/dist/types/components/number-input/number-input.d.ts +4 -0
  408. package/dist/types/components/radio/radio-group/radio-group.d.ts +4 -0
  409. package/dist/types/components/segment/segment/segment.d.ts +3 -0
  410. package/dist/types/components/select/select.d.ts +3 -0
  411. package/dist/types/components/spinner/spinner.d.ts +8 -7
  412. package/dist/types/components/spinner/spinner.interfaces.d.ts +1 -1
  413. package/dist/types/components/stack/stack.d.ts +3 -3
  414. package/dist/types/components/stack/stack.interfaces.d.ts +2 -2
  415. package/dist/types/components/textarea/textarea.d.ts +4 -0
  416. package/dist/types/components.d.ts +27 -68
  417. package/dist/types/global/token-preview.d.ts +8 -0
  418. package/dist/types/global/token-preview.types.d.ts +20 -0
  419. package/dist/types/utils/index.d.ts +1 -0
  420. package/dist/types/utils/invalid-text-slot.d.ts +9 -0
  421. package/docs/cem.json +94 -82
  422. package/docs/components.json +843 -991
  423. package/docs/html.html-data.json +1 -1
  424. package/docs/visual-pages.json +51 -0
  425. package/package.json +6 -6
  426. package/sbom.cdx.json +36584 -18456
  427. package/components/p--EKmxaBS.js +0 -4
  428. package/components/p-CA7G72wZ.js +0 -4
  429. package/components/p-CWDuQL1i.js +0 -4
  430. package/components/p-Ceu7FIWM.js +0 -4
  431. package/components/p-DQBzmbR6.js +0 -4
  432. package/components/p-DY0y8uLL.js +0 -4
  433. package/components/p-Du7QOHtz.js +0 -5
  434. package/components/p-FBQaJyH0.js +0 -4
  435. package/components/p-gz0Nxl39.js +0 -4
  436. package/components/p-qaSW94OG.js +0 -4
  437. package/dist/design-system/p-138be1f0cc.entry.js +0 -4
  438. package/dist/design-system/p-2bb98dfa2f.entry.js +0 -4
  439. package/dist/design-system/p-3824068ae7.entry.js +0 -4
  440. package/dist/design-system/p-3aa3841834.entry.js +0 -4
  441. package/dist/design-system/p-4284d6d646.entry.js +0 -4
  442. package/dist/design-system/p-4b2a59576c.entry.js +0 -4
  443. package/dist/design-system/p-53d9a40010.entry.js +0 -4
  444. package/dist/design-system/p-5a6c6959fa.entry.js +0 -4
  445. package/dist/design-system/p-77e7a6a068.entry.js +0 -4
  446. package/dist/design-system/p-7ebdd14afc.entry.js +0 -4
  447. package/dist/design-system/p-7f42c18249.entry.js +0 -4
  448. package/dist/design-system/p-908e7b073a.entry.js +0 -4
  449. package/dist/design-system/p-B8KVoKrH.js +0 -5
  450. package/dist/design-system/p-BPGfTrrM.js +0 -4
  451. package/dist/design-system/p-Ceu7FIWM.js +0 -4
  452. package/dist/design-system/p-DYPX3A8m.js +0 -4
  453. package/dist/design-system/p-DiUgZKWs.js +0 -4
  454. package/dist/design-system/p-DkhJaoXg.js +0 -4
  455. package/dist/design-system/p-DypNSUAh.js +0 -4
  456. package/dist/design-system/p-Z0zrglhd.js +0 -4
  457. package/dist/design-system/p-aa3c0ff536.entry.js +0 -4
  458. package/dist/design-system/p-b390490b0d.entry.js +0 -4
  459. package/dist/design-system/p-b851a43fff.entry.js +0 -4
  460. package/dist/design-system/p-b8f626bf28.entry.js +0 -4
  461. package/dist/design-system/p-bd543e1baf.entry.js +0 -4
  462. package/dist/design-system/p-e0b2d6e296.entry.js +0 -4
  463. package/dist/design-system/p-e94ee7391c.entry.js +0 -4
  464. package/dist/design-system/p-faf75173db.entry.js +0 -4
  465. package/dist/design-system/p-fff38e1ca7.entry.js +0 -4
@@ -16,22 +16,12 @@ export class Heading {
16
16
  constructor() {
17
17
  /**
18
18
  * PUBLIC PROPERTY API
19
- * ------------------------------------------------------
19
+ * ─────────────────────────────────────────────────────
20
20
  */
21
21
  /**
22
22
  * The actual heading level used in the HTML markup.
23
23
  */
24
24
  this.level = 'h1';
25
- /**
26
- * Make the visual style mimic a specific heading level.
27
- * This option allows you to make e.g. h1 visually look like h3,
28
- * but still keep it h1 in the markup.
29
- */
30
- this.visualLevel = '';
31
- /**
32
- * The actual heading level used in the HTML markup.
33
- */
34
- this.autoLevel = '';
35
25
  /**
36
26
  * When true, the text will be truncated with a text overflow ellipsis instead of wrapping.
37
27
  * Please note that text overflow can only occur in block or inline-block level elements,
@@ -42,14 +32,6 @@ export class Heading {
42
32
  * If `true` the heading gets displayed slimmer.
43
33
  */
44
34
  this.subtitle = false;
45
- /**
46
- * Defines at which position the heading has spacing.
47
- */
48
- this.space = '';
49
- /**
50
- * The theme type of the toast.
51
- */
52
- this.color = '';
53
35
  /**
54
36
  * If `true` the color gets inverted for dark backgrounds
55
37
  */
@@ -73,16 +55,17 @@ export class Heading {
73
55
  }
74
56
  /**
75
57
  * LIFECYCLE
76
- * ------------------------------------------------------
58
+ * ─────────────────────────────────────────────────────
77
59
  */
78
- connectedCallback() {
60
+ componentWillLoad() {
79
61
  this.updateAutoFontSize();
80
62
  }
81
63
  componentDidRender() {
82
- if (hasValue(this.autoLevel) && this.autoFontSize) {
64
+ const autoLevel = this.autoLevel;
65
+ if (autoLevel && this.autoFontSize) {
83
66
  const rows = this.rows;
84
67
  if (rows > 1) {
85
- const minSize = HEADING_SIZES[this.autoLevel];
68
+ const minSize = HEADING_SIZES[autoLevel];
86
69
  if (minSize !== this.autoFontSize) {
87
70
  const nextIndex = HEADING_ORDER.indexOf(this.autoFontSize) + 1;
88
71
  this.autoFontSize = HEADING_ORDER[nextIndex];
@@ -94,8 +77,8 @@ export class Heading {
94
77
  this.autoFontSize = this.fontSize;
95
78
  }
96
79
  /**
97
- * GETTERS
98
- * ------------------------------------------------------
80
+ * PRIVATE METHODS
81
+ * ─────────────────────────────────────────────────────
99
82
  */
100
83
  get rows() {
101
84
  if (this.headingEl && dsBrowser.hasWindow) {
@@ -110,7 +93,8 @@ export class Heading {
110
93
  if (this.inverted) {
111
94
  return 'white';
112
95
  }
113
- return hasValue(this.color) ? HEADING_COLOR_MAP[this.color] : '';
96
+ const color = this.color;
97
+ return color ? HEADING_COLOR_MAP[color] : undefined;
114
98
  }
115
99
  get fontSize() {
116
100
  return HEADING_SIZES[this.visualLevel ? this.visualLevel : this.level];
@@ -120,18 +104,18 @@ export class Heading {
120
104
  }
121
105
  /**
122
106
  * RENDER
123
- * ------------------------------------------------------
107
+ * ─────────────────────────────────────────────────────
124
108
  */
125
109
  render() {
126
110
  const Heading = this.tag;
127
- return (h(Host, { key: 'dd9df7b068c6a489c4a56437a19e6f7a27a1c1ea', class: {
111
+ return (h(Host, { key: 'dd934a29bc764a7970f7c59a356d67f570631036', class: {
128
112
  [`is-${this.autoFontSize}`]: this.autoFontSize !== undefined,
129
113
  [`is-${this.fontColor}`]: hasValue(this.fontColor),
130
114
  'is-subtitle': this.subtitle,
131
115
  'has-no-wrap': this.noWrap,
132
116
  'has-shadow': this.shadow,
133
117
  [`has-space-${this.space}`]: hasValue(this.space),
134
- } }, h(Heading, { key: 'e437b9f774f324b5628d002210b1af6763cc9dc8', id: "heading", part: "heading", ref: (headingEl) => (this.headingEl = headingEl) }, h("slot", { key: '61234ad53aa55043c4982b94e40155fb5b40b69b' }))));
118
+ } }, h(Heading, { key: 'b468e6437329a02b4878120e06d102abb8732cd3', id: "heading", part: "heading", ref: (headingEl) => (this.headingEl = headingEl) }, h("slot", { key: '594a1766c31537f993ae8af98b402f097834750b' }))));
135
119
  }
136
120
  static get is() { return "ds-heading"; }
137
121
  static get encapsulation() { return "shadow"; }
@@ -179,7 +163,7 @@ export class Heading {
179
163
  "mutable": false,
180
164
  "complexType": {
181
165
  "original": "HeadingVisualLevel",
182
- "resolved": "\"\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"base\" | \"display\" | \"display-2\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"lg\" | \"md\" | \"xl\"",
166
+ "resolved": "\"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"base\" | \"display\" | \"display-2\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"lg\" | \"md\" | \"xl\" | undefined",
183
167
  "references": {
184
168
  "HeadingVisualLevel": {
185
169
  "location": "import",
@@ -190,7 +174,7 @@ export class Heading {
190
174
  }
191
175
  },
192
176
  "required": false,
193
- "optional": false,
177
+ "optional": true,
194
178
  "docs": {
195
179
  "tags": [],
196
180
  "text": "Make the visual style mimic a specific heading level.\nThis option allows you to make e.g. h1 visually look like h3,\nbut still keep it h1 in the markup."
@@ -198,15 +182,14 @@ export class Heading {
198
182
  "getter": false,
199
183
  "setter": false,
200
184
  "reflect": true,
201
- "attribute": "visual-level",
202
- "defaultValue": "''"
185
+ "attribute": "visual-level"
203
186
  },
204
187
  "autoLevel": {
205
188
  "type": "string",
206
189
  "mutable": false,
207
190
  "complexType": {
208
191
  "original": "HeadingVisualLevel",
209
- "resolved": "\"\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"base\" | \"display\" | \"display-2\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"lg\" | \"md\" | \"xl\"",
192
+ "resolved": "\"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"base\" | \"display\" | \"display-2\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"lg\" | \"md\" | \"xl\" | undefined",
210
193
  "references": {
211
194
  "HeadingVisualLevel": {
212
195
  "location": "import",
@@ -217,7 +200,7 @@ export class Heading {
217
200
  }
218
201
  },
219
202
  "required": false,
220
- "optional": false,
203
+ "optional": true,
221
204
  "docs": {
222
205
  "tags": [],
223
206
  "text": "The actual heading level used in the HTML markup."
@@ -225,8 +208,7 @@ export class Heading {
225
208
  "getter": false,
226
209
  "setter": false,
227
210
  "reflect": true,
228
- "attribute": "auto-level",
229
- "defaultValue": "''"
211
+ "attribute": "auto-level"
230
212
  },
231
213
  "noWrap": {
232
214
  "type": "boolean",
@@ -273,7 +255,7 @@ export class Heading {
273
255
  "mutable": false,
274
256
  "complexType": {
275
257
  "original": "HeadingSpace",
276
- "resolved": "\"\" | \"all\" | \"bottom\" | \"none\" | \"top\"",
258
+ "resolved": "\"all\" | \"bottom\" | \"none\" | \"top\" | undefined",
277
259
  "references": {
278
260
  "HeadingSpace": {
279
261
  "location": "import",
@@ -284,7 +266,7 @@ export class Heading {
284
266
  }
285
267
  },
286
268
  "required": false,
287
- "optional": false,
269
+ "optional": true,
288
270
  "docs": {
289
271
  "tags": [],
290
272
  "text": "Defines at which position the heading has spacing."
@@ -292,15 +274,14 @@ export class Heading {
292
274
  "getter": false,
293
275
  "setter": false,
294
276
  "reflect": true,
295
- "attribute": "space",
296
- "defaultValue": "''"
277
+ "attribute": "space"
297
278
  },
298
279
  "color": {
299
280
  "type": "string",
300
281
  "mutable": false,
301
282
  "complexType": {
302
283
  "original": "HeadingColor",
303
- "resolved": "\"\" | \"blue\" | \"danger\" | \"info\" | \"primary\" | \"success\" | \"warning\" | \"white\"",
284
+ "resolved": "\"blue\" | \"danger\" | \"info\" | \"primary\" | \"success\" | \"warning\" | \"white\" | undefined",
304
285
  "references": {
305
286
  "HeadingColor": {
306
287
  "location": "import",
@@ -311,7 +292,7 @@ export class Heading {
311
292
  }
312
293
  },
313
294
  "required": false,
314
- "optional": false,
295
+ "optional": true,
315
296
  "docs": {
316
297
  "tags": [],
317
298
  "text": "The theme type of the toast."
@@ -319,8 +300,7 @@ export class Heading {
319
300
  "getter": false,
320
301
  "setter": false,
321
302
  "reflect": true,
322
- "attribute": "color",
323
- "defaultValue": "''"
303
+ "attribute": "color"
324
304
  },
325
305
  "inverted": {
326
306
  "type": "boolean",
@@ -10,5 +10,5 @@ export const Field = (props, children) => {
10
10
  const role = props.role === 'fieldset' ? 'group' : undefined;
11
11
  const RoleTag = props.role === 'fieldset' ? 'fieldset' : 'div';
12
12
  return (h(Host, { class: Object.assign({ 'ds-field ': true, 'is-disabled': !!props.disabled, 'is-danger': props.color === 'danger' || !!props.invalid, 'is-success': props.color === 'success' && !props.invalid, 'is-warning': props.color === 'warning' && !props.invalid }, props.cssClasses) }, h(RoleTag, { id: "inner", part: "inner", role: role, "aria-disabled": ariaBooleanToString(props.disabled), "aria-invalid": ariaBooleanToString(props.invalid), "aria-labelledby": "label", "aria-describedby": "description", onClick: (ev) => { var _a; return (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, ev); } }, props.label &&
13
- (props.role === 'fieldset' ? (h("legend", { part: "label", id: "label" }, h("slot", { name: "label" }, props.label), !props.required && h("span", null, I18nDsLabel[props.language].optional || ''))) : (h("label", { htmlFor: inputId, part: "label", id: "label" }, h("slot", { name: "label" }, props.label), !props.required && h("span", null, I18nDsLabel[props.language].optional || '')))), h("div", { id: "container", part: "control" }, h("slot", { name: "start" }), children, h("slot", { name: "end" }), props.loading === true && (h("ds-spinner", { small: true, variation: "circle", color: props.disabled ? 'white' : 'blue' }))), props.label && (h("span", { id: "description", part: "description", role: props.invalid && props.invalidText ? 'alert' : undefined }, props.invalid && props.invalidText && h("ds-icon", { name: "alert" }), h("slot", { name: "description" }, props.invalid && props.invalidText ? props.invalidText : props.description))))));
13
+ (props.role === 'fieldset' ? (h("legend", { part: "label", id: "label" }, h("slot", { name: "label" }, props.label), !props.required && h("span", null, I18nDsLabel[props.language].optional || ''))) : (h("label", { htmlFor: inputId, part: "label", id: "label" }, h("slot", { name: "label" }, props.label), !props.required && h("span", null, I18nDsLabel[props.language].optional || '')))), h("div", { id: "container", part: "control" }, h("slot", { name: "start" }), children, h("slot", { name: "end" }), props.loading === true && (h("ds-spinner", { small: true, variation: "circle", color: props.disabled ? 'white' : 'blue' }))), props.label && (h("span", { id: "description", part: "description", role: props.invalid && props.invalidText ? 'alert' : undefined }, props.invalid && props.invalidText && h("ds-icon", { name: "alert" }), props.invalid ? (h("slot", { name: "invalid-text" }, props.invalidText || props.description)) : (h("slot", { name: "description" }, props.description)))))));
14
14
  };
@@ -4,7 +4,7 @@
4
4
  import { __decorate, __metadata } from "tslib";
5
5
  import { h } from "@stencil/core";
6
6
  import isNil from "lodash/isNil";
7
- import { inheritAttributes, FormControl, stopEventBubbling, debounceEvent, Logger, hasValue, OneOf, Type, } from "../../utils/index";
7
+ import { inheritAttributes, FormControl, stopEventBubbling, debounceEvent, Logger, hasValue, OneOf, Type, watchInvalidTextSlot, } from "../../utils/index";
8
8
  import { ACTION_KEYS, isCtrlOrCommandKey } from "../../global/index";
9
9
  import { InputMaskUtil } from "./input.mask";
10
10
  import { getMask } from "./masks";
@@ -14,6 +14,7 @@ import { INPUT_COLORS, INPUT_AUTOCORRECTS, INPUT_INPUT_MODES, INPUT_INPUT_TYPES,
14
14
  /**
15
15
  * Input renders a text input field with validation, masking, autocomplete, and optional help/error messaging.
16
16
  *
17
+ * @slot invalid-text - Overrides the `invalidText` prop with custom markup, shown instead of the description when `invalid` is `true`.
17
18
  * @part input - The native HTML input element.
18
19
  * @part prefix - The prefix wrapper (if used).
19
20
  * @part suffix - The suffix wrapper (if used).
@@ -27,6 +28,7 @@ export class Input {
27
28
  this.focused = false;
28
29
  this.language = defaultConfig.language;
29
30
  this.region = defaultConfig.region;
31
+ this.hasInvalidTextSlotContent = false;
30
32
  /**
31
33
  * PUBLIC PROPERTY API
32
34
  * ------------------------------------------------------
@@ -205,6 +207,13 @@ export class Input {
205
207
  this.debounceChanged();
206
208
  this.maskChanged();
207
209
  this.control.connectedCallback();
210
+ this.disconnectInvalidTextSlotWatcher = watchInvalidTextSlot(this.el, hasContent => {
211
+ this.hasInvalidTextSlotContent = hasContent;
212
+ });
213
+ }
214
+ disconnectedCallback() {
215
+ var _a;
216
+ (_a = this.disconnectInvalidTextSlotWatcher) === null || _a === void 0 ? void 0 : _a.call(this);
208
217
  }
209
218
  componentWillLoad() {
210
219
  this.inheritedAttributes = inheritAttributes(this.el, ['aria-label', 'tabindex', 'title', 'data-hj-allow']);
@@ -267,7 +276,8 @@ export class Input {
267
276
  if (hasValue(this.pattern)) {
268
277
  inputProps = { pattern: this.pattern };
269
278
  }
270
- return (h(Field, { key: 'babef5825e546b7b80315ed7b83240d2b82562c0', disabled: this.disabled, color: this.color, invalid: this.invalid, loading: this.loading, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language }, h("input", Object.assign({ key: '57f52c5591d793be3c19ab144f497d793bffbeed', id: "input", part: "input", name: this.name, ref: inputEl => (this.control.nativeEl = inputEl), "aria-describedby": "description", "aria-invalid": this.invalid === true ? 'true' : 'false', disabled: this.disabled, accept: this.accept, inputMode: this.inputmode, autoCapitalize: this.autocapitalize, autocomplete: this.autocomplete, autocorrect: this.autocorrect, autofocus: this.autofocus, min: this.min, max: this.max, minLength: this.minLength, maxLength: this.maxLength, multiple: this.multiple, placeholder: this.placeholder || '', readonly: this.readonly, required: this.required, spellcheck: this.spellcheck, type: this.type, value: value, onClick: ev => this.handleClick(ev), onFocus: ev => this.handleFocus(ev), onBlur: ev => this.handleBlur(ev), onInput: ev => this.handleInput(ev), onKeyDown: ev => this.handleKeydown(ev), onKeyPress: ev => this.dsKeyPress.emit(ev) }, inputProps, this.inheritedAttributes))));
279
+ const isInvalid = this.invalid || this.hasInvalidTextSlotContent;
280
+ return (h(Field, { key: '60462d9ab4b551b6ea128c4bae45f729cf939eed', disabled: this.disabled, color: this.color, invalid: isInvalid, loading: this.loading, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language }, h("input", Object.assign({ key: '2557655b7d70ffc1605f20dd3b2887bee85db005', id: "input", part: "input", name: this.name, ref: inputEl => (this.control.nativeEl = inputEl), "aria-describedby": "description", "aria-invalid": isInvalid ? 'true' : 'false', disabled: this.disabled, accept: this.accept, inputMode: this.inputmode, autoCapitalize: this.autocapitalize, autocomplete: this.autocomplete, autocorrect: this.autocorrect, autofocus: this.autofocus, min: this.min, max: this.max, minLength: this.minLength, maxLength: this.maxLength, multiple: this.multiple, placeholder: this.placeholder || '', readonly: this.readonly, required: this.required, spellcheck: this.spellcheck, type: this.type, value: value, onClick: ev => this.handleClick(ev), onFocus: ev => this.handleFocus(ev), onBlur: ev => this.handleBlur(ev), onInput: ev => this.handleInput(ev), onKeyDown: ev => this.handleKeydown(ev), onKeyPress: ev => this.dsKeyPress.emit(ev) }, inputProps, this.inheritedAttributes))));
271
281
  }
272
282
  static get is() { return "ds-input"; }
273
283
  static get encapsulation() { return "shadow"; }
@@ -948,7 +958,8 @@ export class Input {
948
958
  return {
949
959
  "focused": {},
950
960
  "language": {},
951
- "region": {}
961
+ "region": {},
962
+ "hasInvalidTextSlotContent": {}
952
963
  };
953
964
  }
954
965
  static get events() {
@@ -7,6 +7,7 @@ const VARIANTS = [
7
7
  'basic',
8
8
  'disabled',
9
9
  'invalid',
10
+ 'invalid-slot',
10
11
  'valid',
11
12
  'warning',
12
13
  'loading',
@@ -23,7 +24,7 @@ test.describe('style', () => {
23
24
  test.beforeEach('Setup', async ({ page }) => {
24
25
  await page.setupVisualTest(`/components/${TAG}/test/${TAG}.style.html`);
25
26
  });
26
- VARIANTS.filter(v => !['slots', 'formatter'].includes(v)).forEach(variant => {
27
+ VARIANTS.filter(v => !['slots', 'formatter', 'invalid-slot'].includes(v)).forEach(variant => {
27
28
  test(variant, async ({ page }) => {
28
29
  const el = page.getByTestId(variant);
29
30
  await expectScreenshot(el, image(`style-${variant}`));
@@ -4,7 +4,7 @@
4
4
  import { __decorate, __metadata } from "tslib";
5
5
  import { h, } from "@stencil/core";
6
6
  import isNaN from "lodash/isNaN";
7
- import { inheritAttributes, debounceEvent, hasValue, Logger, OneOf, Type } from "../../utils/index";
7
+ import { inheritAttributes, debounceEvent, hasValue, Logger, OneOf, Type, watchInvalidTextSlot, } from "../../utils/index";
8
8
  import { defaultConfig, ListenToConfig } from "../../global/index";
9
9
  import { Field } from "../input/field.util";
10
10
  import { INPUT_COLORS } from "../input/input.interfaces";
@@ -14,6 +14,7 @@ import { InputSliderPickerController } from "./input-slider.picker";
14
14
  /**
15
15
  * Input slider renders a noUiSlider-backed slider with validation and label/description messaging.
16
16
  *
17
+ * @slot invalid-text - Overrides the `invalidText` prop with custom markup, shown instead of the description when `invalid` is `true`.
17
18
  * @part slider - The noUiSlider target element.
18
19
  */
19
20
  export class InputSlider {
@@ -24,6 +25,7 @@ export class InputSlider {
24
25
  this.focused = false;
25
26
  this.language = defaultConfig.language;
26
27
  this.region = defaultConfig.region;
28
+ this.hasInvalidTextSlotContent = false;
27
29
  /**
28
30
  * PUBLIC PROPERTY API
29
31
  * ------------------------------------------------------
@@ -132,7 +134,7 @@ export class InputSlider {
132
134
  }
133
135
  invalidChanged() {
134
136
  var _a;
135
- (_a = this.picker) === null || _a === void 0 ? void 0 : _a.setInvalid(this.invalid);
137
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.setInvalid(this.invalid || this.hasInvalidTextSlotContent);
136
138
  }
137
139
  minChanged() {
138
140
  var _a;
@@ -163,6 +165,11 @@ export class InputSlider {
163
165
  this.value = clampValue(resolveInitialValue(this.value, this.min), this.min, this.max);
164
166
  this.initialValue = this.value;
165
167
  this.syncFormValue(this.value);
168
+ this.disconnectInvalidTextSlotWatcher = watchInvalidTextSlot(this.el, hasContent => {
169
+ var _a;
170
+ this.hasInvalidTextSlotContent = hasContent;
171
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.setInvalid(this.invalid || hasContent);
172
+ });
166
173
  }
167
174
  componentWillLoad() {
168
175
  this.inheritedAttributes = inheritAttributes(this.el, ['aria-label', 'tabindex', 'title']);
@@ -179,7 +186,7 @@ export class InputSlider {
179
186
  step: this.step,
180
187
  value: this.value,
181
188
  disabled: this.disabled || this.readonly,
182
- invalid: this.invalid,
189
+ invalid: this.invalid || this.hasInvalidTextSlotContent,
183
190
  onInput: value => {
184
191
  this.dsInput.emit(value);
185
192
  },
@@ -191,9 +198,10 @@ export class InputSlider {
191
198
  (_b = this.picker.handleEl) === null || _b === void 0 ? void 0 : _b.addEventListener('blur', this.handleBlur);
192
199
  }
193
200
  disconnectedCallback() {
194
- var _a;
201
+ var _a, _b;
195
202
  (_a = this.picker) === null || _a === void 0 ? void 0 : _a.destroy();
196
203
  this.picker = undefined;
204
+ (_b = this.disconnectInvalidTextSlotWatcher) === null || _b === void 0 ? void 0 : _b.call(this);
197
205
  }
198
206
  /**
199
207
  * PUBLIC LISTENERS
@@ -268,12 +276,12 @@ export class InputSlider {
268
276
  * ------------------------------------------------------
269
277
  */
270
278
  render() {
271
- return (h(Field, { key: '673117fa1520455f38ee39c6f2218468e6ca8150', disabled: this.disabled || this.readonly, color: this.color, invalid: this.invalid, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language, cssClasses: {
279
+ return (h(Field, { key: '69b0dc7ea5f958598cee12e42879d5e4f025bd2e', disabled: this.disabled || this.readonly, color: this.color, invalid: this.invalid, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language, cssClasses: {
272
280
  'is-brand-yellow': hasValue(this.brandColor) && this.brandColor === 'yellow',
273
281
  'is-brand-purple': hasValue(this.brandColor) && this.brandColor === 'purple',
274
282
  'is-brand-red': hasValue(this.brandColor) && this.brandColor === 'red',
275
283
  'is-brand-green': hasValue(this.brandColor) && this.brandColor === 'green',
276
- } }, h("div", Object.assign({ key: 'b760944d8141876484054f1454b453e087bc7eda', id: "slider", part: "slider", ref: el => (this.sliderEl = el), onClick: this.handleClick }, this.inheritedAttributes))));
284
+ } }, h("div", Object.assign({ key: 'b89ecd4c3ac4f8c11c05b3de1e79215d4c076766', id: "slider", part: "slider", ref: el => (this.sliderEl = el), onClick: this.handleClick }, this.inheritedAttributes))));
277
285
  }
278
286
  static get is() { return "ds-input-slider"; }
279
287
  static get encapsulation() { return "shadow"; }
@@ -629,7 +637,8 @@ export class InputSlider {
629
637
  static get states() {
630
638
  return {
631
639
  "language": {},
632
- "region": {}
640
+ "region": {},
641
+ "hasInvalidTextSlotContent": {}
633
642
  };
634
643
  }
635
644
  static get events() {
@@ -729,7 +738,7 @@ export class InputSlider {
729
738
  "composed": true,
730
739
  "docs": {
731
740
  "tags": [],
732
- "text": "Emitted when the value is committed (noUiSlider `change`, not `blur` \u2014 see\nADR-0006/ADR-0007). Fires once per discrete drag/step, independent of focus."
741
+ "text": "Emitted when the value is committed (noUiSlider `change`, not `blur` \u2014 see\nADR-0010/ADR-0007). Fires once per discrete drag/step, independent of focus."
733
742
  },
734
743
  "complexType": {
735
744
  "original": "InputSliderChangeDetail",
@@ -8,6 +8,7 @@ const VARIANTS = [
8
8
  'disabled',
9
9
  'readonly',
10
10
  'invalid',
11
+ 'invalid-slot',
11
12
  'valid',
12
13
  'warning',
13
14
  'brand-color',
@@ -1 +1 @@
1
- :host{--_list-item-focus: var(--list-item-focus, var(--mod-list-item-focus, var(--ds-alias-interaction-focus-color-base)));--_list-item-grid-template-columns: var(--list-item-grid-template-columns, var(--mod-list-item-grid-template-columns, 1fr));--_list-item-min-height: var(--list-item-min-height, var(--mod-list-item-min-height, 3.5rem));--_list-item-gap: var(--list-item-gap, var(--mod-list-item-gap, 1rem));--_list-item-space: var(--list-item-space, var(--mod-list-item-space, 0.5rem));--_list-item-content-gap: var(--list-item-content-gap, var(--mod-list-item-content-gap, 1px));--_list-item-color: var(--list-item-color, var(--mod-list-item-color, inherit));--_list-item-border-color-base: var(--list-item-border-color-base, var(--mod-list-item-border-color-base, var(--ds-list-item-border-color)));--_list-item-border-color-hover: var(--list-item-border-color-hover, var(--mod-list-item-border-color-hover, var(--ds-link-color-base)));--_list-item-border-color-active: var(--list-item-border-color-active, var(--mod-list-item-border-color-active, var(--ds-link-color-base-active)));--_list-item-border-width: var(--list-item-border-width, var(--mod-list-item-border-width, var(--ds-list-item-border-width, 2px)));--_list-item-border-radius: var(--list-item-border-radius, var(--mod-list-item-border-radius, 12px));--_list-item-background-base: var(--list-item-background-base, var(--mod-list-item-background-base, transparent));--_list-item-background-hover: var(--list-item-background-hover, var(--mod-list-item-background-hover, var(--ds-alias-background-color-primary-lighter)));--_list-item-background-active: var(--list-item-background-active, var(--mod-list-item-background-active, var(--ds-alias-background-color-primary-lighter)));--_list-item-accordion-py: var(--list-item-accordion-py, var(--mod-list-item-accordion-py, var(--ds-alias-space-base-device)));--_list-item-action-icon-size: var(--list-item-action-icon-size, var(--mod-list-item-action-icon-size, var(--ds-icon-size-xs)));--_list-item-title-size: var(--list-item-title-size, var(--mod-list-item-title-size, var(--ds-heading-5-size-device)));--_list-item-title-weight: var(--list-item-title-weight, var(--mod-list-item-title-weight, var(--ds-alias-text-weight-bold)));--_list-item-title-family: var(--list-item-title-family, var(--mod-list-item-title-family, var(--ds-global-font-family-heading)));--_list-item-text-family: var(--list-item-text-family, var(--mod-list-item-text-family, var(--ds-global-font-family-body)));--_list-item-text-weight: var(--list-item-text-weight, var(--mod-list-item-text-weight, var(--ds-alias-text-weight-regular)));--_list-item-text-size: var(--list-item-text-size, var(--mod-list-item-text-size, var(--ds-alias-text-size-sm-device)))}:host{position:relative;display:grid;box-sizing:border-box;grid-template-columns:var(--_list-item-grid-template-columns)}:host ::slotted([slot=content]){min-height:46px}:host #item{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:var(--_list-item-gap);width:100%;color:var(--_list-item-color);background:inherit;border:none;align-self:stretch;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--_list-item-title-family);padding:var(--_list-item-space) .25rem;padding-bottom:calc(var(--_list-item-space) + 2px);min-height:var(--_list-item-min-height)}:host #item ds-icon{flex-shrink:0}:host #item #content+ds-icon{--icon-size: var(--_list-item-action-icon-size);--icon-inner-size: var(--_list-item-action-icon-size)}:host #item #content{flex:1;display:flex;flex-direction:column;gap:var(--_list-item-content-gap);font-family:var(--_list-item-text-family);font-weight:var(--_list-item-text-weight)}:host #item #label{font-family:var(--_list-item-title-family);font-weight:var(--_list-item-title-weight);font-size:var(--_list-item-title-size);margin:0}:host #item #description{font-family:var(--_list-item-text-family);font-weight:var(--_list-item-text-weight);font-size:var(--_list-item-text-size);margin:0}:host #item:after{content:"";border-radius:var(--_list-item-border-radius);width:100%;position:absolute;bottom:0;left:0;right:0;height:var(--_list-item-border-width);background:var(--_list-item-border-color-base)}:host(.has-label-h1){--mod-list-item-title-size: var(--ds-heading-1-size-device)}:host(.has-label-3xl){--mod-list-item-title-size: var(--ds-heading-1-size-device)}:host(.has-label-h2){--mod-list-item-title-size: var(--ds-heading-2-size-device)}:host(.has-label-2xl){--mod-list-item-title-size: var(--ds-heading-2-size-device)}:host(.has-label-h3){--mod-list-item-title-size: var(--ds-heading-3-size-device)}:host(.has-label-xl){--mod-list-item-title-size: var(--ds-heading-3-size-device)}:host(.has-label-h4){--mod-list-item-title-size: var(--ds-heading-4-size-device)}:host(.has-label-lg){--mod-list-item-title-size: var(--ds-heading-4-size-device)}:host(.has-label-h5){--mod-list-item-title-size: var(--ds-heading-5-size-device)}:host(.has-label-base){--mod-list-item-title-size: var(--ds-heading-5-size-device)}:host(.is-link) #item,:host(.is-button) #item{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;text-decoration:none;outline:none;cursor:pointer;background:var(--_list-item-background-base)}:host(.is-link) #item::-moz-focus-inner,:host(.is-button) #item::-moz-focus-inner{border:0}:host(.is-link) #item #content,:host(.is-button) #item #content{hyphens:auto;overflow-wrap:break-word;font-family:var(--_list-item-title-family);font-weight:var(--_list-item-title-weight);font-size:var(--_list-item-title-size);color:var(--ds-link-color-base)}@media(hover: hover)and (pointer: fine){:host(.is-link) #item:hover,:host(.is-link) #item.is-hovered,:host(.is-button) #item:hover,:host(.is-button) #item.is-hovered{background:var(--_list-item-background-hover)}}:host(.is-link) #item:active,:host(.is-link) #item.is-pressed,:host(.is-button) #item:active,:host(.is-button) #item.is-pressed{background:var(--_list-item-background-active);color:var(--ds-link-color-base-active)}:host(.is-link) #item:active #content,:host(.is-link) #item.is-pressed #content,:host(.is-button) #item:active #content,:host(.is-button) #item.is-pressed #content{color:var(--ds-link-color-base-active)}:host(.is-link) #item:active ds-icon,:host(.is-link) #item:active ::slotted(ds-icon),:host(.is-link) #item:active ::slotted(ds-badge),:host(.is-link) #item.is-pressed ds-icon,:host(.is-link) #item.is-pressed ::slotted(ds-icon),:host(.is-link) #item.is-pressed ::slotted(ds-badge),:host(.is-button) #item:active ds-icon,:host(.is-button) #item:active ::slotted(ds-icon),:host(.is-button) #item:active ::slotted(ds-badge),:host(.is-button) #item.is-pressed ds-icon,:host(.is-button) #item.is-pressed ::slotted(ds-icon),:host(.is-button) #item.is-pressed ::slotted(ds-badge){--icon-color: var(--ds-link-color-base-active)}:host(.is-link) #item:before,:host(.is-button) #item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;border-radius:var(--ds-alias-radius-base);touch-action:manipulation;transition-property:box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}:host(.is-link) #item:focus-visible:not(:active):before,:host(.is-link) #item.is-focused:not(:active):before,:host(.is-button) #item:focus-visible:not(:active):before,:host(.is-button) #item.is-focused:not(:active):before{box-shadow:var(--ds-alias-interaction-focus-color-border) 0 0 0 2px,var(--_list-item-focus) 0 0 0 5px !important}@media(hover: hover)and (pointer: fine){:host(.is-link) #item:hover:after,:host(.is-link) #item.is-hovered:after,:host(.is-button) #item:hover:after,:host(.is-button) #item.is-hovered:after,:host(.is-accordion) #item:hover:after,:host(.is-accordion) #item.is-hovered:after{background:var(--_list-item-border-color-hover)}}:host(.is-link) #item:active:after,:host(.is-link) #item.is-pressed:after,:host(.is-button) #item:active:after,:host(.is-button) #item.is-pressed:after,:host(.is-accordion) #item:active:after,:host(.is-accordion) #item.is-pressed:after{background:var(--_list-item-border-color-active)}:host(.is-accordion) ::slotted(p){padding-block:var(--_list-item-accordion-py)}:host(.is-accordion) ds-accordion{--accordion-summary-color-hover: var(--ds-link-color-base)}:host(.is-accordion) ds-accordion::part(header){background:var(--_list-item-background-base)}:host(.is-accordion) ds-accordion::part(summary){padding-right:.25rem}:host(.is-accordion) ds-accordion::part(summary):hover{background:var(--_list-item-background-hover)}:host(.is-accordion) ds-accordion::part(summary):active{background:var(--_list-item-background-active)}:host(.is-accordion) #accordion-content:after{content:"";border-radius:var(--_list-item-border-radius);width:100%;position:absolute;bottom:0;left:0;right:0;height:var(--_list-item-border-width);background:var(--_list-item-border-color-base)}:host(.is-disabled) #item{pointer-events:none !important;cursor:default !important;color:var(--ds-list-item-disabled)}:host(.is-disabled) #item #content{color:var(--ds-list-item-disabled)}:host(.is-disabled) #item ds-icon,:host(.is-disabled) #item ds-badge,:host(.is-disabled) #item ::slotted(ds-icon),:host(.is-disabled) #item ::slotted(ds-badge){--icon-color: var(--ds-list-item-disabled)}:host(.is-disabled) #item ds-badge,:host(.is-disabled) #item ::slotted(ds-badge){--badge-color-background: var(--ds-badge-color-grey-background);--badge-color-text: var(--ds-badge-color-grey-text)}
1
+ :host{--_list-item-focus: var(--list-item-focus, var(--mod-list-item-focus, var(--ds-alias-interaction-focus-color-base)));--_list-item-grid-template-columns: var(--list-item-grid-template-columns, var(--mod-list-item-grid-template-columns, 1fr));--_list-item-min-height: var(--list-item-min-height, var(--mod-list-item-min-height, 3.5rem));--_list-item-gap: var(--list-item-gap, var(--mod-list-item-gap, 1rem));--_list-item-space: var(--list-item-space, var(--mod-list-item-space, 0.5rem));--_list-item-content-gap: var(--list-item-content-gap, var(--mod-list-item-content-gap, 1px));--_list-item-color: var(--list-item-color, var(--mod-list-item-color, inherit));--_list-item-border-color-base: var(--list-item-border-color-base, var(--mod-list-item-border-color-base, var(--ds-list-item-border-color)));--_list-item-border-color-hover: var(--list-item-border-color-hover, var(--mod-list-item-border-color-hover, var(--ds-link-color-base)));--_list-item-border-color-active: var(--list-item-border-color-active, var(--mod-list-item-border-color-active, var(--ds-link-color-base-active)));--_list-item-border-width: var(--list-item-border-width, var(--mod-list-item-border-width, var(--ds-list-item-border-width, 2px)));--_list-item-border-radius: var(--list-item-border-radius, var(--mod-list-item-border-radius, 12px));--_list-item-background-base: var(--list-item-background-base, var(--mod-list-item-background-base, transparent));--_list-item-background-hover: var(--list-item-background-hover, var(--mod-list-item-background-hover, var(--ds-alias-background-color-primary-lighter)));--_list-item-background-active: var(--list-item-background-active, var(--mod-list-item-background-active, var(--ds-alias-background-color-primary-lighter)));--_list-item-accordion-py: var(--list-item-accordion-py, var(--mod-list-item-accordion-py, var(--ds-alias-space-base-device)));--_list-item-action-icon-size: var(--list-item-action-icon-size, var(--mod-list-item-action-icon-size, var(--ds-icon-size-xs)));--_list-item-title-size: var(--list-item-title-size, var(--mod-list-item-title-size, var(--ds-heading-5-size-device)));--_list-item-title-weight: var(--list-item-title-weight, var(--mod-list-item-title-weight, var(--ds-alias-text-weight-bold)));--_list-item-title-family: var(--list-item-title-family, var(--mod-list-item-title-family, var(--ds-global-font-family-heading)));--_list-item-text-family: var(--list-item-text-family, var(--mod-list-item-text-family, var(--ds-global-font-family-body)));--_list-item-text-weight: var(--list-item-text-weight, var(--mod-list-item-text-weight, var(--ds-alias-text-weight-regular)));--_list-item-text-size: var(--list-item-text-size, var(--mod-list-item-text-size, var(--ds-alias-text-size-sm-device)))}:host{position:relative;display:grid;box-sizing:border-box;grid-template-columns:var(--_list-item-grid-template-columns)}:host ::slotted([slot=content]){min-height:46px}:host #item{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:var(--_list-item-gap);width:100%;color:var(--_list-item-color);background:inherit;border:none;align-self:stretch;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--_list-item-title-family);padding:var(--_list-item-space) .25rem;padding-bottom:calc(var(--_list-item-space) + 2px);min-height:var(--_list-item-min-height)}:host #item ds-icon{flex-shrink:0}:host #item #content+ds-icon{--icon-size: var(--_list-item-action-icon-size);--icon-inner-size: var(--_list-item-action-icon-size)}:host #item #content{flex:1;display:flex;flex-direction:column;gap:var(--_list-item-content-gap);font-family:var(--_list-item-text-family);font-weight:var(--_list-item-text-weight)}:host #item #label{font-family:var(--_list-item-title-family);font-weight:var(--_list-item-title-weight);font-size:var(--_list-item-title-size);margin:0}:host #item #description{font-family:var(--_list-item-text-family);font-weight:var(--_list-item-text-weight);font-size:var(--_list-item-text-size);margin:0}:host #item:after{content:"";border-radius:var(--_list-item-border-radius);width:100%;position:absolute;bottom:0;left:0;right:0;height:var(--_list-item-border-width);background:var(--_list-item-border-color-base)}:host(.has-label-h1){--mod-list-item-title-size: var(--ds-heading-1-size-device)}:host(.has-label-3xl){--mod-list-item-title-size: var(--ds-heading-1-size-device)}:host(.has-label-h2){--mod-list-item-title-size: var(--ds-heading-2-size-device)}:host(.has-label-2xl){--mod-list-item-title-size: var(--ds-heading-2-size-device)}:host(.has-label-h3){--mod-list-item-title-size: var(--ds-heading-3-size-device)}:host(.has-label-xl){--mod-list-item-title-size: var(--ds-heading-3-size-device)}:host(.has-label-h4){--mod-list-item-title-size: var(--ds-heading-4-size-device)}:host(.has-label-lg){--mod-list-item-title-size: var(--ds-heading-4-size-device)}:host(.has-label-h5){--mod-list-item-title-size: var(--ds-heading-5-size-device)}:host(.has-label-base){--mod-list-item-title-size: var(--ds-heading-5-size-device)}:host(.is-link) #item,:host(.is-button) #item{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;text-decoration:none;outline:none;cursor:pointer;background:var(--_list-item-background-base)}:host(.is-link) #item::-moz-focus-inner,:host(.is-button) #item::-moz-focus-inner{border:0}:host(.is-link) #item #content,:host(.is-button) #item #content{hyphens:auto;overflow-wrap:break-word;font-family:var(--_list-item-title-family);font-weight:var(--_list-item-title-weight);font-size:var(--_list-item-title-size);color:var(--ds-link-color-base)}@media(hover: hover)and (pointer: fine){:host(.is-link) #item:hover,:host(.is-link) #item.is-hovered,:host(.is-button) #item:hover,:host(.is-button) #item.is-hovered{background:var(--_list-item-background-hover)}}:host(.is-link) #item:active,:host(.is-link) #item.is-pressed,:host(.is-button) #item:active,:host(.is-button) #item.is-pressed{background:var(--_list-item-background-active);color:var(--ds-link-color-base-active)}:host(.is-link) #item:active #content,:host(.is-link) #item.is-pressed #content,:host(.is-button) #item:active #content,:host(.is-button) #item.is-pressed #content{color:var(--ds-link-color-base-active)}:host(.is-link) #item:active ds-icon,:host(.is-link) #item:active ::slotted(ds-icon),:host(.is-link) #item:active ::slotted(ds-badge),:host(.is-link) #item.is-pressed ds-icon,:host(.is-link) #item.is-pressed ::slotted(ds-icon),:host(.is-link) #item.is-pressed ::slotted(ds-badge),:host(.is-button) #item:active ds-icon,:host(.is-button) #item:active ::slotted(ds-icon),:host(.is-button) #item:active ::slotted(ds-badge),:host(.is-button) #item.is-pressed ds-icon,:host(.is-button) #item.is-pressed ::slotted(ds-icon),:host(.is-button) #item.is-pressed ::slotted(ds-badge){--icon-color: var(--ds-link-color-base-active)}:host(.is-link) #item:before,:host(.is-button) #item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;border-radius:var(--ds-alias-radius-base);touch-action:manipulation;transition-property:box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}:host(.is-link) #item:focus-visible:not(:active):before,:host(.is-link) #item.is-focused:not(:active):before,:host(.is-button) #item:focus-visible:not(:active):before,:host(.is-button) #item.is-focused:not(:active):before{box-shadow:var(--ds-alias-interaction-focus-color-border) 0 0 0 2px,var(--_list-item-focus) 0 0 0 5px !important}@media(hover: hover)and (pointer: fine){:host(.is-link) #item:hover:after,:host(.is-link) #item.is-hovered:after,:host(.is-button) #item:hover:after,:host(.is-button) #item.is-hovered:after,:host(.is-accordion) #item:hover:after,:host(.is-accordion) #item.is-hovered:after{background:var(--_list-item-border-color-hover)}}:host(.is-link) #item:active:after,:host(.is-link) #item.is-pressed:after,:host(.is-button) #item:active:after,:host(.is-button) #item.is-pressed:after,:host(.is-accordion) #item:active:after,:host(.is-accordion) #item.is-pressed:after{background:var(--_list-item-border-color-active)}:host(.is-accordion) ::slotted(p){padding-block:var(--_list-item-accordion-py)}:host(.is-accordion) ds-accordion{--accordion-summary-color-hover: var(--ds-link-color-base)}:host(.is-accordion) ds-accordion::part(header){background:var(--_list-item-background-base)}:host(.is-accordion) ds-accordion::part(summary){padding-right:.25rem}:host(.is-accordion) ds-accordion::part(summary):hover{background:var(--_list-item-background-hover)}:host(.is-accordion) ds-accordion::part(summary):active{background:var(--_list-item-background-active)}:host(.is-accordion) #accordion-content:after{content:"";border-radius:var(--_list-item-border-radius);width:100%;position:absolute;bottom:0;left:0;right:0;height:var(--_list-item-border-width);background:var(--_list-item-border-color-base)}:host(.is-disabled) #item{pointer-events:none !important;cursor:default !important;color:var(--ds-list-item-disabled)}:host(.is-disabled) #item #content{color:var(--ds-list-item-disabled)}:host(.is-disabled) #item ds-icon,:host(.is-disabled) #item ds-badge,:host(.is-disabled) #item ::slotted(ds-icon),:host(.is-disabled) #item ::slotted(ds-badge){--icon-color: var(--ds-list-item-disabled)}:host(.is-disabled) #item ds-badge,:host(.is-disabled) #item ::slotted(ds-badge){--badge-color-background: var(--ds-badge-grey-color-background);--badge-color-text: var(--ds-badge-grey-color-text)}
@@ -6,7 +6,7 @@ import { h, } from "@stencil/core";
6
6
  import isEmpty from "lodash/isEmpty";
7
7
  import isNaN from "lodash/isNaN";
8
8
  import isNil from "lodash/isNil";
9
- import { inheritAttributes, FormControl, stopEventBubbling, debounceEvent, Logger, getDecimalSeparator, getThousandSeparator, hasValue, OneOf, Type, } from "../../utils/index";
9
+ import { inheritAttributes, FormControl, stopEventBubbling, debounceEvent, Logger, getDecimalSeparator, getThousandSeparator, hasValue, OneOf, Type, watchInvalidTextSlot, } from "../../utils/index";
10
10
  import { defaultConfig, ListenToConfig } from "../../global/index";
11
11
  import { isNotNumber, mapDecimalSeparator, toFixedNumber, toNumber, toUserFormattedNumber, validateKeyDown, } from "./number-input.utils";
12
12
  import { Field } from "../input/field.util";
@@ -15,6 +15,7 @@ import { INPUT_COLORS } from "../input/input.interfaces";
15
15
  * Number input renders a specialized text input for numeric values with increment/decrement buttons, formatting, and validation.
16
16
  *
17
17
  * @slot - The number input field content and surrounding elements.
18
+ * @slot invalid-text - Overrides the `invalidText` prop with custom markup, shown instead of the description when `invalid` is `true`.
18
19
  * @part input - The native HTML input element.
19
20
  * @part prefix - The prefix wrapper (if used).
20
21
  * @part suffix - The suffix wrapper (if used).
@@ -28,6 +29,7 @@ export class NumberInput {
28
29
  this.control = new FormControl(this);
29
30
  this.lastValue = '';
30
31
  this.focused = false;
32
+ this.hasInvalidTextSlotContent = false;
31
33
  this.language = defaultConfig.language;
32
34
  this.region = defaultConfig.region;
33
35
  this.nativeInputValue = '';
@@ -197,6 +199,13 @@ export class NumberInput {
197
199
  connectedCallback() {
198
200
  this.debounceChanged();
199
201
  this.control.connectedCallback();
202
+ this.disconnectInvalidTextSlotWatcher = watchInvalidTextSlot(this.el, hasContent => {
203
+ this.hasInvalidTextSlotContent = hasContent;
204
+ });
205
+ }
206
+ disconnectedCallback() {
207
+ var _a;
208
+ (_a = this.disconnectInvalidTextSlotWatcher) === null || _a === void 0 ? void 0 : _a.call(this);
200
209
  }
201
210
  componentWillLoad() {
202
211
  this.inheritedAttributes = inheritAttributes(this.el, ['aria-label', 'tabindex', 'title']);
@@ -292,7 +301,8 @@ export class NumberInput {
292
301
  * ------------------------------------------------------
293
302
  */
294
303
  render() {
295
- return (h(Field, { key: 'a7ccea6d0b98bd447e9fac8af180019eddbaff7b', disabled: this.disabled, color: this.color, invalid: this.invalid, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language }, h("input", Object.assign({ key: '76078e54d6f2dbfa6ad348e09b9987b741b8bdc1', id: "input", part: "input", type: "text", inputMode: "decimal", pattern: this.inputPattern, ref: el => (this.control.nativeEl = el), "aria-describedby": "description", "aria-invalid": this.invalid === true ? 'true' : 'false', name: this.name, disabled: this.disabled, placeholder: this.placeholder || '', readonly: this.readonly, required: this.required, min: this.min, max: this.max, value: this.nativeInputValue, onInput: ev => this.handleInput(ev), onFocus: ev => this.handleFocus(ev), onBlur: ev => this.handleBlur(ev), onClick: ev => this.control.onClick(ev), onKeyDown: ev => this.handleKeydown(ev), onKeyPress: ev => this.dsKeyPress.emit(ev) }, this.inheritedAttributes))));
304
+ const isInvalid = this.invalid || this.hasInvalidTextSlotContent;
305
+ return (h(Field, { key: 'a185df149be41135c6b939ad1c3ad5ba57a38e94', disabled: this.disabled, color: this.color, invalid: isInvalid, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language }, h("input", Object.assign({ key: 'a7461115068e7a365ba4b0e25501d96be6de099d', id: "input", part: "input", type: "text", inputMode: "decimal", pattern: this.inputPattern, ref: el => (this.control.nativeEl = el), "aria-describedby": "description", "aria-invalid": isInvalid ? 'true' : 'false', name: this.name, disabled: this.disabled, placeholder: this.placeholder || '', readonly: this.readonly, required: this.required, min: this.min, max: this.max, value: this.nativeInputValue, onInput: ev => this.handleInput(ev), onFocus: ev => this.handleFocus(ev), onBlur: ev => this.handleBlur(ev), onClick: ev => this.control.onClick(ev), onKeyDown: ev => this.handleKeydown(ev), onKeyPress: ev => this.dsKeyPress.emit(ev) }, this.inheritedAttributes))));
296
306
  }
297
307
  static get is() { return "ds-number-input"; }
298
308
  static get encapsulation() { return "shadow"; }
@@ -701,6 +711,7 @@ export class NumberInput {
701
711
  static get states() {
702
712
  return {
703
713
  "focused": {},
714
+ "hasInvalidTextSlotContent": {},
704
715
  "language": {},
705
716
  "region": {},
706
717
  "nativeInputValue": {},
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { expectScreenshot, screenshot, test } from "../../../../../../playwright/src/index";
5
5
  const TAG = 'number-input';
6
- const VARIANTS = ['basic', 'disabled', 'invalid', 'valid', 'warning', 'decimal', 'suffix'];
6
+ const VARIANTS = ['basic', 'disabled', 'invalid', 'invalid-slot', 'valid', 'warning', 'decimal', 'suffix'];
7
7
  const image = screenshot(TAG);
8
8
  test.describe('host', () => {
9
9
  test.beforeEach('Setup', async ({ page }) => {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { __decorate, __metadata } from "tslib";
5
5
  import { h, } from "@stencil/core";
6
- import { Logger, stopEventBubbling, hasTagName, isDescendant, OneOf, Type } from "../../../utils/index";
6
+ import { Logger, stopEventBubbling, hasTagName, isDescendant, OneOf, Type, watchInvalidTextSlot, } from "../../../utils/index";
7
7
  import { Field } from "../../input/field.util";
8
8
  import { defaultConfig, ListenToConfig } from "../../../global/index";
9
9
  import { INPUT_COLORS } from "../../input/input.interfaces";
@@ -12,11 +12,13 @@ import { RADIO_LABEL_POSITIONS, RADIO_TILE_COLORS, RADIO_GROUP_COLUMNS, } from "
12
12
  * Radio Group groups multiple radio inputs so only one option can be selected at a time within a form field.
13
13
  *
14
14
  * @slot - The radio items to display inside the group.
15
+ * @slot invalid-text - Overrides the `invalidText` prop with custom markup, shown instead of the description when `invalid` is `true`.
15
16
  */
16
17
  export class RadioGroup {
17
18
  constructor() {
18
19
  this.language = defaultConfig.language;
19
20
  this.region = defaultConfig.region;
21
+ this.hasInvalidTextSlotContent = false;
20
22
  this.inputId = `ds-rg-${radioGroupIds++}`;
21
23
  /**
22
24
  * PUBLIC PROPERTY API
@@ -144,8 +146,15 @@ export class RadioGroup {
144
146
  connectedCallback() {
145
147
  this.initialValue = this.value;
146
148
  this.internals.setFormValue(this.value);
149
+ this.disconnectInvalidTextSlotWatcher = watchInvalidTextSlot(this.el, hasContent => {
150
+ this.hasInvalidTextSlotContent = hasContent;
151
+ });
147
152
  this.passDownAttributes();
148
153
  }
154
+ disconnectedCallback() {
155
+ var _a;
156
+ (_a = this.disconnectInvalidTextSlotWatcher) === null || _a === void 0 ? void 0 : _a.call(this);
157
+ }
149
158
  componentWillLoad() {
150
159
  this.handleValueChange();
151
160
  }
@@ -242,6 +251,7 @@ export class RadioGroup {
242
251
  * ------------------------------------------------------
243
252
  */
244
253
  passDownAttributes() {
254
+ const isInvalid = this.invalid || this.hasInvalidTextSlotContent;
245
255
  this.getRadios().forEach(radio => {
246
256
  var _a;
247
257
  if (this.disabled !== undefined) {
@@ -250,9 +260,7 @@ export class RadioGroup {
250
260
  if (this.readonly !== undefined) {
251
261
  radio.readonly = this.readonly;
252
262
  }
253
- if (this.invalid !== undefined) {
254
- radio.invalid = this.invalid;
255
- }
263
+ radio.invalid = isInvalid;
256
264
  radio.labelPosition = this.labelPosition;
257
265
  radio.tile = this.tile;
258
266
  radio.hideTrigger = this.hideTrigger;
@@ -293,10 +301,10 @@ export class RadioGroup {
293
301
  * ------------------------------------------------------
294
302
  */
295
303
  render() {
296
- return (h(Field, { key: 'e52d1c8b0aafdbf523cd91bae9dfc0d563eb5002', role: "fieldset", disabled: this.disabled, color: this.color, invalid: this.invalid, loading: this.loading, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language, cssClasses: {
304
+ return (h(Field, { key: 'c7cc878d4b12a536d805dbdf3e44419cc2c31c3f', role: "fieldset", disabled: this.disabled, color: this.color, invalid: this.invalid || this.hasInvalidTextSlotContent, loading: this.loading, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language, cssClasses: {
297
305
  'is-vertical': this.vertical,
298
306
  'is-tile': this.tile,
299
- }, onClick: this.handleClick }, h("slot", { key: 'd235eec63f1e13a9de4988b841ea124f05d9a2a3', onSlotchange: this.handleSlotChange })));
307
+ }, onClick: this.handleClick }, h("slot", { key: '468b13eff479f2654ce14a5b513e10f513fbf0ee', onSlotchange: this.handleSlotChange })));
300
308
  }
301
309
  static get is() { return "ds-radio-group"; }
302
310
  static get encapsulation() { return "shadow"; }
@@ -759,7 +767,8 @@ export class RadioGroup {
759
767
  static get states() {
760
768
  return {
761
769
  "language": {},
762
- "region": {}
770
+ "region": {},
771
+ "hasInvalidTextSlotContent": {}
763
772
  };
764
773
  }
765
774
  static get events() {
@@ -26,6 +26,7 @@ const HOST_VARIANTS = [
26
26
  'form',
27
27
  'field-disabled',
28
28
  'field-invalid',
29
+ 'field-invalid-slot',
29
30
  'tile-basic',
30
31
  'tile-columns',
31
32
  'tile-invalid',