@stihl-design-system/components 1.0.0-RC.14 → 1.0.0-RC.16

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 (244) hide show
  1. package/accordion.Dm5MWHQ6.js +12 -0
  2. package/arialiveregions.BwwB-OfU.js +19 -0
  3. package/assets/Accordion.B5bGf8mR.css +1 -0
  4. package/assets/Breadcrumb.BaYrwrYl.css +1 -0
  5. package/assets/NavigationTabList.B6x56sAV.css +1 -0
  6. package/assets/linkstandalone.LMdnj-G0.css +1 -0
  7. package/asterisk.DUzshaw5.js +8 -0
  8. package/breadcrumb.BDpXhffn.js +11 -0
  9. package/breadcrumb.d.ts +2 -0
  10. package/button.Ywd82k7O.js +121 -0
  11. package/buttonround.CI5RGkR9.js +105 -0
  12. package/checkbox.C1JJOQeV.js +103 -0
  13. package/checkboxgroup.o5t3fWsf.js +9 -0
  14. package/chip.DcJLVxEm.js +11 -0
  15. package/chipgroup.CCq2AMSa.js +187 -0
  16. package/chunks/Accordion.BmI7nlus.js +166 -0
  17. package/chunks/AriaLiveRegions.utils.zSFFD3SF.js +27 -0
  18. package/chunks/Breadcrumb.BycdSn-b.js +106 -0
  19. package/chunks/CheckboxGroup.C-Adg1hA.js +74 -0
  20. package/chunks/Chip.BY8kLPnz.js +120 -0
  21. package/chunks/CustomReactSelect.C2yN7CYh.js +3622 -0
  22. package/chunks/Dialog.CjzCKRr2.js +140 -0
  23. package/chunks/Drawer.m2JeVNBp.js +148 -0
  24. package/chunks/Fieldset.DfWsQgjD.js +105 -0
  25. package/chunks/Icon.DhKyUWtM.js +231 -0
  26. package/chunks/Input.utils.Um8Pqp4U.js +52 -0
  27. package/chunks/InputPassword.CmvZcn6n.js +141 -0
  28. package/chunks/InputSearch.CwXaGLJp.js +179 -0
  29. package/chunks/InputStepper.NCl90c4h.js +275 -0
  30. package/chunks/NavigationTabList.BOrhiSiM.js +63 -0
  31. package/chunks/NavigationTabs.DW_6fZxc.js +63 -0
  32. package/chunks/Notification.Bp28ubaX.js +99 -0
  33. package/chunks/RadioGroup.Dh-7jSOg.js +105 -0
  34. package/chunks/Select.CMwsbHvQ.js +190 -0
  35. package/chunks/TabPane.utils.DG16Y2uD.js +10 -0
  36. package/chunks/Tabs.D3yDE5nU.js +77 -0
  37. package/chunks/Textarea.CMRn2Aof.js +184 -0
  38. package/chunks/Toast.Boi6TEHu.js +76 -0
  39. package/chunks/index.CEyLAtio.js +48 -0
  40. package/chunks/index.CgTHIF3K.js +293 -0
  41. package/chunks/{translate.isa3FHb8.js → translate.nuU7uChI.js} +1 -4
  42. package/chunks/useBreakpoint.CMOR9ZOB.js +44 -0
  43. package/combobox.BhzaJrs7.js +55 -0
  44. package/components/Accordion/Accordion.d.ts +5 -1
  45. package/components/Accordion/Accordion.utils.d.ts +2 -2
  46. package/components/AriaLiveRegions/AriaLiveRegions.d.ts +1 -0
  47. package/components/Asterisk/Asterisk.d.ts +1 -0
  48. package/components/Breadcrumb/Breadcrumb.d.ts +45 -0
  49. package/components/Breadcrumb/Breadcrumb.utils.d.ts +4 -0
  50. package/components/Button/Button.d.ts +6 -4
  51. package/components/ButtonRound/ButtonRound.d.ts +4 -1
  52. package/components/Checkbox/Checkbox.d.ts +2 -0
  53. package/components/CheckboxGroup/CheckboxGroup.d.ts +3 -1
  54. package/components/ChipGroup/ChipGroup.d.ts +2 -0
  55. package/components/Combobox/Combobox.d.ts +3 -0
  56. package/components/Combobox/CustomReactSelect/CustomReactSelect.d.ts +3 -2
  57. package/components/Combobox/CustomReactSelect/OptionCheckbox.d.ts +1 -1
  58. package/components/Dialog/Dialog.d.ts +15 -4
  59. package/components/Drawer/Drawer.d.ts +15 -5
  60. package/components/Fieldset/Fieldset.d.ts +3 -1
  61. package/components/Flag/Flag.d.ts +3 -0
  62. package/components/FloatingActionButton/FloatingActionButton.d.ts +4 -1
  63. package/components/Heading/Heading.d.ts +3 -1
  64. package/components/Icon/Icon.d.ts +3 -1
  65. package/components/Input/Input.d.ts +23 -10
  66. package/components/Input/Input.utils.d.ts +2 -2
  67. package/components/InputPassword/InputPassword.d.ts +18 -9
  68. package/components/InputSearch/InputSearch.d.ts +17 -7
  69. package/components/InputStepper/InputStepper.d.ts +24 -8
  70. package/components/Link/Link.d.ts +6 -3
  71. package/components/LinkStandalone/LinkStandalone.d.ts +4 -1
  72. package/components/Logo/Logo.d.ts +3 -1
  73. package/components/NavigationTabs/NavigationTabs.d.ts +43 -0
  74. package/components/NavigationTabs/NavigationTabs.test.d.ts +1 -0
  75. package/components/NavigationTabs/NavigationTabs.utils.d.ts +6 -0
  76. package/components/Notification/Notification.d.ts +14 -5
  77. package/components/NumberIndicator/NumberIndicator.d.ts +1 -0
  78. package/components/RadioGroup/RadioGroup.d.ts +2 -0
  79. package/components/Select/Select.d.ts +2 -1
  80. package/components/SkipToContent/SkipToContent.d.ts +3 -0
  81. package/components/Spinner/Spinner.d.ts +7 -1
  82. package/components/Switch/Switch.d.ts +6 -4
  83. package/components/SystemFeedback/SystemFeedback.d.ts +1 -1
  84. package/components/Tabs/TabList/NavigationTabList/NavigationTabList.d.ts +22 -0
  85. package/components/Tabs/TabList/TabList.d.ts +38 -0
  86. package/components/Tabs/TabList/TabList.utils.d.ts +6 -0
  87. package/components/Tabs/TabList/TabList.utils.test.d.ts +1 -0
  88. package/components/Tabs/TabPane/TabPane.d.ts +1 -1
  89. package/components/Tabs/Tabs.d.ts +9 -2
  90. package/components/Tabs/Tabs.utils.d.ts +1 -6
  91. package/components/Text/Text.d.ts +6 -4
  92. package/components/Textarea/Textarea.d.ts +3 -1
  93. package/components/Title/Title.d.ts +3 -1
  94. package/components/Toast/Toast.d.ts +2 -0
  95. package/customreactselect.CW5-QQSM.js +14 -0
  96. package/dialog.DuAgAwfs.js +10 -0
  97. package/drawer.D3E46fH1.js +10 -0
  98. package/fieldset.4UygHVV3.js +12 -0
  99. package/flag.BJk5fHMs.js +50 -0
  100. package/floatingactionbutton.DFZ2YwaJ.js +74 -0
  101. package/heading.6LOBHJG6.js +55 -0
  102. package/icon.dww0DXWN.js +9 -0
  103. package/index.d.ts +4 -0
  104. package/index.es.js +139 -179
  105. package/input.DXzeHdRE.js +211 -0
  106. package/inputpassword.DXEvvgZt.js +13 -0
  107. package/inputsearch.DzwXj82k.js +14 -0
  108. package/inputstepper.CYwcFoQ1.js +16 -0
  109. package/link.CgNqBaNn.js +106 -0
  110. package/linkstandalone.Dn-uDj5T.js +69 -0
  111. package/logo.BgnYvK7t.js +51 -0
  112. package/navigationtablist.XNy54fXK.js +9 -0
  113. package/navigationtablist.d.ts +2 -0
  114. package/navigationtabs.DheMj9hs.js +9 -0
  115. package/navigationtabs.d.ts +2 -0
  116. package/notification.BnyOWmCm.js +10 -0
  117. package/numberindicator.Do92cr0z.js +35 -0
  118. package/optioncheckbox.DcckSTrV.js +52 -0
  119. package/package.json +53 -50
  120. package/partials/index.js +248 -2131
  121. package/partials/lib/partials.d.ts +77 -4
  122. package/radio.TDaeblOB.js +130 -0
  123. package/radiogroup.DyL_cJzK.js +11 -0
  124. package/select.BoeUz4Fb.js +13 -0
  125. package/skiptocontent.D7xhN0KM.js +35 -0
  126. package/spinner.gilnr6vN.js +52 -0
  127. package/switch.Ca9tRATr.js +68 -0
  128. package/systemfeedback.7I6fnqjX.js +34 -0
  129. package/tablist.TWjlHs5Y.js +251 -0
  130. package/tablist.d.ts +2 -0
  131. package/tabpane.CB-eudyw.js +37 -0
  132. package/tabs.Cr2CMXbY.js +11 -0
  133. package/text.C6gOJ2nV.js +59 -0
  134. package/textarea.CqDSxfcU.js +12 -0
  135. package/title.CSCXJnBN.js +43 -0
  136. package/toast.BN0v57nF.js +11 -0
  137. package/toastmanager.B9CR9plV.js +115 -0
  138. package/utils/render-documentation.d.ts +1 -0
  139. package/accordion.C6_sqiW2.js +0 -10
  140. package/arialiveregions.2dxodwBP.js +0 -27
  141. package/assets/Accordion.i4k5SMQM.css +0 -1
  142. package/assets/Tabs.DUqlqP6R.css +0 -1
  143. package/assets/linkstandalone.DIazcjIv.css +0 -1
  144. package/asterisk.DpzETKdT.js +0 -8
  145. package/button.BfcWQZhx.js +0 -135
  146. package/buttonround.E56F_805.js +0 -118
  147. package/checkbox.Dt0OWryN.js +0 -111
  148. package/checkboxgroup.je32bRPr.js +0 -8
  149. package/chip.CpnDX4Ro.js +0 -10
  150. package/chipgroup.Cy76KMWu.js +0 -175
  151. package/chunks/Accordion.Bza3TO4Y.js +0 -125
  152. package/chunks/AriaLiveRegions.utils.Bq6Mp2bE.js +0 -40
  153. package/chunks/CheckboxGroup.C_2ZwEQJ.js +0 -95
  154. package/chunks/Chip.BvlKC503.js +0 -148
  155. package/chunks/CustomReactSelect.CB41lklE.js +0 -3598
  156. package/chunks/Dialog.ClBjJWOh.js +0 -148
  157. package/chunks/Drawer.ReDW3ohH.js +0 -154
  158. package/chunks/Fieldset.Ct_JFRs9.js +0 -99
  159. package/chunks/Icon.BCmt_XBG.js +0 -223
  160. package/chunks/Input.utils.DYbmWlx6.js +0 -111
  161. package/chunks/InputPassword.Cvk5J8w1.js +0 -143
  162. package/chunks/InputSearch.BIIW-ERk.js +0 -192
  163. package/chunks/InputStepper.DGzR3KY6.js +0 -296
  164. package/chunks/Notification.uAEjPywP.js +0 -92
  165. package/chunks/RadioGroup.D10-pe9H.js +0 -146
  166. package/chunks/Select.DsLnW29U.js +0 -194
  167. package/chunks/TabPane.CYuUi0oL.js +0 -51
  168. package/chunks/Tabs.D_JAsvoh.js +0 -270
  169. package/chunks/Textarea.Dh9R9YdZ.js +0 -199
  170. package/chunks/Toast.j7LPnQ36.js +0 -89
  171. package/chunks/index.CvOaL64Y.js +0 -45
  172. package/chunks/jsx-runtime.C115EyI4.js +0 -635
  173. package/chunks/useBreakpoint.B8XxjSVJ.js +0 -48
  174. package/combobox.D6zXg976.js +0 -47
  175. package/customreactselect.BcjDvZG6.js +0 -13
  176. package/dialog.BkVOgeWY.js +0 -9
  177. package/drawer.DM_NKGTQ.js +0 -9
  178. package/fieldset.CSNoVbL1.js +0 -11
  179. package/flag.BKpsdB_-.js +0 -43
  180. package/floatingactionbutton.D5L0B7zI.js +0 -87
  181. package/heading.IPIYc5vW.js +0 -50
  182. package/icon.Ck0BpI34.js +0 -8
  183. package/input.BbnmbMCI.js +0 -241
  184. package/inputpassword.KnZRwWCQ.js +0 -12
  185. package/inputsearch.DgYJPZ2v.js +0 -13
  186. package/inputstepper.T_of1Gz0.js +0 -15
  187. package/link.L8O_InKe.js +0 -116
  188. package/linkstandalone.BBoEniZ_.js +0 -79
  189. package/logo.Hul8qCFo.js +0 -65
  190. package/notification.Bt9TbAAt.js +0 -9
  191. package/numberindicator.UU7FSouT.js +0 -26
  192. package/optioncheckbox.BRUTnQnJ.js +0 -43
  193. package/radio.B-2uuWHq.js +0 -114
  194. package/radiogroup.DM_lF4hI.js +0 -10
  195. package/select.COLuwr89.js +0 -12
  196. package/skiptocontent.DxogCFvU.js +0 -45
  197. package/spinner.Bq97Og-6.js +0 -58
  198. package/switch.DI8YYa5G.js +0 -65
  199. package/systemfeedback.C3Pfxxpp.js +0 -25
  200. package/tabpane.BnQBzVXw.js +0 -8
  201. package/tabs.BaELlVri.js +0 -15
  202. package/text.DThvTwm8.js +0 -57
  203. package/textarea.Wcl_pVBb.js +0 -13
  204. package/title.DqzdB2Gq.js +0 -36
  205. package/toast.DQlMWU6I.js +0 -10
  206. package/toastmanager.DxHFtr5C.js +0 -119
  207. /package/assets/{CheckboxGroup.BH1Br1dg.css → CheckboxGroup.Dd-Huo7x.css} +0 -0
  208. /package/assets/{Chip.DSdLuzoi.css → Chip.dxIYIjj7.css} +0 -0
  209. /package/assets/{CustomReactSelect.vHt8qNKC.css → CustomReactSelect.DYDaP5r5.css} +0 -0
  210. /package/assets/{Dialog.BgzebVk4.css → Dialog.DXmPdExC.css} +0 -0
  211. /package/assets/{Drawer.Bauwxrk7.css → Drawer.BcM0epJS.css} +0 -0
  212. /package/assets/{Fieldset.DOdTbb7C.css → Fieldset.Og4EsnPI.css} +0 -0
  213. /package/assets/{Icon.DxRSBRSL.css → Icon.ZNrKuqgu.css} +0 -0
  214. /package/assets/{InputPassword.CG7Ugu73.css → InputPassword.DtKteerr.css} +0 -0
  215. /package/assets/{InputSearch.CseChMc-.css → InputSearch.Mql3oFlQ.css} +0 -0
  216. /package/assets/{InputStepper.C0eAYr7P.css → InputStepper.BXz1MMBg.css} +0 -0
  217. /package/assets/{Notification.DbRapUJo.css → Notification.DZIF-Wo6.css} +0 -0
  218. /package/assets/{RadioGroup.BfMo157q.css → RadioGroup.CM2mYOzc.css} +0 -0
  219. /package/assets/{Select.D4EXgIbz.css → Select.KvAgxJZk.css} +0 -0
  220. /package/assets/{Textarea.KJGPTYMz.css → Textarea.BIRQlv6m.css} +0 -0
  221. /package/assets/{Toast.CuafTAf7.css → Toast.CuM-yS7S.css} +0 -0
  222. /package/assets/{arialiveregions.DhsijBaL.css → arialiveregions.e0Q16ZWi.css} +0 -0
  223. /package/assets/{asterisk.BfVAUBO7.css → asterisk.B41DaZDe.css} +0 -0
  224. /package/assets/{button.DF4RBeC2.css → button.CpPeQPsM.css} +0 -0
  225. /package/assets/{buttonround.19uK_-oO.css → buttonround.BFauSRAb.css} +0 -0
  226. /package/assets/{checkbox.ByOoFouu.css → checkbox.BKHQN_tu.css} +0 -0
  227. /package/assets/{chipgroup.BzfZLbkv.css → chipgroup.CUIkyYBW.css} +0 -0
  228. /package/assets/{flag.B-RLcMcf.css → flag.C7i3MAAP.css} +0 -0
  229. /package/assets/{floatingactionbutton.E9HekT6S.css → floatingactionbutton.l0nvFiJU.css} +0 -0
  230. /package/assets/{heading.u4f8Mz94.css → heading.B-rdLVZD.css} +0 -0
  231. /package/assets/{input.BAkFKPW3.css → input.B5spSeMe.css} +0 -0
  232. /package/assets/{link.DDJj0D1U.css → link.Be5OF_8E.css} +0 -0
  233. /package/assets/{logo.CnW8alZU.css → logo.bVXt9m9R.css} +0 -0
  234. /package/assets/{numberindicator.BJ9vFpnd.css → numberindicator.BJnvB-K3.css} +0 -0
  235. /package/assets/{optioncheckbox.BZaWtRD7.css → optioncheckbox.DAffEKvY.css} +0 -0
  236. /package/assets/{radio.X-RTl_jo.css → radio.CGf7v0D_.css} +0 -0
  237. /package/assets/{skiptocontent.PTL3256m.css → skiptocontent.CTSDC_kG.css} +0 -0
  238. /package/assets/{spinner.2iWJWKyA.css → spinner.BJ5xwnYH.css} +0 -0
  239. /package/assets/{switch.gw6aa3kx.css → switch.Bc9KIyw9.css} +0 -0
  240. /package/assets/{systemfeedback.BPz5YlPC.css → systemfeedback.DoqgHZPH.css} +0 -0
  241. /package/assets/{TabPane.zywjfwo8.css → tabpane.D1LTb432.css} +0 -0
  242. /package/assets/{text.DjTG_qNb.css → text.BlRcxO8n.css} +0 -0
  243. /package/assets/{title.rosWPEG3.css → title.B0tsgJ-n.css} +0 -0
  244. /package/components/{Tabs/Tabs.utils.test.d.ts → Breadcrumb/Breadcrumb.test.d.ts} +0 -0
