@stihl-design-system/components 1.0.0-RC.0 → 1.0.0-RC.1

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 (105) hide show
  1. package/README.md +10 -1
  2. package/assets/Asterisk.288a3f48.css +1 -0
  3. package/assets/Button.c09c516e.css +1 -0
  4. package/assets/ButtonRound.fd628e54.css +1 -0
  5. package/assets/Checkbox.cde01607.css +1 -0
  6. package/assets/CustomReactSelect.cdb5f164.css +1 -0
  7. package/assets/Fieldset.729910fe.css +1 -0
  8. package/assets/Heading.50f5e903.css +1 -0
  9. package/assets/Input.92913cfe.css +1 -0
  10. package/assets/InputPassword.d7b9c937.css +1 -0
  11. package/assets/InputSearch.888f630a.css +1 -0
  12. package/assets/InputStepper.969db0d2.css +1 -0
  13. package/assets/Link.75834750.css +1 -0
  14. package/assets/LinkStandalone.19bdab0d.css +1 -0
  15. package/assets/OptionCheckbox.c56568a3.css +1 -0
  16. package/assets/Radio.79d98dde.css +1 -0
  17. package/assets/Select.b9c135c2.css +1 -0
  18. package/assets/Switch.781e3de6.css +1 -0
  19. package/assets/SystemFeedback.c30264c0.css +1 -0
  20. package/assets/Text.ac70cc84.css +1 -0
  21. package/assets/Textarea.12046393.css +1 -0
  22. package/assets/Title.e9e5a7e6.css +1 -0
  23. package/asterisk.cb74ea72.js +8 -0
  24. package/button.87ad387c.js +135 -0
  25. package/buttonround.ecb24c29.js +118 -0
  26. package/checkbox.42617f46.js +112 -0
  27. package/{checkboxgroup.e9e25471.js → checkboxgroup.fa110fdf.js} +2 -2
  28. package/chunks/{CustomReactSelect.9d0a378a.js → CustomReactSelect.2e4e7ba0.js} +342 -338
  29. package/chunks/Link.module.15dedc23.js +37 -0
  30. package/{combobox.f98a4472.js → combobox.d93091e0.js} +1 -1
  31. package/{customreactselect.a53f9932.js → customreactselect.7c77375a.js} +4 -4
  32. package/fieldset.fdd84bda.js +98 -0
  33. package/heading.c02dcb70.js +44 -0
  34. package/index.es.js +19 -19
  35. package/input.064e0bbf.js +230 -0
  36. package/inputpassword.f76c2f62.js +139 -0
  37. package/inputsearch.6e913fc6.js +188 -0
  38. package/inputstepper.2047ec77.js +286 -0
  39. package/{link.cd3720d1.js → link.5eb13d6e.js} +1 -1
  40. package/linkstandalone.edfd6288.js +80 -0
  41. package/optioncheckbox.2369560b.js +43 -0
  42. package/package.json +10 -1
  43. package/radio.fd841ab0.js +79 -0
  44. package/{radiogroup.6a22fe96.js → radiogroup.e1c8ea3d.js} +2 -2
  45. package/select.88d40c51.js +188 -0
  46. package/styles/fonts/STIHLContrafaceDigitalDisplayTitling.woff +0 -0
  47. package/styles/fonts/STIHLContrafaceDigitalDisplayTitling.woff2 +0 -0
  48. package/styles/fonts/STIHLContrafaceDigitalText-Bold.woff +0 -0
  49. package/styles/fonts/STIHLContrafaceDigitalText-Bold.woff2 +0 -0
  50. package/styles/fonts/STIHLContrafaceDigitalText.woff +0 -0
  51. package/styles/fonts/STIHLContrafaceDigitalText.woff2 +0 -0
  52. package/styles/fonts/font-face.min.css +1 -1
  53. package/styles/scss/lib/_heading.scss +14 -6
  54. package/styles/scss/lib/_text.scss +12 -12
  55. package/switch.96fd1689.js +65 -0
  56. package/{systemfeedback.6bbd1505.js → systemfeedback.8515a4e0.js} +10 -10
  57. package/text.de8facb9.js +57 -0
  58. package/textarea.b8c40c8b.js +189 -0
  59. package/title.7be43d50.js +36 -0
  60. package/assets/Asterisk.582f2067.css +0 -1
  61. package/assets/Button.684e8bda.css +0 -1
  62. package/assets/ButtonRound.ca8748cf.css +0 -1
  63. package/assets/Checkbox.84cf6398.css +0 -1
  64. package/assets/CustomReactSelect.d89ccccb.css +0 -1
  65. package/assets/Fieldset.5297efb8.css +0 -1
  66. package/assets/Heading.32278621.css +0 -1
  67. package/assets/Input.2c508b2f.css +0 -1
  68. package/assets/InputPassword.a534f047.css +0 -1
  69. package/assets/InputSearch.8f986307.css +0 -1
  70. package/assets/InputStepper.52fb45ca.css +0 -1
  71. package/assets/Link.03deeca0.css +0 -1
  72. package/assets/LinkStandalone.7e23a8ac.css +0 -1
  73. package/assets/OptionCheckbox.9c20f6f1.css +0 -1
  74. package/assets/Radio.be8f06f5.css +0 -1
  75. package/assets/Select.b2423b5f.css +0 -1
  76. package/assets/Switch.f3ab20de.css +0 -1
  77. package/assets/SystemFeedback.f4421d60.css +0 -1
  78. package/assets/Text.4756effe.css +0 -1
  79. package/assets/Textarea.eecf04b3.css +0 -1
  80. package/assets/Title.60d50d3e.css +0 -1
  81. package/asterisk.91abccec.js +0 -8
  82. package/button.89b2675b.js +0 -135
  83. package/buttonround.c60c8034.js +0 -118
  84. package/checkbox.7d414047.js +0 -112
  85. package/chunks/Link.module.b8230547.js +0 -37
  86. package/fieldset.fb7b7e49.js +0 -98
  87. package/heading.cb7698f4.js +0 -44
  88. package/input.abb902e3.js +0 -228
  89. package/inputpassword.11c12c66.js +0 -139
  90. package/inputsearch.0c88e71a.js +0 -188
  91. package/inputstepper.b74dac4d.js +0 -284
  92. package/linkstandalone.26b52de0.js +0 -80
  93. package/optioncheckbox.7195f001.js +0 -43
  94. package/radio.1b205d64.js +0 -79
  95. package/select.2ff31eab.js +0 -188
  96. package/styles/fonts/STIHLContrafaceDisplayTitling.woff +0 -0
  97. package/styles/fonts/STIHLContrafaceDisplayTitling.woff2 +0 -0
  98. package/styles/fonts/STIHLContrafaceText-Bold.woff +0 -0
  99. package/styles/fonts/STIHLContrafaceText-Bold.woff2 +0 -0
  100. package/styles/fonts/STIHLContrafaceText.woff +0 -0
  101. package/styles/fonts/STIHLContrafaceText.woff2 +0 -0
  102. package/switch.2f011fcc.js +0 -65
  103. package/text.8d80704f.js +0 -57
  104. package/textarea.e156b0ce.js +0 -189
  105. package/title.d855a8e4.js +0 -36
