@stihl-design-system/components 1.0.0-RC.46 → 1.0.0-RC.48

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 (311) hide show
  1. package/{accordion.Dvt4S5qg.js → accordion.D4XR2R7e.js} +3 -3
  2. package/actionbutton.C8hePX-D.js +12 -0
  3. package/{actioncard.BwquHtM_.js → actioncard.kDxu01xm.js} +1 -1
  4. package/actionlink.dccc5JQV.js +12 -0
  5. package/{arialiveregions.BF6mUlPU.js → arialiveregions.BniSDuPM.js} +9 -10
  6. package/assets/Accordion.RlqWqpGo.css +1 -0
  7. package/assets/ActionButton.Dw2FeIaW.css +1 -0
  8. package/assets/ActionCard.viEoC26n.css +1 -0
  9. package/assets/ActionLink.B1Jjaf7k.css +1 -0
  10. package/assets/Breadcrumb.BJ6sa2am.css +1 -0
  11. package/assets/Button.Bi1KUKMv.css +1 -0
  12. package/assets/Checkbox.C6RWhy0V.css +1 -0
  13. package/assets/Chip.DfamkUPw.css +1 -0
  14. package/assets/CustomReactSelect.CvWMmrAU.css +1 -0
  15. package/assets/Dialog.6AkQo8ew.css +1 -0
  16. package/assets/Drawer.CDOlX809.css +1 -0
  17. package/assets/Fieldset.BbLGXCWa.css +1 -0
  18. package/assets/Flag.qP1xbolI.css +1 -0
  19. package/assets/Header.CSPbSqR5.css +1 -0
  20. package/assets/InputFile.CDtghZtl.css +1 -0
  21. package/assets/InputNumber.BNpO9p7n.css +1 -0
  22. package/assets/InputPassword.BgZo-RUc.css +1 -0
  23. package/assets/InputSearch.BROFFTK9.css +1 -0
  24. package/assets/LinkButton.IKIlFnpH.css +1 -0
  25. package/assets/LinkCard.pJtgJRIh.css +1 -0
  26. package/assets/NavigationTabList.D5VV0C7Y.css +1 -0
  27. package/assets/Notification.2B81JHOp.css +1 -0
  28. package/assets/Pagination.DH71DZ0j.css +1 -0
  29. package/assets/Popover.58Tb0dOt.css +1 -0
  30. package/assets/Select.CfTN3CJo.css +1 -0
  31. package/assets/Slider.B4kzL60S.css +1 -0
  32. package/assets/Stepper.BCpjMiOX.css +1 -0
  33. package/assets/SystemFeedback.DVMml_h9.css +1 -0
  34. package/assets/TextUtility.BThulfyl.css +1 -0
  35. package/assets/Textarea.BO4AcRJD.css +1 -0
  36. package/assets/Toast.ChXfv24m.css +1 -0
  37. package/assets/buttonround.syTU1QSI.css +1 -0
  38. package/assets/chipgroup.DtCnsmS7.css +1 -0
  39. package/assets/filelist.B-Ru0GP_.css +1 -0
  40. package/assets/input.Dy8VS73e.css +1 -0
  41. package/assets/link.EZrauC8s.css +1 -0
  42. package/assets/numberindicator.CtbitPQ8.css +1 -0
  43. package/assets/optioncheckbox.BwkbIDOt.css +1 -0
  44. package/assets/progressindicator.tyY_RVQ9.css +1 -0
  45. package/assets/radio.9hUUyg8R.css +1 -0
  46. package/assets/step.DOAmuuEQ.css +1 -0
  47. package/assets/switch.8v7Wp1Fj.css +1 -0
  48. package/assets/tabpane.DDaeSDQb.css +1 -0
  49. package/assets/text.BwGsYzGM.css +1 -0
  50. package/assets/tooltip.C_BL2kou.css +1 -0
  51. package/{banner.CwZXWMc_.js → banner.DO7GsDL_.js} +1 -1
  52. package/{breadcrumb.DMqAgUyk.js → breadcrumb.DYov6vtt.js} +3 -3
  53. package/{button.BDCfI_fj.js → button.qxcuzbnv.js} +4 -4
  54. package/buttonround.BO7_ewzA.js +101 -0
  55. package/checkbox.C9kyIY9P.js +11 -0
  56. package/{checkboxgroup.DDWYxYzk.js → checkboxgroup.kEUxnKLf.js} +2 -2
  57. package/chip.5ktNLRYf.js +12 -0
  58. package/chipgroup.kRU3Z98U.js +226 -0
  59. package/chunks/Accordion.gih2ni1d.js +179 -0
  60. package/chunks/ActionButton.B-wm5sUy.js +194 -0
  61. package/chunks/{ActionCard.DJSGkwVG.js → ActionCard.Bm-2ewfS.js} +38 -38
  62. package/chunks/ActionLink.D0KzqbH4.js +166 -0
  63. package/chunks/{AriaLiveRegions.utils.8ofDlHnN.js → AriaLiveRegions.utils.xoETe2Ps.js} +16 -18
  64. package/chunks/{Breadcrumb.BkP2B-Vm.js → Breadcrumb.I2G-T0zc.js} +14 -14
  65. package/chunks/Button.CCol--xy.js +165 -0
  66. package/chunks/Checkbox.BxOGR1bR.js +96 -0
  67. package/chunks/CheckboxGroup.TneO0tuE.js +85 -0
  68. package/chunks/Chip.DffaXMkV.js +148 -0
  69. package/chunks/{CustomReactSelect.yVERtd4R.js → CustomReactSelect.DTAavYaz.js} +250 -245
  70. package/chunks/Dialog.guuxflWL.js +101 -0
  71. package/chunks/Drawer.CjUZu6GW.js +106 -0
  72. package/chunks/Fieldset.BBMuLKps.js +94 -0
  73. package/chunks/Flag.CbQYBzVC.js +74 -0
  74. package/chunks/{Header.DyqOlV8L.js → Header.CvcGSuhX.js} +140 -140
  75. package/chunks/{Icon.B0WqYErA.js → Icon.DYtaQgbw.js} +1 -1
  76. package/chunks/{Input.utils.D78E4MGO.js → Input.utils.Wycy2SzG.js} +23 -25
  77. package/chunks/InputFile.y71Cd5J9.js +260 -0
  78. package/chunks/InputNumber.Fn2YbF_s.js +250 -0
  79. package/chunks/InputPassword.DtT9yrlx.js +129 -0
  80. package/chunks/InputSearch.BoAfGqoH.js +157 -0
  81. package/chunks/LinkButton.BxG7fx1O.js +150 -0
  82. package/chunks/LinkCard.DM-5WrSt.js +200 -0
  83. package/chunks/{MegaMenu.CiSiMlE3.js → MegaMenu.udXR1H3W.js} +2 -2
  84. package/chunks/NavigationTabList.thzA1pU8.js +68 -0
  85. package/chunks/{NavigationTabs.BqaUbfFC.js → NavigationTabs.BWewgBch.js} +1 -1
  86. package/chunks/Notification.C_o7Ge6Q.js +91 -0
  87. package/chunks/Pagination.BrOMUJMi.js +272 -0
  88. package/chunks/Popover.CxZZ_y1Z.js +230 -0
  89. package/chunks/RadioGroup.CO91_5hA.js +136 -0
  90. package/chunks/Select.EzoMdk1u.js +157 -0
  91. package/chunks/Slider.CX38t4Sk.js +330 -0
  92. package/chunks/{Stepper.Bqnak38-.js → Stepper.Ds_aIEF8.js} +72 -73
  93. package/chunks/SystemFeedback.DhWcYjnu.js +43 -0
  94. package/chunks/{Tabs.cMCZMPCy.js → Tabs.BHVlgp7L.js} +2 -2
  95. package/chunks/Text.utils.DzlY9pJS.js +9 -0
  96. package/chunks/TextUtility.BZLwqyic.js +82 -0
  97. package/chunks/Textarea.vuJgvW6_.js +192 -0
  98. package/chunks/Toast.V_ZUAsf2.js +76 -0
  99. package/chunks/floating-ui.react.Chmq0RmI.js +3014 -0
  100. package/chunks/translate.DSb-TdWR.js +2460 -0
  101. package/{combobox.CpX-Vlyd.js → combobox.C6cPz4AJ.js} +1 -1
  102. package/components/Accordion/Accordion.d.ts +5 -0
  103. package/components/ActionButton/ActionButton.d.ts +5 -1
  104. package/components/ActionLink/ActionLink.d.ts +1 -1
  105. package/components/Button/Button.utils.d.ts +1 -1
  106. package/components/Checkbox/Checkbox.d.ts +8 -1
  107. package/components/CheckboxGroup/CheckboxGroup.d.ts +9 -1
  108. package/components/ChipGroup/Chip.d.ts +2 -0
  109. package/components/ChipGroup/ChipGroup.d.ts +12 -2
  110. package/components/ChipGroup/ChipGroup.utils.d.ts +39 -15
  111. package/components/Combobox/Combobox.utils.d.ts +66 -9
  112. package/components/Combobox/CustomReactSelect/CustomReactSelect.d.ts +5 -1
  113. package/components/Combobox/CustomReactSelect/CustomReactSelect.utils.d.ts +1 -1
  114. package/components/Fieldset/Fieldset.d.ts +9 -2
  115. package/components/Flag/Flag.d.ts +3 -3
  116. package/components/Flag/Flag.utils.d.ts +7 -2
  117. package/components/Input/Input.d.ts +8 -1
  118. package/components/InputFile/FileList/FileList.d.ts +4 -2
  119. package/components/InputFile/FileList/FilePreview/FilePreview.d.ts +8 -2
  120. package/components/InputFile/FileList/ProgressIndicator/ProgressIndicator.d.ts +8 -2
  121. package/components/InputFile/InputFile.d.ts +12 -2
  122. package/components/InputFile/InputFile.utils.d.ts +41 -23
  123. package/components/InputNumber/InputNumber.d.ts +8 -1
  124. package/components/InputPassword/InputPassword.d.ts +8 -1
  125. package/components/InputSearch/InputSearch.d.ts +8 -1
  126. package/components/LinkCard/LinkCard.d.ts +10 -4
  127. package/components/LinkCard/LinkCard.utils.d.ts +2 -2
  128. package/components/NumberIndicator/NumberIndicator.d.ts +6 -1
  129. package/components/Pagination/Pagination.d.ts +10 -3
  130. package/components/Pagination/Pagination.utils.d.ts +22 -9
  131. package/components/Popover/Popover.d.ts +9 -1
  132. package/components/Popover/Popover.utils.d.ts +3 -2
  133. package/components/Radio/Radio.d.ts +5 -0
  134. package/components/RadioGroup/RadioGroup.d.ts +8 -0
  135. package/components/Select/Select.d.ts +8 -1
  136. package/components/Slider/Slider.d.ts +8 -1
  137. package/components/Stepper/Step.d.ts +1 -1
  138. package/components/Stepper/Step.utils.d.ts +1 -1
  139. package/components/Stepper/Stepper.d.ts +4 -1
  140. package/components/Stepper/Stepper.utils.d.ts +9 -4
  141. package/components/SystemFeedback/SystemFeedback.d.ts +9 -1
  142. package/components/Textarea/Textarea.d.ts +8 -1
  143. package/{customreactselect.B1FFXsJ8.js → customreactselect.L0zSh3Tg.js} +6 -6
  144. package/{dialog.ZQ-HnvZs.js → dialog.Ddq8o8Od.js} +2 -2
  145. package/{drawer.D0-RM0WZ.js → drawer.rbbjQvqL.js} +2 -2
  146. package/{fieldset.BzOeuWjO.js → fieldset.BHf3XK2q.js} +3 -3
  147. package/filelist.GrEwoM1u.js +143 -0
  148. package/filepreview.B2Ot9SZ7.js +97 -0
  149. package/flag.fX6LAgty.js +10 -0
  150. package/{floatingactionbutton.AVc4qY0u.js → floatingactionbutton.BwCiybnc.js} +3 -3
  151. package/{header.BtGgmM59.js → header.BCeCjYfG.js} +1 -1
  152. package/{icon.DrTLVrpN.js → icon.CRr1FGOu.js} +1 -1
  153. package/index.es.js +231 -230
  154. package/input.Dh0ws-9j.js +187 -0
  155. package/inputfile.DiZh3GcT.js +17 -0
  156. package/{inputnumber.r0iVYkjd.js → inputnumber.D2cmptaH.js} +8 -9
  157. package/{inputpassword.PXBZo3f0.js → inputpassword.C53Kg4EA.js} +4 -4
  158. package/inputsearch.BrsIDUSW.js +14 -0
  159. package/link.DEZDbUgq.js +81 -0
  160. package/{linkbutton.DVFXzn-A.js → linkbutton._X50W2Md.js} +3 -3
  161. package/{linkcard.BwSMt03V.js → linkcard.BtM3KnjT.js} +4 -4
  162. package/{logo.D7LnRA1E.js → logo.D6BTxbxv.js} +0 -1
  163. package/{megamenu.CUjk3_h2.js → megamenu.odVCUm4c.js} +3 -3
  164. package/navigationtablist.n9DrtYe5.js +10 -0
  165. package/{navigationtabs.DmcYShPs.js → navigationtabs.D0mSyAtK.js} +2 -2
  166. package/{notification.BVoapVVg.js → notification._X8-8vOa.js} +3 -3
  167. package/numberindicator.DsK65Bj3.js +39 -0
  168. package/optioncheckbox.tlMEoyT0.js +48 -0
  169. package/package.json +38 -33
  170. package/pagination.B7Hrx_sk.js +14 -0
  171. package/partials/index.js +91 -91
  172. package/{popover.OcE_5SfG.js → popover.BBaqL7y9.js} +4 -4
  173. package/progressindicator.D9CfVD95.js +74 -0
  174. package/radio.DjToa2aV.js +148 -0
  175. package/{radiogroup.N06_e0b8.js → radiogroup.mc-8lw65.js} +3 -3
  176. package/{scroller.CwTXbzb8.js → scroller.CgWp2WXG.js} +10 -11
  177. package/select.DTZ6a6Ag.js +13 -0
  178. package/{skeleton.DUkBgXxO.js → skeleton.CNJdNVav.js} +10 -10
  179. package/{skiptocontent.Bujq9t3i.js → skiptocontent.BsRpWvyu.js} +4 -4
  180. package/{slider.JAKEAwOB.js → slider.BMGAihY0.js} +3 -3
  181. package/{spinner.D1W-X96t.js → spinner.DtLnsqVV.js} +1 -1
  182. package/step.DCQ6CawJ.js +82 -0
  183. package/stepper.D7-7BdSv.js +15 -0
  184. package/styles/js/index.d.ts +1 -0
  185. package/styles/js/index.es.js +24 -4
  186. package/styles/js/lib/spacing-rem.d.ts +21 -0
  187. package/styles/js/lib/spacing.d.ts +0 -1
  188. package/styles/scss/ds/index.scss +4 -1
  189. package/styles/scss/ds/lib/border-width.scss +3 -0
  190. package/styles/scss/ds/lib/ds-internal/_input.scss +71 -26
  191. package/styles/scss/ds/lib/ds-internal/_link-button.scss +7 -4
  192. package/styles/scss/ds/lib/ds-internal/_link.scss +23 -3
  193. package/styles/scss/ds/lib/ds-internal/_text.scss +3 -1
  194. package/styles/scss/ds/lib/grid-narrow.scss +1 -0
  195. package/styles/scss/ds/lib/input.scss +12 -7
  196. package/styles/scss/ds/lib/link.scss +2 -2
  197. package/styles/scss/ds/lib/radius.scss +5 -0
  198. package/styles/scss/ds/lib/spacing-rem.scss +19 -0
  199. package/styles/scss/ds/lib/spacing.scss +0 -1
  200. package/switch.tM2XBag8.js +66 -0
  201. package/{systemfeedback.B8FBckG4.js → systemfeedback.BPPOht_9.js} +2 -2
  202. package/{tablist.D3n9E4KM.js → tablist.BAm0_UIG.js} +22 -23
  203. package/{tabpane.7vMXUKFX.js → tabpane.B9rZghU6.js} +1 -1
  204. package/{tabs.IVNsM5Gn.js → tabs.BgTdWbTe.js} +3 -3
  205. package/text.BEO_ZfJq.js +72 -0
  206. package/{textarea.gjb8VGgh.js → textarea.Cki-uMkZ.js} +5 -6
  207. package/{textutility.CNWCGYOy.js → textutility.BypzssPt.js} +2 -2
  208. package/{toast.DU8Sd_4c.js → toast.s0Hfuh5i.js} +3 -3
  209. package/{toastmanager.UlkvsO5p.js → toastmanager.CPIPn4Io.js} +22 -23
  210. package/{tooltip.C6HKano9.js → tooltip.BFQG-7VR.js} +22 -22
  211. package/{topbar.Z9NNkxKU.js → topbar.Bbct-XkB.js} +3 -3
  212. package/utils/translate.d.ts +22 -6
  213. package/actionbutton.D6qmbuAA.js +0 -12
  214. package/actionlink.fWwe7J0H.js +0 -12
  215. package/assets/Accordion.Cr1dbVTH.css +0 -1
  216. package/assets/ActionButton.BLOWs6IZ.css +0 -1
  217. package/assets/ActionCard.BG8w8xUC.css +0 -1
  218. package/assets/ActionLink.BJDUVdT7.css +0 -1
  219. package/assets/Breadcrumb.BavNNzAA.css +0 -1
  220. package/assets/Button.C-UYIggc.css +0 -1
  221. package/assets/Checkbox.ZAPIO2N8.css +0 -1
  222. package/assets/Chip.D3vV0wyV.css +0 -1
  223. package/assets/CustomReactSelect.Ctze4SRN.css +0 -1
  224. package/assets/Dialog.BKwWy1g2.css +0 -1
  225. package/assets/Drawer.BU-fi5Hk.css +0 -1
  226. package/assets/Fieldset.DCmr1Yir.css +0 -1
  227. package/assets/Header.BNYL2Y78.css +0 -1
  228. package/assets/InputFile.BUMCNCrj.css +0 -1
  229. package/assets/InputNumber.Bmz8cNKg.css +0 -1
  230. package/assets/InputPassword.CutbykTm.css +0 -1
  231. package/assets/InputSearch.Sr9jVpKt.css +0 -1
  232. package/assets/LinkButton.CxJvjEY5.css +0 -1
  233. package/assets/LinkCard.DkQoQJxx.css +0 -1
  234. package/assets/NavigationTabList.DYjNT2Di.css +0 -1
  235. package/assets/Notification.DBGpHzov.css +0 -1
  236. package/assets/Pagination.DZ1yCAMR.css +0 -1
  237. package/assets/Popover.mL5g23EK.css +0 -1
  238. package/assets/Select.BZYb_HAG.css +0 -1
  239. package/assets/Slider.vnSU0ya0.css +0 -1
  240. package/assets/Stepper.tXJl15yL.css +0 -1
  241. package/assets/SystemFeedback.PKzqnXUe.css +0 -1
  242. package/assets/TextUtility.CEBJaKBG.css +0 -1
  243. package/assets/Textarea.BIgA9_fl.css +0 -1
  244. package/assets/Toast.CGl8z6mX.css +0 -1
  245. package/assets/buttonround.CMrJRIeW.css +0 -1
  246. package/assets/chipgroup.BGxjdSDX.css +0 -1
  247. package/assets/filelist.CHVupL8T.css +0 -1
  248. package/assets/flag.CyCIPu_J.css +0 -1
  249. package/assets/input.BEOus9jX.css +0 -1
  250. package/assets/link.Dcsio57m.css +0 -1
  251. package/assets/numberindicator.BYIPwkAK.css +0 -1
  252. package/assets/optioncheckbox.6zYgifUk.css +0 -1
  253. package/assets/progressindicator.Cbbzo5-b.css +0 -1
  254. package/assets/radio.l9OTraQU.css +0 -1
  255. package/assets/step.Ch508u7I.css +0 -1
  256. package/assets/switch.DYamtd9O.css +0 -1
  257. package/assets/tabpane.o34hshTz.css +0 -1
  258. package/assets/text.BA1eUihR.css +0 -1
  259. package/assets/tooltip.BPcysHGE.css +0 -1
  260. package/buttonround.DZCu35Zw.js +0 -101
  261. package/checkbox.RYvu23i4.js +0 -12
  262. package/chip.CtZK5gH7.js +0 -12
  263. package/chipgroup.C-UJt9Nb.js +0 -213
  264. package/chunks/Accordion.Tz7cWkk5.js +0 -173
  265. package/chunks/ActionButton.Dqay6Dxt.js +0 -188
  266. package/chunks/ActionLink.BgWqWSKi.js +0 -161
  267. package/chunks/Button.Dauhc5op.js +0 -160
  268. package/chunks/Checkbox.C5Jgtwho.js +0 -88
  269. package/chunks/CheckboxGroup.Df_nLGBa.js +0 -79
  270. package/chunks/Chip.DXS_ZMGD.js +0 -157
  271. package/chunks/Dialog.mP1tZEbW.js +0 -102
  272. package/chunks/Drawer.D6IG0DRe.js +0 -107
  273. package/chunks/Fieldset.DxhNhprT.js +0 -91
  274. package/chunks/InputFile.BSGunqyW.js +0 -260
  275. package/chunks/InputNumber.BsBAdxWr.js +0 -240
  276. package/chunks/InputPassword.hZYiAKYC.js +0 -121
  277. package/chunks/InputSearch.Dp3x5RE4.js +0 -149
  278. package/chunks/LinkButton.DHcfHamd.js +0 -150
  279. package/chunks/LinkCard.DV-V9qHd.js +0 -197
  280. package/chunks/NavigationTabList.BIApwNzg.js +0 -68
  281. package/chunks/Notification.DeedcinQ.js +0 -91
  282. package/chunks/Pagination.DhD8i5AV.js +0 -247
  283. package/chunks/Popover.Cyf3CbLl.js +0 -221
  284. package/chunks/RadioGroup.D3omhLuC.js +0 -130
  285. package/chunks/Select.DOeJaqzM.js +0 -147
  286. package/chunks/Slider.d3gCkWL_.js +0 -309
  287. package/chunks/SystemFeedback.Dq3ZphgG.js +0 -38
  288. package/chunks/Text.utils.D_iOyOSH.js +0 -11
  289. package/chunks/TextUtility.Wbd4oQXI.js +0 -82
  290. package/chunks/Textarea.DhRMfiWu.js +0 -181
  291. package/chunks/Toast.KMEq0p-E.js +0 -76
  292. package/chunks/floating-ui.react.CP5A99-c.js +0 -2980
  293. package/chunks/translate.nuU7uChI.js +0 -8
  294. package/filelist.BaYCDtxD.js +0 -128
  295. package/filepreview.BCslhbM5.js +0 -94
  296. package/flag.DyZLEgAw.js +0 -50
  297. package/input.DNdSFW5k.js +0 -175
  298. package/inputfile.CTXJ_ZSi.js +0 -18
  299. package/inputsearch.JLM0fNPt.js +0 -15
  300. package/link.CArLlIsR.js +0 -81
  301. package/navigationtablist.BerRIzu-.js +0 -10
  302. package/numberindicator.ZGVRSmqf.js +0 -36
  303. package/optioncheckbox.BQo8riVL.js +0 -48
  304. package/pagination.Dm1WnFhY.js +0 -14
  305. package/progressindicator.1JRFwf-H.js +0 -53
  306. package/radio.DxdVKoxe.js +0 -137
  307. package/select.DVuQMz7l.js +0 -14
  308. package/step.CDNmsF4m.js +0 -82
  309. package/stepper.D0kSuiYh.js +0 -16
  310. package/switch.pN105F5-.js +0 -66
  311. package/text.D_e3JBvf.js +0 -72
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as z } from "react/jsx-runtime";
3
3
  import { d as G } from "./chunks/index.cKLI89Eg.js";