@@ -0,0 +1,55 @@
1
+ "use client";
2
+ import { jsx as q } from "react/jsx-runtime";
3
+ import { d as w } from "./chunks/index.CgTHIF3K.js";
4
+ import { v as D, c as L } from "./chunks/CustomReactSelect.C2yN7CYh.js";
5
+ const P = (b) => {
6
+ const e = w.c(27);
7
+ let l, t, o, s, i, n, a, d, c, r, v;
8
+ e[0] !== b ? ({
9
+ id: t,
10
+ label: o,
11
+ className: l,
12
+ disabled: i,
13
+ dropdownOnFocus: n,
14
+ hideLabel: a,
15
+ invalid: d,
16
+ lang: c,
17
+ required: r,
18
+ variant: v,
19
+ ...s
20
+ } = b, e[0] = b, e[1] = l, e[2] = t, e[3] = o, e[4] = s, e[5] = i, e[6] = n, e[7] = a, e[8] = d, e[9] = c, e[10] = r, e[11] = v) : (l = e[1], t = e[2], o = e[3], s = e[4], i = e[5], n = e[6], a = e[7], d = e[8], c = e[9], r = e[10], v = e[11]);
21
+ const x = i === void 0 ? !1 : i, p = n === void 0 ? !1 : n, C = a === void 0 ? !1 : a, O = d === void 0 ? !1 : d, g = c === void 0 ? "en" : c, E = r === void 0 ? !1 : r, N = v === void 0 ? "single" : v;
22
+ if (process.env.NODE_ENV !== "production") {
23
+ const {
24
+ options: h
25
+ } = s;
26
+ D({
27
+ id: t,
28
+ label: o,
29
+ options: h
30
+ });
31
+ }
32
+ const u = N === "multi", F = !p || u;
33
+ let f;
34
+ e[12] !== l || e[13] !== x || e[14] !== p || e[15] !== C || e[16] !== t || e[17] !== O || e[18] !== u || e[19] !== o || e[20] !== g || e[21] !== E || e[22] !== s || e[23] !== F ? (f = {
35
+ id: t,
36
+ label: o,
37
+ className: l,
38
+ disabled: x,
39
+ hideLabel: C,
40
+ isMulti: u,
41
+ invalid: O,
42
+ lang: g,
43
+ openMenuOnClick: p,
44
+ openMenuOnFocus: p,
45
+ isClearable: F,
46
+ required: E,
47
+ ...s
48
+ }, e[12] = l, e[13] = x, e[14] = p, e[15] = C, e[16] = t, e[17] = O, e[18] = u, e[19] = o, e[20] = g, e[21] = E, e[22] = s, e[23] = F, e[24] = f) : f = e[24];
49
+ const M = f;
50
+ let m;
51
+ return e[25] !== M ? (m = /* @__PURE__ */ q(L, { ...M }), e[25] = M, e[26] = m) : m = e[26], m;
52
+ };
53
+ export {
54
+ P as DSCombobox
55
+ };
@@ -18,7 +18,7 @@ export interface AccordionProps extends DetailsHTMLAttributes<HTMLDetailsElement
18
18
  * @default 'right'