@@ -0,0 +1,188 @@
1
+ import "./assets/InputSearch.888f630a.css";
2
+ import { j as e } from "./chunks/jsx-runtime.5c071667.js";
3
+ import { c } from "./chunks/index.8021d3e0.js";
4
+ import { useState as J, useRef as w, useEffect as A } from "react";
5
+ import { g as y, a as K } from "./chunks/helpers.ea3ca41a.js";
6
+ import { u as Q } from "./chunks/useBreakpoint.6c1b06c2.js";
7
+ import { Asterisk as U } from "./asterisk.cb74ea72.js";
8
+ import { DSButton as D } from "./button.87ad387c.js";
9
+ import { DSSystemFeedback as X } from "./systemfeedback.8515a4e0.js";
10
+ const Y = "_input_1ym7n_73", Z = "_input--invalid_1ym7n_183", z = "_input--small_1ym7n_190", tt = "_input--has-leading-icon_1ym7n_236", nt = "_input--has-action-button_1ym7n_239", et = "_input--has-second-action-button_1ym7n_242", at = "_input--has-affix_1ym7n_254", ot = "_input--is-ready_1ym7n_266", st = "_root_1ym7n_273", it = "_hint_1ym7n_281", ct = "_label_1ym7n_281", ut = "_wrapper_1ym7n_285", lt = "_action-button_1ym7n_291", rt = "_second-action-button_1ym7n_295", pt = "_label--hidden_1ym7n_312", mt = "_feedback_1ym7n_339", t = {
11
+ input: Y,
12
+ "input--invalid": "_input--invalid_1ym7n_183",
13
+ inputInvalid: Z,
14
+ "input--small": "_input--small_1ym7n_190",
15
+ inputSmall: z,
16
+ "input--has-leading-icon": "_input--has-leading-icon_1ym7n_236",
17
+ inputHasLeadingIcon: tt,
18
+ "input--has-action-button": "_input--has-action-button_1ym7n_239",
19
+ inputHasActionButton: nt,
20
+ "input--has-second-action-button": "_input--has-second-action-button_1ym7n_242",
21
+ inputHasSecondActionButton: et,
22
+ "input--has-affix": "_input--has-affix_1ym7n_254",
23
+ inputHasAffix: at,
24
+ "input--is-ready": "_input--is-ready_1ym7n_266",
25
+ inputIsReady: ot,
26
+ root: st,
27
+ hint: it,
28
+ label: ct,
29
+ wrapper: ut,
30
+ "action-button": "_action-button_1ym7n_291",
31
+ actionButton: lt,
32
+ "second-action-button": "_second-action-button_1ym7n_295",
33
+ secondActionButton: rt,
34
+ "label--hidden": "_label--hidden_1ym7n_312",
35
+ labelHidden: pt,
36
+ feedback: mt
37
+ }, _t = ({ id: n, label: u }) => {
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 (!u)
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"), xt = ({
53
+ id: n,
54
+ label: u,
55
+ className: H,
56
+ clearButtonLabel: E = "Clear search field",
57
+ disabled: l = !1,
58
+ hint: d,
59
+ hideLabel: j = !1,
60
+ invalid: r = !1,
61
+ readonly: o = !1,
62
+ required: S = !1,
63
+ size: s = "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: u
74
+ });
75
+ const [p, g] = J(b), f = w(null), m = w(null), V = Q(j);
76
+ A(() => {
77
+ g(b);
78
+ }, [b]), A(() => {
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]: s === "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 && !o && !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]: s === "small"
100
+ }), T = c(t.secondActionButton, {
101
+ [t.secondActionButtonSmall]: s === "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
+ u,
121
+ S && /* @__PURE__ */ e.jsx(U, {})
122
+ ] }),
123
+ d && /* @__PURE__ */ e.jsx("div", { className: t.hint, id: x, children: d }),
124
+ r && 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": r && h ? B : void 0,
143
+ "aria-invalid": r,
144
+ "aria-disabled": o,
145
+ readOnly: o,
146
+ required: S,
147
+ disabled: l,
148
+ type: "search",
149
+ value: p,
150
+ onChange: W
151
+ }
152
+ ),
153
+ N && !o && !l && /* @__PURE__ */ e.jsx(
154
+ D,
155
+ {
156
+ hideLabel: !0,
157
+ theme: "light",
158
+ iconName: "cross",
159
+ className: T,
160
+ variant: "ghost",
161
+ size: s,
162
+ onClick: M,
163
+ type: "button",
164
+ tabIndex: -1,
165
+ children: E
166
+ }
167
+ ),
168
+ /* @__PURE__ */ e.jsx(
169
+ D,
170
+ {
171
+ hideLabel: !0,
172
+ theme: "light",
173
+ iconName: "magnifying-glass",
174
+ className: q,
175
+ variant: "ghost",
176
+ size: s,
177
+ onClick: k,
178
+ type: "submit",
179
+ disabled: l || o,
180
+ children: C
181
+ }
182
+ )
183
+ ] })
184
+ ] });
185
+ };
186
+ export {
187
+ xt as DSInputSearch
188
+ };
@@ -0,0 +1,286 @@
1
+ import "./assets/InputStepper.969db0d2.css";
2
+ import { j as e } from "./chunks/jsx-runtime.5c071667.js";
3
+ import { c } from "./chunks/index.8021d3e0.js";
4
+ import { useState as _, useRef as N, useEffect as D, useLayoutEffect as M } from "react";
5
+ import { u as hn } from "./chunks/useBreakpoint.6c1b06c2.js";
6
+ import { Asterisk as mn } from "./asterisk.cb74ea72.js";
7
+ import { DSButton as X } from "./button.87ad387c.js";
8
+ import { M as w, b as L } from "./chunks/Input.utils.f8f3286f.js";
9
+ import { DSSystemFeedback as bn } from "./systemfeedback.8515a4e0.js";
10
+ import { g as S } from "./chunks/helpers.ea3ca41a.js";
11
+ const kn = "_input_hnpik_73", xn = "_input--invalid_hnpik_184", Sn = "_input--small_hnpik_191", vn = "_input--has-leading-icon_hnpik_237", In = "_input--has-action-button_hnpik_240", yn = "_input--has-second-action-button_hnpik_243", gn = "_input--has-affix_hnpik_255", An = "_input--is-ready_hnpik_267", Bn = "_root_hnpik_274", Nn = "_hint_hnpik_282", Dn = "_label_hnpik_282", wn = "_wrapper_hnpik_286", Ln = "_affix_hnpik_292", Hn = "_affix--small_hnpik_310", jn = "_affix--disabled_hnpik_322", En = "_prefix_hnpik_326", Rn = "_suffix_hnpik_332", Cn = "_action-button_hnpik_337", $n = "_label--hidden_hnpik_354", Fn = "_feedback_hnpik_381", Vn = "_second-action-button_hnpik_395", Pn = "_value-announcer_hnpik_399", t = {
12
+ input: kn,
13
+ "input--invalid": "_input--invalid_hnpik_184",
14
+ inputInvalid: xn,
15
+ "input--small": "_input--small_hnpik_191",
16
+ inputSmall: Sn,
17
+ "input--has-leading-icon": "_input--has-leading-icon_hnpik_237",
18
+ inputHasLeadingIcon: vn,
19
+ "input--has-action-button": "_input--has-action-button_hnpik_240",
20
+ inputHasActionButton: In,
21
+ "input--has-second-action-button": "_input--has-second-action-button_hnpik_243",
22
+ inputHasSecondActionButton: yn,
23
+ "input--has-affix": "_input--has-affix_hnpik_255",
24
+ inputHasAffix: gn,
25
+ "input--is-ready": "_input--is-ready_hnpik_267",
26
+ inputIsReady: An,
27
+ root: Bn,
28
+ hint: Nn,
29
+ label: Dn,
30
+ wrapper: wn,
31
+ affix: Ln,
32
+ "affix--small": "_affix--small_hnpik_310",
33
+ affixSmall: Hn,
34
+ "affix--disabled": "_affix--disabled_hnpik_322",
35
+ affixDisabled: jn,
36
+ prefix: En,
37
+ suffix: Rn,
38
+ "action-button": "_action-button_hnpik_337",
39
+ actionButton: Cn,
40
+ "label--hidden": "_label--hidden_hnpik_354",
41
+ labelHidden: $n,
42
+ feedback: Fn,
43
+ "second-action-button": "_second-action-button_hnpik_395",
44
+ secondActionButton: Vn,
45
+ "value-announcer": "_value-announcer_hnpik_399",
46
+ valueAnnouncer: Pn
47
+ }, Tn = ({
48
+ id: a,
49
+ label: f,
50
+ prefix: h,
51
+ suffix: m
52
+ }) => {
53
+ if (!a)
54
+ throw new Error(
55
+ S(
56
+ "DSInputStepper",
57
+ 'A unique "id" prop is required. Please add an unique "id" prop to the DSInputStepper component.'
58
+ )
59
+ );
60
+ if (!f)
61
+ throw new Error(
62
+ S(
63
+ "DSInputStepper",
64
+ `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}.`
65
+ )
66
+ );
67
+ h && h.length > w && console.warn(
68
+ S(
69
+ "DSInputStepper",
70
+ `Prefix length must not exceed ${w} characters.`
71
+ )
72
+ ), m && m.length > L && console.warn(
73
+ S(
74
+ "DSInputStepper",
75
+ `Suffix length must not exceed ${L} characters.`
76
+ )
77
+ );
78
+ }, Yn = ({
79
+ id: a,
80
+ label: f,
81
+ announcementText: h = "Value changed to",
82
+ className: m,
83
+ disabled: p = !1,
84
+ decreaseAmountButtonLabel: q = "Decrease",
85
+ hint: v,
86
+ hideLabel: G = !1,
87
+ invalid: b = !1,
88
+ increaseAmountButtonLabel: O = "Increase",
89
+ prefix: u,
90
+ max: H = 100,
91
+ min: j = 0,
92
+ readonly: k = !1,
93
+ required: E = !1,
94
+ size: s = "medium",
95
+ step: U = 1,
96
+ suffix: r,
97
+ systemFeedback: I,
98
+ value: x,
99
+ onChange: R,
100
+ ...J
101
+ }) => {
102
+ process.env.NODE_ENV !== "production" && Tn({
103
+ id: a,
104
+ label: f,
105
+ prefix: u,
106
+ suffix: r
107
+ });
108
+ const [K, Q] = _(!1), [d, y] = _(x), [g, C] = _(""), [Y, Z] = _(!1), [z, nn] = _({}), i = N(null), tn = u == null ? void 0 : u.substring(0, w), A = N(null), en = r == null ? void 0 : r.substring(0, L), B = N(null), an = hn(G);
109
+ D(() => {
110
+ x && y(x);
111
+ }, [x]), D(() => {
112
+ if (g) {
113
+ const n = setTimeout(() => {
114
+ C("");
115
+ }, 3e3);
116
+ return () => clearTimeout(n);
117
+ }
118
+ }, [g]), D(() => {
119
+ var o;
120
+ const n = (l) => {
121
+ l.preventDefault();
122
+ };
123
+ return (o = i.current) == null || o.addEventListener("wheel", n, {
124
+ // The { passive: false } option is used to indicate that the event listener wants to cancel the event, allowing preventDefault to work as expected.
125
+ passive: !1
126
+ }), () => {
127
+ var l;
128
+ (l = i.current) == null || l.removeEventListener("wheel", n);
129
+ };
130
+ }, []), M(() => {
131
+ const n = s === "medium" ? 16 : 8, o = {};
132
+ if (A.current) {
133
+ const l = A.current.offsetWidth;
134
+ o.paddingLeft = n + l + "px";
135
+ }
136
+ if (B.current) {
137
+ const l = B.current.offsetWidth;
138
+ o.paddingRight = n + l + "px";
139
+ }
140
+ nn(o), Q(!0);
141
+ }, [u, r, s, Y]), M(() => {
142
+ (async () => {
143
+ "fonts" in document && (await document.fonts.load(
144
+ '1em "STIHL Contraface Digital Text Regular"'
145
+ ), Z(!0));
146
+ })();
147
+ }, []);
148
+ const $ = c(t.affix, {
149
+ [t.affixSmall]: s === "small"
150
+ }), F = `${a}-label`, V = `${a}-feedback`, P = `${a}-hint`, T = `${a}-value-announcer`, sn = v ? ` ${P}` : "", on = c(t.root, m), ln = c(t.input, {
151
+ // small input
152
+ [t.inputSmall]: s === "small",
153
+ // invalid state
154
+ [t.inputInvalid]: b,
155
+ // prefix/suffix
156
+ [t.inputHasAffix]: u || r,
157
+ [t.inputIsReady]: K
158
+ }), cn = c(t.label, {
159
+ // hide label only visually to keep them available for assistive technologies
160
+ [t.labelHidden]: an
161
+ }), un = c(t.secondActionButton, {
162
+ [t.secondActionButtonSmall]: s === "small"
163
+ }), rn = c(t.actionButton, {
164
+ [t.actionButtonSmall]: s === "small"
165
+ }), pn = () => {
166
+ const n = [T];
167
+ return b && I && n.push(V), n.join(" ");
168
+ }, W = () => {
169
+ var n;
170
+ if (i.current) {
171
+ y(i.current.value);
172
+ const o = new Event("change", { bubbles: !0 });
173
+ (n = i.current) == null || n.dispatchEvent(o), C(`${h} ${i.current.value}`);
174
+ }
175
+ }, dn = () => {
176
+ var n;
177
+ (n = i.current) == null || n.stepDown(), W();
178
+ }, _n = () => {
179
+ var n;
180
+ (n = i.current) == null || n.stepUp(), W();
181
+ }, fn = (n) => {
182
+ y(n.target.value), R && R(n);
183
+ };
184
+ return /* @__PURE__ */ e.jsxs("div", { className: on, children: [
185
+ /* @__PURE__ */ e.jsxs("label", { className: cn, id: F, htmlFor: a, children: [
186
+ f,
187
+ E && /* @__PURE__ */ e.jsx(mn, {})
188
+ ] }),
189
+ v && /* @__PURE__ */ e.jsx("div", { className: t.hint, id: P, children: v }),
190
+ /* @__PURE__ */ e.jsx(
191
+ "div",
192
+ {
193
+ "aria-live": "polite",
194
+ "aria-atomic": "true",
195
+ className: t.valueAnnouncer,
196
+ id: T,
197
+ children: g
198
+ }
199
+ ),
200
+ b && I && /* @__PURE__ */ e.jsx(
201
+ bn,
202
+ {
203
+ className: t.feedback,
204
+ message: I,
205
+ type: "invalid",
206
+ id: V
207
+ }
208
+ ),
209
+ /* @__PURE__ */ e.jsxs("div", { className: t.wrapper, children: [
210
+ u && /* @__PURE__ */ e.jsx(
211
+ "span",
212
+ {
213
+ className: c($, t.prefix),
214
+ ref: A,
215
+ "aria-disabled": p,
216
+ children: tn
217
+ }
218
+ ),
219
+ /* @__PURE__ */ e.jsx(
220
+ "input",
221
+ {
222
+ className: ln,
223
+ id: a,
224
+ ref: i,
225
+ ...J,
226
+ style: z,
227
+ "aria-labelledby": `${F}${sn}`,
228
+ "aria-describedby": pn(),
229
+ "aria-invalid": b,
230
+ "aria-disabled": k,
231
+ disabled: p,
232
+ min: j,
233
+ max: H,
234
+ readOnly: k,
235
+ required: E,
236
+ step: U,
237
+ type: "number",
238
+ value: d,
239
+ onChange: fn
240
+ }
241
+ ),
242
+ r && /* @__PURE__ */ e.jsx(
243
+ "span",
244
+ {
245
+ className: c($, t.suffix),
246
+ ref: B,
247
+ "aria-disabled": p,
248
+ children: en
249
+ }
250
+ ),
251
+ /* @__PURE__ */ e.jsx(
252
+ X,
253
+ {
254
+ hideLabel: !0,
255
+ theme: "light",
256
+ iconName: "minus",
257
+ variant: "filled",
258
+ className: un,
259
+ size: s,
260
+ onClick: dn,
261
+ disabled: p || k || !!d && Number(d) <= j,
262
+ type: "button",
263
+ children: q
264
+ }
265
+ ),
266
+ /* @__PURE__ */ e.jsx(
267
+ X,
268
+ {
269
+ hideLabel: !0,
270
+ theme: "light",
271
+ iconName: "plus",
272
+ variant: "filled",
273
+ className: rn,
274
+ size: s,
275
+ onClick: _n,
276
+ disabled: p || k || !!d && Number(d) >= H,
277
+ type: "button",
278
+ children: O
279
+ }
280
+ )
281
+ ] })
282
+ ] });
283
+ };
284
+ export {
285
+ Yn as DSInputStepper
286
+ };
@@ -3,7 +3,7 @@ import { j as d } from "./chunks/jsx-runtime.5c071667.js";
3
3
  import { c as u } from "./chunks/index.8021d3e0.js";
