@stihl-design-system/components 1.0.0-RC.2 → 1.0.0-RC.4

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 (156) hide show
  1. package/README.md +1 -1
  2. package/arialiveregions.49Zyf6mj.js +27 -0
  3. package/arialiveregions.d.ts +1 -0
  4. package/assets/CustomReactSelect.B0rJLjN0.css +1 -0
  5. package/assets/Fieldset.xazpUXJX.css +1 -0
  6. package/assets/InputPassword.C3Uyj7oA.css +1 -0
  7. package/assets/InputSearch.tL3e9-Ob.css +1 -0
  8. package/assets/InputStepper.paPJix5A.css +1 -0
  9. package/assets/Notification.CCCbfXEz.css +1 -0
  10. package/assets/RadioGroup.Ur8Ro-XL.css +1 -0
  11. package/assets/Select.D2qBxaHP.css +1 -0
  12. package/assets/Textarea.BKbocznb.css +1 -0
  13. package/assets/Toast.CAP_EwDX.css +1 -0
  14. package/assets/arialiveregions.VnhjP8Gr.css +1 -0
  15. package/assets/asterisk.C-o6rbGQ.css +1 -0
  16. package/assets/button.BuIpnG-S.css +1 -0
  17. package/assets/buttonround.C3ph5Yyu.css +1 -0
  18. package/assets/checkbox.BsFEWfQe.css +1 -0
  19. package/assets/dialog.BGK3mgk7.css +1 -0
  20. package/assets/heading.CGFucb-C.css +1 -0
  21. package/assets/input.BcP5kkZ2.css +1 -0
  22. package/assets/link.DQy_OhwC.css +1 -0
  23. package/assets/linkstandalone.Dh6bE5Fb.css +1 -0
  24. package/assets/radio.CSHQGdpr.css +1 -0
  25. package/assets/switch.sqve8ApJ.css +1 -0
  26. package/assets/title.CE0Dm7PI.css +1 -0
  27. package/asterisk.DU8THnoC.js +8 -0
  28. package/button.DX_nxoJC.js +135 -0
  29. package/buttonround.CXsBk9nL.js +118 -0
  30. package/{checkbox.Bx5D_GAe.js → checkbox.B43oeMeC.js} +30 -30
  31. package/checkboxgroup.C7aCjYds.js +9 -0
  32. package/chunks/AriaLiveRegions.utils.DzWI5KCU.js +31 -0
  33. package/{checkboxgroup.gQwSHy4i.js → chunks/CheckboxGroup.CS6Q_TeZ.js} +27 -20
  34. package/chunks/{CustomReactSelect.Pvkkof1f.js → CustomReactSelect.DtmbYZUf.js} +516 -510
  35. package/chunks/Fieldset.BokeZzG5.js +99 -0
  36. package/chunks/Icon.9gDIp6p4.js +217 -0
  37. package/chunks/{Input.utils.Bly6ZzLI.js → Input.utils.AKWCNkpA.js} +12 -8
  38. package/chunks/InputPassword.jpUCijp7.js +140 -0
  39. package/chunks/InputSearch.BmOtAZcR.js +190 -0
  40. package/chunks/InputStepper.DTKjUL4U.js +291 -0
  41. package/chunks/Notification.CUPOlHAX.js +93 -0
  42. package/{radiogroup.7ptQiohb.js → chunks/RadioGroup.DpwnVv7u.js} +37 -29
  43. package/chunks/RadioGroup.module.bi3leRes.js +11 -0
  44. package/chunks/Select.DkDZo0ky.js +193 -0
  45. package/chunks/Textarea.C938p79X.js +195 -0
  46. package/chunks/Toast.CLYrwQVO.js +89 -0
  47. package/chunks/{circle-info-colored.DLY6BTL4.js → circle-info-colored.D2pp54gf.js} +3 -3
  48. package/chunks/whatsapp.CPpu-7Nn.js +10 -0
  49. package/{combobox.BOJ7aq_B.js → combobox.BaSkiD6f.js} +7 -7
  50. package/components/AriaLiveRegions/AriaLiveRegions.d.ts +4 -0
  51. package/components/AriaLiveRegions/AriaLiveRegions.utils.d.ts +5 -0
  52. package/components/AriaLiveRegions/AriaLiveRegions.utils.test.d.ts +1 -0
  53. package/components/Checkbox/Checkbox.d.ts +1 -1
  54. package/components/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  55. package/components/CheckboxGroup/CheckboxGroup.utils.d.ts +1 -1
  56. package/components/Dialog/Dialog.d.ts +11 -0
  57. package/components/Dialog/Dialog.utils.d.ts +0 -0
  58. package/components/Fieldset/Fieldset.d.ts +1 -1
  59. package/components/Fieldset/Fieldset.utils.d.ts +1 -1
  60. package/components/Heading/Heading.utils.d.ts +1 -1
  61. package/components/Logo/Logo.d.ts +4 -2
  62. package/components/Logo/Logo.utils.d.ts +1 -0
  63. package/components/Notification/Notification.d.ts +26 -0
  64. package/components/Notification/Notification.test.d.ts +1 -0
  65. package/components/Notification/Notification.utils.d.ts +5 -0
  66. package/components/RadioGroup/RadioGroup.d.ts +1 -1
  67. package/components/RadioGroup/RadioGroup.utils.d.ts +1 -1
  68. package/components/Toast/Toast.d.ts +21 -0
  69. package/components/Toast/Toast.utils.d.ts +9 -0
  70. package/components/Toast/ToastManager.d.ts +6 -0
  71. package/components/Toast/ToastManager.test.d.ts +1 -0
  72. package/components/Toast/ToastManager.utils.d.ts +2 -0
  73. package/components/Toast/ToastManager.utils.test.d.ts +1 -0
  74. package/customreactselect.LTbjaBN2.js +13 -0
  75. package/dialog.BkXwcbUh.js +45 -0
  76. package/dialog.d.ts +1 -0
  77. package/fieldset.BXOWK-B-.js +11 -0
  78. package/{floatingactionbutton.BtQVIj6W.js → floatingactionbutton.-nDRRiXY.js} +9 -9
  79. package/heading.DqGbFfj2.js +50 -0
  80. package/icon.Cpp_9L1I.js +8 -0
  81. package/index.d.ts +24 -0
  82. package/index.es.js +138 -45
  83. package/input.BM6tyRUm.js +236 -0
  84. package/inputpassword.DUxH1K_k.js +12 -0
  85. package/inputsearch.B-vePHle.js +13 -0
  86. package/inputstepper.C2ypADPI.js +13 -0
  87. package/link.B4XZoLDj.js +115 -0
  88. package/linkstandalone.BSfd95Pd.js +79 -0
  89. package/{logo.DXWgPUY4.js → logo.C_oJ8isW.js} +25 -24
  90. package/notification.CxxAOdNV.js +9 -0
  91. package/notification.d.ts +1 -0
  92. package/{optioncheckbox.CYikfEsE.js → optioncheckbox.CUV1MQhh.js} +3 -3
  93. package/package.json +4 -4
  94. package/radio.Bhu9OUY-.js +79 -0
  95. package/radiogroup.CMJ1b38q.js +11 -0
  96. package/select.DFJK2mHF.js +12 -0
  97. package/{spinner.CSzQEBx2.js → spinner.BskX4ovu.js} +1 -1
  98. package/styles/scss/_index.scss +1 -0
  99. package/styles/scss/lib/_animation.scss +18 -4
  100. package/styles/scss/lib/_grid-extended.scss +2 -2
  101. package/styles/scss/lib/_grid-sidebar-sidebar.scss +4 -2
  102. package/styles/scss/lib/_grid-sidebar.scss +6 -6
  103. package/styles/scss/lib/_heading.scss +14 -1
  104. package/styles/scss/lib/_link.scss +10 -9
  105. package/styles/scss/lib/_shadow.scss +10 -0
  106. package/styles/scss/lib/_text.scss +4 -0
  107. package/styles/scss/lib/_theme.scss +7 -5
  108. package/switch.Bx2tDKx0.js +65 -0
  109. package/{systemfeedback.rBgdiL5T.js → systemfeedback.4Hkfigi-.js} +1 -1
  110. package/textarea.DPy3TJJf.js +12 -0
  111. package/title.icX0VDiO.js +36 -0
  112. package/toast.C-Yg5EoE.js +10 -0
  113. package/toast.d.ts +1 -0
  114. package/toastmanager.DQ_-eTrx.js +96 -0
  115. package/toastmanager.d.ts +1 -0
  116. package/types/icon-types.d.ts +1 -1
  117. package/utils/vitest.setup.d.ts +2 -0
  118. package/assets/CustomReactSelect.bVnR5yBP.css +0 -1
  119. package/assets/RadioGroup.SF2fv4CL.css +0 -1
  120. package/assets/asterisk.Bz7RZnKb.css +0 -1
  121. package/assets/button.C6ZbQtZ-.css +0 -1
  122. package/assets/buttonround.CjJUeMND.css +0 -1
  123. package/assets/checkbox.Bbc6PYDK.css +0 -1
  124. package/assets/fieldset.DTFs_koU.css +0 -1
  125. package/assets/heading.5HpYs7wS.css +0 -1
  126. package/assets/input.GpXQJqEO.css +0 -1
  127. package/assets/inputpassword.B9J1hCcj.css +0 -1
  128. package/assets/inputsearch.BY0BGFPK.css +0 -1
  129. package/assets/inputstepper.B0oC1URa.css +0 -1
  130. package/assets/link.Di4qXro5.css +0 -1
  131. package/assets/linkstandalone.239FeO2E.css +0 -1
  132. package/assets/radio.pqc9u_wx.css +0 -1
  133. package/assets/select.DLOQ6wu0.css +0 -1
  134. package/assets/switch.DVlaePGM.css +0 -1
  135. package/assets/textarea.BNOpd7Nf.css +0 -1
  136. package/assets/title.1dq1eWy9.css +0 -1
  137. package/asterisk.BlYjsfkN.js +0 -8
  138. package/button.Di5XtChf.js +0 -135
  139. package/buttonround._w4KDbHE.js +0 -118
  140. package/chunks/RadioGroup.module.B35YQcsb.js +0 -11
  141. package/customreactselect.DPHXAssl.js +0 -13
  142. package/fieldset.yE6WV6Ls.js +0 -98
  143. package/heading.C6k7Gakb.js +0 -44
  144. package/icon.CmAhxgHK.js +0 -215
  145. package/input.vP5xcwzV.js +0 -236
  146. package/inputpassword.BiQ8ORmn.js +0 -139
  147. package/inputsearch.BA9N3RRc.js +0 -188
  148. package/inputstepper.Cyxeg2Cj.js +0 -290
  149. package/link.BoSdsZHj.js +0 -115
  150. package/linkstandalone.BoN7nARO.js +0 -79
  151. package/radio.DTO5-Yzf.js +0 -79
  152. package/select.Dx80W7cW.js +0 -190
  153. package/switch.BwGtQdnx.js +0 -65
  154. package/textarea.C8tp1ciU.js +0 -193
  155. package/title.BT-uIobN.js +0 -36
  156. /package/assets/{icon.CB-KQmw4.css → Icon.CB-KQmw4.css} +0 -0