19
19
  */
20
20
  chevronPosition?: ChevronPosition;
21
- /** Custom area below the summary. */
21
+ /** Custom area below the summary. **Cannot be used together with numberIndicatorValue**. */
22
22
  hint?: React.ReactNode;
23
23
  /** Aligns the accordion with text.
24
24
  * @default false
@@ -28,6 +28,8 @@ export interface AccordionProps extends DetailsHTMLAttributes<HTMLDetailsElement
28
28
  * @default false
29
29
  */
30
30
  isOpen?: boolean;
31
+ /** Number Indicator value displayed next to the label. **Cannot be used together with hint**. */
32
+ numberIndicatorValue?: string;
31
33
  /** Size of the accordion.
32
34
  * @default 'medium'
33
35
  */
@@ -35,5 +37,7 @@ export interface AccordionProps extends DetailsHTMLAttributes<HTMLDetailsElement
35
37
  }
36
38
  /**
37
39
  * A component that renders an accordion using the `details` HTML element.
40
+ *
41
+ * Design in Figma: [Accordion](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=17260-166)
38
42
  */
39
43
  export declare const DSAccordion: import('react').ForwardRefExoticComponent<AccordionProps & import('react').RefAttributes<HTMLDetailsElement>>;
@@ -9,6 +9,6 @@ export type Summary = string | {
9
9
  headingSize?: HeadingSize;
10
10
  headingTag?: HeadingTag;
11
11
  };
