@stihl-design-system/components 1.0.0-RC.13 → 1.0.0-RC.15

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 (180) hide show
  1. package/accordion.C57VwDyH.js +10 -0
  2. package/{arialiveregions.Cyycgs8g.js → arialiveregions.4aRkBQ4r.js} +3 -3
  3. package/assets/Breadcrumb.BaYrwrYl.css +1 -0
  4. package/assets/NavigationTabList.B6x56sAV.css +1 -0
  5. package/assets/linkstandalone.LMdnj-G0.css +1 -0
  6. package/assets/numberindicator.BJnvB-K3.css +1 -0
  7. package/assets/tabpane.D1LTb432.css +1 -0
  8. package/{asterisk.DpzETKdT.js → asterisk.DdCXwXQh.js} +2 -2
  9. package/breadcrumb.BZeQwTPf.js +10 -0
  10. package/breadcrumb.d.ts +2 -0
  11. package/{button.M4nXjcUn.js → button.Nknx8eP1.js} +6 -6
  12. package/{buttonround.E56F_805.js → buttonround.BKnxl68m.js} +5 -5
  13. package/{checkbox.Cb2_ey6U.js → checkbox.B_Es9RI2.js} +6 -6
  14. package/checkboxgroup.Cg89jmSA.js +8 -0
  15. package/chip.C0WRTcW9.js +10 -0
  16. package/{chipgroup.BvTj1ziW.js → chipgroup.BSNjn_jZ.js} +49 -49
  17. package/chunks/{Accordion.CB6jB3s_.js → Accordion.CecPmLcb.js} +6 -6
  18. package/chunks/AriaLiveRegions.utils.Bq6Mp2bE.js +40 -0
  19. package/chunks/Breadcrumb.qH8heJ6N.js +112 -0
  20. package/chunks/{CheckboxGroup.S6i5EOc4.js → CheckboxGroup.Bjjv2D4P.js} +40 -37
  21. package/chunks/{Chip.CMlPUyOJ.js → Chip.BtY9yzNj.js} +33 -27
  22. package/chunks/{CustomReactSelect.CQ1uexBH.js → CustomReactSelect.BBHV7vvE.js} +1096 -1092
  23. package/chunks/{Dialog.CudsqNag.js → Dialog.CG1l6YDx.js} +5 -5
  24. package/chunks/{Drawer.ueG2Bzr9.js → Drawer.BFw0swsE.js} +5 -5
  25. package/chunks/{Fieldset.Cjmkgxxk.js → Fieldset.CPuNSQNU.js} +8 -8
  26. package/chunks/{Icon.BCmt_XBG.js → Icon.CvVRQw6C.js} +29 -29
  27. package/chunks/{Input.utils.ChV6RJsh.js → Input.utils.BolAdXy6.js} +21 -24
  28. package/chunks/{InputPassword.CNLbBFjx.js → InputPassword.DCV-dKiH.js} +22 -22
  29. package/chunks/{InputSearch.CHA6mkX_.js → InputSearch.BXLLIjLO.js} +9 -9
  30. package/chunks/{InputStepper.xmWGU9pU.js → InputStepper.BgUod0gn.js} +51 -49
  31. package/chunks/NavigationTabList.D3zzmWIL.js +60 -0
  32. package/chunks/NavigationTabs.ni5Zoq0z.js +72 -0
  33. package/chunks/{Notification.nx5vTamN.js → Notification.BmXWqd85.js} +5 -5
  34. package/chunks/RadioGroup.DVyupPKV.js +150 -0
  35. package/chunks/Select.ByKUcvrB.js +195 -0
  36. package/chunks/TabPane.utils.CWMN6Tsy.js +20 -0
  37. package/chunks/Tabs.UwweipbU.js +84 -0
  38. package/chunks/{Textarea.DUBSOpNL.js → Textarea.BzHIGYVB.js} +52 -52
  39. package/chunks/{Toast.DyEi2GEP.js → Toast.CwalSzYB.js} +5 -5
  40. package/chunks/has-window.ut_-aShB.js +5 -0
  41. package/chunks/helpers.CcqWV-wZ.js +8 -0
  42. package/chunks/index.CEyLAtio.js +48 -0
  43. package/chunks/{jsx-runtime.C115EyI4.js → jsx-runtime.BteaETFx.js} +175 -176
  44. package/chunks/useBreakpoint.BzR_yaIv.js +42 -0
  45. package/chunks/useIsomorphicLayoutEffect.CnJ9AMFS.js +7 -0
  46. package/{combobox.CzBpi97e.js → combobox.BY7mbdhL.js} +2 -2
  47. package/components/AriaLiveRegions/AriaLiveRegions.utils.d.ts +2 -2
  48. package/components/Breadcrumb/Breadcrumb.d.ts +33 -0
  49. package/components/Breadcrumb/Breadcrumb.test.d.ts +1 -0
  50. package/components/Breadcrumb/Breadcrumb.utils.d.ts +4 -0
  51. package/components/Combobox/CustomReactSelect/CustomReactSelect.d.ts +1 -1
  52. package/components/Input/Input.d.ts +6 -0
  53. package/components/InputPassword/InputPassword.d.ts +3 -3
  54. package/components/NavigationTabs/NavigationTabs.d.ts +41 -0
  55. package/components/NavigationTabs/NavigationTabs.test.d.ts +1 -0
  56. package/components/NavigationTabs/NavigationTabs.utils.d.ts +6 -0
  57. package/components/NumberIndicator/NumberIndicator.d.ts +12 -0
  58. package/components/NumberIndicator/NumberIndicator.test.d.ts +1 -0
  59. package/components/NumberIndicator/NumberIndicator.utils.d.ts +2 -0
  60. package/components/Tabs/TabList/NavigationTabList/NavigationTabList.d.ts +21 -0
  61. package/components/Tabs/TabList/TabList.d.ts +38 -0
  62. package/components/Tabs/TabList/TabList.utils.d.ts +6 -0
  63. package/components/Tabs/TabList/TabList.utils.test.d.ts +1 -0
  64. package/components/Tabs/TabPane/TabPane.d.ts +10 -0
  65. package/components/Tabs/TabPane/TabPane.utils.d.ts +3 -0
  66. package/components/Tabs/TabPane/TabPane.utils.test.d.ts +1 -0
  67. package/components/Tabs/Tabs.d.ts +47 -0
  68. package/components/Tabs/Tabs.test.d.ts +1 -0
  69. package/components/Tabs/Tabs.utils.d.ts +6 -0
  70. package/customreactselect.1jiQuYLT.js +13 -0
  71. package/dialog.BF2q9x7U.js +9 -0
  72. package/drawer.B_dIJ0pb.js +9 -0
  73. package/fieldset.CU4aXdx1.js +11 -0
  74. package/{flag.BKpsdB_-.js → flag.CfYdEnax.js} +4 -4
  75. package/{floatingactionbutton.D5L0B7zI.js → floatingactionbutton.CiDfDE1q.js} +5 -5
  76. package/{heading.IPIYc5vW.js → heading.BesCIchJ.js} +3 -3
  77. package/icon.R9KQet1b.js +8 -0
  78. package/index.d.ts +8 -2
  79. package/index.es.js +144 -130
  80. package/{input.BEnCFNM-.js → input.Bx05SF7t.js} +20 -19
  81. package/inputpassword.DswedDs6.js +12 -0
  82. package/inputsearch.Dc4b-FYd.js +13 -0
  83. package/inputstepper.Cf2gM7tW.js +15 -0
  84. package/{link.DREJAoPG.js → link.DsNdcAjt.js} +5 -5
  85. package/linkstandalone.BGQ2HOO0.js +79 -0
  86. package/{logo.Hul8qCFo.js → logo.DZy1Gj0_.js} +3 -3
  87. package/navigationtablist.BKp4bwRn.js +9 -0
  88. package/navigationtablist.d.ts +2 -0
  89. package/navigationtabs.CmdW9g9l.js +8 -0
  90. package/navigationtabs.d.ts +2 -0
  91. package/notification.YWtBGqLz.js +9 -0
  92. package/numberindicator.d.ts +2 -0
  93. package/numberindicator.kZ-G6BbU.js +26 -0
  94. package/{optioncheckbox.BRUTnQnJ.js → optioncheckbox.DV0QpteH.js} +4 -4
  95. package/package.json +47 -47
  96. package/partials/index.js +688 -689
  97. package/{radio.DEILy_lV.js → radio.DZEIaDlU.js} +4 -4
  98. package/radiogroup.BNohLQGM.js +10 -0
  99. package/select.CZvgpafD.js +12 -0
  100. package/{skiptocontent.BxvpIB7H.js → skiptocontent.CoC8Rk8k.js} +5 -5
  101. package/{spinner.Bq97Og-6.js → spinner.pcu39V2a.js} +4 -4
  102. package/styles/scss/ds/lib/theme.scss +2 -0
  103. package/{switch.DI8YYa5G.js → switch.DaPoGnX-.js} +5 -5
  104. package/{systemfeedback.C3Pfxxpp.js → systemfeedback.bHSsfiy3.js} +4 -4
  105. package/tablist.BCOOuiX4.js +258 -0
  106. package/tablist.d.ts +2 -0
  107. package/tabpane.CAy_cIi3.js +37 -0
  108. package/tabpane.d.ts +2 -0
  109. package/tabs.d.ts +2 -0
  110. package/tabs.jdCTjBr0.js +10 -0
  111. package/{text.DThvTwm8.js → text.C5UzzMI9.js} +3 -3
  112. package/textarea.D9XTlEUz.js +12 -0
  113. package/{title.DqzdB2Gq.js → title.B2VKsF9O.js} +3 -3
  114. package/toast.D2BnxnFr.js +10 -0
  115. package/{toastmanager.B7EZ4JSI.js → toastmanager.CzDos3Ik.js} +18 -18
  116. package/utils/helpers.d.ts +7 -0
  117. package/utils/index.d.ts +1 -0
  118. package/utils/isAnimationDisabled.d.ts +1 -0
  119. package/accordion.Rvtiu8Y4.js +0 -10
  120. package/assets/linkstandalone.DIazcjIv.css +0 -1
  121. package/checkboxgroup.DBDmB-zR.js +0 -8
  122. package/chip.C_1tGqvZ.js +0 -10
  123. package/chunks/AriaLiveRegions.utils.BGSZafnS.js +0 -34
  124. package/chunks/RadioGroup.Crj7NoOs.js +0 -137
  125. package/chunks/Select.E6gLFYLk.js +0 -194
  126. package/chunks/has-document.r9i9TxKV.js +0 -5
  127. package/chunks/helpers.B1JT5ShS.js +0 -7
  128. package/chunks/index.CvOaL64Y.js +0 -45
  129. package/chunks/useBreakpoint.5xBNDiCf.js +0 -48
  130. package/customreactselect.qf7CIeFs.js +0 -13
  131. package/dialog.DYlBUsOD.js +0 -9
  132. package/drawer.CvhbP1ra.js +0 -9
  133. package/fieldset.CtUGEdLv.js +0 -11
  134. package/icon.Ck0BpI34.js +0 -8
  135. package/inputpassword.B-D_jB9w.js +0 -12
  136. package/inputsearch.CaSpklR1.js +0 -13
  137. package/inputstepper.C7KD1-0S.js +0 -13
  138. package/linkstandalone.BBoEniZ_.js +0 -79
  139. package/notification.6M0OdGXK.js +0 -9
  140. package/radiogroup.DeU-HdlP.js +0 -10
  141. package/select.BYraFJzz.js +0 -12
  142. package/textarea.CBvH0ljM.js +0 -12
  143. package/toast.n1QUINSA.js +0 -10
  144. package/utils/has-document.d.ts +0 -1
  145. /package/assets/{Accordion.i4k5SMQM.css → Accordion.DDxMnzaG.css} +0 -0
  146. /package/assets/{CheckboxGroup.BH1Br1dg.css → CheckboxGroup.Dd-Huo7x.css} +0 -0
  147. /package/assets/{Chip.DSdLuzoi.css → Chip.dxIYIjj7.css} +0 -0
  148. /package/assets/{CustomReactSelect.vHt8qNKC.css → CustomReactSelect.DYDaP5r5.css} +0 -0
  149. /package/assets/{Dialog.BgzebVk4.css → Dialog.DXmPdExC.css} +0 -0
  150. /package/assets/{Drawer.Bauwxrk7.css → Drawer.BcM0epJS.css} +0 -0
  151. /package/assets/{Fieldset.DOdTbb7C.css → Fieldset.Og4EsnPI.css} +0 -0
  152. /package/assets/{Icon.DxRSBRSL.css → Icon.ZNrKuqgu.css} +0 -0
  153. /package/assets/{InputPassword.CG7Ugu73.css → InputPassword.DtKteerr.css} +0 -0
  154. /package/assets/{InputSearch.CseChMc-.css → InputSearch.Mql3oFlQ.css} +0 -0
  155. /package/assets/{InputStepper.C0eAYr7P.css → InputStepper.BXz1MMBg.css} +0 -0
  156. /package/assets/{Notification.DbRapUJo.css → Notification.DZIF-Wo6.css} +0 -0
  157. /package/assets/{RadioGroup.BfMo157q.css → RadioGroup.CM2mYOzc.css} +0 -0
  158. /package/assets/{Select.D4EXgIbz.css → Select.KvAgxJZk.css} +0 -0
  159. /package/assets/{Textarea.KJGPTYMz.css → Textarea.BIRQlv6m.css} +0 -0
  160. /package/assets/{Toast.CuafTAf7.css → Toast.CuM-yS7S.css} +0 -0
  161. /package/assets/{arialiveregions.DhsijBaL.css → arialiveregions.e0Q16ZWi.css} +0 -0
  162. /package/assets/{asterisk.BfVAUBO7.css → asterisk.B41DaZDe.css} +0 -0
  163. /package/assets/{button.DF4RBeC2.css → button.CpPeQPsM.css} +0 -0
  164. /package/assets/{buttonround.19uK_-oO.css → buttonround.BFauSRAb.css} +0 -0
  165. /package/assets/{checkbox.ByOoFouu.css → checkbox.BKHQN_tu.css} +0 -0
  166. /package/assets/{chipgroup.BzfZLbkv.css → chipgroup.CUIkyYBW.css} +0 -0
  167. /package/assets/{flag.B-RLcMcf.css → flag.C7i3MAAP.css} +0 -0
  168. /package/assets/{floatingactionbutton.E9HekT6S.css → floatingactionbutton.l0nvFiJU.css} +0 -0
  169. /package/assets/{heading.u4f8Mz94.css → heading.B-rdLVZD.css} +0 -0
  170. /package/assets/{input.BAkFKPW3.css → input.B5spSeMe.css} +0 -0
  171. /package/assets/{link.DDJj0D1U.css → link.Be5OF_8E.css} +0 -0
  172. /package/assets/{logo.CnW8alZU.css → logo.bVXt9m9R.css} +0 -0
  173. /package/assets/{optioncheckbox.BZaWtRD7.css → optioncheckbox.DAffEKvY.css} +0 -0
  174. /package/assets/{radio.X-RTl_jo.css → radio.CGf7v0D_.css} +0 -0
  175. /package/assets/{skiptocontent.PTL3256m.css → skiptocontent.CTSDC_kG.css} +0 -0
  176. /package/assets/{spinner.2iWJWKyA.css → spinner.BJ5xwnYH.css} +0 -0
  177. /package/assets/{switch.gw6aa3kx.css → switch.Bc9KIyw9.css} +0 -0
  178. /package/assets/{systemfeedback.BPz5YlPC.css → systemfeedback.DoqgHZPH.css} +0 -0
  179. /package/assets/{text.DjTG_qNb.css → text.BlRcxO8n.css} +0 -0
  180. /package/assets/{title.rosWPEG3.css → title.B0tsgJ-n.css} +0 -0
