@stihl-design-system/components 1.0.0-RC.34 → 1.0.0-RC.36

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 (161) hide show
  1. package/Placeholder.svg +1 -1
  2. package/{actionbutton.DLQJU6AV.js → actionbutton.Du5CT-Mt.js} +2 -2
  3. package/{actionlink.DEBrWfN3.js → actionlink.BK9CaQUY.js} +2 -2
  4. package/assets/Button.CmeGVEAY.css +1 -0
  5. package/assets/CustomReactSelect.BihX36Uo.css +1 -0
  6. package/assets/Fieldset.Oqu7pOBv.css +1 -0
  7. package/assets/InputFile.D7Ihod7B.css +1 -0
  8. package/assets/InputNumber.z_UqRYdv.css +1 -0
  9. package/assets/InputPassword.DZENjxJ9.css +1 -0
  10. package/assets/InputSearch.GBH9Eh6F.css +1 -0
  11. package/assets/LinkButton.88j5ckLu.css +1 -0
  12. package/assets/RadioGroup.q1lQ-HIZ.css +1 -0
  13. package/assets/Select.CL0fqx7X.css +1 -0
  14. package/assets/Slider.DWLuIsNj.css +1 -0
  15. package/assets/Textarea.B1HOakic.css +1 -0
  16. package/assets/buttonround.DBpMesfr.css +1 -0
  17. package/assets/input.RPDR8qdT.css +1 -0
  18. package/assets/radio.CsfCywxz.css +1 -0
  19. package/{banner.CI5HnDqD.js → banner.AhUeW3HM.js} +1 -1
  20. package/{breadcrumb.CtwAux3P.js → breadcrumb.DpIAQk3r.js} +3 -3
  21. package/button.CqNYOfSj.js +12 -0
  22. package/buttonround.9IS0tUqw.js +96 -0
  23. package/{checkbox.DwccD0Mp.js → checkbox.XYQI-ubx.js} +2 -2
  24. package/{checkboxgroup.ZiUFfCJ1.js → checkboxgroup.C66ZwglF.js} +2 -2
  25. package/{chip.B0s_fS8L.js → chip.B-pxhsdb.js} +2 -2
  26. package/{chipgroup.Dpu66bo5.js → chipgroup.CY3pWyLO.js} +4 -3
  27. package/chunks/{ActionButton.DOYsEHPr.js → ActionButton.BOYQYo5M.js} +1 -1
  28. package/chunks/{ActionLink.DbyciN3Y.js → ActionLink.BlwvrnPN.js} +1 -1
  29. package/chunks/{Breadcrumb.BgnpTo01.js → Breadcrumb.C_Yaz_vw.js} +2 -2
  30. package/chunks/Button.CQlIao-Z.js +139 -0
  31. package/chunks/{Checkbox.BcGXAuuP.js → Checkbox.D5X5T6Yg.js} +1 -1
  32. package/chunks/CheckboxGroup.BIspWqeW.js +74 -0
  33. package/chunks/{Chip.D6pubCZV.js → Chip.DIp5hdRH.js} +1 -1
  34. package/chunks/{CustomReactSelect.Dg3wC_VH.js → CustomReactSelect.D4kopDzX.js} +816 -800
  35. package/chunks/{Dialog.DpqSVrYR.js → Dialog.DMxHRrxo.js} +1 -1
  36. package/chunks/{Drawer.DISWybOa.js → Drawer.CatmvDHJ.js} +1 -1
  37. package/chunks/Fieldset.Bk8W5h13.js +81 -0
  38. package/chunks/{Header.7TQL_J9t.js → Header.18sOO0Gf.js} +1 -1
  39. package/chunks/{Input.utils.Dkw7gRrr.js → Input.utils.CL1u4Ctq.js} +27 -25
  40. package/chunks/InputFile.CjK3gEst.js +236 -0
  41. package/chunks/InputNumber.wfDjnz58.js +242 -0
  42. package/chunks/InputPassword.Ctb0xbwg.js +121 -0
  43. package/chunks/InputSearch.C-r5ktR8.js +149 -0
  44. package/chunks/LinkButton.CWibqvhs.js +140 -0
  45. package/chunks/{MegaMenu.CQbOeaib.js → MegaMenu.qttkjGbD.js} +7 -8
  46. package/chunks/{NavigationTabs.BwM-6CRm.js → NavigationTabs.SBNLx87A.js} +1 -1
  47. package/chunks/{Notification.CrojkJ0E.js → Notification.DYl1rcGu.js} +1 -1
  48. package/chunks/{Popover.Bb0Pjmvg.js → Popover.C9tT8xkE.js} +9 -10
  49. package/chunks/RadioGroup.BDsVAhCK.js +125 -0
  50. package/chunks/Select.BjBPN-6W.js +147 -0
  51. package/chunks/Slider.Bh2jhGKn.js +306 -0
  52. package/chunks/{Stepper.PTQdQBYf.js → Stepper.D1Yzw-gL.js} +2 -2
  53. package/chunks/{Tabs.DyP4whX0.js → Tabs.BvG-OPWa.js} +1 -1
  54. package/chunks/Textarea.DibBqiam.js +181 -0
  55. package/chunks/{Toast.ug_RjGgF.js → Toast.ldZRNpGM.js} +1 -1
  56. package/chunks/floating-ui.react.COTL3jH5.js +2984 -0
  57. package/chunks/{useBreakpoint.BzR_yaIv.js → useBreakpoint.1txsny17.js} +8 -5
  58. package/combobox.C2XUM4fM.js +67 -0
  59. package/components/Button/Button.d.ts +5 -0
  60. package/components/Button/Button.utils.d.ts +4 -5
  61. package/components/CheckboxGroup/CheckboxGroup.d.ts +14 -1
  62. package/components/Combobox/Combobox.utils.d.ts +3 -2
  63. package/components/Combobox/CustomReactSelect/CustomReactSelect.d.ts +13 -0
  64. package/components/Fieldset/Fieldset.d.ts +14 -1
  65. package/components/Input/Input.d.ts +13 -0
  66. package/components/Input/Input.utils.d.ts +2 -2
  67. package/components/InputFile/InputFile.d.ts +13 -0
  68. package/components/InputFile/InputFile.utils.d.ts +4 -2
  69. package/components/InputNumber/InputNumber.d.ts +17 -4
  70. package/components/InputNumber/InputNumber.utils.d.ts +2 -2
  71. package/components/InputPassword/InputPassword.d.ts +13 -0
  72. package/components/InputPassword/InputPassword.utils.d.ts +2 -2
  73. package/components/InputSearch/InputSearch.d.ts +13 -0
  74. package/components/InputSearch/InputSearch.utils.d.ts +2 -2
  75. package/components/LinkButton/LinkButton.d.ts +5 -0
  76. package/components/LinkButton/LinkButton.utils.d.ts +4 -5
  77. package/components/RadioGroup/RadioGroup.d.ts +13 -0
  78. package/components/RadioGroup/RadioGroup.utils.d.ts +3 -2
  79. package/components/Scroller/Scroller.test.d.ts +1 -0
  80. package/components/Select/Select.d.ts +13 -0
  81. package/components/Select/Select.utils.d.ts +2 -2
  82. package/components/Slider/Slider.d.ts +13 -0
  83. package/components/Textarea/Textarea.d.ts +13 -0
  84. package/components/Textarea/Textarea.utils.d.ts +2 -2
  85. package/{customreactselect.BFN8cYJi.js → customreactselect.BNwzk8Qi.js} +4 -3
  86. package/{dialog.CzM_Cxp0.js → dialog.D5geKDtZ.js} +2 -2
  87. package/{drawer._A9MQ8Cj.js → drawer.ucjhpIF4.js} +2 -2
  88. package/{fieldset.CId-NtI5.js → fieldset.Crx4Cb9a.js} +3 -2
  89. package/{filelist.DgVuWpR3.js → filelist.Bcu6TZRj.js} +1 -1
  90. package/{floatingactionbutton.Bsnncudt.js → floatingactionbutton.B5hJ2At2.js} +1 -1
  91. package/{header.CelAkqtp.js → header.A77yIAH3.js} +1 -1
  92. package/index.es.js +103 -102
  93. package/input.DL_M_Pg3.js +190 -0
  94. package/{inputfile.BjgJGefV.js → inputfile.iwsNHjrc.js} +6 -5
  95. package/{inputnumber.BcrxBVv0.js → inputnumber.raC_7KIP.js} +7 -6
  96. package/{inputpassword.CddmBW-T.js → inputpassword.Brte78Sr.js} +4 -4
  97. package/{inputsearch.CFOASqrd.js → inputsearch.BP0EzFcF.js} +6 -5
  98. package/{link.f8MMZo-w.js → link.BtZeNdii.js} +2 -2
  99. package/{linkbutton.BYAvi-_V.js → linkbutton.In_ROT0Z.js} +4 -4
  100. package/{logo100years.B4d_DIiB.js → logo100years.DDzCrczW.js} +10 -10
  101. package/{megamenu.Cy9Cc-mC.js → megamenu.BurL9MfF.js} +3 -3
  102. package/{navigationtabs.Dp7D2fnc.js → navigationtabs.EbmfKv1R.js} +2 -2
  103. package/{notification.B-norGiB.js → notification.tadg6lCc.js} +2 -2
  104. package/package.json +4 -3
  105. package/partials/index.js +32 -32
  106. package/{popover.DFVDZY-m.js → popover.CXq7VoZt.js} +3 -3
  107. package/radio.pyM5ma9s.js +134 -0
  108. package/{radiogroup.DaThoMfq.js → radiogroup.sdob0iPE.js} +3 -3
  109. package/{scroller.Cu7H_VCT.js → scroller.B1LijjCF.js} +1 -1
  110. package/{select.CMdKf7tC.js → select.CZ0C3yJD.js} +5 -4
  111. package/{skiptocontent.CHVh0hbr.js → skiptocontent.CAQy194o.js} +1 -1
  112. package/slider.B3u5du_Q.js +12 -0
  113. package/{step.DKf4CHGr.js → step.DaJFsafj.js} +1 -1
  114. package/{stepper.CCP_igpJ.js → stepper.DcaZESJi.js} +3 -3
  115. package/styles/scss/ds/lib/ds-internal/_input.scss +12 -3
  116. package/styles/scss/ds/lib/ds-internal/_link-button.scss +10 -2
  117. package/styles/scss/ds/lib/link-button.scss +11 -3
  118. package/{tablist.DZgo49nZ.js → tablist.mX5nQWwH.js} +1 -1
  119. package/{tabs.BkoT7feH.js → tabs.DjWfks34.js} +2 -2
  120. package/{textarea.DMn20z4p.js → textarea.69r-5faY.js} +4 -3
  121. package/{toast.Dvs8woTH.js → toast.FzO5KoiK.js} +2 -2
  122. package/{toastmanager.pi_Fhd5t.js → toastmanager.BGIYNKkT.js} +1 -1
  123. package/{tooltip.QJe_bfO-.js → tooltip.Cj3AvYgB.js} +22 -23
  124. package/{topbar.Bxwvp9Lf.js → topbar.CAujTZAE.js} +2 -2
  125. package/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  126. package/assets/Button.C8sNwIeW.css +0 -1
  127. package/assets/CustomReactSelect.E_jJFVew.css +0 -1
  128. package/assets/Fieldset.CW9dBvAo.css +0 -1
  129. package/assets/InputFile.BnIvK65P.css +0 -1
  130. package/assets/InputNumber.BoiCIR1f.css +0 -1
  131. package/assets/InputPassword.Dk3_vNLV.css +0 -1
  132. package/assets/InputSearch.C1_4cVCi.css +0 -1
  133. package/assets/LinkButton.B86yacK5.css +0 -1
  134. package/assets/RadioGroup.CM2mYOzc.css +0 -1
  135. package/assets/Select.COxLltX7.css +0 -1
  136. package/assets/Slider.DPEmJ3HD.css +0 -1
  137. package/assets/Textarea.y3MW7VW0.css +0 -1
  138. package/assets/buttonround.BN3vUDc_.css +0 -1
  139. package/assets/input.DTu4g_iA.css +0 -1
  140. package/assets/radio.CgpGvYc-.css +0 -1
  141. package/button.DHuKanZP.js +0 -13
  142. package/buttonround.CMlmEDaN.js +0 -96
  143. package/chunks/Button.DCZgBNmA.js +0 -142
  144. package/chunks/CheckboxGroup.BuFd1luB.js +0 -72
  145. package/chunks/Fieldset.DiMtr6Vw.js +0 -74
  146. package/chunks/InputFile.C8nt9Fu8.js +0 -218
  147. package/chunks/InputNumber.CbH1XJfl.js +0 -267
  148. package/chunks/InputPassword.DbdjuSiJ.js +0 -136
  149. package/chunks/InputSearch.joxmugiv.js +0 -173
  150. package/chunks/LinkButton.BZgIGgc8.js +0 -132
  151. package/chunks/RadioGroup.CexC4v2Z.js +0 -104
  152. package/chunks/Select.BEIdNMML.js +0 -164
  153. package/chunks/Slider.CR0zYHeZ.js +0 -291
  154. package/chunks/Textarea.Du2RII5u.js +0 -168
  155. package/chunks/floating-ui.dom.BT8pKtCQ.js +0 -1005
  156. package/chunks/floating-ui.react.3FjeMiuN.js +0 -1999
  157. package/combobox.jG5GRA7C.js +0 -65
  158. package/input.DuEbg7d6.js +0 -206
  159. package/radio.DHUfSPai.js +0 -126
  160. package/slider.C5dK6KcG.js +0 -11
  161. /package/components/InputNumber/{InputNumberutils.test.d.ts → InputNumber.utils.test.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  "use client";
2
- import { useState as u, useEffect as c } from "react";
2
+ import { useState as u } from "react";
3
+ import { u as c } from "./useIsomorphicLayoutEffect.CnJ9AMFS.js";
3
4
  const o = {
4
5
  base: 0,
5
6
  s: 320,
@@ -14,8 +15,8 @@ const o = {
14
15
  else
15
16
  break;
16
17
  return n;
17
- }, b = (e) => e && typeof e == "object" && "base" in e, f = () => {
18
- const [e, n] = u("base");
18
+ }, f = (e) => e && typeof e == "object" && "base" in e, b = () => {
19
+ const [e, n] = u(void 0);
19
20
  c(() => (t(), window.addEventListener("resize", t), () => window.removeEventListener("resize", t)), []);
20
21
  const t = () => {
21
22
  const r = window.innerWidth;
@@ -23,8 +24,10 @@ const o = {
23
24
  };
24
25
  return e;
25
26
  }, B = (e) => {
26
- const n = f();
27
- if (e && typeof e != "object" || !b(e))
27
+ const n = b();
28
+ if (!n)
29
+ return !1;
30
+ if (e && typeof e != "object" || !f(e))
28
31
  return e;
29
32
  const t = [...a].reverse();
30
33
  let r = e.base;
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { jsx as _ } from "react/jsx-runtime";
3
+ import { d as $ } from "./chunks/index.D-sRdssb.js";
4
+ import { v as z, c as G } from "./chunks/CustomReactSelect.D4kopDzX.js";
5
+ import { forwardRef as H } from "react";
6
+ const J = H((x, N) => {
7
+ const t = $.c(36);
8
+ let a, r, e, d, l, i, p, s, c, n, v, f, o, u, m;
9
+ if (t[0] !== x) {
10
+ const h = x ?? {}, {
11
+ id: q,
12
+ label: A,
13
+ className: B,
14
+ disabled: g,
15
+ dropdownOnFocus: w,
16
+ filterOption: I,
17
+ hideLabel: y,
18
+ invalid: D,
19
+ lang: E,
20
+ popoverContent: L,
21
+ popoverInfoButtonProps: R,
22
+ required: F,
23
+ tabSelectsValue: M,
24
+ variant: V,
25
+ ...j
26
+ } = h;
27
+ i = q, s = A, a = B, d = I, n = L, v = R, o = j, r = g === void 0 ? !1 : g, e = w === void 0 ? !1 : w, l = y === void 0 ? !1 : y, p = D === void 0 ? !1 : D, c = E === void 0 ? "en" : E, f = F === void 0 ? !1 : F, u = M === void 0 ? !0 : M, m = V === void 0 ? "single" : V;
28
+ const k = Array.isArray(o.options) ? o.options : [];
29
+ process.env.NODE_ENV !== "production" && z({
30
+ id: i,
31
+ label: s,
32
+ options: k,
33
+ hideLabel: l,
34
+ popoverContent: n
35
+ }), t[0] = x, t[1] = a, t[2] = r, t[3] = e, t[4] = d, t[5] = l, t[6] = i, t[7] = p, t[8] = s, t[9] = c, t[10] = n, t[11] = v, t[12] = f, t[13] = o, t[14] = u, t[15] = m;
36
+ } else
37
+ a = t[1], r = t[2], e = t[3], d = t[4], l = t[5], i = t[6], p = t[7], s = t[8], c = t[9], n = t[10], v = t[11], f = t[12], o = t[13], u = t[14], m = t[15];
38
+ const b = m === "multi", S = !e || b;
39
+ let C;
40
+ t[16] !== a || t[17] !== r || t[18] !== e || t[19] !== d || t[20] !== l || t[21] !== i || t[22] !== p || t[23] !== b || t[24] !== s || t[25] !== c || t[26] !== n || t[27] !== v || t[28] !== N || t[29] !== f || t[30] !== o || t[31] !== S || t[32] !== u ? (C = {
41
+ id: i,
42
+ label: s,
43
+ className: a,
44
+ disabled: r,
45
+ filterOption: d,
46
+ hideLabel: l,
47
+ isMulti: b,
48
+ invalid: p,
49
+ lang: c,
50
+ openMenuOnClick: e,
51
+ openMenuOnFocus: e,
52
+ isClearable: S,
53
+ required: f,
54
+ ref: N,
55
+ tabSelectsValue: u,
56
+ popoverContent: n,
57
+ popoverInfoButtonProps: v,
58
+ ...o
59
+ }, t[16] = a, t[17] = r, t[18] = e, t[19] = d, t[20] = l, t[21] = i, t[22] = p, t[23] = b, t[24] = s, t[25] = c, t[26] = n, t[27] = v, t[28] = N, t[29] = f, t[30] = o, t[31] = S, t[32] = u, t[33] = C) : C = t[33];
60
+ const P = C;
61
+ let O;
62
+ return t[34] !== P ? (O = /* @__PURE__ */ _(G, { ...P }), t[34] = P, t[35] = O) : O = t[35], O;
63
+ });
64
+ J.displayName = "DSCombobox";
65
+ export {
66
+ J as DSCombobox
67
+ };
@@ -43,6 +43,11 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
43
43
  * @default 'medium'
44
44
  */
45
45
  size?: ButtonSize;
46
+ /** Stretches the button over the parent's width.
47
+ * `boolean | { base: boolean; s?: boolean; m?: boolean; l?: boolean; xl?: boolean; }`
48
+ * @default false
49
+ */
50
+ stretched?: BreakpointCustomizable<boolean>;
46
51
  /** Defines the theme.
47
52
  * @default 'light'
48
53
  */
@@ -5,19 +5,18 @@ export declare const BUTTON_VARIANT: readonly ["highlight", "filled", "outline",
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';
8
- type ValidationProps = Pick<ButtonProps, 'variant' | 'size' | 'theme'>;
8
+ type ValidationProps = Pick<ButtonProps, 'hideLabel' | 'iconName' | 'iconSource' | 'isFlush' | 'size' | 'stretched' | 'theme' | 'variant'>;
9
9
  /**
10
10
  * Performs runtime validation on a subset of `DSButton` props to detect
11
11
  * misconfigurations during development.
12
12
  *
13
- * This function provides warnings or throws errors when invalid combinations
14
- * of `variant`, `size`, or `theme` are detected—particularly for the `navigation` variant.
13
+ * This function provides warnings or throws errors when invalid combinations of props occur.
15
14
  *
16
15
  * Intended for development use only; should not be used in production environments.
17
16
  *
18
- * @param validationProps - An object containing the `variant`, `size`, and `theme` props
17
+ * @param validationProps - An object containing the props to validate
19
18
  * from the `DSButton` component. These are validated to ensure
20
19
  * they are used in supported combinations.
21
20
  */
22
- export declare const validateButtonProps: ({ variant, size, theme, }: ValidationProps) => void;
21
+ export declare const validateButtonProps: ({ hideLabel, iconName, iconSource, isFlush, size, stretched, theme, variant, }: ValidationProps) => void;
23
22
  export {};
@@ -31,6 +31,19 @@ export interface CheckboxGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetE
31
31
  * @default false
32
32
  */
33
33
  invalid?: boolean;
34
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
35
+ popoverContent?: React.ReactNode;
36
+ /** Popover info button props:
37
+ *
38
+ * `data-*`: Custom data attributes.
39
+ *
40
+ * `label`: Accessibility label for the default anchor button.
41
+ * (default) 'Toggle popover'
42
+ */
43
+ popoverInfoButtonProps?: {
44
+ [key: `data-${string}`]: string | undefined;
45
+ label?: string;
46
+ };
34
47
  /** Marks the checkbox group as required.
35
48
  * When this property is set, an asterisk (*) is automatically appended to the checkbox group's legend.
36
49
  * @default false
@@ -46,4 +59,4 @@ export interface CheckboxGroupProps extends FieldsetHTMLAttributes<HTMLFieldSetE
46
59
  *
47
60
  * Design in Figma: [Checkbox Group](https://www.figma.com/design/qXldpLO6gxHJNLdcXIPxYt/Core-Components-%F0%9F%92%A0?node-id=5626-11362&t=UBsmFURFENnuYSW1-4)
48
61
  * */
49
- export declare const DSCheckboxGroup: ({ children, legend, className, description, direction, disabled, id, invalid, required, systemFeedback, ...rest }: CheckboxGroupProps) => JSX.Element;
62
+ export declare const DSCheckboxGroup: ({ children, legend, className, description, direction, disabled, id, invalid, popoverContent, popoverInfoButtonProps, required, systemFeedback, ...rest }: CheckboxGroupProps) => JSX.Element;
@@ -2,7 +2,7 @@ import { IconName } from '../../types';
2
2
  import { ComboboxProps } from './Combobox';
3
3
  import { FilterOptionOption, GroupBase, OptionsOrGroups } from 'react-select';
4
4
  export type ComboboxVariant = 'single' | 'multi';
5
- type ValidationProps = Pick<ComboboxProps, 'id' | 'label' | 'options'>;
5
+ type ValidationProps = Pick<ComboboxProps, 'id' | 'label' | 'options' | 'hideLabel' | 'popoverContent'>;
6
6
  export type ComboboxFilterOption<Option> = FilterOptionOption<Option>;
7
7
  /**
8
8
  * Validates the given properties of the DSCombobox component for common configuration errors.
@@ -12,7 +12,7 @@ export type ComboboxFilterOption<Option> = FilterOptionOption<Option>;
12
12
  * @param validationProps - The subset of DSCombobox properties to validate. This includes
13
13
  * id and label.
14
14
  */
15
- export declare const validateComboboxProps: ({ id, label, options, }: ValidationProps) => void;
15
+ export declare const validateComboboxProps: ({ id, label, options, hideLabel, popoverContent, }: ValidationProps) => void;
16
16
  export declare const COMBOBOX_SIZE: readonly ["medium", "small"];
17
17
  export type ComboboxSize = (typeof COMBOBOX_SIZE)[number];
18
18
  export interface ComboboxOption {
@@ -56,6 +56,7 @@ export declare const DS_COMBOBOX_TRANSLATIONS_EN: {
56
56
  result_one: string;
57
57
  result_other: string;
58
58
  resultsAvailable: string;
59
+ togglePopover: string;
59
60
  };
60
61
  export declare const DS_COMBOBOX_TRANSLATIONS_DE: ComboboxAriaTranslations;
61
62
  export declare const DS_COMBOBOX_TRANSLATIONS: Record<ComboboxLanguage, ComboboxAriaTranslations>;
@@ -47,6 +47,19 @@ export interface CustomReactSelectProps<IsMulti extends boolean> extends PickedR
47
47
  * @default 'en'
48
48
  */
49
49
  lang?: ComboboxLanguage;
50
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
51
+ popoverContent?: React.ReactNode;
52
+ /** Popover info button props:
53
+ *
54
+ * `data-*`: Custom data attributes.
55
+ *
56
+ * `label`: Accessibility label for the default anchor button.
57
+ * (default) 'Toggle popover'
58
+ */
59
+ popoverInfoButtonProps?: {
60
+ [key: `data-${string}`]: string | undefined;
61
+ label?: string;
62
+ };
50
63
  /** Indicates that the DSCombobox is required.
51
64
  * @default false
52
65
  */
@@ -26,6 +26,19 @@ export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElemen
26
26
  * @default false
27
27
  */
28
28
  invalid?: boolean;
29
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
30
+ popoverContent?: React.ReactNode;
31
+ /** Popover info button props:
32
+ *
33
+ * `data-*`: Custom data attributes.
34
+ *
35
+ * `label`: Accessibility label for the default anchor button.
36
+ * (default) 'Toggle popover'
37
+ */
38
+ popoverInfoButtonProps?: {
39
+ [key: `data-${string}`]: string | undefined;
40
+ label?: string;
41
+ };
29
42
  /**
30
43
  * Undocumented property for visually setting the Asterisk.
31
44
  * @default false
@@ -39,4 +52,4 @@ export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElemen
39
52
  *
40
53
  * Design in Figma: [Fieldset](https://www.figma.com/design/Ie2r0R9QwjEc7O3nrFbXhV/Web-Pattern-Library?node-id=8-154)
41
54
  * */
42
- export declare const DSFieldset: ({ children, legend, className, description, disabled, id, invalid, required, systemFeedback, ...rest }: FieldsetProps) => JSX.Element;
55
+ export declare const DSFieldset: ({ children, legend, className, description, disabled, id, invalid, popoverContent, popoverInfoButtonProps, required, systemFeedback, ...rest }: FieldsetProps) => JSX.Element;
@@ -51,6 +51,19 @@ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
51
51
  * @default false
52
52
  */
53
53
  invalid?: boolean;
54
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
55
+ popoverContent?: React.ReactNode;
56
+ /** Popover info button props:
57
+ *
58
+ * `data-*`: Custom data attributes.
59
+ *
60
+ * `label`: Accessibility label for the default anchor button.
61
+ * (default) 'Toggle popover'
62
+ */
63
+ popoverInfoButtonProps?: {
64
+ [key: `data-${string}`]: string | undefined;
65
+ label?: string;
66
+ };
54
67
  /** Text displayed as a prefix inside the input, maximum 8 characters. */
55
68
  prefix?: string;
56
69
  /** Enables the readonly state of the input.
@@ -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", "file", "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' | 'actionButtonProps'>;
10
+ type ValidationProps = Pick<InputProps, 'hideLabel' | 'id' | 'label' | 'prefix' | 'popoverContent' | '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, actionButtonProps, }: ValidationProps) => void;
19
+ export declare const validateInputProps: ({ hideLabel, id, label, prefix, popoverContent, 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
  *
@@ -55,6 +55,19 @@ export interface InputFileProps extends InputHTMLAttributes<HTMLInputElement> {
55
55
  * @default 'en'
56
56
  */
57
57
  lang?: InputFileLanguage;
58
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
59
+ popoverContent?: React.ReactNode;
60
+ /** Popover info button props:
61
+ *
62
+ * `data-*`: Custom data attributes.
63
+ *
64
+ * `label`: Accessibility label for the default anchor button.
65
+ * (default) 'Toggle popover'
66
+ */
67
+ popoverInfoButtonProps?: {
68
+ [key: `data-${string}`]: string | undefined;
69
+ label?: string;
70
+ };
58
71
  /** Maximum size allowed in MegaBytes.
59
72
  * @default 7
60
73
  */
@@ -9,6 +9,7 @@ export declare const DS_INPUT_FILE_TRANSLATIONS_EN: {
9
9
  fileListPreviewAltText: string;
10
10
  filesSelectedHint: string;
11
11
  required: string;
12
+ togglePopover: string;
12
13
  };
13
14
  export declare const DS_INPUT_FILE_TRANSLATIONS_DE: {
14
15
  dragAndDropInstructions: string;
@@ -18,6 +19,7 @@ export declare const DS_INPUT_FILE_TRANSLATIONS_DE: {
18
19
  fileListPreviewAltText: string;
19
20
  filesSelectedHint: string;
20
21
  required: string;
22
+ togglePopover: string;
21
23
  };
22
24
  export declare const DS_INPUT_FILE_TRANSLATIONS: {
23
25
  [key in InputFileLanguage]: InputFileTranslations;
@@ -28,7 +30,7 @@ export declare const DS_INPUT_FILE_TRANSLATIONS: {
28
30
  * @returns true if the file would have been allowed by the browser’s picker UI
29
31
  */
30
32
  export declare const fileMatchesAccept: (file: File, acceptAttr: string) => boolean;
31
- type ValidationProps = Pick<InputFileProps, 'id' | 'label' | 'inputFileButtonProps'>;
33
+ type ValidationProps = Pick<InputFileProps, 'id' | 'label' | 'inputFileButtonProps' | 'hideLabel' | 'popoverContent'>;
32
34
  /**
33
35
  * Validates the required props for the `DSInputFile` component.
34
36
  *
@@ -42,5 +44,5 @@ type ValidationProps = Pick<InputFileProps, 'id' | 'label' | 'inputFileButtonPro
42
44
  * @param {ValidationProps} params -The subset of DSInputFile properties to validate. This includes
43
45
  * properties related to the prefix, suffix, icons and action button of the input.
44
46
  */
45
- export declare const validateInputFileProps: ({ id, label, inputFileButtonProps, }: ValidationProps) => void;
47
+ export declare const validateInputFileProps: ({ id, label, inputFileButtonProps, hideLabel, popoverContent, }: ValidationProps) => void;
46
48
  export {};
@@ -61,8 +61,25 @@ export interface InputNumberProps extends Omit<InputHTMLAttributes<HTMLInputElem
61
61
  * @default 0
62
62
  */
63
63
  min?: number | string;
64
+ /** The interval between legal numbers of the input.
65
+ * @default 1
66
+ */
67
+ step?: number | string;
64
68
  /** Text displayed as a prefix inside the input, maximum 8 characters. */
65
69
  prefix?: string;
70
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
71
+ popoverContent?: React.ReactNode;
72
+ /** Popover info button props:
73
+ *
74
+ * `data-*`: Custom data attributes.
75
+ *
76
+ * `label`: Accessibility label for the default anchor button.
77
+ * (default) 'Toggle popover'
78
+ */
79
+ popoverInfoButtonProps?: {
80
+ [key: `data-${string}`]: string | undefined;
81
+ label?: string;
82
+ };
66
83
  /** Enables the readonly state of the input.
67
84
  * @default false
68
85
  */
@@ -71,10 +88,6 @@ export interface InputNumberProps extends Omit<InputHTMLAttributes<HTMLInputElem
71
88
  * @default false
72
89
  */
73
90
  required?: boolean;
74
- /** The interval between legal numbers of the input.
75
- * @default 1
76
- */
77
- step?: number | string;
78
91
  /** Text displayed as a suffix inside the input, maximum 5 characters. */
79
92
  suffix?: string;
80
93
  /** Defines a system feedback message, shown when `invalid={true}`. */
@@ -1,5 +1,5 @@
1
1
  import { InputNumberProps } from './InputNumber';
2
- type ValidationProps = Pick<InputNumberProps, 'id' | 'label' | 'prefix' | 'suffix'>;
2
+ type ValidationProps = Pick<InputNumberProps, 'id' | 'label' | 'prefix' | 'suffix' | 'hideLabel' | 'popoverContent'>;
3
3
  export declare const isValidValue: (value: string | number | readonly string[] | undefined | null) => boolean;
4
4
  /**
5
5
  * Validates the given properties of the DSInputNumber component for common configuration errors.
@@ -9,5 +9,5 @@ export declare const isValidValue: (value: string | number | readonly string[] |
9
9
  * @param validationProps - The subset of DSInputNumber properties to validate. This includes
10
10
  * properties related to the prefix, suffix, icons and action button of the input.
11
11
  */
12
- export declare const validateInputNumberProps: ({ id, label, prefix, suffix, }: ValidationProps) => void;
12
+ export declare const validateInputNumberProps: ({ id, label, prefix, suffix, hideLabel, popoverContent, }: ValidationProps) => void;
13
13
  export {};
@@ -25,6 +25,19 @@ export interface InputPasswordProps extends Omit<InputHTMLAttributes<HTMLInputEl
25
25
  * @default false
26
26
  */
27
27
  invalid?: boolean;
28
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
29
+ popoverContent?: React.ReactNode;
30
+ /** Popover info button props:
31
+ *
32
+ * `data-*`: Custom data attributes.
33
+ *
34
+ * `label`: Accessibility label for the default anchor button.
35
+ * (default) 'Toggle popover'
36
+ */
37
+ popoverInfoButtonProps?: {
38
+ [key: `data-${string}`]: string | undefined;
39
+ label?: string;
40
+ };
28
41
  /** Enables the readonly state of the input.
29
42
  * @default false
30
43
  */
@@ -1,5 +1,5 @@
1
1
  import { InputPasswordProps } from './InputPassword';
2
- type ValidationProps = Pick<InputPasswordProps, 'id' | 'label'>;
2
+ type ValidationProps = Pick<InputPasswordProps, 'id' | 'label' | 'hideLabel' | 'popoverContent'>;
3
3
  /**
4
4
  * Validates the given properties of the DSInputPassword component for common configuration errors.
5
5
  * This function is intended to be used in development mode to provide developers with
@@ -8,5 +8,5 @@ type ValidationProps = Pick<InputPasswordProps, 'id' | 'label'>;
8
8
  * @param validationProps - The subset of DSInputPassword properties to validate. This includes
9
9
  * id and label.
10
10
  */
11
- export declare const validateInputPasswordProps: ({ id, label }: ValidationProps) => void;
11
+ export declare const validateInputPasswordProps: ({ id, label, hideLabel, popoverContent, }: ValidationProps) => void;
12
12
  export {};
@@ -25,6 +25,19 @@ export interface InputSearchProps extends Omit<InputHTMLAttributes<HTMLInputElem
25
25
  * @default false
26
26
  */
27
27
  invalid?: boolean;
28
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
29
+ popoverContent?: React.ReactNode;
30
+ /** Popover info button props:
31
+ *
32
+ * `data-*`: Custom data attributes.
33
+ *
34
+ * `label`: Accessibility label for the default anchor button.
35
+ * (default) 'Toggle popover'
36
+ */
37
+ popoverInfoButtonProps?: {
38
+ [key: `data-${string}`]: string | undefined;
39
+ label?: string;
40
+ };
28
41
  /** Enables the readonly state of the input.
29
42
  * @default false
30
43
  */
@@ -1,5 +1,5 @@
1
1
  import { InputSearchProps } from './InputSearch';
2
- type ValidationProps = Pick<InputSearchProps, 'id' | 'label'>;
2
+ type ValidationProps = Pick<InputSearchProps, 'id' | 'label' | 'hideLabel' | 'popoverContent'>;
3
3
  /**
4
4
  * Validates the given properties of the DSInputSearch component for common configuration errors.
5
5
  * This function is intended to be used in development mode to provide developers with
@@ -8,7 +8,7 @@ type ValidationProps = Pick<InputSearchProps, 'id' | 'label'>;
8
8
  * @param validationProps - The subset of DSInputSearch properties to validate. This includes
9
9
  * id and label.
10
10
  */
11
- export declare const validateInputSearchProps: ({ id, label }: ValidationProps) => void;
11
+ export declare const validateInputSearchProps: ({ id, label, hideLabel, popoverContent, }: ValidationProps) => void;
12
12
  /**
13
13
  * Determines whether the specified HTMLElement is within a form element.
14
14
  *
@@ -53,6 +53,11 @@ export interface LinkButtonProps extends CommonLinkProps {
53
53
  * @default 'medium'
54
54
  */
55
55
  size?: LinkButtonSize;
56
+ /** Stretches the link over the parent's width.
57
+ * `boolean | { base: boolean; s?: boolean; m?: boolean; l?: boolean; xl?: boolean; }`
58
+ * @default false
59
+ */
60
+ stretched?: BreakpointCustomizable<boolean>;
56
61
  /** Visual style variant of the link.
57
62
  * @default 'filled'
58
63
  */
@@ -7,19 +7,18 @@ export type LinkButtonIconPosition = 'left' | 'right';
7
7
  export type LinkButtonRel = 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'next' | 'nofollow' | 'noreferrer' | 'noopener' | 'prev' | 'search' | 'tag';
8
8
  export type LinkButtonReferrerPolicy = 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
9
9
  export type LinkButtonAriaAttribute = 'aria-label' | 'aria-current' | 'aria-labelledby';
10
- type ValidationProps = Pick<LinkButtonProps, 'variant' | 'size' | 'theme'>;
10
+ type ValidationProps = Pick<LinkButtonProps, 'hideLabel' | 'iconName' | 'iconSource' | 'isFlush' | 'size' | 'stretched' | 'theme' | 'variant'>;
11
11
  /**
12
12
  * Performs runtime validation on a subset of `DSLinkButton` props to detect
13
13
  * misconfigurations during development.
14
14
  *
15
- * This function provides warnings or throws errors when invalid combinations
16
- * of `variant`, `size`, or `theme` are detected—particularly for the `navigation` variant.
15
+ * This function provides warnings or throws errors when invalid combinations of props occur.
17
16
  *
18
17
  * Intended for development use only; should not be used in production environments.
19
18
  *
20
- * @param validationProps - An object containing the `variant`, `size`, and `theme` props
19
+ * @param validationProps - An object containing the props to validate
21
20
  * from the `DSLinkButton` component. These are validated to ensure
22
21
  * they are used in supported combinations.
23
22
  */
24
- export declare const validateLinkButtonProps: ({ variant, size, theme, }: ValidationProps) => void;
23
+ export declare const validateLinkButtonProps: ({ hideLabel, iconName, iconSource, isFlush, size, stretched, theme, variant, }: ValidationProps) => void;
25
24
  export {};
@@ -45,6 +45,19 @@ export interface RadioGroupProps extends Omit<FieldsetHTMLAttributes<HTMLFieldSe
45
45
  * @default false
46
46
  */
47
47
  invalid?: boolean;
48
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
49
+ popoverContent?: React.ReactNode;
50
+ /** Popover info button props:
51
+ *
52
+ * `data-*`: Custom data attributes.
53
+ *
54
+ * `label`: Accessibility label for the default anchor button.
55
+ * (default) 'Toggle popover'
56
+ */
57
+ popoverInfoButtonProps?: {
58
+ [key: `data-${string}`]: string | undefined;
59
+ label?: string;
60
+ };
48
61
  /** Marks the radio group as required.
49
62
  * When this property is set, an asterisk (*) is automatically appended to the radio group's legend.
50
63
  * @default false
@@ -1,8 +1,9 @@
1
1
  import { RadioProps } from '../Radio/Radio';
2
2
  import { RadioGroupProps } from './RadioGroup';
3
3
  export type RadioGroupOption = Pick<RadioProps, 'label' | 'value' | 'className' | 'customArea' | 'hint' | 'isCustomAreaAbove'>;
4
- type ValidationProps = Pick<RadioGroupProps, 'legend' | 'name' | 'options' | 'description' | 'direction' | 'id' | 'systemFeedback'>;
4
+ type ValidationProps = Pick<RadioGroupProps, 'legend' | 'name' | 'options' | 'description' | 'direction' | 'hideUncheckedHints' | 'id' | 'systemFeedback'>;
5
5
  export declare const optionsHaveHint: (options: RadioGroupOption[]) => boolean;
6
6
  export declare const optionsHaveCustomAreaInline: (options: RadioGroupOption[]) => boolean;
7
- export declare const validateRadioGroupProps: ({ legend, name, options, description, direction, id, systemFeedback, }: ValidationProps) => void;
7
+ export declare const optionsHaveCustomAreaAbove: (options: RadioGroupOption[]) => boolean;
8
+ export declare const validateRadioGroupProps: ({ legend, name, options, description, direction, hideUncheckedHints, id, systemFeedback, }: ValidationProps) => void;
8
9
  export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -28,6 +28,19 @@ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement
28
28
  * @default false
29
29
  */
30
30
  invalid?: boolean;
31
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
32
+ popoverContent?: React.ReactNode;
33
+ /** Popover info button props:
34
+ *
35
+ * `data-*`: Custom data attributes.
36
+ *
37
+ * `label`: Accessibility label for the default anchor button.
38
+ * (default) 'Toggle popover'
39
+ */
40
+ popoverInfoButtonProps?: {
41
+ [key: `data-${string}`]: string | undefined;
42
+ label?: string;
43
+ };
31
44
  /** Modifies the empty option label to ensure a conscious choice.
32
45
  * @default 'Select'
33
46
  */
@@ -1,7 +1,7 @@
1
1
  import { HTMLAttributes } from 'react';
2
2
  import { GroupBase, OptionsOrGroups } from 'react-select';
3
3
  import { SelectProps } from './Select';
4
- type ValidationProps = Pick<SelectProps, 'id' | 'label' | 'options'>;
4
+ type ValidationProps = Pick<SelectProps, 'id' | 'label' | 'options' | 'hideLabel' | 'popoverContent'>;
5
5
  export interface SelectOption extends HTMLAttributes<HTMLOptionElement> {
6
6
  label: string;
7
7
  value: string | number;
@@ -19,7 +19,7 @@ export type SelectSize = (typeof SELECT_SIZE)[number];
19
19
  * @param validationProps - The subset of DSSelect properties to validate. This includes
20
20
  * id and label.
21
21
  */
22
- export declare const validateSelectProps: ({ id, label, options, }: ValidationProps) => void;
22
+ export declare const validateSelectProps: ({ id, label, options, hideLabel, popoverContent, }: ValidationProps) => void;
23
23
  /**
24
24
  * Determines the initial visibility of the placeholder based on the `placeholder` string and
25
25
  * the values of `defaultValue` and `value` from the props.
@@ -51,6 +51,19 @@ export interface SliderProps extends InputHTMLAttributes<HTMLInputElement> {
51
51
  suffix?: string;
52
52
  size?: InputSize;
53
53
  };
54
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
55
+ popoverContent?: React.ReactNode;
56
+ /** Popover info button props:
57
+ *
58
+ * `data-*`: Custom data attributes.
59
+ *
60
+ * `label`: Accessibility label for the default anchor button.
61
+ * (default) 'Toggle popover'
62
+ */
63
+ popoverInfoButtonProps?: {
64
+ [key: `data-${string}`]: string | undefined;
65
+ label?: string;
66
+ };
54
67
  }
55
68
  /**
56
69
  * The `<DSSlider />` component is a flexible range input that allows users to select a value within a defined range.
@@ -31,6 +31,19 @@ export interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaE
31
31
  invalid?: boolean;
32
32
  /** Maximum length of the textarea value - if set, a character counter is visible beneath the textarea. */
33
33
  maxLength?: number;
34
+ /** Shows an info button next to the label that triggers a popover with the passed content. */
35
+ popoverContent?: React.ReactNode;
36
+ /** Popover info button props:
37
+ *
38
+ * `data-*`: Custom data attributes.
39
+ *
40
+ * `label`: Accessibility label for the default anchor button.
41
+ * (default) 'Toggle popover'
42
+ */
43
+ popoverInfoButtonProps?: {
44
+ [key: `data-${string}`]: string | undefined;
45
+ label?: string;
46
+ };
34
47
  /** Enables the readonly state of the textarea.
35
48
  * @default false
36
49
  */
@@ -1,7 +1,7 @@
1
1
  import { TextareaProps } from './Textarea';
2
2
  export declare const TEXTAREA_SIZE: readonly ["medium", "small"];
3
3
  export type TextareaSize = (typeof TEXTAREA_SIZE)[number];
4
- type ValidationProps = Pick<TextareaProps, 'id' | 'label'>;
4
+ type ValidationProps = Pick<TextareaProps, 'id' | 'label' | 'hideLabel' | 'popoverContent'>;
5
5
  /**
6
6
  * Validates the given properties of the DSTextarea component for common configuration errors.
7
7
  * This function is intended to be used in development mode to provide developers with
@@ -9,5 +9,5 @@ type ValidationProps = Pick<TextareaProps, 'id' | 'label'>;
9
9
  *
10
10
  * @param validationProps - The subset of DSTextarea properties to validate.
11
11
  */
12
- export declare const validateTextareaProps: ({ id, label }: ValidationProps) => void;
12
+ export declare const validateTextareaProps: ({ id, label, hideLabel, popoverContent, }: ValidationProps) => void;
13
13
  export {};