12
- type ValidationProps = Pick<AccordionProps, 'children' | 'summary'>;
13
- export declare const validateAccordionProps: ({ children, summary, }: ValidationProps) => void;
12
+ type ValidationProps = Pick<AccordionProps, 'children' | 'hint' | 'numberIndicatorValue' | 'summary'>;
13
+ export declare const validateAccordionProps: ({ children, summary, hint, numberIndicatorValue, }: ValidationProps) => void;
14
14
  export {};
@@ -1,3 +1,4 @@
1
+ import { JSX } from 'react';
1
2
  /**
2
3
  * A component that provides hidden ARIA live regions for accessibility, allowing screen readers to announce changes dynamically.
3
4
  */
@@ -1 +1,2 @@
1
+ import { JSX } from 'react';
1
2
  export declare const Asterisk: () => JSX.Element;
@@ -0,0 +1,45 @@
1
+ import { SelectedAriaAttributes } from '../../types';
2
+ import { BreadcrumbAriaAttributes } from './Breadcrumb.utils';
3
+ import { JSX } from 'react';
4
+ export interface BreadcrumbLink {
5
+ /** The link label text. */
6
+ label: string;
7
+ /** The href for the link if no framework-specific link component wrapper is provided. */
8
+ href?: string;
9
+ /** Name of the icon to display.*/
10
+ iconName?: string;
11
+ /** The framework-specific link component wrapper, e.g., `Link` for `next` or `react-router-dom`. */
12
+ wrapper?: React.ReactElement<React.AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;
13
+ }
14
+ export interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
15
+ /** ARIA attributes to ensure accessibility
16
+ *
17
+ * `{'aria-label'? string;`
18
+ * `'aria-labelledby'?: string;}`
19
+ * */
20
+ aria: SelectedAriaAttributes<BreadcrumbAriaAttributes>;
21
+ /** Breadcrumb link array structure with optional and required parameters
22
+ * `{ label: string;`
23
+ * `href?: string;`
24
+ * `iconName?: IconName;`
25
+ * `wrapper?: React.ReactElement<React.AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;}[]`
26
+ */
27
+ links: BreadcrumbLink[];
28
+ /** Show all (...) button props:
29
+ *
30
+ * `data-*`: Custom data attributes.
31
+ *
32
+ * `label`: Accessibility label for the show all button.
33
+ * (default) 'Show all links'
34
+ */
35
+ showAllButtonProps?: {
36
+ [key: `data-${string}`]: string | undefined;
37
+ label?: string;
38
+ };
39
+ }
40
+ /**
41
+ * A breadcrumb provides orientation to users within the structure of a website or application.
42
+ *
43
+ * Design in Figma: [Breadcrumb](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=23527-3393)
44
+ * */
45
+ export declare const DSBreadcrumb: ({ aria, className, links, showAllButtonProps, ...rest }: BreadcrumbProps) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { BreadcrumbProps } from './Breadcrumb';
2
+ export type BreadcrumbAriaAttributes = 'aria-label' | 'aria-labelledby';
3
+ export declare const MAX_VISIBLE_LINKS = 4;
4
+ export declare const validateBreadcrumbProps: ({ aria, links }: BreadcrumbProps) => void;
@@ -1,4 +1,4 @@
1
- import { ButtonHTMLAttributes } from 'react';
1
+ import { ButtonHTMLAttributes, JSX } from 'react';
2
2
  import { BreakpointCustomizable, IconName, SelectedAriaAttributes, Theme } from '../../types';