@@ -0,0 +1,195 @@
1
+ "use client";
2
+ import { j as t } from "./jsx-runtime.BteaETFx.js";
3
+ import { c as r } from "./index.CEyLAtio.js";
4
+ import { useRef as C, useState as q, useEffect as W } from "react";
5
+ import { u as M } from "./useBreakpoint.BzR_yaIv.js";
6
+ import { Asterisk as T } from "../asterisk.DdCXwXQh.js";
7
+ import { D as F } from "./Icon.CvVRQw6C.js";
8
+ import { DSSystemFeedback as V } from "../systemfeedback.bHSsfiy3.js";
9
+ import { g as _, r as Z } from "./helpers.CcqWV-wZ.js";
10
+ import '../assets/Select.KvAgxJZk.css';const J = "ds-select_root_1ui0h_1", K = "ds-select_hint_1ui0h_9", O = "ds-select_label_1ui0h_9", Q = "ds-select_wrapper_1ui0h_13", U = "ds-select_affix_1ui0h_19", X = "ds-select_affix--small_1ui0h_40", Y = "ds-select_affix--disabled_1ui0h_53", z = "ds-select_prefix_1ui0h_61", G = "ds-select_affix--readonly_1ui0h_64", ee = "ds-select_suffix_1ui0h_74", se = "ds-select_action-button_1ui0h_81", te = "ds-select_label--hidden_1ui0h_99", le = "ds-select_label--disabled_1ui0h_112", ce = "ds-select_feedback_1ui0h_132", ae = "ds-select_select-wrapper_1ui0h_137", ne = "ds-select_select_1ui0h_137", ie = "ds-select_select--invalid_1ui0h_262", oe = "ds-select_select--small_1ui0h_269", de = "ds-select_input--has-leading-icon_1ui0h_322", re = "ds-select_input--has-action-button_1ui0h_325", _e = "ds-select_input--has-second-action-button_1ui0h_328", ue = "ds-select_select--has-leading-icon_1ui0h_331", he = "ds-select_select--has-action-button_1ui0h_334", fe = "ds-select_select--has-second-action-button_1ui0h_337", pe = "ds-select_select--has-affix_1ui0h_340", be = "ds-select_select--is-ready_1ui0h_354", me = "ds-select_select--placeholder_1ui0h_371", xe = "ds-select_chevron_1ui0h_410", Se = "ds-select_chevron--small_1ui0h_414", ve = "ds-select_chevron--disabled_1ui0h_417", e = {
11
+ root: J,
12
+ hint: K,
13
+ label: O,
14
+ wrapper: Q,
15
+ affix: U,
16
+ "affix--small": "ds-select_affix--small_1ui0h_40",
17
+ affixSmall: X,
18
+ "affix--disabled": "ds-select_affix--disabled_1ui0h_53",
19
+ affixDisabled: Y,
20
+ prefix: z,
21
+ "affix--readonly": "ds-select_affix--readonly_1ui0h_64",
22
+ affixReadonly: G,
23
+ suffix: ee,
24
+ "action-button": "ds-select_action-button_1ui0h_81",
25
+ actionButton: se,
26
+ "label--hidden": "ds-select_label--hidden_1ui0h_99",
27
+ labelHidden: te,
28
+ "label--disabled": "ds-select_label--disabled_1ui0h_112",
29
+ labelDisabled: le,
30
+ feedback: ce,
31
+ "select-wrapper": "ds-select_select-wrapper_1ui0h_137",
32
+ selectWrapper: ae,
33
+ select: ne,
34
+ "select--invalid": "ds-select_select--invalid_1ui0h_262",
35
+ selectInvalid: ie,
36
+ "select--small": "ds-select_select--small_1ui0h_269",
37
+ selectSmall: oe,
38
+ "input--has-leading-icon": "ds-select_input--has-leading-icon_1ui0h_322",
39
+ inputHasLeadingIcon: de,
40
+ "input--has-action-button": "ds-select_input--has-action-button_1ui0h_325",
41
+ inputHasActionButton: re,
42
+ "input--has-second-action-button": "ds-select_input--has-second-action-button_1ui0h_328",
43
+ inputHasSecondActionButton: _e,
44
+ "select--has-leading-icon": "ds-select_select--has-leading-icon_1ui0h_331",
45
+ selectHasLeadingIcon: ue,
46
+ "select--has-action-button": "ds-select_select--has-action-button_1ui0h_334",
47
+ selectHasActionButton: he,
48
+ "select--has-second-action-button": "ds-select_select--has-second-action-button_1ui0h_337",
49
+ selectHasSecondActionButton: fe,
50
+ "select--has-affix": "ds-select_select--has-affix_1ui0h_340",
51
+ selectHasAffix: pe,
52
+ "select--is-ready": "ds-select_select--is-ready_1ui0h_354",
53
+ selectIsReady: be,
54
+ "select--placeholder": "ds-select_select--placeholder_1ui0h_371",
55
+ selectPlaceholder: me,
56
+ chevron: xe,
57
+ "chevron--small": "ds-select_chevron--small_1ui0h_414",
58
+ chevronSmall: Se,
59
+ "chevron--disabled": "ds-select_chevron--disabled_1ui0h_417",
60
+ chevronDisabled: ve
61
+ }, Le = ["medium", "small"], ye = ({
62
+ id: s,
63
+ label: a,
64
+ options: c
65
+ }) => {
66
+ if (!s)
67
+ throw new Error(
68
+ _(
69
+ "DSSelect",
70
+ 'A unique "id" prop is required. Please add a unique "id" prop to the DSSelect component.'
71
+ )
72
+ );
73
+ if (!a)
74
+ throw new Error(
75
+ _(
76
+ "DSSelect",
77
+ `A label is always required for a11y reasons. Please add a descriptive "label" prop to the DSSelect component. If you don't want to display a label, set hideLabel={true}.`
78
+ )
79
+ );
80
+ if (Array.isArray(c)) {
81
+ if (c.length === 0)
82
+ throw new Error(
83
+ _("DSSelect", "The options array must not be empty.")
84
+ );
85
+ } else throw new Error(
86
+ _("DSSelect", Z("options", "DSSelect"))
87
+ );
88
+ }, ge = (s, a, c) => s === "" || a !== void 0 && a !== "" ? !1 : !(c !== void 0 && c !== ""), Ne = ({
89
+ id: s,
90
+ label: a,
91
+ options: c,
92
+ className: H,
93
+ defaultValue: b,
94
+ disabled: u = !1,
95
+ hideLabel: w = !1,
96
+ hint: h,
97
+ invalid: d = !1,
98
+ placeholder: f = "Select",
99
+ required: m = !1,
100
+ size: x = "medium",
101
+ systemFeedback: p,
102
+ value: S,
103
+ ...I
104
+ }) => {
105
+ process.env.NODE_ENV !== "production" && ye({
106
+ id: s,
107
+ label: a,
108
+ options: c
109
+ });
110
+ const o = C(null), [A, E] = q(
111
+ ge(f, b, S)
112
+ );
113
+ W(() => {
114
+ if (!o.current) return;
115
+ const n = () => {
116
+ if (!o.current) return;
117
+ const i = o.current.value;
118
+ E(i === "");
119
+ }, l = o.current;
120
+ return l.addEventListener("change", n), () => {
121
+ l.removeEventListener("change", n);
122
+ };
123
+ }, []);
124
+ const j = M(w), v = `${s}-label`, y = `${s}-feedback`, g = `${s}-hint`, B = h ? ` ${g}` : "", L = (n) => [
125
+ f && /* @__PURE__ */ t.jsx("option", { value: "", children: f }, `${s}-hidden-option-disabled-placeholder`),
126
+ ...n.map((l) => {
127
+ if ("options" in l) {
128
+ const { label: i, options: $ } = l;
129
+ return /* @__PURE__ */ t.jsx("optgroup", { label: i, children: $.map(D) }, i);
130
+ } else
131
+ return D(l);
132
+ })
133
+ ], D = ({ label: n, value: l, isDisabled: i }) => /* @__PURE__ */ t.jsx("option", { value: l, disabled: i, children: n }, l), N = r(e.root, H), P = r(e.select, {
134
+ [e.selectSmall]: x === "small",
135
+ [e.selectInvalid]: d,
136
+ [e.selectPlaceholder]: A
137
+ }), k = r(e.label, {
138
+ // hide label only visually to keep them available for assistive technologies
139
+ [e.labelHidden]: j,
140
+ [e.labelDisabled]: u
141
+ }), R = r(e.chevron, {
142
+ [e.chevronSmall]: x === "small",
143
+ [e.chevronDisabled]: u
144
+ });
145
+ return /* @__PURE__ */ t.jsxs("div", { className: N, children: [
146
+ /* @__PURE__ */ t.jsxs("label", { className: k, id: v, htmlFor: s, children: [
147
+ a,
148
+ m && /* @__PURE__ */ t.jsx(T, {})
149
+ ] }),
150
+ h && /* @__PURE__ */ t.jsx("div", { className: e.hint, id: g, children: h }),
151
+ d && p && /* @__PURE__ */ t.jsx(
152
+ V,
153
+ {
154
+ className: e.feedback,
155
+ message: p,
156
+ type: "invalid",
157
+ id: y,
158
+ "aria-live": "assertive"
159
+ }
160
+ ),
161
+ /* @__PURE__ */ t.jsxs("div", { className: e.selectWrapper, children: [
162
+ /* @__PURE__ */ t.jsx(
163
+ "select",
164
+ {
165
+ ...I,
166
+ id: s,
167
+ ref: o,
168
+ className: P,
169
+ "aria-labelledby": `${v}${B}`,
170
+ "aria-describedby": d && p ? y : void 0,
171
+ "aria-invalid": d,
172
+ defaultValue: b,
173
+ value: S,
174
+ disabled: u,
175
+ required: m,
176
+ children: L(c)
177
+ }
178
+ ),
179
+ /* @__PURE__ */ t.jsx(
180
+ F,
181
+ {
182
+ name: "chevron-down",
183
+ className: R,
184
+ "aria-hidden": "true"
185
+ }
186
+ )
187
+ ] })
188
+ ] });
189
+ };
190
+ export {
191
+ Ne as D,
192
+ Le as S,
193
+ ge as g,
194
+ ye as v
195
+ };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ const n = (t) => [
3
+ "A",
4
+ "BUTTON",
5
+ "INPUT",
6
+ "SELECT",
7
+ "TEXTAREA",
8
+ "AUDIO",
9
+ "VIDEO"
10
+ ].includes(t.tagName) || t.hasAttribute("contenteditable"), r = (t) => {
11
+ const e = (a) => n(a) ? !0 : Array.from(a.children).some(
12
+ (s) => e(s)
13
+ );
14
+ return e(t);
15
+ }, c = (t, e) => `tabs-${t}-tabbutton-${e}`, o = (t, e, a) => `tabs-${t}-tabpanel-${e}-${a}`;
16
+ export {
17
+ c as a,
18
+ r as c,
19
+ o as g
20
+ };
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { j as t } from "./jsx-runtime.BteaETFx.js";
3
+ import { useState as h } from "react";
4
+ import { TabList as l } from "../tablist.BCOOuiX4.js";
5
+ import { TabPane as S } from "../tabpane.CAy_cIi3.js";
6
+ import { g as d } from "./TabPane.utils.CWMN6Tsy.js";
7
+ import { g as o, r as g } from "./helpers.CcqWV-wZ.js";
8
+ const j = ["left", "center"], P = ["prev", "next"], w = ({
9
+ id: e,
10
+ tabs: r,
11
+ defaultSelectedTabIndex: s = 0
12
+ }) => {
13
+ if (!e)
14
+ throw new Error(
15
+ o(
16
+ "DSTabs",
17
+ 'A unique "id" prop is required. Please add a unique "id" prop to the DSTabs component.'
18
+ )
19
+ );
20
+ if (Array.isArray(r)) {
21
+ if (r.length === 0)
22
+ throw new Error(
23
+ o("DSTabs", "The tabs array must not be empty.")
24
+ );
25
+ } else throw new Error(
26
+ o("DSTabs", g("tabs", "DSTabs"))
27
+ );
28
+ if (s < 0 || s >= r.length)
29
+ throw new Error(
30
+ o(
31
+ "DSTabs",
32
+ `Invalid defaultSelectedTabIndex: ${s}. It must be between 0 and ${r.length - 1}.`
33
+ )
34
+ );
35
+ }, q = ({
36
+ id: e,
37
+ tabs: r,
38
+ alignment: s = "left",
39
+ className: m,
40
+ classNameTabPane: T,
41
+ defaultSelectedTabIndex: a = 0,
42
+ onTabChange: c,
43
+ ...u
44
+ }) => {
45
+ process.env.NODE_ENV !== "production" && w({
46
+ id: e,
47
+ tabs: r,
48
+ defaultSelectedTabIndex: a
49
+ });
50
+ const [n, f] = h(
51
+ a
52
+ );
53
+ return /* @__PURE__ */ t.jsxs("div", { className: m, id: e, ...u, children: [
54
+ /* @__PURE__ */ t.jsx(
55
+ l,
56
+ {
57
+ id: e,
58
+ tabs: r,
59
+ setSelectedTabIndex: f,
60
+ selectedTabIndex: n,
61
+ alignment: s,
62
+ onTabChange: c
63
+ }
64
+ ),
65
+ r.map(({ id: i, content: D }, p) => /* @__PURE__ */ t.jsx(
66
+ S,
67
+ {
68
+ id: i,
69
+ content: D,
70
+ index: p,
71
+ selectedTabIndex: n,
72
+ tabListId: e,
73
+ className: T
74
+ },
75
+ d(e, i, p)
76
+ ))
77
+ ] });
78
+ };
79
+ export {
80
+ q as D,
81
+ j as T,
82
+ P as a,
83
+ w as v
84
+ };
@@ -1,54 +1,54 @@
1
1
  "use client";