@@ -0,0 +1,190 @@
1
+ "use client";
2
+ import { j as e } from "./jsx-runtime.C-kxDJ4g.js";
3
+ import { c } from "./index.CvOaL64Y.js";
4
+ import { useState as J, useRef as w, useEffect as D } from "react";
5
+ import { g as y, a as K } from "./helpers.B1JT5ShS.js";
6
+ import { u as Q } from "./useBreakpoint.5xBNDiCf.js";
7
+ import { Asterisk as U } from "../asterisk.DU8THnoC.js";
8
+ import { DSButton as A } from "../button.DX_nxoJC.js";
9
+ import { DSSystemFeedback as X } from "../systemfeedback.4Hkfigi-.js";
10
+ import '../assets/InputSearch.tL3e9-Ob.css';const Y = "_input_17rym_187", Z = "_input--invalid_17rym_297", z = "_input--small_17rym_304", tt = "_input--has-leading-icon_17rym_350", nt = "_input--has-action-button_17rym_353", et = "_input--has-second-action-button_17rym_356", at = "_input--has-affix_17rym_368", st = "_input--is-ready_17rym_380", ot = "_root_17rym_387", it = "_hint_17rym_395", ct = "_label_17rym_395", rt = "_wrapper_17rym_399", ut = "_action-button_17rym_405", lt = "_second-action-button_17rym_409", pt = "_label--hidden_17rym_426", mt = "_feedback_17rym_453", t = {
11
+ input: Y,
12
+ "input--invalid": "_input--invalid_17rym_297",
13
+ inputInvalid: Z,
14
+ "input--small": "_input--small_17rym_304",
15
+ inputSmall: z,
16
+ "input--has-leading-icon": "_input--has-leading-icon_17rym_350",
17
+ inputHasLeadingIcon: tt,
18
+ "input--has-action-button": "_input--has-action-button_17rym_353",
19
+ inputHasActionButton: nt,
20
+ "input--has-second-action-button": "_input--has-second-action-button_17rym_356",
21
+ inputHasSecondActionButton: et,
22
+ "input--has-affix": "_input--has-affix_17rym_368",
23
+ inputHasAffix: at,
24
+ "input--is-ready": "_input--is-ready_17rym_380",
25
+ inputIsReady: st,
26
+ root: ot,
27
+ hint: it,
28
+ label: ct,
29
+ wrapper: rt,
30
+ "action-button": "_action-button_17rym_405",
31
+ actionButton: ut,
32
+ "second-action-button": "_second-action-button_17rym_409",
33
+ secondActionButton: lt,
34
+ "label--hidden": "_label--hidden_17rym_426",
35
+ labelHidden: pt,
36
+ feedback: mt
37
+ }, _t = ({ id: n, label: r }) => {
38
+ if (!n)
39
+ throw new Error(
40
+ y(
41
+ "DSInputSearch",
42
+ 'A unique "id" prop is required. Please add an unique "id" prop to the DSInputSearch component.'
43
+ )
44
+ );
45
+ if (!r)
46
+ throw new Error(
47
+ y(
48
+ "DSInputSearch",
49
+ `A label is always required for a11y reasons. Please add a descriptive "label" prop to the DSInputSearch component. If you don't want to display a label, set hideLabel={true}.`
50
+ )
51
+ );
52
+ }, dt = (n) => !!K(n, "form"), Bt = ({
53
+ id: n,
54
+ label: r,
55
+ className: H,
56
+ clearButtonLabel: E = "Clear search field",
57
+ disabled: u = !1,
58
+ hint: d,
59
+ hideLabel: j = !1,
60
+ invalid: l = !1,
61
+ readonly: s = !1,
62
+ required: S = !1,
63
+ size: o = "medium",
64
+ submitButtonLabel: C = "Search",
65
+ systemFeedback: h,
66
+ value: b,
67
+ submitButtonOnClick: k,
68
+ onChange: I,
69
+ ...L
70
+ }) => {
71
+ process.env.NODE_ENV !== "production" && _t({
72
+ id: n,
73
+ label: r
74
+ });
75
+ const [p, g] = J(b), f = w(null), m = w(null), V = Q(j);
76
+ D(() => {
77
+ g(b);
78
+ }, [b]), D(() => {
79
+ f.current && !dt(f.current) && process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "test" && console.warn(
80
+ y(
81
+ "DSInputSearch",
82
+ `The DSInputSearch component with the id "${n}" is not within a form element. This may cause issues with form submission. Please ensure the DSInputSearch component is within a form element.`
83
+ )
84
+ );
85
+ }, []);
86
+ const v = `${n}-label`, B = `${n}-feedback`, x = `${n}-hint`, O = d ? ` ${x}` : "", N = p !== "" && p !== void 0 && p !== null, P = c(t.root, H), $ = c(t.input, {
87
+ // small input
88
+ [t.inputSmall]: o === "small",
89
+ // invalid state
90
+ [t.inputInvalid]: l,
91
+ // action button - input password always has an action button
92
+ [t.inputHasActionButton]: !0,
93
+ // action second action button
94
+ [t.inputHasSecondActionButton]: N && !s && !u
95
+ }), R = c(t.label, {
96
+ // hide label only visually to keep them available for assistive technologies
97
+ [t.labelHidden]: V
98
+ }), q = c(t.actionButton, {
99
+ [t.actionButtonSmall]: o === "small"
100
+ }), T = c(t.secondActionButton, {
101
+ [t.secondActionButtonSmall]: o === "small"
102
+ }), F = (a, i) => {
103
+ const G = Object.getPrototypeOf(a), _ = Object.getOwnPropertyDescriptor(
104
+ G,
105
+ "value"
106
+ );
107
+ _ != null && _.set ? _.set.call(a, i) : a.value = i;
108
+ }, M = () => {
109
+ var i;
110
+ if (!m.current)
111
+ return;
112
+ F(m.current, "");
113
+ const a = new Event("change", { bubbles: !0 });
114
+ (i = m.current) == null || i.dispatchEvent(a);
115
+ }, W = (a) => {
116
+ g(a.target.value), I && I(a);
117
+ };
118
+ return /* @__PURE__ */ e.jsxs("div", { className: P, ref: f, children: [
119
+ /* @__PURE__ */ e.jsxs("label", { className: R, id: v, htmlFor: n, children: [
120
+ r,
121
+ S && /* @__PURE__ */ e.jsx(U, {})
122
+ ] }),
123
+ d && /* @__PURE__ */ e.jsx("div", { className: t.hint, id: x, children: d }),
124
+ l && h && /* @__PURE__ */ e.jsx(
125
+ X,
126
+ {
127
+ className: t.feedback,
128
+ message: h,
129
+ type: "invalid",
130
+ id: B
131
+ }
132
+ ),
133
+ /* @__PURE__ */ e.jsxs("div", { className: t.wrapper, children: [
134
+ /* @__PURE__ */ e.jsx(
135
+ "input",
136
+ {
137
+ className: $,
138
+ id: n,
139
+ ref: m,
140
+ ...L,
141
+ "aria-labelledby": `${v}${O}`,
142
+ "aria-describedby": l && h ? B : void 0,
143
+ "aria-invalid": l,
144
+ "aria-disabled": s,
145
+ readOnly: s,
146
+ required: S,
147
+ disabled: u,
148
+ type: "search",
149
+ value: p,
150
+ onChange: W
151
+ }
152
+ ),
153
+ N && !s && !u && /* @__PURE__ */ e.jsx(
154
+ A,
155
+ {
156
+ hideLabel: !0,
157
+ theme: "light",
158
+ iconName: "cross",
159
+ className: T,
160
+ variant: "ghost",
161
+ size: o,
162
+ onClick: M,
163
+ type: "button",
164
+ tabIndex: -1,
165
+ children: E
166
+ }
167
+ ),
168
+ /* @__PURE__ */ e.jsx(
169
+ A,
170
+ {
171
+ hideLabel: !0,
172
+ theme: "light",
173
+ iconName: "magnifying-glass",
174
+ className: q,
175
+ variant: "ghost",
176
+ size: o,
177
+ onClick: k,
178
+ type: "submit",
179
+ disabled: u || s,
180
+ children: C
181
+ }
182
+ )
183
+ ] })
184
+ ] });
185
+ };
186
+ export {
187
+ Bt as D,
188
+ dt as i,
189
+ _t as v
190
+ };
@@ -0,0 +1,291 @@
1
+ "use client";
2
+ import { j as e } from "./jsx-runtime.C-kxDJ4g.js";
3
+ import { c } from "./index.CvOaL64Y.js";
4
+ import { useState as f, useRef as N, useEffect as w, useLayoutEffect as M } from "react";
5
+ import { u as bn } from "./useBreakpoint.5xBNDiCf.js";
6
+ import { Asterisk as mn } from "../asterisk.DU8THnoC.js";
7
+ import { DSButton as X } from "../button.DX_nxoJC.js";
8
+ import { M as E, a as H } from "./Input.utils.AKWCNkpA.js";
9
+ import { DSSystemFeedback as hn } from "../systemfeedback.4Hkfigi-.js";
10
+ import { g as y } from "./helpers.B1JT5ShS.js";
11
+ import '../assets/InputStepper.paPJix5A.css';const xn = "_input_134nb_187", Sn = "_input--invalid_134nb_298", yn = "_input--small_134nb_305", vn = "_input--has-leading-icon_134nb_351", In = "_input--has-action-button_134nb_354", gn = "_input--has-second-action-button_134nb_357", An = "_input--has-affix_134nb_369", Bn = "_input--is-ready_134nb_381", Dn = "_root_134nb_388", Nn = "_hint_134nb_396", wn = "_label_134nb_396", En = "_wrapper_134nb_400", Hn = "_affix_134nb_406", Ln = "_affix--small_134nb_426", jn = "_affix--disabled_134nb_438", Rn = "_prefix_134nb_441", kn = "_affix--readonly_134nb_444", Cn = "_suffix_134nb_454", $n = "_action-button_134nb_461", Fn = "_label--hidden_134nb_478", Vn = "_feedback_134nb_505", Pn = "_second-action-button_134nb_519", Tn = "_value-announcer_134nb_523", t = {
12
+ input: xn,
13
+ "input--invalid": "_input--invalid_134nb_298",
14
+ inputInvalid: Sn,
15
+ "input--small": "_input--small_134nb_305",
16
+ inputSmall: yn,
17
+ "input--has-leading-icon": "_input--has-leading-icon_134nb_351",
18
+ inputHasLeadingIcon: vn,
19
+ "input--has-action-button": "_input--has-action-button_134nb_354",
20
+ inputHasActionButton: In,
21
+ "input--has-second-action-button": "_input--has-second-action-button_134nb_357",
22
+ inputHasSecondActionButton: gn,
23
+ "input--has-affix": "_input--has-affix_134nb_369",
24
+ inputHasAffix: An,
25
+ "input--is-ready": "_input--is-ready_134nb_381",
26
+ inputIsReady: Bn,
27
+ root: Dn,
28
+ hint: Nn,
29
+ label: wn,
30
+ wrapper: En,
31
+ affix: Hn,
32
+ "affix--small": "_affix--small_134nb_426",
33
+ affixSmall: Ln,
34
+ "affix--disabled": "_affix--disabled_134nb_438",
35
+ affixDisabled: jn,
36
+ prefix: Rn,
37
+ "affix--readonly": "_affix--readonly_134nb_444",
38
+ affixReadonly: kn,
39
+ suffix: Cn,
40
+ "action-button": "_action-button_134nb_461",
41
+ actionButton: $n,
42
+ "label--hidden": "_label--hidden_134nb_478",
43
+ labelHidden: Fn,
44
+ feedback: Vn,
45
+ "second-action-button": "_second-action-button_134nb_519",
46
+ secondActionButton: Pn,
47
+ "value-announcer": "_value-announcer_134nb_523",
48
+ valueAnnouncer: Tn
49
+ }, Wn = ({
50
+ id: a,
51
+ label: b,
52
+ prefix: m,
53
+ suffix: h
54
+ }) => {
55
+ if (!a)
56
+ throw new Error(
57
+ y(
58
+ "DSInputStepper",
59
+ 'A unique "id" prop is required. Please add an unique "id" prop to the DSInputStepper component.'
60
+ )
61
+ );
62
+ if (!b)
63
+ throw new Error(
64
+ y(
65
+ "DSInputStepper",
66
+ `A label is always required for a11y reasons. Please add a descriptive "label" prop to the DSInputStepper component. If you don't want to display a label, set hideLabel={true}.`
67
+ )
68
+ );
69
+ m && m.length > E && console.warn(
70
+ y(
71
+ "DSInputStepper",
72
+ `Prefix length must not exceed ${E} characters.`
73
+ )
74
+ ), h && h.length > H && console.warn(
75
+ y(
76
+ "DSInputStepper",
77
+ `Suffix length must not exceed ${H} characters.`
78
+ )
79
+ );
80
+ }, Yn = ({
81
+ id: a,
82
+ label: b,
83
+ announcementText: m = "Value changed to",
84
+ className: h,
85
+ disabled: d = !1,
86
+ decreaseAmountButtonLabel: q = "Decrease",
87
+ hint: v,
88
+ hideLabel: G = !1,
89
+ invalid: x = !1,
90
+ increaseAmountButtonLabel: O = "Increase",
91
+ prefix: u,
92
+ max: L = 100,
93
+ min: j = 0,
94
+ readonly: p = !1,
95
+ required: R = !1,
96
+ size: i = "medium",
97
+ step: U = 1,
98
+ suffix: r,
99
+ systemFeedback: I,
100
+ value: S,
101
+ onChange: k,
102
+ ...J
103
+ }) => {
104
+ process.env.NODE_ENV !== "production" && Wn({
105
+ id: a,
106
+ label: b,
107
+ prefix: u,
108
+ suffix: r
109
+ });
110
+ const [K, Q] = f(!1), [_, g] = f(S), [A, C] = f(""), [Y, Z] = f(!1), [z, nn] = f({}), s = N(null), tn = u == null ? void 0 : u.substring(0, E), B = N(null), en = r == null ? void 0 : r.substring(0, H), D = N(null), an = bn(G);
111
+ w(() => {
112
+ S && g(S);
113
+ }, [S]), w(() => {
114
+ if (A) {
115
+ const n = setTimeout(() => {
116
+ C("");
117
+ }, 3e3);
118
+ return () => clearTimeout(n);
119
+ }
120
+ }, [A]), w(() => {
121
+ var o;
122
+ const n = (l) => {
123
+ l.preventDefault();
124
+ };
125
+ return (o = s.current) == null || o.addEventListener("wheel", n, {
126
+ // The { passive: false } option is used to indicate that the event listener wants to cancel the event, allowing preventDefault to work as expected.
127
+ passive: !1
128
+ }), () => {
129
+ var l;
130
+ (l = s.current) == null || l.removeEventListener("wheel", n);
131
+ };
132
+ }, []), M(() => {
133
+ const n = i === "medium" ? 16 : 8, o = {};
134
+ if (B.current) {
135
+ const l = B.current.offsetWidth;
136
+ o.paddingInlineStart = n + l + "px";
137
+ }
138
+ if (D.current) {
139
+ const l = D.current.offsetWidth;
140
+ o.paddingInlineEnd = n + l + "px";
141
+ }
142
+ nn(o), Q(!0);
143
+ }, [u, r, i, Y]), M(() => {
144
+ (async () => {
145
+ "fonts" in document && (await document.fonts.load(
146
+ '1em "STIHL Contraface Digital Text Regular"'
147
+ ), Z(!0));
148
+ })();
149
+ }, []);
150
+ const $ = c(t.affix, {
151
+ [t.affixSmall]: i === "small",
152
+ [t.affixDisabled]: d,
153
+ [t.affixReadonly]: p
154
+ }), F = `${a}-label`, V = `${a}-feedback`, P = `${a}-hint`, T = `${a}-value-announcer`, sn = v ? ` ${P}` : "", on = c(t.root, h), ln = c(t.input, {
155
+ // small input
156
+ [t.inputSmall]: i === "small",
157
+ // invalid state
158
+ [t.inputInvalid]: x,
159
+ // prefix/suffix
160
+ [t.inputHasAffix]: u || r,
161
+ [t.inputIsReady]: K
162
+ }), cn = c(t.label, {
163
+ // hide label only visually to keep them available for assistive technologies
164
+ [t.labelHidden]: an
165
+ }), un = c(t.secondActionButton, {
166
+ [t.secondActionButtonSmall]: i === "small"
167
+ }), rn = c(t.actionButton, {
168
+ [t.actionButtonSmall]: i === "small"
169
+ }), dn = () => {
170
+ const n = [T];
171
+ return x && I && n.push(V), n.join(" ");
172
+ }, W = () => {
173
+ var n;
174
+ if (s.current) {
175
+ g(s.current.value);
176
+ const o = new Event("change", { bubbles: !0 });
177
+ (n = s.current) == null || n.dispatchEvent(o), C(`${m} ${s.current.value}`);
178
+ }
179
+ }, pn = () => {
180
+ var n;
181
+ (n = s.current) == null || n.stepDown(), W();
182
+ }, _n = () => {
183
+ var n;
184
+ (n = s.current) == null || n.stepUp(), W();
185
+ }, fn = (n) => {
186
+ g(n.target.value), k && k(n);
187
+ };
188
+ return /* @__PURE__ */ e.jsxs("div", { className: on, children: [
189
+ /* @__PURE__ */ e.jsxs("label", { className: cn, id: F, htmlFor: a, children: [
190
+ b,
191
+ R && /* @__PURE__ */ e.jsx(mn, {})
192
+ ] }),
193
+ v && /* @__PURE__ */ e.jsx("div", { className: t.hint, id: P, children: v }),
194
+ /* @__PURE__ */ e.jsx(
195
+ "div",
196
+ {
197
+ "aria-live": "polite",
198
+ "aria-atomic": "true",
199
+ className: t.valueAnnouncer,
200
+ id: T,
201
+ children: A
202
+ }
203
+ ),
204
+ x && I && /* @__PURE__ */ e.jsx(
205
+ hn,
206
+ {
207
+ className: t.feedback,
208
+ message: I,
209
+ type: "invalid",
210
+ id: V
211
+ }
212
+ ),
213
+ /* @__PURE__ */ e.jsxs("div", { className: t.wrapper, children: [
214
+ u && /* @__PURE__ */ e.jsx(
215
+ "span",
216
+ {
217
+ className: c($, t.prefix),
218
+ ref: B,
219
+ "aria-disabled": d,
220
+ children: tn
221
+ }
222
+ ),
223
+ /* @__PURE__ */ e.jsx(
224
+ "input",
225
+ {
226
+ className: ln,
227
+ id: a,
228
+ ref: s,
229
+ ...J,
230
+ style: z,
231
+ "aria-labelledby": `${F}${sn}`,
232
+ "aria-describedby": dn(),
233
+ "aria-invalid": x,
234
+ "aria-disabled": p,
235
+ disabled: d,
236
+ min: j,
237
+ max: L,
238
+ readOnly: p,
239
+ required: R,
240
+ step: U,
241
+ type: "number",
242
+ value: _,
243
+ onChange: fn
244
+ }
245
+ ),
246
+ r && /* @__PURE__ */ e.jsx(
247
+ "span",
248
+ {
249
+ className: c($, t.suffix),
250
+ ref: D,
251
+ "aria-disabled": d,
252
+ children: en
253
+ }
254
+ ),
255
+ /* @__PURE__ */ e.jsx(
256
+ X,
257
+ {
258
+ hideLabel: !0,
259
+ theme: "light",
260
+ iconName: "minus",
261
+ variant: "filled",
262
+ className: un,
263
+ size: i,
264
+ onClick: pn,
265
+ disabled: d || p || !!_ && Number(_) <= j,
266
+ type: "button",
267
+ children: q
268
+ }
269
+ ),
270
+ /* @__PURE__ */ e.jsx(
271
+ X,
272
+ {
273
+ hideLabel: !0,
274
+ theme: "light",
275
+ iconName: "plus",
276
+ variant: "filled",
277
+ className: rn,
278
+ size: i,
279
+ onClick: _n,
280
+ disabled: d || p || !!_ && Number(_) >= L,
281
+ type: "button",
282
+ children: O
283
+ }
284
+ )
285
+ ] })
286
+ ] });
287
+ };
288
+ export {
289
+ Yn as D,
290
+ Wn as v
291
+ };
@@ -0,0 +1,93 @@
1
+ "use client";
2
+ import { j as s } from "./jsx-runtime.C-kxDJ4g.js";
3
+ import { c } from "./index.CvOaL64Y.js";
4
+ import { D as p } from "./Icon.9gDIp6p4.js";
5
+ import { DSButton as g } from "../button.DX_nxoJC.js";
6
+ import '../assets/Notification.CCCbfXEz.css';const N = "_root_unops_63", f = "_root--success_unops_87", h = "_root--error_unops_91", I = "_root--warning_unops_95", x = "_root--hide-icon_unops_99", A = "_content_unops_113", C = "_content--hide-close-button_unops_120", H = "_content--hide-icon_unops_123", j = "_icon_unops_127", S = "_message_unops_131", w = "_custom-action-area_unops_144", o = {
7
+ root: N,
8
+ "root--success": "_root--success_unops_87",
9
+ rootSuccess: f,
10
+ "root--error": "_root--error_unops_91",
11
+ rootError: h,
12
+ "root--warning": "_root--warning_unops_95",
13
+ rootWarning: I,
14
+ "root--hide-icon": "_root--hide-icon_unops_99",
15
+ rootHideIcon: x,
16
+ content: A,
17
+ "content--hide-close-button": "_content--hide-close-button_unops_120",
18
+ contentHideCloseButton: C,
19
+ "content--hide-icon": "_content--hide-icon_unops_123",
20
+ contentHideIcon: H,
21
+ icon: j,
22
+ message: S,
23
+ "custom-action-area": "_custom-action-area_unops_144",
24
+ customActionArea: w
25
+ }, R = [
26
+ "success",
27
+ "error",
28
+ "warning",
29
+ "info"
30
+ ], O = {
31
+ success: "circle-check-colored",
32
+ error: "diamond-exclamationmark-colored",
33
+ warning: "triangle-exclamationmark-colored",
34
+ info: "circle-info-colored"
35
+ }, T = {
36
+ error: "alert",
37
+ warning: "alert",
38
+ info: "status",
39
+ success: "status"
40
+ }, B = ({
41
+ children: i,
42
+ variant: n = "info",
43
+ customActionArea: e,
44
+ className: a,
45
+ closeButtonLabel: _ = "Close notification",
46
+ hideCloseButton: r = !1,
47
+ hideIcon: t = !1,
48
+ onClose: u,
49
+ ...l
50
+ }) => {
51
+ const m = c(o.root, a, {
52
+ [o.rootSuccess]: n === "success",
53
+ [o.rootError]: n === "error",
54
+ [o.rootWarning]: n === "warning",
55
+ [o.rootInfo]: n === "info",
56
+ [o.rootHideIcon]: t
57
+ }), d = c(o.content, {
58
+ [o.contentHideCloseButton]: r,
59
+ [o.contentHideIcon]: t
60
+ });
61
+ return /* @__PURE__ */ s.jsxs("div", { className: m, ...l, role: T[n], children: [
62
+ /* @__PURE__ */ s.jsxs("div", { className: d, children: [
63
+ !t && /* @__PURE__ */ s.jsx(
64
+ p,
65
+ {
66
+ name: O[n],
67
+ className: o.icon,
68
+ "aria-hidden": "true"
69
+ }
70
+ ),
71
+ /* @__PURE__ */ s.jsx("div", { className: o.message, children: i }),
72
+ !r && /* @__PURE__ */ s.jsx(
73
+ g,
74
+ {
75
+ hideLabel: !0,
76
+ iconName: "cross",
77
+ isFlush: !0,
78
+ variant: "ghost",
79
+ size: "small",
80
+ onClick: u,
81
+ type: "button",
82
+ children: _
83
+ }
84
+ )
85
+ ] }),
86
+ e && /* @__PURE__ */ s.jsx("div", { className: c({ [o.customActionArea]: !t }), children: e })
87
+ ] });
88
+ };
89
+ export {
90
+ B as D,
91
+ R as N,
92
+ O as a
93
+ };
@@ -1,20 +1,20 @@
1
1
  "use client";