4
- import { v as H, c as J } from "./chunks/CustomReactSelect.yVERtd4R.js";
4
+ import { v as H, c as J } from "./chunks/CustomReactSelect.DTAavYaz.js";
5
5
  import { forwardRef as K } from "react";
6
6
  const Q = K((N, S) => {
7
7
  const t = G.c(38);
@@ -1,4 +1,5 @@
1
1
  import { DetailsHTMLAttributes, ToggleEventHandler } from 'react';
2
+ import { Theme } from '../../types';
2
3
  import { AccordionSize, ChevronPosition, Summary } from './Accordion.utils';
3
4
  export interface AccordionProps extends DetailsHTMLAttributes<HTMLDetailsElement> {
4
5
  /** Content to be displayed within the accordion. */
@@ -36,6 +37,10 @@ export interface AccordionProps extends DetailsHTMLAttributes<HTMLDetailsElement
36
37
  * @default 'medium'
37
38
  */
38
39
  size?: AccordionSize;
40
+ /** Defines the theme.
41
+ * @default 'light'
42
+ */
43
+ theme?: Theme;
39
44
  /**
40
45
  * Event handler for the `toggle` event, which is fired when the open state of the accordion changes.
41
46
  * This can be used to synchronize the internal state of the `DSAccordion` with external state management or to perform side effects when the accordion is toggled.
@@ -1,5 +1,5 @@
1
1
  import { ButtonHTMLAttributes } from 'react';
2
- import { IconName, SelectedAriaAttributes } from '../../types';
2
+ import { IconName, SelectedAriaAttributes, Theme } from '../../types';
3
3
  import { IconProps } from '../Icon/Icon';
4
4
  import { ActionButtonAriaAttribute, ActionButtonChevronDirection, ActionButtonIconPosition, ActionButtonIconSize, ActionButtonIndentLevel, ActionButtonWeight } from './ActionButton.utils';
5
5
  export interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
@@ -48,6 +48,10 @@ export interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElemen
48
48
  * @default false
49
49
  */
50
50
  stretched?: boolean;
51
+ /** Defines the theme.
52
+ * @default 'light'
53
+ */
54
+ theme?: Theme;
51
55
  /** Defines the weight. **Only available with `iconPosition='left'`**.
52
56
  * @default 'normal'
53
57
  */
@@ -1,6 +1,6 @@
1
1
  import { CommonLinkProps } from '../LinkButton/LinkButton';
2
2
  import { ActionLinkIconPosition, ActionLinkIconSize, ActionLinkIndentLevel, ActionLinkWeight } from './ActionLink.utils';
3
- export interface ActionLinkProps extends Omit<CommonLinkProps, 'iconPosition' | 'theme'> {
3
+ export interface ActionLinkProps extends Omit<CommonLinkProps, 'iconPosition'> {
4
4
  /** Content within the link. */
5
5
  children: React.ReactNode;
6
6
  /** The position of the icon. `iconPosition='top'` requires either an `iconName` or `iconSource` to be set.
@@ -1,7 +1,7 @@
1
1
  import { ButtonProps } from './Button';
2
2
  export declare const BUTTON_SIZE: readonly ["medium", "small"];
3
3
  export type ButtonSize = (typeof BUTTON_SIZE)[number];
4
- export declare const BUTTON_VARIANT: readonly ["highlight", "filled", "outline", "ghost", "navigation"];
4
+ export declare const BUTTON_VARIANT: readonly ["highlight", "filled", "outline", "ghost", "utility", "navigation"];
5
5
  export type ButtonVariant = (typeof BUTTON_VARIANT)[number];
6
6
  export type ButtonIconPosition = 'left' | 'right';
7
7
  export type ButtonAriaAttribute = 'aria-label' | 'aria-expanded' | 'aria-pressed' | 'aria-haspopup';
@@ -1,5 +1,5 @@
1
1
  import { InputHTMLAttributes } from 'react';
2
- import { BreakpointCustomizable } from '../../types';
2
+ import { BreakpointCustomizable, Theme } from '../../types';
3
3
  export interface CheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
4
4
  /** Content displayed next to the checkbox. */
5
5
  label: string;
@@ -35,6 +35,13 @@ export interface CheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
35
35
  /** Callback function called when the state of the checkbox changes. */
36
36
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
37
37
  }
38
+ /** @internal Props including theme — not exported to consumers. */
39
+ export interface CheckboxPropsWithTheme extends CheckboxProps {
40
+ /** Defines the theme.
41
+ * @default 'light'
42
+ */
43
+ theme?: Theme;
44
+ }
38
45
  /**
39
46
  * A control element that allows users to make a binary choice. It can either be checked or unchecked.
40
47
  *
@@ -1,4 +1,5 @@
1
1
  import { FieldsetHTMLAttributes, JSX } from 'react';
2
+ import { Theme } from '../../types/common-types';
2
3
  import { FieldsetProps } from '../Fieldset/Fieldset';
3
4
  export interface CheckboxGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
4
5
  /** DSCheckbox elements within the checkbox group. */
@@ -57,6 +58,13 @@ export interface CheckboxGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetE
57
58
  /** Defines a system feedback message, shown when `invalid={true}`. */
58
59
  systemFeedback?: string;
59
60
  }
61
+ /** @internal Props including theme — not exported to consumers. */
62
+ export interface CheckboxGroupPropsWithTheme extends CheckboxGroupProps {
63
+ /** Defines the theme. When using `theme="dark"`, the `theme` prop must also be set on each `DSCheckbox` child.
64
+ * @default 'light'
65
+ */
66
+ theme?: Theme;
67
+ }
60
68
  /**
61
69
  * The `DSCheckboxGroup` component offers a cohesive and accessible solution for grouping `DSCheckbox` elements,
62
70
  * complete with customizable legends, direction options, and integrated validation feedback,
@@ -64,4 +72,4 @@ export interface CheckboxGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetE
64
72
  *
65
73
  * Design in Figma: [Checkbox Group](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=5626-11362&t=UBsmFURFENnuYSW1-4)
66
74
  * */
67
- export declare const DSCheckboxGroup: ({ children, legend, className, description, direction, disabled, hideLegend, id, invalid, popoverContent, popoverInfoButtonProps, required, systemFeedback, ...rest }: CheckboxGroupProps) => JSX.Element;
75
+ export declare const DSCheckboxGroup: (props: CheckboxGroupProps) => JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { HTMLAttributes } from 'react';
2
+ import { Theme } from '../../types';
2
3
  import { Chip, ChipGroupAriaTranslations, ChipGroupLanguage, ChipGroupSelectionMode, ChipGroupSize } from './ChipGroup.utils';
3
4
  interface ChipProps extends Omit<Chip, 'onClick'>, Omit<HTMLAttributes<HTMLDivElement>, 'id'> {
4
5
  disableTooltips?: boolean;
@@ -7,6 +8,7 @@ interface ChipProps extends Omit<Chip, 'onClick'>, Omit<HTMLAttributes<HTMLDivEl
7
8
  lang?: ChipGroupLanguage;
8
9
  selectionMode: ChipGroupSelectionMode;
9
10
  size?: ChipGroupSize;
11
+ theme?: Theme;
10
12
  translations?: ChipGroupAriaTranslations;
11
13
  }
12
14
  export declare const DSChip: import('react').ForwardRefExoticComponent<ChipProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,5 +1,5 @@
1
1
  import { HTMLAttributes } from 'react';
2
- import { BreakpointCustomizable } from '../../types';
2
+ import { BreakpointCustomizable, Theme } from '../../types';
3
3
  import { Chip, ChipGroupAriaTranslations, ChipGroupLanguage, ChipGroupSelectionMode, ChipGroupSize } from './ChipGroup.utils';
4
4
  export interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {
5
5
  /** An array of Chip Objects containing the id and label and other optional parameters.
@@ -28,7 +28,10 @@ export interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {
28
28
  * @default false
29
29
  */
30
30
  isRemovable?: boolean;
31
- /** Sets language to use for the screen reader messages, if no translations object is provided.
31
+ /** Sets language for screen reader messages and ICU plural rule resolution.
32
+ * Use `'de'` or `'en'` for preconfigured translations, or any
33
+ * [BCP 47 language tag](https://www.rfc-editor.org/info/bcp47) (e.g. `'fr'`, `'pl'`, `'en-GB'`)
34
+ * when providing a custom `translations` object.
32
35
  * @default 'en'
33
36
  */
34
37
  lang?: ChipGroupLanguage;
@@ -45,6 +48,13 @@ export interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {
45
48
  /** Callback function called when the selection of the DSChipGroup changes. */
46
49
  onChipsChange?: (chips: Chip[]) => void;
47
50
  }
51
+ /** @internal Props including theme — not exported to consumers. */
52
+ export interface ChipGroupPropsWithTheme extends ChipGroupProps {
53
+ /** Defines the theme.
54
+ * @default 'light'
55
+ */
56
+ theme?: Theme;
57
+ }
48
58
  /**
49
59
  * A component for selecting single or multiple chips, with options for selection (like radio buttons) or removal.
50
60
  * Supports different sizes. Use icons sparingly to reduce cognitive load.
@@ -1,4 +1,5 @@
1
1
  import { IconName } from '../../types';
2
+ import { DSLanguage } from '../../utils';
2
3
  import { ChipGroupProps } from './ChipGroup';
3
4
  type ValidationProps = Pick<ChipGroupProps, 'chips' | 'id' | 'label'>;
4
5
  export declare const validateChipGroupProps: ({ chips, id, label, }: ValidationProps) => void;
@@ -21,37 +22,60 @@ export interface Chip {
21
22
  export declare const CHIP_GROUP_SIZE: readonly ["medium", "small"];
22
23
  export type ChipGroupSize = (typeof CHIP_GROUP_SIZE)[number];
23
24
  export type ChipGroupSelectionMode = 'single' | 'multiple';
24
- export type ChipGroupLanguage = 'de' | 'en';
25
- export type ChipGroupAriaTranslations = typeof DS_CHIP_GROUP_TRANSLATIONS_EN;
26
- export declare const DS_CHIP_GROUP_TRANSLATIONS_EN: {
25
+ export type ChipGroupLanguage = DSLanguage;
26
+ export type ChipGroupAriaTranslations = {
27
+ /** Word "disabled" used in state announcements. */
27
28
  disabled: string;
29
+ /** Word "selected" used in state announcements. */
28
30
  selected: string;
31
+ /** Word "not selected" used in state announcements. */
29
32
  notSelected: string;
33
+ /** Word "removed" used in state announcements. */
30
34
  removed: string;
31
- remaining: string;
35
+ /**
36
+ * Guidance for selecting/unselecting a chip via keyboard.
37
+ *
38
+ * Placeholder: `{action}` = the action label (e.g. selectAction/unselectAction).
39
+ */
32
40
  selectChip: string;
41
+ /** Action label for unselecting a chip. */
33
42
  unselectAction: string;
43
+ /** Action label for selecting a chip. */
34
44
  selectAction: string;
45
+ /** Guidance for adding an option to the selection. */
35
46
  addToSelection: string;
47
+ /** Guidance for removing an option from the selection. */
36
48
  removeFromSelection: string;
49
+ /** Guidance for removing the currently focused value. */
37
50
  removeChip: string;
51
+ /** Tooltip text for a disabled chip. */
38
52
  tooltipDisabled: string;
53
+ /** Tooltip text for a removable chip. */
39
54
  tooltipRemovable: string;
55
+ /** Tooltip text for deactivating a property. */
40
56
  tooltipDeactivate: string;
57
+ /** Tooltip text for activating a property. */
41
58
  tooltipActivate: string;
42
- item_one: string;
43
- item_other: string;
59
+ /**
60
+ * Announced when items are selected.
61
+ * ICU plural: resolves correct plural form based on CLDR rules for the locale.
62
+ * Results in messages like "3 items selected" or "1 item selected".
63
+ *
64
+ * Placeholder: `{count}` = number of selected items.
65
+ */
44
66
  countSelected: string;
67
+ /**
68
+ * Announced when items remain.
69
+ * ICU plural: resolves correct plural form based on CLDR rules for the locale.
70
+ * Results in messages like "3 items remaining" or "1 item remaining".
71
+ *
72
+ * Placeholder: `{count}` = number of remaining items.
73
+ */
45
74
  countRemaining: string;
46
75
  };
76
+ export declare const DS_CHIP_GROUP_TRANSLATIONS_EN: ChipGroupAriaTranslations;
47
77
  export declare const DS_CHIP_GROUP_TRANSLATIONS_DE: ChipGroupAriaTranslations;
48
- export declare const DS_CHIP_GROUP_TRANSLATIONS: Record<ChipGroupLanguage, ChipGroupAriaTranslations>;
49
- export declare const getChipAriaLabel: (t: (key: keyof ChipGroupAriaTranslations, replacements?: string[]) => string, label: string, disabled: boolean | undefined, isSelected: boolean | undefined, selectionMode: ChipGroupSelectionMode, isRemovable: boolean | undefined) => string;
50
- export declare const getChipTooltip: (t: (key: keyof ChipGroupAriaTranslations, replacements?: string[]) => string, disabled: boolean | undefined, isSelected: boolean | undefined, isRemovable: boolean | undefined) => string;
51
- /**
52
- * Helper to get the correct plural form for item count.
53
- * @param count - The number of items
54
- * @returns The appropriate plural form (item_one or item_other)
55
- */
56
- export declare const getItemPlural: (t: (key: keyof ChipGroupAriaTranslations, replacements?: string[]) => string, count: number) => string;
78
+ export declare const DS_CHIP_GROUP_TRANSLATIONS: Record<string, ChipGroupAriaTranslations>;
79
+ export declare const getChipAriaLabel: (t: (key: keyof ChipGroupAriaTranslations, values?: Record<string, string | number>) => string, label: string, disabled: boolean | undefined, isSelected: boolean | undefined, selectionMode: ChipGroupSelectionMode, isRemovable: boolean | undefined) => string;
80
+ export declare const getChipTooltip: (t: (key: keyof ChipGroupAriaTranslations, values?: Record<string, string | number>) => string, disabled: boolean | undefined, isSelected: boolean | undefined, isRemovable: boolean | undefined) => string;
57
81
  export {};
@@ -1,4 +1,5 @@
1
1
  import { IconName } from '../../types';
2
+ import { DSLanguage } from '../../utils';
2
3
  import { ComboboxProps } from './Combobox';
3
4
  import { FilterOptionOption, GroupBase, OptionsOrGroups } from 'react-select';
4
5
  export type ComboboxVariant = 'single' | 'multi';
@@ -31,35 +32,91 @@ export interface ComboboxOption {
31
32
  }
32
33
  export type ComboboxOptionsGroup = GroupBase<ComboboxOption>;
33
34
  export type ComboboxOptionsOrOptGroups = OptionsOrGroups<ComboboxOption, ComboboxOptionsGroup>;
34
- export type ComboboxLanguage = 'de' | 'en';
35
- export type ComboboxAriaTranslations = typeof DS_COMBOBOX_TRANSLATIONS_EN;
36
- export declare const DS_COMBOBOX_TRANSLATIONS_EN: {
35
+ export type ComboboxLanguage = DSLanguage;
36
+ export type ComboboxAriaTranslations = {
37
+ /** Placeholder text shown when no option is selected. */
37
38
  placeholder: string;
39
+ /** Guidance for keyboard navigation through options. */
38
40
  navigationGuidance: string;
41
+ /** Guidance for selecting the currently focused option. */
39
42
  selectGuidance: string;
43
+ /** Guidance for exiting the menu. */
40
44
  exitGuidance: string;
45
+ /** Guidance for using Tab to select and exit. */
41
46
  tabGuidance: string;
42
- searchGuidance: string;
47
+ /**
48
+ * Guidance announced when the input is focused.
49
+ * Uses ICU select to conditionally include search guidance.
50
+ *
51
+ * Placeholders: `{label}` = combobox label, `{isSearchable}` = ICU select (true/false).
52
+ */
43
53
  inputGuidance: string;
54
+ /**
55
+ * Announced when a disabled option is focused.
56
+ *
57
+ * Placeholder: `{label}` = the label of the disabled option.
58
+ */
44
59
  selectOptionDisabled: string;
60
+ /**
61
+ * Announced when a value is focused.
62
+ *
63
+ * Placeholder: `{label}` = the label of the focused option.
64
+ */
45
65
  focusValue: string;
66
+ /** Word "of" used in position announcements (e.g. "1 of 2 options"). */
46
67
  of: string;
68
+ /** Word "disabled" used in state announcements. */
47
69
  disabled: string;
70
+ /** Word "selected" used in state announcements. */
48
71
  selected: string;
72
+ /** Word "deselected" used in state announcements. */
49
73
  deselected: string;
74
+ /** Guidance for focusing selected values in multi-select mode. */
50
75
  focusSelectedMultiGuidance: string;
76
+ /** Guidance for navigating between focused values. */
51
77
  valueGuidance: string;
78
+ /** Guidance for removing the currently focused value. */
52
79
  deleteGuidance: string;
80
+ /** Announced when all selected options have been cleared. */
53
81
  clearAllOptions: string;
82
+ /**
83
+ * Hint appended to filter results.
84
+ *
85
+ * Placeholder: `{inputValue}` = the current search term.
86
+ */
54
87
  filterTermHint: string;
88
+ /** Announced when no options match the filter. */
55
89
  filterNoOptions: string;
56
- option_one: string;
57
- option_other: string;
58
- result_one: string;
59
- result_other: string;
90
+ /**
91
+ * Announced when filter results are available.
92
+ * ICU plural: resolves correct plural form based on CLDR rules for the locale.
93
+ *
94
+ * Placeholder: `{count}` = number of results.
95
+ */
60
96
  resultsAvailable: string;
97
+ /**
98
+ * Announced when a single option is selected (used in onChange/onFocus messages).
99
+ *
100
+ * Placeholder: `{label}` = the selected option's label.
101
+ */
102
+ optionSelected: string;
103
+ /**
104
+ * Announced when multiple options are selected (used in onChange/onFocus messages).
105
+ * ICU plural.
106
+ *
107
+ * Placeholders: `{count}` = number of options, `{labels}` = comma-separated labels.
108
+ */
109
+ optionsSelected: string;
110
+ /**
111
+ * Announced to indicate the position of the focused option.
112
+ *
113
+ * Placeholders: `{index}` = current position, `{total}` = total options.
114
+ */
115
+ optionPosition: string;
116
+ /** Label for the popover toggle button. */
61
117
  togglePopover: string;
62
118
  };
119
+ export declare const DS_COMBOBOX_TRANSLATIONS_EN: ComboboxAriaTranslations;
63
120
  export declare const DS_COMBOBOX_TRANSLATIONS_DE: ComboboxAriaTranslations;
64
- export declare const DS_COMBOBOX_TRANSLATIONS: Record<ComboboxLanguage, ComboboxAriaTranslations>;
121
+ export declare const DS_COMBOBOX_TRANSLATIONS: Record<string, ComboboxAriaTranslations>;
65
122
  export {};
@@ -40,7 +40,11 @@ export interface CustomReactSelectProps<IsMulti extends boolean> extends PickedR
40
40
  * @default false
41
41
  */
42
42
  isMulti: boolean;
43
- /** Sets language to use for the screen reader messages and "No options found" message, if no translations object is provided.
43
+ /** Sets language for screen reader messages, the "No options found" message,
44
+ * and ICU plural rule resolution.
45
+ * Use `'de'` or `'en'` for preconfigured translations, or any
46
+ * [BCP 47 language tag](https://www.rfc-editor.org/info/bcp47) (e.g. `'fr'`, `'pl'`, `'en-GB'`)
47
+ * when providing a custom `translations` object.
44
48
  * @default 'en'
45
49
  */
46
50
  lang?: ComboboxLanguage;
@@ -1,3 +1,3 @@
1
1
  import { AriaLiveMessages, GroupBase } from 'react-select';
2
2
  import { ComboboxAriaTranslations } from '../Combobox.utils';
3
- export declare const defaultAriaLiveMessages: (translations: ComboboxAriaTranslations) => AriaLiveMessages<unknown, boolean, GroupBase<unknown>>;
3
+ export declare const defaultAriaLiveMessages: (translations: ComboboxAriaTranslations, locale: string) => AriaLiveMessages<unknown, boolean, GroupBase<unknown>>;
@@ -1,5 +1,5 @@
1
1
  import { FieldsetHTMLAttributes, JSX } from 'react';
2
- import { BreakpointCustomizable } from '../../types';
2
+ import { BreakpointCustomizable, Theme } from '../../types';
3
3
  import { Legend } from './Fieldset.utils';
4
4
  export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
5
5
  /** Child elements within the fieldset. */
@@ -53,9 +53,16 @@ export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElemen
53
53
  /** Defines a system feedback message, shown when `invalid={true}`. */
54
54
  systemFeedback?: string;
55
55
  }
56
+ /** @internal Props including theme — not exported to consumers. */
57
+ export interface FieldsetPropsWithTheme extends FieldsetProps {
58
+ /** Defines the theme. When using `theme="dark"`, the `theme` prop must also be set on each child component that supports it.
59
+ * @default 'light'
60
+ */
61
+ theme?: Theme;
62
+ }
56
63
  /**
57
64
  * The `DSFieldset` component is a versatile and accessible way to group related elements and labels in your forms.
58
65
  *
59
66
  * Design in Figma: [Fieldset](https://www.figma.com/design/Ie2r0R9QwjEc7O3nrFbXhV/Web-Pattern-Library?node-id=8-154)
60
67
  * */
61
- export declare const DSFieldset: ({ children, legend, className, description, disabled, hideLegend, id, invalid, popoverContent, popoverInfoButtonProps, required, systemFeedback, ...rest }: FieldsetProps) => JSX.Element;
68
+ export declare const DSFieldset: (props: FieldsetProps) => JSX.Element;
@@ -8,11 +8,11 @@ export interface FlagProps extends React.HTMLAttributes<HTMLSpanElement> {
8
8
  /**
9
9
  * Background color of the Flag. It can either be a predefined color token (recommended) or a custom color value (e.g. #F37A1F).
10
10
  *
11
- * Possible predefined values: `grey-light` `yellow-light` `red-light` `green-light` `orange-base`
11
+ * Possible predefined values: `status-info` `status-warning` `status-negative` `status-positive` `promo-highlight` `promo-neutral`
12
12
  *
13
- * @default 'grey-light'
13
+ * @default 'status-info'
14
14
  */
15
- color: FlagColor;
15
+ color?: FlagColor;
16
16
  /** Name of the icon to display. */
17
17
  iconName?: IconName;
18
18
  /** URL or path for a custom icon. */
@@ -1,2 +1,7 @@
1
- export declare const FLAG_COLOR: readonly ["grey-light", "yellow-light", "red-light", "green-light", "orange-base"];
2
- export type FlagColor = (typeof FLAG_COLOR)[number] | (string & Record<never, never>);
1
+ export declare const FLAG_COLOR: readonly ["status-info", "status-warning", "status-negative", "status-positive", "promo-highlight", "promo-neutral"];
2
+ /** @deprecated Use the new color names instead. These will be removed in the next stable release. */
3
+ export declare const DEPRECATED_FLAG_COLOR: readonly ["grey-light", "yellow-light", "red-light", "green-light", "orange-base"];
4
+ /** Maps deprecated color names to their new equivalents. */
5
+ export declare const DEPRECATED_FLAG_COLOR_MAP: Record<(typeof DEPRECATED_FLAG_COLOR)[number], (typeof FLAG_COLOR)[number]>;
6
+ export type DeprecatedFlagColor = (typeof DEPRECATED_FLAG_COLOR)[number];
7
+ export type FlagColor = (typeof FLAG_COLOR)[number] | DeprecatedFlagColor | (string & Record<never, never>);
@@ -1,5 +1,5 @@
1
1
  import { InputHTMLAttributes } from 'react';
2
- import { BreakpointCustomizable, IconName, SelectedAriaAttributes } from '../../types';
2
+ import { BreakpointCustomizable, IconName, SelectedAriaAttributes, Theme } from '../../types';
3
3
  import { IconProps } from '../Icon/Icon';
4
4
  import { InputAriaAttribute, InputSize, SupportedInputTypes } from './Input.utils';
5
5
  export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
@@ -91,6 +91,13 @@ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
91
91
  */
92
92
  type?: SupportedInputTypes;
93
93
  }
94
+ /** @internal Props including theme — not exported to consumers. */
95
+ export interface InputPropsWithTheme extends InputProps {
96
+ /** Defines the theme.
97
+ * @default 'light'
98
+ */
99
+ theme?: Theme;
100
+ }
94
101
  /**
95
102
  * The `<DSInput />` component is a versatile input field that allows users to enter and edit text.
96
103
  * It comes in two sizes (medium & small) and supports various customizations including an action button,
@@ -1,4 +1,5 @@
1
1
  import { JSX } from 'react';
2
+ import { Theme } from '../../../utils/theme';
2
3
  import { FileWithUploadMeta } from '../InputFile';
3
4
  import { InputFileTranslations } from '../InputFile.utils';
4
5
  import { ProgressIndicatorVariant } from './ProgressIndicator/ProgressIndicator';
@@ -8,7 +9,8 @@ export interface FileListProps {
8
9
  */
9
10
  files: FileWithUploadMeta[];
10
11
  onRemoveFile: (index: number) => void;
11
- t: (key: keyof InputFileTranslations, replacements?: string[]) => string;
12
+ t: (key: keyof InputFileTranslations, values?: Record<string, string | number>) => string;
12
13
  showProgress?: ProgressIndicatorVariant;
14
+ theme?: Theme;
13
15
  }
14
- export declare const FileList: ({ files, onRemoveFile, t, showProgress, }: FileListProps) => JSX.Element;
16
+ export declare const FileList: ({ files, onRemoveFile, t, showProgress, theme, }: FileListProps) => JSX.Element;
@@ -1,15 +1,21 @@
1
1
  import { JSX } from 'react';
2
+ import { Theme } from '../../../../utils/theme';
2
3
  import { InputFileTranslations } from '../../InputFile.utils';
3
4
  export interface FilePreviewProps {
4
5
  /**
5
6
  * The file object to preview. Used to determine file type and generate preview.
6
7
  */
7
8
  file: File;
8
- t: (key: keyof InputFileTranslations, replacements?: string[]) => string;
9
+ /**
10
+ * Defines the theme.
11
+ * @default 'light'
12
+ */
13
+ theme?: Theme;
14
+ t: (key: keyof InputFileTranslations, values?: Record<string, string | number>) => string;
9
15
  }
10
16
  /**
11
17
  * Renders a preview for a file based on its type and extension.
12
18
  * For displayable images, shows an actual image preview with error fallback.
13
19
  * For other file types, shows an appropriate icon.
14
20
  */
15
- export declare const FilePreview: ({ file, t }: FilePreviewProps) => JSX.Element;
21
+ export declare const FilePreview: ({ file, theme, t, }: FilePreviewProps) => JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { JSX } from 'react';
2
+ import { Theme } from '../../../../utils/theme';
2
3
  import { InputFileTranslations } from '../../InputFile.utils';
3
4
  export type ProgressIndicatorStatus = 'uploading' | 'error';
4
5
  export type ProgressIndicatorVariant = 'bar' | 'text';
@@ -19,7 +20,12 @@ export interface ProgressIndicatorProps extends React.HTMLAttributes<HTMLDivElem
19
20
  * Variant of the progress indicator to display: 'bar' or 'text'
20
21
  */
21
22
  variant: ProgressIndicatorVariant;
22
- t: (key: keyof InputFileTranslations, replacements?: string[]) => string;
23
+ /**
24
+ * Defines the theme.
25
+ * @default 'light'
26
+ */
27
+ theme?: Theme;
28
+ t: (key: keyof InputFileTranslations, values?: Record<string, string | number>) => string;
23
29
  }
24
30
  /**
25
31
  * Accessible progress indicator for file uploads.
@@ -31,4 +37,4 @@ export interface ProgressIndicatorProps extends React.HTMLAttributes<HTMLDivElem
31
37
  * - `aria-valuenow` reflects the provided percent value.
32
38
  * - Visual percentage text remains for sighted users; screen readers rely on `aria-label` and `aria-valuenow`.
33
39
  */
34
- export declare const ProgressIndicator: ({ className, fileName, id, percent, progressStatus, variant, t, }: ProgressIndicatorProps) => JSX.Element | null;
40
+ export declare const ProgressIndicator: ({ className, fileName, id, percent, progressStatus, variant, theme, t, }: ProgressIndicatorProps) => JSX.Element | null;
@@ -1,5 +1,5 @@
1
1
  import { InputHTMLAttributes } from 'react';
2
- import { BreakpointCustomizable } from '../../types';
2
+ import { BreakpointCustomizable, Theme } from '../../types';
3
3
  import { ButtonVariant } from '../Button/Button.utils';
4
4
  import { ProgressIndicatorVariant } from './FileList/ProgressIndicator/ProgressIndicator';
5
5
  import { InputFileLanguage, InputFileTranslations } from './InputFile.utils';
@@ -55,7 +55,10 @@ export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
55
55
  * @default {base: true, m: false}
56
56
  */
57
57
  isHintOutsideDropzone?: BreakpointCustomizable<boolean>;
58
- /** Sets language to use for messages, if no translations object is provided.
58
+ /** Sets language for messages and ICU plural rule resolution.
59
+ * Use `'de'` or `'en'` for preconfigured translations, or any
60
+ * [BCP 47 language tag](https://www.rfc-editor.org/info/bcp47) (e.g. `'fr'`, `'pl'`, `'en-GB'`)
61
+ * when providing a custom `translations` object.
59
62
  * @default 'en'
60
63
  */
61
64
  lang?: InputFileLanguage;
@@ -99,6 +102,13 @@ export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
99
102
  /** Callback function invoked when files are selected. */
100
103
  onFilesSelect?: (files: FileWithUploadMeta[]) => void;
101
104
  }