2
- import { j as s } from "./jsx-runtime.C115EyI4.js";
3
- import { c as g } from "./index.CvOaL64Y.js";
2
+ import { j as s } from "./jsx-runtime.BteaETFx.js";
3
+ import { c as g } from "./index.CEyLAtio.js";
4
4
  import { useState as d, useRef as re, useEffect as x } from "react";
5
- import { u as ne, h as oe } from "./useBreakpoint.5xBNDiCf.js";
6
- import { g as V, p as z } from "./helpers.B1JT5ShS.js";
7
- import { Asterisk as ie } from "../asterisk.DpzETKdT.js";
8
- import { DSSystemFeedback as le } from "../systemfeedback.C3Pfxxpp.js";
9
- import '../assets/Textarea.KJGPTYMz.css';const de = "ds-textarea_textarea_18bj7_1", ce = "ds-textarea_textarea--invalid_18bj7_113", _e = "ds-textarea_textarea--small_18bj7_120", ue = "ds-textarea_textarea--resize-auto_18bj7_139", be = "ds-textarea_root_18bj7_149", fe = "ds-textarea_hint_18bj7_157", xe = "ds-textarea_label_18bj7_157", je = "ds-textarea_affix_18bj7_161", me = "ds-textarea_affix--small_18bj7_182", he = "ds-textarea_affix--disabled_18bj7_195", pe = "ds-textarea_prefix_18bj7_203", ve = "ds-textarea_affix--readonly_18bj7_206", ge = "ds-textarea_suffix_18bj7_216", Se = "ds-textarea_leading-icon_18bj7_223", Ie = "ds-textarea_leading-icon--small_18bj7_235", Ce = "ds-textarea_leading-icon--disabled_18bj7_238", ye = "ds-textarea_action-button_18bj7_247", De = "ds-textarea_label--hidden_18bj7_265", Ae = "ds-textarea_label--disabled_18bj7_278", we = "ds-textarea_feedback_18bj7_298", Re = "ds-textarea_char-count_18bj7_303", Te = "ds-textarea_char-count-announcer_18bj7_319", t = {
10
- textarea: de,
5
+ import { g as V, p as z } from "./helpers.CcqWV-wZ.js";
6
+ import { u as ne } from "./useBreakpoint.BzR_yaIv.js";
7
+ import { Asterisk as oe } from "../asterisk.DdCXwXQh.js";
8
+ import { DSSystemFeedback as ie } from "../systemfeedback.bHSsfiy3.js";
9
+ import '../assets/Textarea.BIRQlv6m.css';const le = "ds-textarea_textarea_18bj7_1", de = "ds-textarea_textarea--invalid_18bj7_113", ce = "ds-textarea_textarea--small_18bj7_120", _e = "ds-textarea_textarea--resize-auto_18bj7_139", ue = "ds-textarea_root_18bj7_149", be = "ds-textarea_hint_18bj7_157", fe = "ds-textarea_label_18bj7_157", xe = "ds-textarea_affix_18bj7_161", je = "ds-textarea_affix--small_18bj7_182", me = "ds-textarea_affix--disabled_18bj7_195", he = "ds-textarea_prefix_18bj7_203", pe = "ds-textarea_affix--readonly_18bj7_206", ve = "ds-textarea_suffix_18bj7_216", ge = "ds-textarea_leading-icon_18bj7_223", Se = "ds-textarea_leading-icon--small_18bj7_235", Ie = "ds-textarea_leading-icon--disabled_18bj7_238", Ce = "ds-textarea_action-button_18bj7_247", ye = "ds-textarea_label--hidden_18bj7_265", De = "ds-textarea_label--disabled_18bj7_278", Ae = "ds-textarea_feedback_18bj7_298", Re = "ds-textarea_char-count_18bj7_303", Te = "ds-textarea_char-count-announcer_18bj7_319", t = {
10
+ textarea: le,
11
11
  "textarea--invalid": "ds-textarea_textarea--invalid_18bj7_113",
12
- textareaInvalid: ce,
12
+ textareaInvalid: de,
13
13
  "textarea--small": "ds-textarea_textarea--small_18bj7_120",
14
- textareaSmall: _e,
14
+ textareaSmall: ce,
15
15
  "textarea--resize-auto": "ds-textarea_textarea--resize-auto_18bj7_139",
16
- textareaResizeAuto: ue,
17
- root: be,
18
- hint: fe,
19
- label: xe,
20
- affix: je,
16
+ textareaResizeAuto: _e,
17
+ root: ue,
18
+ hint: be,
19
+ label: fe,
20
+ affix: xe,
21
21
  "affix--small": "ds-textarea_affix--small_18bj7_182",
22
- affixSmall: me,
22
+ affixSmall: je,
23
23
  "affix--disabled": "ds-textarea_affix--disabled_18bj7_195",
24
- affixDisabled: he,
25
- prefix: pe,
24
+ affixDisabled: me,
25
+ prefix: he,
26
26
  "affix--readonly": "ds-textarea_affix--readonly_18bj7_206",
27
- affixReadonly: ve,
28
- suffix: ge,
27
+ affixReadonly: pe,
28
+ suffix: ve,
29
29
  "leading-icon": "ds-textarea_leading-icon_18bj7_223",
30
- leadingIcon: Se,
30
+ leadingIcon: ge,
31
31
  "leading-icon--small": "ds-textarea_leading-icon--small_18bj7_235",
32
- leadingIconSmall: Ie,
32
+ leadingIconSmall: Se,
33
33
  "leading-icon--disabled": "ds-textarea_leading-icon--disabled_18bj7_238",
34
- leadingIconDisabled: Ce,
34
+ leadingIconDisabled: Ie,
35
35
  "action-button": "ds-textarea_action-button_18bj7_247",
36
- actionButton: ye,
36
+ actionButton: Ce,
37
37
  "label--hidden": "ds-textarea_label--hidden_18bj7_265",
38
- labelHidden: De,
38
+ labelHidden: ye,
39
39
  "label--disabled": "ds-textarea_label--disabled_18bj7_278",
40
- labelDisabled: Ae,
41
- feedback: we,
40
+ labelDisabled: De,
41
+ feedback: Ae,
42
42
  "char-count": "ds-textarea_char-count_18bj7_303",
43
43
  charCount: Re,
44
44
  "char-count-announcer": "ds-textarea_char-count-announcer_18bj7_319",
45
45
  charCountAnnouncer: Te
46
- }, Pe = ["medium", "small"], Ee = ({ id: r, label: _ }) => {
46
+ }, ze = ["medium", "small"], we = ({ id: r, label: _ }) => {
47
47
  if (!r)
48
48
  throw new Error(
49
49
  V(
50
50
  "DSTextarea",
51
- 'A unique "id" prop is required. Please add an unique "id" prop to the DSTextarea component.'
51
+ 'A unique "id" prop is required. Please add a unique "id" prop to the DSTextarea component.'
52
52
  )
53
53
  );
54
54
  if (!_)
@@ -58,7 +58,7 @@ import '../assets/Textarea.KJGPTYMz.css';const de = "ds-textarea_textarea_18bj7_
58
58
  `A label is always required for a11y reasons. Please add a descriptive "label" prop to the DSTextarea component. If you don't want to display a label, set hideLabel={true}.`
59
59
  )
60
60
  );