2
- import { j as d } from "./chunks/jsx-runtime.C-kxDJ4g.js";
3
- import { c as N } from "./chunks/index.CvOaL64Y.js";
2
+ import { j as d } from "./jsx-runtime.C-kxDJ4g.js";
3
+ import { c as N } from "./index.CvOaL64Y.js";
4
4
  import { forwardRef as P, useState as C } from "react";
5
- import { DSFieldset as y } from "./fieldset.yE6WV6Ls.js";
6
- import { DSRadio as z } from "./radio.DTO5-Yzf.js";
7
- import { s as c } from "./chunks/RadioGroup.module.B35YQcsb.js";
8
- import { g as a } from "./chunks/helpers.B1JT5ShS.js";
9
- const f = (o) => `The "${o}" prop is required. Please add the "${o}" prop to the DSRadioGroup component.`, M = ({
10
- description: o,
5
+ import { D as y } from "./Fieldset.BokeZzG5.js";
6
+ import { DSRadio as z } from "../radio.Bhu9OUY-.js";
7
+ import { s as c } from "./RadioGroup.module.bi3leRes.js";
8
+ import { g as a } from "./helpers.B1JT5ShS.js";
9
+ const f = (r) => `The "${r}" prop is required. Please add the "${r}" prop to the DSRadioGroup component.`, M = ({
10
+ description: r,
11
11
  id: e,
12
12
  legend: t,
13
13
  name: s,
14
14
  options: i,
15
15
  systemFeedback: n
16
16
  }) => {
17
- if (!e && (o || n))
17
+ if (!e && (r || n))
18
18
  throw new Error(
19
19
  a(
20
20
  "DSRadioGroup",
@@ -35,7 +35,7 @@ const f = (o) => `The "${o}" prop is required. Please add the "${o}" prop to the
35
35
  );
36
36
  }, O = P(
37
37
  ({
38
- legend: o,
38
+ legend: r,
39
39
  name: e,
40
40
  options: t,
41
41
  alignment: s = "vertical",
@@ -45,52 +45,59 @@ const f = (o) => `The "${o}" prop is required. Please add the "${o}" prop to the
45
45
  disabled: l = !1,
46
46
  id: h,
47
47
  invalid: p = !1,
48
- required: S = !1,
48
+ required: D = !1,
49
49
  systemFeedback: u,
50
- value: D,
50
+ value: S,
51
51
  onChange: R,
52
- ...G
52
+ ...g
53
53
  }, v) => {
54
- process.env.NODE_ENV !== "production" && M({ description: m, id: h, legend: o, name: e, options: t, systemFeedback: u });
55
- const [E, x] = C(n), w = D !== void 0, g = w ? D : E, j = N(c.root, {
54
+ process.env.NODE_ENV !== "production" && M({
55
+ description: m,
56
+ id: h,
57
+ legend: r,
58
+ name: e,
59
+ options: t,
60
+ systemFeedback: u
61
+ });
62
+ const [E, x] = C(n), w = S !== void 0, G = w ? S : E, j = N(c.root, {
56
63
  // In case of longer copy, use vertical alignment
57
64
  [c.rootHorizontal]: s === "horizontal",
58
65
  [c.rootInvalid]: p && !!u
59
- }), q = (r) => {
66
+ }), q = (o) => {
60
67
  if (l) {
61
- r.preventDefault();
68
+ o.preventDefault();
62
69
  return;
63
70
  }
64
71
  w || x(
65
- r.target.value
66
- ), R && R(r);
72
+ o.target.value
73
+ ), R && R(o);
67
74
  };
68
75
  return /* @__PURE__ */ d.jsx(
69
76
  y,
70
77
  {
71
78
  id: h,
72
- legend: o,
79
+ legend: r,
73
80
  className: i,
74
81
  description: m,
75
82
  disabled: l,
76
- required: S,
83
+ required: D,
77
84
  invalid: p,
78
85
  systemFeedback: u,
79
- ...G,
86
+ ...g,
80
87
  role: "radiogroup",
81
88
  onChange: q,
82
- children: /* @__PURE__ */ d.jsx("div", { className: j, children: t.map((r) => /* @__PURE__ */ d.jsx(
89
+ children: /* @__PURE__ */ d.jsx("div", { className: j, children: t.map((o) => /* @__PURE__ */ d.jsx(
83
90
  z,
84
91
  {
85
92
  name: e,
86
- checked: r.value === g,
93
+ checked: o.value === G,
87
94
  disabled: l,
88
95
  invalid: p,
89
- required: S,
90
- ref: r.value === g ? v : null,
91
- ...r
96
+ required: D,
97
+ ref: o.value === G ? v : null,
98
+ ...o
92
99
  },
93
- r.label + r.value
100
+ o.label + o.value
94
101
  )) })
95
102
  }
96
103
  );
@@ -98,5 +105,6 @@ const f = (o) => `The "${o}" prop is required. Please add the "${o}" prop to the
98
105
  );
99
106
  O.displayName = "DSRadioGroup";
100
107
  export {
101
- O as DSRadioGroup
108
+ O as D,
109
+ M as v
102
110
  };