105
+ /** @internal Props including theme — not exported to consumers. */
106
+ export interface InputFilePropsWithTheme extends InputFileProps {
107
+ /** Defines the theme.
108
+ * @default 'light'
109
+ */
110
+ theme?: Theme;
111
+ }
102
112
  export type FileUploadStatus = 'uploading' | 'error' | 'success';
103
113
  export interface FileWithUploadMeta extends File {
104
114
  /** System feedback shown to the user. */
@@ -1,43 +1,61 @@
1
+ import { DSLanguage } from '../../utils';
1
2
  import { InputFileProps } from './InputFile';
2
- export type InputFileLanguage = 'de' | 'en';
3
- export type InputFileTranslations = typeof DS_INPUT_FILE_TRANSLATIONS_EN;
4
- export declare const DS_INPUT_FILE_TRANSLATIONS_EN: {
3
+ export type InputFileLanguage = DSLanguage;
4
+ export type InputFileTranslations = {
5
+ /** Instructions for the drag-and-drop area. */
5
6
  dragAndDropInstructions: string;
7
+ /** Feedback message when file exceeds maximum size. */
6
8
  feedbackFileSize: string;
9
+ /** Feedback message when file type is not allowed. */
7
10
  feedbackFileType: string;
11
+ /**
12
+ * Label for the button to remove a file from selected files.
13
+ *
14
+ * Placeholder: `{fileName}` = the name of the file.
15
+ */
8
16
  fileListRemoveSelectionButtonLabel: string;
17
+ /**
18
+ * Label for the button to cancel an ongoing upload.
19
+ *
20
+ * Placeholder: `{fileName}` = the name of the file.
21
+ */
9
22
  fileListCancelUploadButtonLabel: string;
23
+ /**
24
+ * Label for the button to delete a file.
25
+ *
26
+ * Placeholder: `{fileName}` = the name of the file.
27
+ */
10
28
  fileListDeleteFileButtonLabel: string;
29
+ /**
30
+ * Announced when a file upload is in an indeterminate state.
31
+ *
32
+ * Placeholder: `{fileName}` = the name of the file.
33
+ */
11
34
  fileListIndeterminate: string;
35
+ /**
36
+ * Alt text for a file preview image.
37
+ *
38
+ * Placeholder: `{fileName}` = the name of the file.
39
+ */
12
40
  fileListPreviewAltText: string;
41
+ /** Hint text announced when files are selected. */
13
42
  filesSelectedHint: string;
43
+ /** Word "required" used in form field announcements. */
14
44
  required: string;
45
+ /** Label for the upload status section. */
15
46
  uploadStatus: string;
47
+ /** Text shown while a file is uploading. */
16
48
  uploading: string;
49
+ /** Text shown when upload is complete. */
17
50
  success: string;
51
+ /** Text for the retry upload action. */
18
52
  retry: string;
53
+ /** Label for the popover toggle button. */
19
54
  togglePopover: string;
20
55
  };
21
- export declare const DS_INPUT_FILE_TRANSLATIONS_DE: {
22
- dragAndDropInstructions: string;
23
- feedbackFileSize: string;
24
- feedbackFileType: string;
25
- fileListRemoveSelectionButtonLabel: string;
26
- fileListCancelUploadButtonLabel: string;
27
- fileListDeleteFileButtonLabel: string;
28
- fileListIndeterminate: string;
29
- fileListPreviewAltText: string;
30
- filesSelectedHint: string;
31
- required: string;
32
- uploadStatus: string;
33
- uploading: string;
34
- success: string;
35
- retry: string;
36
- togglePopover: string;
37
- };
38
- export declare const DS_INPUT_FILE_TRANSLATIONS: {
39
- [key in InputFileLanguage]: InputFileTranslations;
40
- };
56
+ export declare const DS_INPUT_FILE_TRANSLATIONS_EN: InputFileTranslations;
57
+ export declare const DS_INPUT_FILE_TRANSLATIONS_DE: InputFileTranslations;
58
+ export declare const DS_INPUT_FILE_TRANSLATIONS: Record<string, InputFileTranslations>;
41
59
  /**
42
60
  * @param file the File you just got from input.files[0]
43
61
  * @param acceptAttr the literal string from your <input accept="…">