@stihl-design-system/components 1.0.0-RC.47 → 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 (261) hide show
  1. package/{accordion.BQ7vavIt.js → accordion.D4XR2R7e.js} +2 -2
  2. package/{actionbutton.C7lqEmBx.js → actionbutton.C8hePX-D.js} +3 -3
  3. package/{actioncard.dgVHW0BC.js → actioncard.kDxu01xm.js} +1 -1
  4. package/{actionlink.CL6v1mQA.js → actionlink.dccc5JQV.js} +3 -3
  5. package/{arialiveregions.DC1Gq9Lo.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/Button.Bi1KUKMv.css +1 -0
  11. package/assets/Checkbox.C6RWhy0V.css +1 -0
  12. package/assets/Chip.DfamkUPw.css +1 -0
  13. package/assets/CustomReactSelect.CvWMmrAU.css +1 -0
  14. package/assets/Dialog.6AkQo8ew.css +1 -0
  15. package/assets/Drawer.CDOlX809.css +1 -0
  16. package/assets/Fieldset.BbLGXCWa.css +1 -0
  17. package/assets/InputFile.CDtghZtl.css +1 -0
  18. package/assets/InputNumber.BNpO9p7n.css +1 -0
  19. package/assets/InputPassword.BgZo-RUc.css +1 -0
  20. package/assets/InputSearch.BROFFTK9.css +1 -0
  21. package/assets/LinkButton.IKIlFnpH.css +1 -0
  22. package/assets/Notification.2B81JHOp.css +1 -0
  23. package/assets/Pagination.DH71DZ0j.css +1 -0
  24. package/assets/Popover.58Tb0dOt.css +1 -0
  25. package/assets/Select.CfTN3CJo.css +1 -0
  26. package/assets/Slider.B4kzL60S.css +1 -0
  27. package/assets/{SystemFeedback.DYi9QetY.css → SystemFeedback.DVMml_h9.css} +1 -1
  28. package/assets/TextUtility.BThulfyl.css +1 -0
  29. package/assets/Textarea.BO4AcRJD.css +1 -0
  30. package/assets/buttonround.syTU1QSI.css +1 -0
  31. package/assets/chipgroup.DtCnsmS7.css +1 -0
  32. package/assets/filelist.B-Ru0GP_.css +1 -0
  33. package/assets/input.Dy8VS73e.css +1 -0
  34. package/assets/numberindicator.CtbitPQ8.css +1 -0
  35. package/assets/progressindicator.tyY_RVQ9.css +1 -0
  36. package/assets/radio.9hUUyg8R.css +1 -0
  37. package/assets/switch.8v7Wp1Fj.css +1 -0
  38. package/assets/tabpane.DDaeSDQb.css +1 -0
  39. package/assets/text.BwGsYzGM.css +1 -0
  40. package/assets/tooltip.C_BL2kou.css +1 -0
  41. package/{banner.BlB_7xue.js → banner.DO7GsDL_.js} +1 -1
  42. package/{breadcrumb.DajORKq7.js → breadcrumb.DYov6vtt.js} +3 -3
  43. package/{button.EooIlFBI.js → button.qxcuzbnv.js} +2 -2
  44. package/buttonround.BO7_ewzA.js +101 -0
  45. package/{checkbox.NJj9qMnx.js → checkbox.C9kyIY9P.js} +4 -5
  46. package/{checkboxgroup.DELdyn0X.js → checkboxgroup.kEUxnKLf.js} +2 -2
  47. package/{chip.C4h8Hm9g.js → chip.5ktNLRYf.js} +3 -3
  48. package/chipgroup.kRU3Z98U.js +226 -0
  49. package/chunks/Accordion.gih2ni1d.js +179 -0
  50. package/chunks/ActionButton.B-wm5sUy.js +194 -0
  51. package/chunks/{ActionCard.Dbq2VqyZ.js → ActionCard.Bm-2ewfS.js} +44 -44
  52. package/chunks/ActionLink.D0KzqbH4.js +166 -0
  53. package/chunks/{AriaLiveRegions.utils.BPvIKT6B.js → AriaLiveRegions.utils.xoETe2Ps.js} +14 -16
  54. package/chunks/{Breadcrumb.Ccm79ver.js → Breadcrumb.I2G-T0zc.js} +2 -2
  55. package/chunks/Button.CCol--xy.js +165 -0
  56. package/chunks/Checkbox.BxOGR1bR.js +96 -0
  57. package/chunks/CheckboxGroup.TneO0tuE.js +85 -0
  58. package/chunks/Chip.DffaXMkV.js +148 -0
  59. package/chunks/{CustomReactSelect.oEQpO9iN.js → CustomReactSelect.DTAavYaz.js} +282 -277
  60. package/chunks/Dialog.guuxflWL.js +101 -0
  61. package/chunks/{Drawer.CDe_g99S.js → Drawer.CjUZu6GW.js} +27 -28
  62. package/chunks/Fieldset.BBMuLKps.js +94 -0
  63. package/chunks/{Flag.X9tB3Mfv.js → Flag.CbQYBzVC.js} +12 -13
  64. package/chunks/{Header.bLSdAY9-.js → Header.CvcGSuhX.js} +1 -1
  65. package/chunks/{Input.utils.CkmzxIrU.js → Input.utils.Wycy2SzG.js} +23 -25
  66. package/chunks/InputFile.y71Cd5J9.js +260 -0
  67. package/chunks/InputNumber.Fn2YbF_s.js +250 -0
  68. package/chunks/InputPassword.DtT9yrlx.js +129 -0
  69. package/chunks/InputSearch.BoAfGqoH.js +157 -0
  70. package/chunks/LinkButton.BxG7fx1O.js +150 -0
  71. package/chunks/LinkCard.DM-5WrSt.js +200 -0
  72. package/chunks/{MegaMenu.DbunD_yW.js → MegaMenu.udXR1H3W.js} +1 -1
  73. package/chunks/{NavigationTabList.CyrKNAer.js → NavigationTabList.thzA1pU8.js} +1 -1
  74. package/chunks/{NavigationTabs.DVBe-Wt3.js → NavigationTabs.BWewgBch.js} +1 -1
  75. package/chunks/Notification.C_o7Ge6Q.js +91 -0
  76. package/chunks/Pagination.BrOMUJMi.js +272 -0
  77. package/chunks/Popover.CxZZ_y1Z.js +230 -0
  78. package/chunks/RadioGroup.CO91_5hA.js +136 -0
  79. package/chunks/Select.EzoMdk1u.js +157 -0
  80. package/chunks/Slider.CX38t4Sk.js +330 -0
  81. package/chunks/{Stepper.KBRikedB.js → Stepper.Ds_aIEF8.js} +68 -69
  82. package/chunks/SystemFeedback.DhWcYjnu.js +43 -0
  83. package/chunks/{Tabs.xXn4zpGp.js → Tabs.BHVlgp7L.js} +2 -2
  84. package/chunks/Text.utils.DzlY9pJS.js +9 -0
  85. package/chunks/TextUtility.BZLwqyic.js +82 -0
  86. package/chunks/Textarea.vuJgvW6_.js +192 -0
  87. package/chunks/{Toast.NZfb7z3q.js → Toast.V_ZUAsf2.js} +1 -1
  88. package/chunks/translate.DSb-TdWR.js +2460 -0
  89. package/{combobox.CPsl2TC0.js → combobox.C6cPz4AJ.js} +1 -1
  90. package/components/Accordion/Accordion.d.ts +5 -0
  91. package/components/ActionButton/ActionButton.d.ts +5 -1
  92. package/components/ActionLink/ActionLink.d.ts +1 -1
  93. package/components/Button/Button.utils.d.ts +1 -1
  94. package/components/Checkbox/Checkbox.d.ts +8 -1
  95. package/components/CheckboxGroup/CheckboxGroup.d.ts +9 -1
  96. package/components/ChipGroup/Chip.d.ts +2 -0
  97. package/components/ChipGroup/ChipGroup.d.ts +12 -2
  98. package/components/ChipGroup/ChipGroup.utils.d.ts +39 -15
  99. package/components/Combobox/Combobox.utils.d.ts +66 -9
  100. package/components/Combobox/CustomReactSelect/CustomReactSelect.d.ts +5 -1
  101. package/components/Combobox/CustomReactSelect/CustomReactSelect.utils.d.ts +1 -1
  102. package/components/Fieldset/Fieldset.d.ts +9 -2
  103. package/components/Input/Input.d.ts +8 -1
  104. package/components/InputFile/FileList/FileList.d.ts +4 -2
  105. package/components/InputFile/FileList/FilePreview/FilePreview.d.ts +8 -2
  106. package/components/InputFile/FileList/ProgressIndicator/ProgressIndicator.d.ts +8 -2
  107. package/components/InputFile/InputFile.d.ts +12 -2
  108. package/components/InputFile/InputFile.utils.d.ts +41 -23
  109. package/components/InputNumber/InputNumber.d.ts +8 -1
  110. package/components/InputPassword/InputPassword.d.ts +8 -1
  111. package/components/InputSearch/InputSearch.d.ts +8 -1
  112. package/components/LinkCard/LinkCard.d.ts +10 -4
  113. package/components/LinkCard/LinkCard.utils.d.ts +2 -2
  114. package/components/NumberIndicator/NumberIndicator.d.ts +6 -1
  115. package/components/Pagination/Pagination.d.ts +10 -3
  116. package/components/Pagination/Pagination.utils.d.ts +22 -9
  117. package/components/Popover/Popover.d.ts +9 -1
  118. package/components/Popover/Popover.utils.d.ts +3 -2
  119. package/components/Radio/Radio.d.ts +5 -0
  120. package/components/RadioGroup/RadioGroup.d.ts +8 -0
  121. package/components/Select/Select.d.ts +8 -1
  122. package/components/Slider/Slider.d.ts +8 -1
  123. package/components/Stepper/Step.d.ts +1 -1
  124. package/components/Stepper/Step.utils.d.ts +1 -1
  125. package/components/Stepper/Stepper.d.ts +4 -1
  126. package/components/Stepper/Stepper.utils.d.ts +9 -4
  127. package/components/SystemFeedback/SystemFeedback.d.ts +9 -1
  128. package/components/Textarea/Textarea.d.ts +8 -1
  129. package/{customreactselect.D7BJg-2s.js → customreactselect.L0zSh3Tg.js} +4 -4
  130. package/{dialog.BlprGigG.js → dialog.Ddq8o8Od.js} +2 -2
  131. package/{drawer.BoyrTFi1.js → drawer.rbbjQvqL.js} +2 -2
  132. package/{fieldset.D_e2-vo_.js → fieldset.BHf3XK2q.js} +3 -3
  133. package/filelist.GrEwoM1u.js +143 -0
  134. package/filepreview.B2Ot9SZ7.js +97 -0
  135. package/{flag.0vpitrQ-.js → flag.fX6LAgty.js} +3 -4
  136. package/{floatingactionbutton.BrdE1vi2.js → floatingactionbutton.BwCiybnc.js} +1 -1
  137. package/{header.C3AqYBtz.js → header.BCeCjYfG.js} +1 -1
  138. package/index.es.js +203 -204
  139. package/input.Dh0ws-9j.js +187 -0
  140. package/inputfile.DiZh3GcT.js +17 -0
  141. package/{inputnumber.Box5R2An.js → inputnumber.D2cmptaH.js} +8 -9
  142. package/{inputpassword.CBc8GNwI.js → inputpassword.C53Kg4EA.js} +4 -4
  143. package/inputsearch.BrsIDUSW.js +14 -0
  144. package/link.DEZDbUgq.js +81 -0
  145. package/{linkbutton.DxEPueLb.js → linkbutton._X50W2Md.js} +3 -3
  146. package/{linkcard.CCY-VFWN.js → linkcard.BtM3KnjT.js} +3 -3
  147. package/{logo.D7LnRA1E.js → logo.D6BTxbxv.js} +0 -1
  148. package/{megamenu.C8OynEzk.js → megamenu.odVCUm4c.js} +2 -2
  149. package/{navigationtablist.iSQd5PX4.js → navigationtablist.n9DrtYe5.js} +2 -2
  150. package/{navigationtabs.FtkVv_qV.js → navigationtabs.D0mSyAtK.js} +2 -2
  151. package/{notification.Cqg8HpJ8.js → notification._X8-8vOa.js} +2 -2
  152. package/numberindicator.DsK65Bj3.js +39 -0
  153. package/package.json +6 -1
  154. package/pagination.B7Hrx_sk.js +14 -0
  155. package/partials/index.js +68 -68
  156. package/{popover.DYiEGSnj.js → popover.BBaqL7y9.js} +3 -3
  157. package/progressindicator.D9CfVD95.js +74 -0
  158. package/radio.DjToa2aV.js +148 -0
  159. package/{radiogroup.wqgExwrG.js → radiogroup.mc-8lw65.js} +3 -3
  160. package/{scroller.Dqnsxq2M.js → scroller.CgWp2WXG.js} +10 -11
  161. package/{select.DkKuGI6O.js → select.DTZ6a6Ag.js} +5 -6
  162. package/{skeleton.DUkBgXxO.js → skeleton.CNJdNVav.js} +10 -10
  163. package/{skiptocontent.CRQywi6J.js → skiptocontent.BsRpWvyu.js} +4 -4
  164. package/{slider.BOjqQp9n.js → slider.BMGAihY0.js} +3 -3
  165. package/{step.C6zDRCBu.js → step.DCQ6CawJ.js} +1 -1
  166. package/stepper.D7-7BdSv.js +15 -0
  167. package/styles/scss/ds/index.scss +2 -0
  168. package/styles/scss/ds/lib/border-width.scss +3 -0
  169. package/styles/scss/ds/lib/ds-internal/_input.scss +65 -21
  170. package/styles/scss/ds/lib/ds-internal/_link-button.scss +4 -2
  171. package/styles/scss/ds/lib/ds-internal/_link.scss +23 -3
  172. package/styles/scss/ds/lib/input.scss +12 -7
  173. package/styles/scss/ds/lib/link.scss +2 -2
  174. package/styles/scss/ds/lib/radius.scss +5 -0
  175. package/{switch.CuNNdrkD.js → switch.tM2XBag8.js} +2 -2
  176. package/{systemfeedback.Da0wX0Eb.js → systemfeedback.BPPOht_9.js} +1 -1
  177. package/{tablist.BjKwrLz9.js → tablist.BAm0_UIG.js} +22 -23
  178. package/{tabpane.7vMXUKFX.js → tabpane.B9rZghU6.js} +1 -1
  179. package/{tabs.-U2k6Oll.js → tabs.BgTdWbTe.js} +3 -3
  180. package/text.BEO_ZfJq.js +72 -0
  181. package/{textarea.BWznY6Gg.js → textarea.Cki-uMkZ.js} +5 -6
  182. package/{textutility.CBLuAdaa.js → textutility.BypzssPt.js} +2 -2
  183. package/{toast.D9XLSgJg.js → toast.s0Hfuh5i.js} +2 -2
  184. package/{toastmanager.V5E05qgI.js → toastmanager.CPIPn4Io.js} +19 -20
  185. package/{tooltip.a1aWHK00.js → tooltip.BFQG-7VR.js} +1 -1
  186. package/{topbar.BdGK62KJ.js → topbar.Bbct-XkB.js} +3 -3
  187. package/utils/translate.d.ts +22 -6
  188. package/assets/Accordion.DPu2l_Kg.css +0 -1
  189. package/assets/ActionButton.DcQYatF1.css +0 -1
  190. package/assets/ActionCard.gRQVVFWz.css +0 -1
  191. package/assets/ActionLink.B62Aa8y9.css +0 -1
  192. package/assets/Button.BI6zz6Fw.css +0 -1
  193. package/assets/Checkbox.DknHnS9a.css +0 -1
  194. package/assets/Chip.CYhVB1Jh.css +0 -1
  195. package/assets/CustomReactSelect.lKMLwL7n.css +0 -1
  196. package/assets/Dialog.BKwWy1g2.css +0 -1
  197. package/assets/Drawer.IRb7Vc1n.css +0 -1
  198. package/assets/Fieldset.C4Fx4-UV.css +0 -1
  199. package/assets/InputFile.ne7gwc_5.css +0 -1
  200. package/assets/InputNumber.BIdsQuFc.css +0 -1
  201. package/assets/InputPassword.YSKTDTA1.css +0 -1
  202. package/assets/InputSearch.C3qtDQcj.css +0 -1
  203. package/assets/LinkButton.CmEE7Od_.css +0 -1
  204. package/assets/Notification.BO0Mu9No.css +0 -1
  205. package/assets/Pagination.OLmfdASf.css +0 -1
  206. package/assets/Popover.mL5g23EK.css +0 -1
  207. package/assets/Select.CDP-1_K9.css +0 -1
  208. package/assets/Slider.Cu7MgNph.css +0 -1
  209. package/assets/TextUtility.bwkCWEiV.css +0 -1
  210. package/assets/Textarea.Hsq68tg1.css +0 -1
  211. package/assets/buttonround.rmUb58WF.css +0 -1
  212. package/assets/chipgroup.BGxjdSDX.css +0 -1
  213. package/assets/filelist.cP3O1JeJ.css +0 -1
  214. package/assets/input.BEBgyvkK.css +0 -1
  215. package/assets/numberindicator.DSpNPJcs.css +0 -1
  216. package/assets/progressindicator.Dxrigyne.css +0 -1
  217. package/assets/radio.DsHt-9om.css +0 -1
  218. package/assets/switch.fwcMI6o7.css +0 -1
  219. package/assets/tabpane.o34hshTz.css +0 -1
  220. package/assets/text.Doa-APfR.css +0 -1
  221. package/assets/tooltip.DrSplliO.css +0 -1
  222. package/buttonround.BeQakrPs.js +0 -101
  223. package/chipgroup.BKjeuuM0.js +0 -213
  224. package/chunks/Accordion.8kTbiPxs.js +0 -173
  225. package/chunks/ActionButton.CBV1-_HP.js +0 -188
  226. package/chunks/ActionLink.BXxDS1Gg.js +0 -161
  227. package/chunks/Button.COycNYUI.js +0 -160
  228. package/chunks/Checkbox.CMshaWIU.js +0 -88
  229. package/chunks/CheckboxGroup.D3D1spfJ.js +0 -79
  230. package/chunks/Chip.DCJYE513.js +0 -157
  231. package/chunks/Dialog.lJXxzgu2.js +0 -102
  232. package/chunks/Fieldset.DOjI3DlI.js +0 -91
  233. package/chunks/InputFile.DYXvF6vT.js +0 -260
  234. package/chunks/InputNumber.CkWpchPo.js +0 -240
  235. package/chunks/InputPassword.21E6XMr5.js +0 -121
  236. package/chunks/InputSearch.Dy3EKa9f.js +0 -149
  237. package/chunks/LinkButton.BCHTLFMJ.js +0 -150
  238. package/chunks/LinkCard.BYmTwsS5.js +0 -197
  239. package/chunks/Notification.BjyLiO2h.js +0 -91
  240. package/chunks/Pagination.CJikF9Cw.js +0 -247
  241. package/chunks/Popover.ByaoNwGK.js +0 -221
  242. package/chunks/RadioGroup.Bh2X6pT9.js +0 -130
  243. package/chunks/Select.KWb09VmF.js +0 -147
  244. package/chunks/Slider.CxnIy51F.js +0 -309
  245. package/chunks/SystemFeedback.4osheYxC.js +0 -38
  246. package/chunks/Text.utils.BZ4nTZVu.js +0 -11
  247. package/chunks/TextUtility.BPrxUX-x.js +0 -82
  248. package/chunks/Textarea.CAOqZMUi.js +0 -181
  249. package/chunks/translate.nuU7uChI.js +0 -8
  250. package/filelist.DfAt2xJa.js +0 -128
  251. package/filepreview.Defs34bv.js +0 -94
  252. package/input.ChMzyHej.js +0 -175
  253. package/inputfile.DZIUs1EC.js +0 -18
  254. package/inputsearch.DzzYb-C0.js +0 -15
  255. package/link.aU1f2Xzu.js +0 -81
  256. package/numberindicator.Q7g4J3Ry.js +0 -36
  257. package/pagination.DA4PMLOq.js +0 -14
  258. package/progressindicator.DpmERE8T.js +0 -53
  259. package/radio.KQ8CUM3_.js +0 -137
  260. package/stepper.DHl3_XU9.js +0 -16
  261. package/text.CnP3baHy.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.oEQpO9iN.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;
@@ -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="…">
@@ -1,5 +1,5 @@
1
1
  import { InputHTMLAttributes } from 'react';
2
- import { BreakpointCustomizable } from '../../types';
2
+ import { BreakpointCustomizable, Theme } from '../../types';
3
3
  import { InputSize } from '../Input/Input.utils';
4
4
  export interface InputNumberProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'size' | 'value'> {
5
5
  /** Unique id for the input. */
@@ -99,6 +99,13 @@ export interface InputNumberProps extends Omit<InputHTMLAttributes<HTMLInputElem
99
99
  /** Value of the input. */
100
100
  value?: InputHTMLAttributes<HTMLInputElement>['value'];
101
101
  }
102
+ /** @internal Props including theme — not exported to consumers. */
103
+ export interface InputNumberPropsWithTheme extends InputNumberProps {
104
+ /** Defines the theme.
105
+ * @default 'light'
106
+ */
107
+ theme?: Theme;
108
+ }
102
109
  /**
103
110
  * The `<DSInputNumber />` component is a versatile input field that allows users to easily enter a value and decrease or increase it as needed.
104
111
  * It comes in two sizes (medium & small) and supports various customizations including a prefix and suffix.