61
- }, qe = ({
61
+ }, Pe = ({
62
62
  id: r,
63
63
  label: _,
64
64
  charsLimitText: P = "Character limit reached",
@@ -73,45 +73,45 @@ import '../assets/Textarea.KJGPTYMz.css';const de = "ds-textarea_textarea_18bj7_
73
73
  readonly: I = !1,
74
74
  required: C = !1,
75
75
  resize: u = "vertical",
76
- size: W = "medium",
76
+ size: X = "medium",
77
77
  systemFeedback: i,
78
78
  value: m,
79
- wrapperClassName: X,
79
+ wrapperClassName: Z,
80
80
  onChange: y,
81
81
  onInput: D,
82
- ...Z
82
+ ...G
83
83
  }) => {
84
- process.env.NODE_ENV !== "production" && Ee({
84
+ process.env.NODE_ENV !== "production" && we({
85
85
  id: r,
86
86
  label: _
87
87
  });
88
- const [G, A] = d(O || ""), [l, w] = d(0), [J, R] = d(0), [K, T] = d("off"), [E, h] = d(i), [p, v] = d(n), N = m !== void 0, b = N ? m : G, o = re(null), Q = ne(F);
88
+ const [J, A] = d(O || ""), [l, R] = d(0), [K, T] = d(0), [Q, w] = d("off"), [E, h] = d(i), [p, v] = d(n), N = m !== void 0, b = N ? m : J, o = re(null), U = ne(F);
89
89
  x(() => {
90
90
  if (!e || e <= 0)
91
91
  return;
92
- l >= e * 0.8 ? T("polite") : T("off");
92
+ l >= e * 0.8 ? w("polite") : w("off");
93
93
  const a = setTimeout(() => {
94
- R(e - l || 0);
94
+ T(e - l || 0);
95
95
  }, 1e3);
96
96
  return () => clearTimeout(a);
97
97
  }, [l]), x(() => {
98
- A(b || ""), c(), e && e > 0 && (w(b.toString().length || 0), R(e - b.toString().length || 0));
98
+ A(b || ""), c(), e && e > 0 && (R(b.toString().length || 0), T(e - b.toString().length || 0));
99
99
  }, [m]), x(() => {
100
100
  n && i ? (h(i), v(n)) : !n && e && e >= 0 && l >= e ? (v(!0), h(P)) : (h(i), v(n));
101
101
  }, [n, p, i, l]), x(() => {
102
- if (oe && u === "auto")
102
+ if (u === "auto")
103
103
  return c(), window.addEventListener("resize", c), () => window.removeEventListener("resize", c);
104
104
  }, [u, o.current]);
105
- const U = g(t.root, X), Y = g(t.textarea, M, {
105
+ const W = g(t.root, Z), Y = g(t.textarea, M, {
106
106
  // small textarea
107
- [t.textareaSmall]: W === "small",
107
+ [t.textareaSmall]: X === "small",
108
108
  // invalid state
109
109
  [t.textareaInvalid]: p,
110
110
  // resize handling
111
111
  [t.textareaResizeAuto]: u === "auto"
112
112
  }), L = g(t.label, {
113
113
  // hide label only visually to keep them available for assistive technologies
114
- [t.labelHidden]: Q,
114
+ [t.labelHidden]: U,
115
115
  [t.labelDisabled]: S
116
116
  }), B = `${r}-label`, $ = `${r}-feedback`, k = `${r}-hint`, H = `${r}-char-count-announcer`, ee = j ? ` ${k}` : "", c = () => {
117
117
  if (o.current && u === "auto") {
@@ -126,18 +126,18 @@ import '../assets/Textarea.KJGPTYMz.css';const de = "ds-textarea_textarea_18bj7_
126
126
  return e && e > 0 && a.push(H), n && i && a.push($), a.length > 0 ? a.join(" ") : void 0;
127
127
  }, te = (a) => {
128
128
  var f;
129
- D && D(a), e && e > 0 && w(((f = o.current) == null ? void 0 : f.value.length) || 0), c();
129
+ D && D(a), e && e > 0 && R(((f = o.current) == null ? void 0 : f.value.length) || 0), c();
130
130
  }, se = (a) => {
131
131
  y && y(a), N || A(a.target.value);
132
132
  };
133
- return /* @__PURE__ */ s.jsxs("div", { className: U, children: [
133
+ return /* @__PURE__ */ s.jsxs("div", { className: W, children: [
134
134
  /* @__PURE__ */ s.jsxs("label", { className: L, id: B, htmlFor: r, children: [
135
135
  _,
136
- C && /* @__PURE__ */ s.jsx(ie, {})
136
+ C && /* @__PURE__ */ s.jsx(oe, {})
137
137
  ] }),
138
138
  j && /* @__PURE__ */ s.jsx("div", { className: t.hint, id: k, children: j }),
139
139
  p && E && /* @__PURE__ */ s.jsx(
140
- le,
140
+ ie,
141
141
  {
142
142
  className: t.feedback,
143
143
  message: E,
@@ -151,7 +151,7 @@ import '../assets/Textarea.KJGPTYMz.css';const de = "ds-textarea_textarea_18bj7_
151
151
  className: Y,
152
152
  id: r,
153
153
  ref: o,
154
- ...Z,
154
+ ...G,
155
155
  "aria-labelledby": `${B}${ee}`,
156
156
  "aria-describedby": ae(),
157
157
  "aria-invalid": n,
@@ -179,12 +179,12 @@ import '../assets/Textarea.KJGPTYMz.css';const de = "ds-textarea_textarea_18bj7_
179
179
  {
180
180
  className: t.charCountAnnouncer,
181
181
  id: H,
182
- "aria-live": K,
182
+ "aria-live": Q,
183
183
  "aria-atomic": "true",
184
184
  children: [
185
185
  q,
186
186
  " ",
187
- J
187
+ K
188
188
  ]
189
189
  }
190
190
  )
@@ -192,7 +192,7 @@ import '../assets/Textarea.KJGPTYMz.css';const de = "ds-textarea_textarea_18bj7_
192
192
  ] });
193
193
  };
194
194
  export {
195
- qe as D,
196
- Pe as T,
197
- Ee as v
195
+ Pe as D,
196
+ ze as T,
197
+ we as v
198
198
  };
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { j as t } from "./jsx-runtime.C115EyI4.js";
3
- import { c } from "./index.CvOaL64Y.js";
2
+ import { j as t } from "./jsx-runtime.BteaETFx.js";
3
+ import { c } from "./index.CEyLAtio.js";
4
4
  import { forwardRef as u } from "react";
5
- import { DSButton as y } from "../button.M4nXjcUn.js";
6
- import { D as g } from "./Icon.BCmt_XBG.js";
7
- import '../assets/Toast.CuafTAf7.css';const h = "ds-toast_root_58y8a_5", p = "ds-toast_root--closing_58y8a_19", x = "ds-toast_fade-out_58y8a_1", I = "ds-toast_move-in_58y8a_1", S = "ds-toast_root--success_58y8a_54", N = "ds-toast_root--info_58y8a_58", j = "ds-toast_root--warning_58y8a_62", v = "ds-toast_content_58y8a_67", w = "ds-toast_content--hide-icon_58y8a_74", C = "ds-toast_icon_58y8a_78", D = "ds-toast_message_58y8a_82", o = {
5
+ import { DSButton as y } from "../button.Nknx8eP1.js";
6
+ import { D as g } from "./Icon.CvVRQw6C.js";
7
+ import '../assets/Toast.CuM-yS7S.css';const h = "ds-toast_root_58y8a_5", p = "ds-toast_root--closing_58y8a_19", x = "ds-toast_fade-out_58y8a_1", I = "ds-toast_move-in_58y8a_1", S = "ds-toast_root--success_58y8a_54", N = "ds-toast_root--info_58y8a_58", j = "ds-toast_root--warning_58y8a_62", v = "ds-toast_content_58y8a_67", w = "ds-toast_content--hide-icon_58y8a_74", C = "ds-toast_icon_58y8a_78", D = "ds-toast_message_58y8a_82", o = {
8
8
  root: h,
9
9
  "root--closing": "ds-toast_root--closing_58y8a_19",
10
10
  rootClosing: p,
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ const e = typeof window < "u" && typeof window.document < "u";
3
+ export {
4
+ e as h
5
+ };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ const r = (e) => typeof e != "number" || isNaN(e) ? 0 : e / 16, t = (e, s) => `[STIHL Design System] - [${e}]: ${s}`, o = (e, s) => `The "${e}" prop is required. Please add the "${e}" prop to the ${s} component.`, n = (e, s) => e == null ? void 0 : e.closest(s);
3
+ export {
4
+ n as a,
5
+ t as g,
6
+ r as p,
7
+ o as r
8
+ };
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ function c(e) {
3
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
4
+ }
5
+ var o = { exports: {} };
6
+ /*!
7
+ Copyright (c) 2018 Jed Watson.
8
+ Licensed under the MIT License (MIT), see
9
+ http://jedwatson.github.io/classnames
10
+ */
11
+ var i;
12
+ function p() {
13
+ return i || (i = 1, function(e) {
14
+ (function() {
15
+ var u = {}.hasOwnProperty;
16
+ function s() {
17
+ for (var t = "", r = 0; r < arguments.length; r++) {
18
+ var n = arguments[r];
19
+ n && (t = a(t, f(n)));
20
+ }
21
+ return t;
22
+ }
23
+ function f(t) {
24
+ if (typeof t == "string" || typeof t == "number")
25
+ return t;
26
+ if (typeof t != "object")
27
+ return "";
28
+ if (Array.isArray(t))
29
+ return s.apply(null, t);
30
+ if (t.toString !== Object.prototype.toString && !t.toString.toString().includes("[native code]"))
31
+ return t.toString();
32
+ var r = "";
33
+ for (var n in t)
34
+ u.call(t, n) && t[n] && (r = a(r, n));
35
+ return r;
36
+ }
37
+ function a(t, r) {
38
+ return r ? t ? t + " " + r : t + r : t;
39
+ }
40
+ e.exports ? (s.default = s, e.exports = s) : window.classNames = s;
41
+ })();
42
+ }(o)), o.exports;
43
+ }
44
+ var l = p();
45
+ const m = /* @__PURE__ */ c(l);
46
+ export {
47
+ m as c
48
+ };