4
4
  import { u as i } from "./chunks/useBreakpoint.6c1b06c2.js";
5
5
  import { DSIcon as S } from "./icon.b4211784.js";
6
- import { s as o } from "./chunks/Link.module.b8230547.js";
6
+ import { s as o } from "./chunks/Link.module.15dedc23.js";
7
7
  const F = ({
8
8
  children: n,
9
9
  aria: c,
@@ -0,0 +1,80 @@
1
+ import "./assets/LinkStandalone.19bdab0d.css";
2
+ import { j as r } from "./chunks/jsx-runtime.5c071667.js";
3
+ import { c as x } from "./chunks/index.8021d3e0.js";
4
+ import { DSIcon as H } from "./icon.b4211784.js";
5
+ import "react";
6
+ import "./chunks/Link.module.15dedc23.js";
7
+ const j = "_root_1iiai_25", v = "_root--highlight_1iiai_96", L = "_root--neutral-dark_1iiai_167", N = "_root--highlight-dark_1iiai_238", I = "_root--active_1iiai_309", A = "_root--icon-left_1iiai_315", o = {
8
+ root: j,
9
+ "root--highlight": "_root--highlight_1iiai_96",
10
+ rootHighlight: v,
11
+ "root--neutral-dark": "_root--neutral-dark_1iiai_167",
12
+ rootNeutralDark: L,
13
+ "root--highlight-dark": "_root--highlight-dark_1iiai_238",
14
+ rootHighlightDark: N,
15
+ "root--active": "_root--active_1iiai_309",
16
+ rootActive: I,
17
+ "root--icon-left": "_root--icon-left_1iiai_315",
18
+ rootIconLeft: A
19
+ }, R = ({
20
+ children: e,
21
+ aria: _,
22
+ active: g,
23
+ className: n,
24
+ dataTrackingid: c,
25
+ download: k,
26
+ href: a,
27
+ iconName: l,
28
+ iconPosition: d = "left",
29
+ iconSource: h,
30
+ referrerPolicy: m,
31
+ rel: u,
32
+ target: f = "_self",
33
+ theme: t = "light",
34
+ variant: i = "neutral",
35
+ ...p
36
+ }) => {
37
+ const D = x(o.root, n, {
38
+ // variant
39
+ [o.rootHighlight]: i === "highlight",
40
+ // theme
41
+ [o.rootNeutralDark]: t === "dark" && i === "neutral",
42
+ [o.rootHighlightDark]: t === "dark" && i === "highlight",
43
+ // active
44
+ [o.rootActive]: g,
45
+ // icon position
46
+ [o.rootIconLeft]: d === "left"
47
+ }), s = a === void 0 ? "span" : "a";
48
+ return /* @__PURE__ */ r.jsxs(
49
+ s,
50
+ {
51
+ className: D,
52
+ "data-trackingid": c,
53
+ ...s === "a" && {
54
+ href: a,
55
+ target: f,
56
+ rel: u,
57
+ referrerPolicy: m,
58
+ download: k
59
+ },
60
+ ..._,
61
+ ...p,
62
+ children: [
63
+ /* @__PURE__ */ r.jsx("span", { className: o.label, children: e }),
64
+ (l || h) && /* @__PURE__ */ r.jsx(
65
+ H,
66
+ {
67
+ name: l,
68
+ theme: t,
69
+ source: h,
70
+ size: "medium",
71
+ "aria-hidden": "true"
72
+ }
73
+ )
74
+ ]
75
+ }
76
+ );
77
+ };
78
+ export {
79
+ R as DSLinkStandalone
80
+ };
@@ -0,0 +1,43 @@
1
+ import "./assets/OptionCheckbox.c56568a3.css";
2
+ import { j as e } from "./chunks/jsx-runtime.5c071667.js";
3
+ import { c as s } from "./chunks/index.8021d3e0.js";
4
+ import { DSIcon as _ } from "./icon.b4211784.js";
5
+ const i = "_root_zs58d_49", l = "_root--disabled_zs58d_68", k = "_checkbox_zs58d_72", n = "_icon-check_zs58d_86", r = "_checkbox--checked_zs58d_105", x = "_checkbox--disabled_zs58d_108", m = "_label_zs58d_125", c = {
6
+ root: i,
7
+ "root--disabled": "_root--disabled_zs58d_68",
8
+ rootDisabled: l,
9
+ checkbox: k,
10
+ "icon-check": "_icon-check_zs58d_86",
11
+ iconCheck: n,
12
+ "checkbox--checked": "_checkbox--checked_zs58d_105",
13
+ checkboxChecked: r,
14
+ "checkbox--disabled": "_checkbox--disabled_zs58d_108",
15
+ checkboxDisabled: x,
16
+ label: m
17
+ }, D = ({
18
+ label: d,
19
+ checked: h,
20
+ className: a,
21
+ disabled: o
22
+ }) => {
23
+ const t = s(c.root, {
24
+ [c.rootDisabled]: o
25
+ }), b = s(c.checkbox, {
26
+ [c.checkboxDisabled]: o,
27
+ [c.checkboxChecked]: h
28
+ });
29
+ return /* @__PURE__ */ e.jsx("div", { className: a, children: /* @__PURE__ */ e.jsxs("div", { className: t, children: [
30
+ /* @__PURE__ */ e.jsx("span", { className: b, children: /* @__PURE__ */ e.jsx(
31
+ _,
32
+ {
33
+ name: "check",
34
+ className: c.iconCheck,
35
+ "aria-hidden": "true"
36
+ }
37
+ ) }),
38
+ /* @__PURE__ */ e.jsx("span", { className: c.label, children: d })
39
+ ] }) });
40
+ };
41
+ export {
42
+ D as OptionCheckbox
43
+ };
package/package.json CHANGED
@@ -1,9 +1,18 @@
1
1
  {
2
2
  "name": "@stihl-design-system/components",
3
3
  "private": false,
4
- "version": "1.0.0-RC.0",
4
+ "version": "1.0.0-RC.1",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://designsystem.stihl.de",
7
+ "keywords": [
8
+ "stihl",
9
+ "design",
10
+ "system",
11
+ "web",
12
+ "component",
13
+ "library",
14
+ "react"
15
+ ],
7
16
  "publishConfig": {
8
17
  "access": "public",
9
18
  "@stihl-design-system:registry": "https://registry.npmjs.org"