@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
@@ -1,139 +0,0 @@
1
- "use client";
2
- import { j as a } from "./chunks/jsx-runtime.C-kxDJ4g.js";
3
- import { c as i } from "./chunks/index.CvOaL64Y.js";
4
- import { useState as D } from "react";
5
- import { u as C } from "./chunks/useBreakpoint.5xBNDiCf.js";
6
- import { Asterisk as L } from "./asterisk.BlYjsfkN.js";
7
- import { DSButton as $ } from "./button.Di5XtChf.js";
8
- import { DSSystemFeedback as E } from "./systemfeedback.rBgdiL5T.js";
9
- import { g as b } from "./chunks/helpers.B1JT5ShS.js";
10
- import './assets/inputpassword.B9J1hCcj.css';const q = "_input_w95w8_187", R = "_input--invalid_w95w8_297", V = "_input--small_w95w8_304", O = "_input--has-leading-icon_w95w8_350", F = "_input--has-action-button_w95w8_353", M = "_input--has-second-action-button_w95w8_356", T = "_input--has-affix_w95w8_368", G = "_input--is-ready_w95w8_380", J = "_root_w95w8_387", K = "_hint_w95w8_395", Q = "_label_w95w8_395", U = "_wrapper_w95w8_399", W = "_action-button_w95w8_405", X = "_label--hidden_w95w8_422", Y = "_feedback_w95w8_449", t = {
11
- input: q,
12
- "input--invalid": "_input--invalid_w95w8_297",
13
- inputInvalid: R,
14
- "input--small": "_input--small_w95w8_304",
15
- inputSmall: V,
16
- "input--has-leading-icon": "_input--has-leading-icon_w95w8_350",
17
- inputHasLeadingIcon: O,
18
- "input--has-action-button": "_input--has-action-button_w95w8_353",
19
- inputHasActionButton: F,
20
- "input--has-second-action-button": "_input--has-second-action-button_w95w8_356",
21
- inputHasSecondActionButton: M,
22
- "input--has-affix": "_input--has-affix_w95w8_368",
23
- inputHasAffix: T,
24
- "input--is-ready": "_input--is-ready_w95w8_380",
25
- inputIsReady: G,
26
- root: J,
27
- hint: K,
28
- label: Q,
29
- wrapper: U,
30
- "action-button": "_action-button_w95w8_405",
31
- actionButton: W,
32
- "label--hidden": "_label--hidden_w95w8_422",
33
- labelHidden: X,
34
- feedback: Y
35
- }, Z = ({ id: n, label: s }) => {
36
- if (!n)
37
- throw new Error(
38
- b(
39
- "DSInputPassword",
40
- 'A unique "id" prop is required. Please add an unique "id" prop to the DSInputPassword component.'
41
- )
42
- );
43
- if (!s)
44
- throw new Error(
45
- b(
46
- "DSInputPassword",
47
- `A label is always required for a11y reasons. Please add a descriptive "label" prop to the DSInputPassword component. If you don't want to display a label, set hideLabel={true}.`
48
- )
49
- );
50
- }, lt = ({
51
- id: n,
52
- label: s,
53
- autocomplete: h = "new-password",
54
- className: f,
55
- disabled: c = !1,
56
- hidePasswordText: y = "Hide password",
57
- hint: e,
58
- hideLabel: S = !1,
59
- invalid: o = !1,
60
- readonly: r = !1,
61
- required: d = !1,
62
- showPasswordText: x = "Show password",
63
- size: l = "medium",
64
- systemFeedback: u,
65
- ...I
66
- }) => {
67
- process.env.NODE_ENV !== "production" && Z({
68
- id: n,
69
- label: s
70
- });
71
- const [p, B] = D(!1), w = `${n}-label`, _ = `${n}-feedback`, m = `${n}-hint`, H = e ? ` ${m}` : "", g = C(S), v = i(t.root, f), P = i(t.input, {
72
- // small input
73
- [t.inputSmall]: l === "small",
74
- // invalid state
75
- [t.inputInvalid]: o,
76
- // action button - input password always has an action button
77
- [t.inputHasActionButton]: !0
78
- }), N = i(t.label, {
79
- // hide label only visually to keep them available for assistive technologies
80
- [t.labelHidden]: g
81
- }), j = i(t.actionButton, {
82
- [t.actionButtonSmall]: l === "small"
83
- }), k = () => {
84
- B((A) => !A);
85
- };
86
- return /* @__PURE__ */ a.jsxs("div", { className: v, children: [
87
- /* @__PURE__ */ a.jsxs("label", { className: N, id: w, htmlFor: n, children: [
88
- s,
89
- d && /* @__PURE__ */ a.jsx(L, {})
90
- ] }),
91
- e && /* @__PURE__ */ a.jsx("div", { className: t.hint, id: m, children: e }),
92
- o && u && /* @__PURE__ */ a.jsx(
93
- E,
94
- {
95
- className: t.feedback,
96
- message: u,
97
- type: "invalid",
98
- id: _
99
- }
100
- ),
101
- /* @__PURE__ */ a.jsxs("div", { className: t.wrapper, children: [
102
- /* @__PURE__ */ a.jsx(
103
- "input",
104
- {
105
- className: P,
106
- id: n,
107
- ...I,
108
- "aria-labelledby": `${w}${H}`,
109
- "aria-describedby": o && u ? _ : void 0,
110
- "aria-invalid": o,
111
- "aria-disabled": r,
112
- readOnly: r,
113
- required: d,
114
- disabled: c,
115
- autoComplete: h,
116
- type: p ? "text" : "password"
117
- }
118
- ),
119
- /* @__PURE__ */ a.jsx(
120
- $,
121
- {
122
- hideLabel: !0,
123
- theme: "light",
124
- iconName: p ? "eye-closed" : "eye",
125
- variant: "ghost",
126
- className: j,
127
- size: l,
128
- onClick: k,
129
- type: "button",
130
- disabled: c,
131
- children: p ? y : x
132
- }
133
- )
134
- ] })
135
- ] });
136
- };
137
- export {
138
- lt as DSInputPassword
139
- };
@@ -1,188 +0,0 @@
1
- "use client";
2
- import { j as a } from "./chunks/jsx-runtime.C-kxDJ4g.js";
3
- import { c } from "./chunks/index.CvOaL64Y.js";
4
- import { useState as J, useRef as w, useEffect as A } from "react";
5
- import { g as S, a as K } from "./chunks/helpers.B1JT5ShS.js";
6
- import { u as Q } from "./chunks/useBreakpoint.5xBNDiCf.js";
7
- import { Asterisk as U } from "./asterisk.BlYjsfkN.js";
8
- import { DSButton as D } from "./button.Di5XtChf.js";
9
- import { DSSystemFeedback as X } from "./systemfeedback.rBgdiL5T.js";
10
- import './assets/inputsearch.BY0BGFPK.css';const Y = "_input_1a6n9_187", Z = "_input--invalid_1a6n9_297", z = "_input--small_1a6n9_304", tt = "_input--has-leading-icon_1a6n9_350", nt = "_input--has-action-button_1a6n9_353", at = "_input--has-second-action-button_1a6n9_356", et = "_input--has-affix_1a6n9_368", st = "_input--is-ready_1a6n9_380", ot = "_root_1a6n9_387", it = "_hint_1a6n9_395", ct = "_label_1a6n9_395", ut = "_wrapper_1a6n9_399", lt = "_action-button_1a6n9_405", rt = "_second-action-button_1a6n9_409", pt = "_label--hidden_1a6n9_426", _t = "_feedback_1a6n9_453", t = {
11
- input: Y,
12
- "input--invalid": "_input--invalid_1a6n9_297",
13
- inputInvalid: Z,
14
- "input--small": "_input--small_1a6n9_304",
15
- inputSmall: z,
16
- "input--has-leading-icon": "_input--has-leading-icon_1a6n9_350",
17
- inputHasLeadingIcon: tt,
18
- "input--has-action-button": "_input--has-action-button_1a6n9_353",
19
- inputHasActionButton: nt,
20
- "input--has-second-action-button": "_input--has-second-action-button_1a6n9_356",
21
- inputHasSecondActionButton: at,
22
- "input--has-affix": "_input--has-affix_1a6n9_368",
23
- inputHasAffix: et,
24
- "input--is-ready": "_input--is-ready_1a6n9_380",
25
- inputIsReady: st,
26
- root: ot,
27
- hint: it,
28
- label: ct,
29
- wrapper: ut,
30
- "action-button": "_action-button_1a6n9_405",
31
- actionButton: lt,
32
- "second-action-button": "_second-action-button_1a6n9_409",
33
- secondActionButton: rt,
34
- "label--hidden": "_label--hidden_1a6n9_426",
35
- labelHidden: pt,
36
- feedback: _t
37
- }, dt = ({ id: n, label: u }) => {
38
- if (!n)
39
- throw new Error(
40
- S(
41
- "DSInputSearch",
42
- 'A unique "id" prop is required. Please add an unique "id" prop to the DSInputSearch component.'
43
- )
44
- );
45
- if (!u)
46
- throw new Error(
47
- S(
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
- }, ht = (n) => !!K(n, "form"), yt = ({
53
- id: n,
54
- label: u,
55
- className: H,
56
- clearButtonLabel: E = "Clear search field",
57
- disabled: l = !1,
58
- hint: h,
59
- hideLabel: j = !1,
60
- invalid: r = !1,
61
- readonly: s = !1,
62
- required: I = !1,
63
- size: o = "medium",
64
- submitButtonLabel: C = "Search",
65
- systemFeedback: m,
66
- value: b,
67
- submitButtonOnClick: k,
68
- onChange: g,
69
- ...L
70
- }) => {
71
- process.env.NODE_ENV !== "production" && dt({
72
- id: n,
73
- label: u
74
- });
75
- const [p, v] = J(b), f = w(null), _ = w(null), V = Q(j);
76
- A(() => {
77
- v(b);
78
- }, [b]), A(() => {
79
- f.current && !ht(f.current) && process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "test" && console.warn(
80
- S(
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 B = `${n}-label`, y = `${n}-feedback`, x = `${n}-hint`, O = h ? ` ${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]: r,
91
- // action button - input password always has an action button
92
- [t.inputHasActionButton]: !0,
93
- // action second action button
94
- [t.inputHasSecondActionButton]: N && !s && !l
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 = (e, i) => {
103
- const G = Object.getPrototypeOf(e), d = Object.getOwnPropertyDescriptor(
104
- G,
105
- "value"
106
- );
107
- d != null && d.set ? d.set.call(e, i) : e.value = i;
108
- }, M = () => {
109
- var i;
110
- if (!_.current)
111
- return;
112
- F(_.current, "");
113
- const e = new Event("change", { bubbles: !0 });
114
- (i = _.current) == null || i.dispatchEvent(e);
115
- }, W = (e) => {
116
- v(e.target.value), g && g(e);
117
- };
118
- return /* @__PURE__ */ a.jsxs("div", { className: P, ref: f, children: [
119
- /* @__PURE__ */ a.jsxs("label", { className: R, id: B, htmlFor: n, children: [
120
- u,
121
- I && /* @__PURE__ */ a.jsx(U, {})
122
- ] }),
123
- h && /* @__PURE__ */ a.jsx("div", { className: t.hint, id: x, children: h }),
124
- r && m && /* @__PURE__ */ a.jsx(
125
- X,
126
- {
127
- className: t.feedback,
128
- message: m,
129
- type: "invalid",
130
- id: y
131
- }
132
- ),
133
- /* @__PURE__ */ a.jsxs("div", { className: t.wrapper, children: [
134
- /* @__PURE__ */ a.jsx(
135
- "input",
136
- {
137
- className: $,
138
- id: n,
139
- ref: _,
140
- ...L,
141
- "aria-labelledby": `${B}${O}`,
142
- "aria-describedby": r && m ? y : void 0,
143
- "aria-invalid": r,
144
- "aria-disabled": s,
145
- readOnly: s,
146
- required: I,
147
- disabled: l,
148
- type: "search",
149
- value: p,
150
- onChange: W
151
- }
152
- ),
153
- N && !s && !l && /* @__PURE__ */ a.jsx(
154
- D,
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__ */ a.jsx(
169
- D,
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: l || s,
180
- children: C
181
- }
182
- )
183
- ] })
184
- ] });
185
- };
186
- export {
187
- yt as DSInputSearch
188
- };
@@ -1,290 +0,0 @@
1
- "use client";
2
- import { j as e } from "./chunks/jsx-runtime.C-kxDJ4g.js";
3
- import { c } from "./chunks/index.CvOaL64Y.js";
4
- import { useState as f, useRef as D, useEffect as N, useLayoutEffect as M } from "react";
5
- import { u as ft } from "./chunks/useBreakpoint.5xBNDiCf.js";
6
- import { Asterisk as bt } from "./asterisk.BlYjsfkN.js";
7
- import { DSButton as X } from "./button.Di5XtChf.js";
8
- import { M as w, b as L } from "./chunks/Input.utils.Bly6ZzLI.js";
9
- import { DSSystemFeedback as mt } from "./systemfeedback.rBgdiL5T.js";
10
- import { g as x } from "./chunks/helpers.B1JT5ShS.js";
11
- import './assets/inputstepper.B0oC1URa.css';const vt = "_input_1bk6v_187", ht = "_input--invalid_1bk6v_298", kt = "_input--small_1bk6v_305", xt = "_input--has-leading-icon_1bk6v_351", St = "_input--has-action-button_1bk6v_354", yt = "_input--has-second-action-button_1bk6v_357", It = "_input--has-affix_1bk6v_369", gt = "_input--is-ready_1bk6v_381", At = "_root_1bk6v_388", Bt = "_hint_1bk6v_396", Dt = "_label_1bk6v_396", Nt = "_wrapper_1bk6v_400", wt = "_affix_1bk6v_406", Lt = "_affix--small_1bk6v_426", Ht = "_affix--disabled_1bk6v_438", Rt = "_prefix_1bk6v_441", jt = "_affix--readonly_1bk6v_444", Et = "_suffix_1bk6v_454", Ct = "_action-button_1bk6v_461", $t = "_label--hidden_1bk6v_478", Ft = "_feedback_1bk6v_505", Vt = "_second-action-button_1bk6v_519", Pt = "_value-announcer_1bk6v_523", n = {
12
- input: vt,
13
- "input--invalid": "_input--invalid_1bk6v_298",
14
- inputInvalid: ht,
15
- "input--small": "_input--small_1bk6v_305",
16
- inputSmall: kt,
17
- "input--has-leading-icon": "_input--has-leading-icon_1bk6v_351",
18
- inputHasLeadingIcon: xt,
19
- "input--has-action-button": "_input--has-action-button_1bk6v_354",
20
- inputHasActionButton: St,
21
- "input--has-second-action-button": "_input--has-second-action-button_1bk6v_357",
22
- inputHasSecondActionButton: yt,
23
- "input--has-affix": "_input--has-affix_1bk6v_369",
24
- inputHasAffix: It,
25
- "input--is-ready": "_input--is-ready_1bk6v_381",
26
- inputIsReady: gt,
27
- root: At,
28
- hint: Bt,
29
- label: Dt,
30
- wrapper: Nt,
31
- affix: wt,
32
- "affix--small": "_affix--small_1bk6v_426",
33
- affixSmall: Lt,
34
- "affix--disabled": "_affix--disabled_1bk6v_438",
35
- affixDisabled: Ht,
36
- prefix: Rt,
37
- "affix--readonly": "_affix--readonly_1bk6v_444",
38
- affixReadonly: jt,
39
- suffix: Et,
40
- "action-button": "_action-button_1bk6v_461",
41
- actionButton: Ct,
42
- "label--hidden": "_label--hidden_1bk6v_478",
43
- labelHidden: $t,
44
- feedback: Ft,
45
- "second-action-button": "_second-action-button_1bk6v_519",
46
- secondActionButton: Vt,
47
- "value-announcer": "_value-announcer_1bk6v_523",
48
- valueAnnouncer: Pt
49
- }, Tt = ({
50
- id: a,
51
- label: b,
52
- prefix: m,
53
- suffix: v
54
- }) => {
55
- if (!a)
56
- throw new Error(
57
- x(
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
- x(
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 > w && console.warn(
70
- x(
71
- "DSInputStepper",
72
- `Prefix length must not exceed ${w} characters.`
73
- )
74
- ), v && v.length > L && console.warn(
75
- x(
76
- "DSInputStepper",
77
- `Suffix length must not exceed ${L} characters.`
78
- )
79
- );
80
- }, Qt = ({
81
- id: a,
82
- label: b,
83
- announcementText: m = "Value changed to",
84
- className: v,
85
- disabled: d = !1,
86
- decreaseAmountButtonLabel: q = "Decrease",
87
- hint: S,
88
- hideLabel: G = !1,
89
- invalid: h = !1,
90
- increaseAmountButtonLabel: O = "Increase",
91
- prefix: u,
92
- max: H = 100,
93
- min: R = 0,
94
- readonly: p = !1,
95
- required: j = !1,
96
- size: o = "medium",
97
- step: U = 1,
98
- suffix: r,
99
- systemFeedback: y,
100
- value: k,
101
- onChange: E,
102
- ...J
103
- }) => {
104
- process.env.NODE_ENV !== "production" && Tt({
105
- id: a,
106
- label: b,
107
- prefix: u,
108
- suffix: r
109
- });
110
- const [K, Q] = f(!1), [_, I] = f(k), [g, C] = f(""), [Y, Z] = f(!1), [z, tt] = f({}), s = D(null), nt = u == null ? void 0 : u.substring(0, w), A = D(null), et = r == null ? void 0 : r.substring(0, L), B = D(null), at = ft(G);
111
- N(() => {
112
- k && I(k);
113
- }, [k]), N(() => {
114
- if (g) {
115
- const t = setTimeout(() => {
116
- C("");
117
- }, 3e3);
118
- return () => clearTimeout(t);
119
- }
120
- }, [g]), N(() => {
121
- var i;
122
- const t = (l) => {
123
- l.preventDefault();
124
- };
125
- return (i = s.current) == null || i.addEventListener("wheel", t, {
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", t);
131
- };
132
- }, []), M(() => {
133
- const t = o === "medium" ? 16 : 8, i = {};
134
- if (A.current) {
135
- const l = A.current.offsetWidth;
136
- i.paddingLeft = t + l + "px";
137
- }
138
- if (B.current) {
139
- const l = B.current.offsetWidth;
140
- i.paddingRight = t + l + "px";
141
- }
142
- tt(i), Q(!0);
143
- }, [u, r, o, 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(n.affix, {
151
- [n.affixSmall]: o === "small",
152
- [n.affixDisabled]: d,
153
- [n.affixReadonly]: p
154
- }), F = `${a}-label`, V = `${a}-feedback`, P = `${a}-hint`, T = `${a}-value-announcer`, st = S ? ` ${P}` : "", ot = c(n.root, v), it = c(n.input, {
155
- // small input
156
- [n.inputSmall]: o === "small",
157
- // invalid state
158
- [n.inputInvalid]: h,
159
- // prefix/suffix
160
- [n.inputHasAffix]: u || r,
161
- [n.inputIsReady]: K
162
- }), lt = c(n.label, {
163
- // hide label only visually to keep them available for assistive technologies
164
- [n.labelHidden]: at
165
- }), ct = c(n.secondActionButton, {
166
- [n.secondActionButtonSmall]: o === "small"
167
- }), ut = c(n.actionButton, {
168
- [n.actionButtonSmall]: o === "small"
169
- }), rt = () => {
170
- const t = [T];
171
- return h && y && t.push(V), t.join(" ");
172
- }, W = () => {
173
- var t;
174
- if (s.current) {
175
- I(s.current.value);
176
- const i = new Event("change", { bubbles: !0 });
177
- (t = s.current) == null || t.dispatchEvent(i), C(`${m} ${s.current.value}`);
178
- }
179
- }, dt = () => {
180
- var t;
181
- (t = s.current) == null || t.stepDown(), W();
182
- }, pt = () => {
183
- var t;
184
- (t = s.current) == null || t.stepUp(), W();
185
- }, _t = (t) => {
186
- I(t.target.value), E && E(t);
187
- };
188
- return /* @__PURE__ */ e.jsxs("div", { className: ot, children: [
189
- /* @__PURE__ */ e.jsxs("label", { className: lt, id: F, htmlFor: a, children: [
190
- b,
191
- j && /* @__PURE__ */ e.jsx(bt, {})
192
- ] }),
193
- S && /* @__PURE__ */ e.jsx("div", { className: n.hint, id: P, children: S }),
194
- /* @__PURE__ */ e.jsx(
195
- "div",
196
- {
197
- "aria-live": "polite",
198
- "aria-atomic": "true",
199
- className: n.valueAnnouncer,
200
- id: T,
201
- children: g
202
- }
203
- ),
204
- h && y && /* @__PURE__ */ e.jsx(
205
- mt,
206
- {
207
- className: n.feedback,
208
- message: y,
209
- type: "invalid",
210
- id: V
211
- }
212
- ),
213
- /* @__PURE__ */ e.jsxs("div", { className: n.wrapper, children: [
214
- u && /* @__PURE__ */ e.jsx(
215
- "span",
216
- {
217
- className: c($, n.prefix),
218
- ref: A,
219
- "aria-disabled": d,
220
- children: nt
221
- }
222
- ),
223
- /* @__PURE__ */ e.jsx(
224
- "input",
225
- {
226
- className: it,
227
- id: a,
228
- ref: s,
229
- ...J,
230
- style: z,
231
- "aria-labelledby": `${F}${st}`,
232
- "aria-describedby": rt(),
233
- "aria-invalid": h,
234
- "aria-disabled": p,
235
- disabled: d,
236
- min: R,
237
- max: H,
238
- readOnly: p,
239
- required: j,
240
- step: U,
241
- type: "number",
242
- value: _,
243
- onChange: _t
244
- }
245
- ),
246
- r && /* @__PURE__ */ e.jsx(
247
- "span",
248
- {
249
- className: c($, n.suffix),
250
- ref: B,
251
- "aria-disabled": d,
252
- children: et
253
- }
254
- ),
255
- /* @__PURE__ */ e.jsx(
256
- X,
257
- {
258
- hideLabel: !0,
259
- theme: "light",
260
- iconName: "minus",
261
- variant: "filled",
262
- className: ct,
263
- size: o,
264
- onClick: dt,
265
- disabled: d || p || !!_ && Number(_) <= R,
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: ut,
278
- size: o,
279
- onClick: pt,
280
- disabled: d || p || !!_ && Number(_) >= H,
281
- type: "button",
282
- children: O
283
- }
284
- )
285
- ] })
286
- ] });
287
- };
288
- export {
289
- Qt as DSInputStepper
290
- };