3
3
  import { IconProps } from '../Icon/Icon';
4
4
  import { ButtonAriaAttribute, ButtonSize, ButtonVariant } from './Button.utils';
@@ -12,8 +12,8 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
12
12
  * `'aria-haspopup'?: boolean | 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';}`
13
13
  * */
14
14
  aria?: SelectedAriaAttributes<ButtonAriaAttribute>;
15
- /** Identifier for analytics tracking. */
16
- dataTrackingid?: string;
15
+ /** Custom data attributes. */
16
+ [key: `data-${string}`]: string | undefined;
17
17
  /** Disables the button, preventing user interaction.
18
18
  * @default false
19
19
  */
@@ -56,5 +56,7 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
56
56
  }
57
57
  /**
58
58
  * Use the Button component to initialize an important action or to highlight the user journey.
59
+ *
60
+ * Design in Figma: [Button](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=168-3943&t=UBsmFURFENnuYSW1-11)
59
61
  * */
60
- export declare const DSButton: ({ children, aria, className, dataTrackingid, disabled, hideLabel, iconName, iconPosition, iconSource, isFlush, loading, size, theme, variant, onClick, ...rest }: ButtonProps) => JSX.Element;
62
+ export declare const DSButton: ({ children, aria, className, disabled, hideLabel, iconName, iconPosition, iconSource, isFlush, loading, size, theme, variant, onClick, ...rest }: ButtonProps) => JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import { IconName } from '../../types';
2
2
  import { ButtonProps } from '../Button/Button';
3
3
  import { ButtonRoundVariant } from './ButtonRound.utils';
4
+ import { JSX } from 'react';
4
5
  export interface ButtonRoundProps extends Omit<ButtonProps, 'hideLabel' | 'size' | 'iconPosition' | 'isFlush'> {
5
6
  children: React.ReactNode;
6
7
  /** Visual style variant of the button.
@@ -14,5 +15,7 @@ export interface ButtonRoundProps extends Omit<ButtonProps, 'hideLabel' | 'size'
14
15
  }
15
16
  /**
16
17
  * Icon only Buttons should only used for functions where visible labels are not needed to define the function e.g. modal close or pagination buttons.
18
+ *
19
+ * Design in Figma: [Button Round](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=168-4016&t=UBsmFURFENnuYSW1-4)
17
20
  * */
18
- export declare const DSButtonRound: ({ children, aria, className, dataTrackingid, disabled, iconName, iconSource, loading, theme, variant, onClick, ...rest }: ButtonRoundProps) => JSX.Element;
21
+ export declare const DSButtonRound: ({ children, aria, className, disabled, iconName, iconSource, loading, theme, variant, onClick, ...rest }: ButtonRoundProps) => JSX.Element;
@@ -31,5 +31,7 @@ export interface CheckboxProps extends InputHTMLAttributes<HTMLInputElement> {
31
31
  }
32
32
  /**
33
33
  * A control element that allows users to make a binary choice. It can either be checked or unchecked.
34
+ *
35
+ * Design in Figma: [Checkbox](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=1017-2328&t=UBsmFURFENnuYSW1-11)
34
36
  * */
35
37
  export declare const DSCheckbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -1,4 +1,4 @@
1
- import { FieldsetHTMLAttributes } from 'react';
1
+ import { FieldsetHTMLAttributes, JSX } from 'react';
2
2
  import { FieldsetProps } from '../Fieldset/Fieldset';
3
3
  export interface CheckboxGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
4
4
  /** DSCheckbox elements within the checkbox group. */
@@ -43,5 +43,7 @@ export interface CheckboxGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetE
43
43
  * The `DSCheckboxGroup` component offers a cohesive and accessible solution for grouping `DSCheckbox` elements,
44
44
  * complete with customizable legends, direction options, and integrated validation feedback,
45
45
  * enhancing the user experience in form designs.
46
+ *
47
+ * Design in Figma: [Checkbox Group](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=5626-11362&t=UBsmFURFENnuYSW1-4)
46
48
  * */
47
49
  export declare const DSCheckboxGroup: ({ children, legend, className, description, direction, disabled, id, invalid, required, systemFeedback, ...rest }: CheckboxGroupProps) => JSX.Element;
@@ -38,5 +38,7 @@ export interface ChipGroupProps extends HTMLAttributes<HTMLDivElement> {
38
38
  /**
39
39
  * A component for selecting single or multiple chips, with options for selection (like radio buttons) or removal.
40
40
  * Supports different sizes. Use icons sparingly to reduce cognitive load.
41
+ *
42
+ * Design in Figma: [Chip Group](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=18691-978)
41
43
  */
42
44
  export declare const DSChipGroup: React.FC<ChipGroupProps>;
@@ -1,4 +1,5 @@
1
1
  import { CustomReactSelectProps } from './CustomReactSelect/CustomReactSelect';
2
+ import { JSX } from 'react';
2
3
  type CommonComboboxProps = {
3
4
  /** Opens the dropdown on click or focus.
4
5
  * @default false
@@ -18,6 +19,8 @@ export type ComboboxProps = Omit<(CustomReactSelectProps<false> & {
18
19
  }), 'isMulti' | 'openMenuOnClick' | 'openMenuOnFocus'> & CommonComboboxProps;
19
20
  /**
20
21
  * The DSCombobox component offers an autocomplete-style interface, allowing for efficient and intuitive selection from a dynamic list of options, suitable for both single and multi-select purposes.
22
+ *
23
+ * Design in Figma: [Combobox](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=2659-3954)
21
24
  * */
22
25
  export declare const DSCombobox: ({ id, label, className, disabled, dropdownOnFocus, hideLabel, invalid, lang, required, variant, ...rest }: ComboboxProps) => JSX.Element;
23
26
  export {};
@@ -1,11 +1,12 @@
1
+ import { JSX } from 'react';
1
2
  import { GroupBase } from 'react-select';
2
3
  import { BreakpointCustomizable, Optional } from '../../../types';
3
4
  import { ComboboxAriaTranslations, ComboboxLanguage, ComboboxOption, ComboboxOptionsGroup, ComboboxOptionsOrOptGroups, ComboboxSize } from '../Combobox.utils';
4
5
  import { PublicBaseSelectProps } from 'react-select/dist/declarations/src/Select';
5
6
  import { StateManagerProps } from 'react-select/dist/declarations/src/useStateManager';
6
7
  type IncludedReactSelectKeys = 'className' | 'form' | 'inputValue' | 'menuIsOpen' | 'name' | 'onBlur' | 'onFocus' | 'openMenuOnClick' | 'openMenuOnFocus' | 'tabIndex';
7
- type PickedReactSelectProps<OptionType, IsMulti extends boolean, GroupType extends GroupBase<OptionType>> = Pick<Optional<PublicBaseSelectProps<OptionType, IsMulti, GroupType>, 'inputValue'>, IncludedReactSelectKeys>;
8
- type PickedReactSelectStateManagerProps<OptionType, IsMulti extends boolean, GroupType extends GroupBase<OptionType>> = Pick<StateManagerProps<OptionType, IsMulti, GroupType>, 'defaultInputValue'>;
8
+ type PickedReactSelectProps<OptionType, IsMulti extends boolean, GroupType extends GroupBase<OptionType>> = Optional<Pick<PublicBaseSelectProps<OptionType, IsMulti, GroupType>, IncludedReactSelectKeys>, IncludedReactSelectKeys>;
9
+ type PickedReactSelectStateManagerProps<OptionType, IsMulti extends boolean, GroupType extends GroupBase<OptionType>> = Optional<Pick<StateManagerProps<OptionType, IsMulti, GroupType>, 'defaultInputValue'>, 'defaultInputValue'>;
9
10
  export interface CustomReactSelectProps<IsMulti extends boolean> extends PickedReactSelectProps<ComboboxOption, IsMulti, ComboboxOptionsGroup>, PickedReactSelectStateManagerProps<ComboboxOption, IsMulti, ComboboxOptionsGroup> {
10
11
  /** Unique id for the DSCombobox. */
11
12
  id: string;
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes } from 'react';
1
+ import { HTMLAttributes, JSX } from 'react';
2
2
  export interface CheckboxProps extends HTMLAttributes<HTMLDivElement> {
3
3
  /** Content displayed next to the checkbox */
4
4
  label: string;
@@ -1,9 +1,18 @@
1
- import { DialogHTMLAttributes } from 'react';
1
+ import { DialogHTMLAttributes, JSX } from 'react';
2
2
  export interface DialogProps extends DialogHTMLAttributes<HTMLDialogElement> {
3
3
  /** Content within the Dialog. */
4
4
  children: React.ReactNode;
5
- /** Label for the close button. */
6
- closeButtonLabel?: string;
5
+ /** Close button props:
6
+ *
7
+ * `data-*`: Custom data attributes.
8
+ *
9
+ * `label`: Accessibility label for the close button.
10
+ * (default) 'Close dialog'
11
+ */
12
+ closeButtonProps?: {
13
+ [key: `data-${string}`]: string | undefined;
14
+ label?: string;
15
+ };
7
16
  /** Disables closing the Dialog by clicking on the backdrop.
8
17
  * @default false
9
18
  */
@@ -29,6 +38,8 @@ export interface DialogProps extends DialogHTMLAttributes<HTMLDialogElement> {
29
38
  * A component that renders a modal dialog, which can be used for displaying
30
39
  * important messages, forms, or confirmations.
31
40
  *
41
+ * Design in Figma: [Dialog](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=14115-4051)
42
+ *
32
43
  * <div className="ds-info">For more information on the different types of notifications and to determine which is best suited for your needs, please refer to our [Notification Guidelines](/docs/templates-notification-guidelines--documentation) and explore the decision trees provided.</div>
33
44
  */
34
- export declare const DSDialog: ({ children, className, closeButtonLabel, disableBackdropClose, footer, header, hideCloseButton, isOpen, onClose, ...rest }: DialogProps) => JSX.Element;
45
+ export declare const DSDialog: ({ children, className, closeButtonProps, disableBackdropClose, footer, header, hideCloseButton, isOpen, onClose, ...rest }: DialogProps) => JSX.Element;
@@ -1,12 +1,20 @@
1
- import { DialogHTMLAttributes } from 'react';
1
+ import { DialogHTMLAttributes, JSX } from 'react';
2
2
  import { DrawerPosition } from './Drawer.utils';
3
3
  export interface DrawerProps extends DialogHTMLAttributes<HTMLDialogElement> {
4
4
  /** Content within the Drawer. */
5
5
  children: React.ReactNode;
6
- /** Label for the close button.
7
- * @default 'Close modal'
6
+ /** Close button props:
7
+ *
8
+ * `data-*`: Custom data attributes.
9
+ *
10
+ * `label`: Accessibility label for the close button.
11
+ * (default) 'Close dialog'
12
+ *
8
13
  */
9
- closeButtonLabel?: string;
14
+ closeButtonProps?: {
15
+ [key: `data-${string}`]: string | undefined;
16
+ label?: string;
17
+ };
10
18
  /** Disables closing the Drawer by clicking on the backdrop.
11
19
  * @default false
12
20
  */
@@ -35,5 +43,7 @@ export interface DrawerProps extends DialogHTMLAttributes<HTMLDialogElement> {
35
43
  /**
36
44
  * A component that renders a modal drawer, which can be used for navigation,
37
45
  * displaying additional information, or providing extra controls.
46
+ *
47
+ * Design in Figma: [Drawer](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=16282-9317)
38
48
  */
39
- export declare const DSDrawer: ({ children, className, closeButtonLabel, disableBackdropClose, footer, header, hideCloseButton, position, isOpen, onClose, ...rest }: DrawerProps) => JSX.Element;
49
+ export declare const DSDrawer: ({ children, className, closeButtonProps, disableBackdropClose, footer, header, hideCloseButton, position, isOpen, onClose, ...rest }: DrawerProps) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { FieldsetHTMLAttributes } from 'react';
1
+ import { FieldsetHTMLAttributes, JSX } from 'react';
2
2
  import { Legend } from './Fieldset.utils';
3
3
  export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
4
4
  /** Child elements within the fieldset. */
@@ -36,5 +36,7 @@ export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElemen
36
36
  }
37
37
  /**
38
38
  * The `DSFieldset` component is a versatile and accessible way to group related elements and labels in your forms.
39
+ *
40
+ * Design in Figma: [Fieldset](https://www.figma.com/design/Ie2r0R9QwjEc7O3nrFbXhV/Web-Pattern-Library?node-id=8-154)
39
41
  * */
40
42
  export declare const DSFieldset: ({ children, legend, className, description, disabled, id, invalid, required, systemFeedback, ...rest }: FieldsetProps) => JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import { IconName } from '../../types';
2
2
  import { IconProps } from '../Icon/Icon';
3
3
  import { FlagColor } from './Flag.utils';
4
+ import { JSX } from 'react';
4
5
  export interface FlagProps extends React.HTMLAttributes<HTMLSpanElement> {
5
6
  /** Content within the Flag. */
6
7
  children: React.ReactNode;
@@ -19,5 +20,7 @@ export interface FlagProps extends React.HTMLAttributes<HTMLSpanElement> {
19
20
  }
20
21
  /**
21
22
  * A read-only component, often representing a status or category.
23
+ *
24
+ * Design in Figma: [Flag](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=19511-2443)
22
25
  * */
23
26
  export declare const DSFlag: ({ children, className, color, iconName, iconSource, ...rest }: FlagProps) => JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { IconName } from '../../types';
2
2
  import { ButtonProps } from '../Button/Button';
3
+ import { JSX } from 'react';
3
4
  export interface FloatingActionButtonProps extends Omit<ButtonProps, 'hideLabel' | 'iconPosition' | 'variant' | 'isFlush'> {
4
5
  children: React.ReactNode;
5
6
  /** Name of the icon to display.
@@ -13,5 +14,7 @@ export interface FloatingActionButtonProps extends Omit<ButtonProps, 'hideLabel'
13
14
  * Sizes:
14
15
  * - medium (e.g. back-to-top)
15
16
  * - small (e.g. menu drawer of the sidebar navigation)
17
+ *
18
+ * Design in Figma: [Floating Action Button](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=168-5095&t=UBsmFURFENnuYSW1-11)
16
19
  * */
17
- export declare const DSFloatingActionButton: ({ aria, children, className, dataTrackingid, disabled, iconName, iconSource, loading, size, theme, onClick, ...rest }: FloatingActionButtonProps) => JSX.Element;
20
+ export declare const DSFloatingActionButton: ({ aria, children, className, disabled, iconName, iconSource, loading, size, theme, onClick, ...rest }: FloatingActionButtonProps) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes } from 'react';
1
+ import { HTMLAttributes, JSX } from 'react';
2
2
  import { Theme } from '../../types';
3
3
  import { HeadingSize, HeadingTag } from './Heading.utils';
4
4
  export interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {
@@ -20,5 +20,7 @@ export interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {
20
20
  /**
21
21
  * The `DSHeading` component is used to specify heading styling and hierarchy in documents.
22
22
  * It allows for consistent heading styles across different parts of your application.
23
+ *
24
+ * Design in Figma: [Heading](https://www.figma.com/design/d9wrOp4aCplDsV9AVC87Xn/Typography-%F0%9F%85%B0%EF%B8%8F?node-id=3-2186&t=TeSgud7dB5pnld5s-11)
23
25
  * */
24
26
  export declare const DSHeading: ({ children, className, size, tag, theme, ...rest }: HeadingProps) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { HTMLProps, SVGProps } from 'react';
1
+ import { HTMLProps, SVGProps, JSX } from 'react';
2
2
  import { IconName, SelectedAriaAttributes, Theme } from '../../types';
3
3
  import { IconAriaAttribute, IconSize } from './Icon.utils';
4
4
  export interface IconProps {
@@ -25,5 +25,7 @@ export interface IconProps {
25
25
  * The STIHL Iconography ranges from content and feature icons to product or system icons.
26
26
  * The STIHL Design System is using an SVG icon system to visually present an icon object.
27
27
  * Icons are provided as assets and can be bundled into the application.
28
+ *
29
+ * Design in Figma: [Icon](https://www.figma.com/design/U218NNP4OsipaHOtv5flns/Iconography-%E2%9E%A1%EF%B8%8F?node-id=0-1)
28
30
  */
29
31
  export declare const DSIcon: ({ aria, className, name, size, source, theme, ...rest }: IconProps & (HTMLProps<HTMLImageElement> | SVGProps<SVGSVGElement>)) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { InputHTMLAttributes } from 'react';
1
+ import { InputHTMLAttributes, JSX } from 'react';
2
2
  import { BreakpointCustomizable, IconName } from '../../types';
3
3
  import { IconProps } from '../Icon/Icon';
4
4
  import { InputSize, SupportedInputTypes } from './Input.utils';
@@ -7,14 +7,25 @@ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
7
7
  id: string;
8
8
  /** Label text displayed above the input. */
9
9
  label: string;
10
- /** Accessibility label for the action button or icon. */
11
- actionButtonLabel?: string;
12
- /** Name of the icon used in the action button. */
13
- actionButtonIconName?: IconName;
14
- /** Custom source URL for the action button icon. */
15
- actionButtonIconSource?: IconProps['source'];
16
- /** Callback function called when the action button is clicked. */
17
- actionButtonOnClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
10
+ /** Action button props:
11
+ *
12
+ * `data-*`: Custom data attributes.
13
+ *
14
+ * `iconName`: Name of the icon used in the action button.
15
+ *
16
+ * `iconSource`: Custom source URL for the action button icon.
17
+ *
18
+ * `label`: Accessibility label for the action button or icon.
19
+ *
20
+ * `onClick`: Callback function called when the action button is clicked.
21
+ */
22
+ actionButtonProps?: {
23
+ [key: `data-${string}`]: string | undefined;
24
+ iconName?: IconName;
25
+ iconSource?: string;
26
+ label?: string;
27
+ onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
28
+ };
18
29
  /**
19
30
  * Provides hints to the browser for what type of data the input expects.
20
31
  * Use standardized values from the W3C specification for input purposes:
@@ -69,5 +80,7 @@ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
69
80
  * a leading icon, prefix and suffix.
70
81
  *
71
82
  * Depending on the `type` prop it expects different input types.
83
+ *
84
+ * Design in Figma: [Input](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=1744-7211&t=UBsmFURFENnuYSW1-4)
72
85
  */
73
- export declare const DSInput: ({ id, label, actionButtonLabel, actionButtonIconName, actionButtonIconSource, actionButtonOnClick, className, disabled, hint, hideLabel, invalid, leadingIconName, leadingIconSource, prefix, readonly, required, size, suffix, systemFeedback, type, ...rest }: InputProps) => JSX.Element;
86
+ export declare const DSInput: ({ id, label, actionButtonProps, className, disabled, hint, hideLabel, invalid, leadingIconName, leadingIconSource, prefix, readonly, required, size, suffix, systemFeedback, type, ...rest }: InputProps) => JSX.Element;
@@ -7,7 +7,7 @@ export declare const SUPPORTED_INPUT_TYPES: readonly ["color", "date", "datetime
7
7
  export type SupportedInputTypes = (typeof SUPPORTED_INPUT_TYPES)[number];
8
8
  export declare const UNSUPPORTED_INPUT_TYPES: readonly ["week", "hidden", "button", "checkbox", "password", "radio", "search", "reset", "submit", "image", "datetime"];
9
9
  export type UnSupportedInputTypes = (typeof UNSUPPORTED_INPUT_TYPES)[number];
10
- type ValidationProps = Pick<InputProps, 'id' | 'label' | 'prefix' | 'suffix' | 'leadingIconName' | 'leadingIconSource' | 'actionButtonIconName' | 'actionButtonIconSource'>;
10
+ type ValidationProps = Pick<InputProps, 'id' | 'label' | 'prefix' | 'suffix' | 'leadingIconName' | 'leadingIconSource' | 'actionButtonProps'>;
11
11
  /**
12
12
  * Validates the given properties of the DSInput component for common configuration errors.
13
13
  * This function is intended to be used in development mode to provide developers with
@@ -16,7 +16,7 @@ type ValidationProps = Pick<InputProps, 'id' | 'label' | 'prefix' | 'suffix' | '
16
16
  * @param validationProps - The subset of DSInput properties to validate. This includes
17
17
  * properties related to the prefix, suffix, icons and action button of the input.
18
18
  */
19
- export declare const validateInputProps: ({ id, label, prefix, suffix, leadingIconName, leadingIconSource, actionButtonIconName, actionButtonIconSource, }: ValidationProps) => void;
19
+ export declare const validateInputProps: ({ id, label, prefix, suffix, leadingIconName, leadingIconSource, actionButtonProps, }: ValidationProps) => void;
20
20
  /**
21
21
  * Validates the input type for the DSInput component and provides warnings for certain unsupported types.
22
22
  *
@@ -1,4 +1,4 @@
1
- import { InputHTMLAttributes } from 'react';
1
+ import { InputHTMLAttributes, JSX } from 'react';
2
2
  import { BreakpointCustomizable } from '../../types';
3
3
  import { InputSize } from '../Input/Input.utils';
4
4
  export interface InputPasswordProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'size'> {
@@ -39,14 +39,21 @@ export interface InputPasswordProps extends Omit<InputHTMLAttributes<HTMLInputEl
39
39
  * @default 'medium'
40
40
  */
41
41
  size?: InputSize;
42
- /** The show password button text label (for assistive technologies).
43
- * @default 'Show password'
42
+ /** Toggle password visibility button props:
43
+ *
44
+ * `data-*`: Custom data attributes.
45
+ *
46
+ * `hidePasswordText`: The hide password button text label (for assistive technologies).
47
+ * (default) 'Hide password'
48
+ *
49
+ * `showPasswordText`: The show password button text label (for assistive technologies).
50
+ * (default) 'Show password'
44
51
  */
45
- showPasswordText?: string;
46
- /** The hide password button text label (for assistive technologies).
47
- * @default 'Hide password'
48
- */
49
- hidePasswordText?: string;
52
+ togglePasswordVisibilityButtonProps?: {
53
+ [key: `data-${string}`]: string | undefined;
54
+ hidePasswordText?: string;
55
+ showPasswordText?: string;
56
+ };
50
57
  }
51
58
  /**
52
59
  * The `<DSInputPassword />` component is an input field that allows users to enter and edit passwords.
@@ -54,5 +61,7 @@ export interface InputPasswordProps extends Omit<InputHTMLAttributes<HTMLInputEl
54
61
  * a hint and a system feedback message.
55
62
  *
56
63
  * The user can toggle the visibility of the password by clicking on the action button.
64
+ *
65
+ * Design in Figma: [Input Password](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=2141-6655&t=UBsmFURFENnuYSW1-11)
57
66
  */
58
- export declare const DSInputPassword: ({ id, label, autoComplete, className, disabled, hidePasswordText, hint, hideLabel, invalid, readonly, required, showPasswordText, size, systemFeedback, ...rest }: InputPasswordProps) => JSX.Element;
67
+ export declare const DSInputPassword: ({ id, label, autoComplete, className, disabled, hint, hideLabel, invalid, readonly, required, togglePasswordVisibilityButtonProps, size, systemFeedback, ...rest }: InputPasswordProps) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { InputHTMLAttributes } from 'react';
1
+ import { InputHTMLAttributes, JSX } from 'react';
2
2
  import { BreakpointCustomizable } from '../../types';
3
3
  import { InputSize } from '../Input/Input.utils';
4
4
  export interface InputSearchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'size'> {
@@ -33,10 +33,20 @@ export interface InputSearchProps extends Omit<InputHTMLAttributes<HTMLInputElem
33
33
  * @default false
34
34
  */
35
35
  required?: boolean;
36
- /** Accessibility label for the submit button.
37
- * @default 'Search'
36
+ /** Submit button props:
37
+ *
38
+ * `data-*`: Custom data attributes.
39
+ *
40
+ * `label`: Accessibility label for the submit button.
41
+ * (default) 'Search'
42
+ *
43
+ * `onClick`: Callback function called when the submit button is clicked.
38
44
  */
39
- submitButtonLabel?: string;
45
+ submitButtonProps?: {
46
+ [key: `data-${string}`]: string | undefined;
47
+ label?: string;
48
+ onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
49
+ };
40
50
  /** Defines a system feedback message, shown when `invalid={true}`. */
41
51
  systemFeedback?: string;
42
52
  /** Size of the input.
@@ -45,8 +55,6 @@ export interface InputSearchProps extends Omit<InputHTMLAttributes<HTMLInputElem
45
55
  size?: InputSize;
46
56
  /** Value of the input. */
47
57
  value?: string;
48
- /** Callback function called when the submit button is clicked. */
49
- submitButtonOnClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
50
58
  }
51
59
  /**
52
60
  * The `<DSInputSearch />` component can be used as a dedicated search field input.
@@ -55,5 +63,7 @@ export interface InputSearchProps extends Omit<InputHTMLAttributes<HTMLInputElem
55
63
  *
56
64
  * A search button is always available on the right to submit the search request.
57
65
  * Additionally when the input is filled, a button to clear the input value becomes visible.
66
+ *
67
+ * Design in Figma: [Input Search](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=2141-6712&t=UBsmFURFENnuYSW1-11)
58
68
  */
59
- export declare const DSInputSearch: ({ id, label, className, clearButtonLabel, disabled, hint, hideLabel, invalid, readonly, required, size, submitButtonLabel, systemFeedback, value, submitButtonOnClick, onChange, ...rest }: InputSearchProps) => JSX.Element;
69
+ export declare const DSInputSearch: ({ id, label, className, clearButtonLabel, disabled, hint, hideLabel, invalid, readonly, required, size, systemFeedback, value, submitButtonProps, onChange, ...rest }: InputSearchProps) => JSX.Element;