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

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 (225) hide show
  1. package/README.md +1 -1
  2. package/{accordion.CEKQh-7i.js → accordion.Rvtiu8Y4.js} +3 -3
  3. package/arialiveregions.Cyycgs8g.js +27 -0
  4. package/assets/Accordion.i4k5SMQM.css +1 -0
  5. package/assets/CheckboxGroup.BH1Br1dg.css +1 -0
  6. package/assets/Chip.DSdLuzoi.css +1 -0
  7. package/assets/CustomReactSelect.vHt8qNKC.css +1 -0
  8. package/assets/Dialog.BgzebVk4.css +1 -0
  9. package/assets/Drawer.Bauwxrk7.css +1 -0
  10. package/assets/Fieldset.DOdTbb7C.css +1 -0
  11. package/assets/Icon.DxRSBRSL.css +1 -0
  12. package/assets/InputPassword.CG7Ugu73.css +1 -0
  13. package/assets/InputSearch.CseChMc-.css +1 -0
  14. package/assets/InputStepper.C0eAYr7P.css +1 -0
  15. package/assets/Notification.DbRapUJo.css +1 -0
  16. package/assets/RadioGroup.BfMo157q.css +1 -0
  17. package/assets/Select.D4EXgIbz.css +1 -0
  18. package/assets/Textarea.KJGPTYMz.css +1 -0
  19. package/assets/Toast.CuafTAf7.css +1 -0
  20. package/assets/arialiveregions.DhsijBaL.css +1 -0
  21. package/assets/asterisk.BfVAUBO7.css +1 -0
  22. package/assets/button.DF4RBeC2.css +1 -0
  23. package/assets/buttonround.19uK_-oO.css +1 -0
  24. package/assets/checkbox.ByOoFouu.css +1 -0
  25. package/assets/chipgroup.BzfZLbkv.css +1 -0
  26. package/assets/flag.B-RLcMcf.css +1 -0
  27. package/assets/floatingactionbutton.E9HekT6S.css +1 -0
  28. package/assets/heading.u4f8Mz94.css +1 -0
  29. package/assets/input.BAkFKPW3.css +1 -0
  30. package/assets/link.DDJj0D1U.css +1 -0
  31. package/assets/linkstandalone.DIazcjIv.css +1 -0
  32. package/assets/logo.CnW8alZU.css +1 -0
  33. package/assets/optioncheckbox.BZaWtRD7.css +1 -0
  34. package/assets/radio.X-RTl_jo.css +1 -0
  35. package/assets/skiptocontent.PTL3256m.css +1 -0
  36. package/assets/spinner.2iWJWKyA.css +1 -0
  37. package/assets/switch.gw6aa3kx.css +1 -0
  38. package/assets/systemfeedback.BPz5YlPC.css +1 -0
  39. package/assets/text.DjTG_qNb.css +1 -0
  40. package/assets/title.rosWPEG3.css +1 -0
  41. package/asterisk.DpzETKdT.js +8 -0
  42. package/button.M4nXjcUn.js +135 -0
  43. package/buttonround.E56F_805.js +118 -0
  44. package/checkbox.Cb2_ey6U.js +111 -0
  45. package/{checkboxgroup.BqD5IV51.js → checkboxgroup.DBDmB-zR.js} +2 -2
  46. package/{chip.B92ew-hk.js → chip.C_1tGqvZ.js} +2 -2
  47. package/chipgroup.BvTj1ziW.js +174 -0
  48. package/chunks/Accordion.CB6jB3s_.js +125 -0
  49. package/chunks/{CheckboxGroup.M3jOjhNf.js → CheckboxGroup.S6i5EOc4.js} +40 -40
  50. package/chunks/{Chip.fMG8wi5K.js → Chip.CMlPUyOJ.js} +15 -15
  51. package/chunks/{CustomReactSelect.D3jv5-fa.js → CustomReactSelect.CQ1uexBH.js} +1321 -1321
  52. package/chunks/Dialog.CudsqNag.js +148 -0
  53. package/chunks/Drawer.ueG2Bzr9.js +154 -0
  54. package/chunks/{Fieldset.C9K8BYmH.js → Fieldset.Cjmkgxxk.js} +32 -32
  55. package/chunks/{Icon.C2o2seDb.js → Icon.BCmt_XBG.js} +45 -45
  56. package/chunks/InputPassword.CNLbBFjx.js +143 -0
  57. package/chunks/InputSearch.CHA6mkX_.js +192 -0
  58. package/chunks/InputStepper.xmWGU9pU.js +294 -0
  59. package/chunks/Notification.nx5vTamN.js +92 -0
  60. package/chunks/RadioGroup.Crj7NoOs.js +137 -0
  61. package/chunks/Select.E6gLFYLk.js +194 -0
  62. package/chunks/Textarea.DUBSOpNL.js +198 -0
  63. package/chunks/Toast.DyEi2GEP.js +89 -0
  64. package/{combobox.BeTnbG1m.js → combobox.CzBpi97e.js} +1 -1
  65. package/components/Combobox/Combobox.d.ts +1 -1
  66. package/components/{CustomReactSelect → Combobox/CustomReactSelect}/CustomReactSelect.d.ts +2 -2
  67. package/components/{CustomReactSelect → Combobox/CustomReactSelect}/CustomReactSelect.utils.d.ts +1 -1
  68. package/components/Notification/Notification.d.ts +2 -6
  69. package/components/Radio/Radio.d.ts +1 -1
  70. package/customreactselect.d.ts +1 -1
  71. package/customreactselect.qf7CIeFs.js +13 -0
  72. package/{dialog.lGwNQU91.js → dialog.DYlBUsOD.js} +2 -2
  73. package/{drawer.DNi5m8wP.js → drawer.CvhbP1ra.js} +2 -2
  74. package/fieldset.CtUGEdLv.js +11 -0
  75. package/flag.BKpsdB_-.js +43 -0
  76. package/floatingactionbutton.D5L0B7zI.js +87 -0
  77. package/heading.IPIYc5vW.js +50 -0
  78. package/{icon.BoMgOmC1.js → icon.Ck0BpI34.js} +1 -1
  79. package/index.es.js +34 -34
  80. package/input.BEnCFNM-.js +239 -0
  81. package/{inputpassword.CSjh1GU7.js → inputpassword.B-D_jB9w.js} +4 -4
  82. package/{inputsearch.DyznOWLK.js → inputsearch.CaSpklR1.js} +4 -4
  83. package/{inputstepper.3BLb7s0P.js → inputstepper.C7KD1-0S.js} +4 -4
  84. package/link.DREJAoPG.js +116 -0
  85. package/linkstandalone.BBoEniZ_.js +79 -0
  86. package/logo.Hul8qCFo.js +65 -0
  87. package/{notification.0kX1GMaB.js → notification.6M0OdGXK.js} +3 -3
  88. package/optioncheckbox.BRUTnQnJ.js +43 -0
  89. package/optioncheckbox.d.ts +1 -1
  90. package/package.json +8 -6
  91. package/partials/index.js +1 -1
  92. package/radio.DEILy_lV.js +114 -0
  93. package/{radiogroup.SYkZm2DG.js → radiogroup.DeU-HdlP.js} +3 -3
  94. package/{select.CYbwR3RW.js → select.BYraFJzz.js} +4 -4
  95. package/skiptocontent.BxvpIB7H.js +45 -0
  96. package/spinner.Bq97Og-6.js +58 -0
  97. package/styles/scss/ds/index.scss +19 -0
  98. package/styles/scss/ds/lib/animation.scss +21 -0
  99. package/styles/scss/ds/lib/breakpoints.scss +15 -0
  100. package/styles/scss/ds/lib/container-query.scss +54 -0
  101. package/styles/scss/ds/lib/ds-internal/_a11y.scss +15 -0
  102. package/styles/scss/{lib → ds/lib/ds-internal}/_focus.scss +13 -15
  103. package/styles/scss/ds/lib/ds-internal/_heading.scss +37 -0
  104. package/styles/scss/ds/lib/ds-internal/_helpers.scss +32 -0
  105. package/styles/scss/ds/lib/ds-internal/_high-contrast.scss +6 -0
  106. package/styles/scss/ds/lib/ds-internal/_hover.scss +6 -0
  107. package/styles/scss/ds/lib/ds-internal/_index.scss +9 -0
  108. package/styles/scss/ds/lib/ds-internal/_link.scss +62 -0
  109. package/styles/scss/ds/lib/ds-internal/_spacing-dynamic.scss +53 -0
  110. package/styles/scss/ds/lib/ds-internal/_text.scss +30 -0
  111. package/styles/scss/ds/lib/grid-extended.scss +11 -0
  112. package/styles/scss/ds/lib/grid-full.scss +6 -0
  113. package/styles/scss/ds/lib/grid-main.scss +119 -0
  114. package/styles/scss/ds/lib/grid-narrow.scss +14 -0
  115. package/styles/scss/ds/lib/grid-sidebar-sidebar.scss +52 -0
  116. package/styles/scss/{lib/_grid-sidebar.scss → ds/lib/grid-sidebar.scss} +23 -32
  117. package/styles/scss/{lib/_grid.scss → ds/lib/grid.scss} +15 -17
  118. package/styles/scss/ds/lib/heading.scss +75 -0
  119. package/styles/scss/ds/lib/link.scss +74 -0
  120. package/styles/scss/ds/lib/media-query.scss +32 -0
  121. package/styles/scss/{lib/_shadow.scss → ds/lib/shadow.scss} +2 -2
  122. package/styles/scss/ds/lib/spacing-dynamic.scss +7 -0
  123. package/styles/scss/ds/lib/spacing.scss +20 -0
  124. package/styles/scss/ds/lib/text.scss +83 -0
  125. package/styles/scss/ds/lib/theme.scss +162 -0
  126. package/styles/scss/ds/lib/transition.scss +36 -0
  127. package/switch.DI8YYa5G.js +65 -0
  128. package/{systemfeedback.ZzRUAVYX.js → systemfeedback.C3Pfxxpp.js} +6 -6
  129. package/text.DThvTwm8.js +57 -0
  130. package/{textarea.DJc527nX.js → textarea.CBvH0ljM.js} +3 -3
  131. package/title.DqzdB2Gq.js +36 -0
  132. package/{toast.D48GFmp0.js → toast.n1QUINSA.js} +3 -3
  133. package/{toastmanager.Dl8-Q3ED.js → toastmanager.B7EZ4JSI.js} +1 -1
  134. package/arialiveregions.BKpxxK7O.js +0 -27
  135. package/assets/Accordion.DMEFgtQm.css +0 -1
  136. package/assets/CheckboxGroup.Bz3_xkZU.css +0 -1
  137. package/assets/Chip.D10_7Q82.css +0 -1
  138. package/assets/CustomReactSelect.D5XKd9vg.css +0 -1
  139. package/assets/Dialog.B0pucIEI.css +0 -1
  140. package/assets/Drawer.CATBzfY7.css +0 -1
  141. package/assets/Fieldset.CwDhKRUL.css +0 -1
  142. package/assets/Icon.Duy_0R8w.css +0 -1
  143. package/assets/InputPassword.DOAAzj-O.css +0 -1
  144. package/assets/InputSearch.CxPYaQGZ.css +0 -1
  145. package/assets/InputStepper.CYYJUu0b.css +0 -1
  146. package/assets/Notification.mhVFeSGm.css +0 -1
  147. package/assets/Select.DZKpHV4G.css +0 -1
  148. package/assets/Textarea.Cp0b7oZp.css +0 -1
  149. package/assets/Toast.Cz6wYaBv.css +0 -1
  150. package/assets/arialiveregions.GsGx2USO.css +0 -1
  151. package/assets/asterisk.DlJ4YtSZ.css +0 -1
  152. package/assets/button.C9_ejpGG.css +0 -1
  153. package/assets/buttonround.DTCqRP-0.css +0 -1
  154. package/assets/checkbox.K4CVYK9g.css +0 -1
  155. package/assets/chipgroup.BMovtKTy.css +0 -1
  156. package/assets/flag.DX_lH1v7.css +0 -1
  157. package/assets/floatingactionbutton.Do-yEH6c.css +0 -1
  158. package/assets/heading.6bER-Eac.css +0 -1
  159. package/assets/input.Q5oKkmW2.css +0 -1
  160. package/assets/link.DhZqkLMP.css +0 -1
  161. package/assets/linkstandalone.Dwz-_O8q.css +0 -1
  162. package/assets/logo.pETQEsvZ.css +0 -1
  163. package/assets/optioncheckbox.C62HtIj5.css +0 -1
  164. package/assets/radio.-Xxx5wL4.css +0 -1
  165. package/assets/skiptocontent.CHcqLS7S.css +0 -1
  166. package/assets/spinner.D_Nnf1ZG.css +0 -1
  167. package/assets/switch.C1Ei0-z8.css +0 -1
  168. package/assets/systemfeedback.Sq0bAIyf.css +0 -1
  169. package/assets/text.DxKFcfY6.css +0 -1
  170. package/assets/title.f74Bosn-.css +0 -1
  171. package/asterisk.DDn-yX4P.js +0 -8
  172. package/button.C5opEJ6x.js +0 -135
  173. package/buttonround.CUoqRyy0.js +0 -118
  174. package/checkbox.DETR3e3X.js +0 -112
  175. package/chipgroup.BJrqEfvr.js +0 -175
  176. package/chunks/Accordion.DFwFN8mX.js +0 -125
  177. package/chunks/Dialog.Fwr6vLiK.js +0 -148
  178. package/chunks/Drawer.CKoYzQHd.js +0 -154
  179. package/chunks/InputPassword.C7pNeWGx.js +0 -143
  180. package/chunks/InputSearch.B24rcIJ_.js +0 -192
  181. package/chunks/InputStepper.CEW-bieQ.js +0 -294
  182. package/chunks/Notification.BXVN7_Fs.js +0 -93
  183. package/chunks/RadioGroup.D4UOflwr.js +0 -137
  184. package/chunks/Select.Ds86q4UC.js +0 -194
  185. package/chunks/Textarea.DcB8hKnO.js +0 -198
  186. package/chunks/Toast.DrzxdzVW.js +0 -89
  187. package/customreactselect.lYJhIeyx.js +0 -13
  188. package/fieldset.BqiAjeax.js +0 -11
  189. package/flag.XJHHSP38.js +0 -43
  190. package/floatingactionbutton.CMpkTdhX.js +0 -87
  191. package/heading.CAkraI2D.js +0 -50
  192. package/input.v7qB7wPJ.js +0 -239
  193. package/link.Clk5_BYp.js +0 -116
  194. package/linkstandalone.BXERmqdN.js +0 -80
  195. package/logo.CEO6OV7u.js +0 -65
  196. package/optioncheckbox.BPN3f6l_.js +0 -43
  197. package/radio.DTZNJzMU.js +0 -115
  198. package/skiptocontent.DUQWopO4.js +0 -46
  199. package/spinner.D-xrotcu.js +0 -58
  200. package/styles/scss/_index.scss +0 -24
  201. package/styles/scss/lib/_a11y.scss +0 -15
  202. package/styles/scss/lib/_animation.scss +0 -21
  203. package/styles/scss/lib/_breakpoints.scss +0 -15
  204. package/styles/scss/lib/_container-query.scss +0 -58
  205. package/styles/scss/lib/_grid-extended.scss +0 -11
  206. package/styles/scss/lib/_grid-full.scss +0 -6
  207. package/styles/scss/lib/_grid-main.scss +0 -117
  208. package/styles/scss/lib/_grid-narrow.scss +0 -16
  209. package/styles/scss/lib/_grid-sidebar-sidebar.scss +0 -50
  210. package/styles/scss/lib/_heading.scss +0 -107
  211. package/styles/scss/lib/_helpers.scss +0 -15
  212. package/styles/scss/lib/_high-contrast.scss +0 -24
  213. package/styles/scss/lib/_hover.scss +0 -10
  214. package/styles/scss/lib/_link.scss +0 -129
  215. package/styles/scss/lib/_media-query.scss +0 -32
  216. package/styles/scss/lib/_spacing-dynamic.scss +0 -61
  217. package/styles/scss/lib/_spacing.scss +0 -32
  218. package/styles/scss/lib/_text.scss +0 -110
  219. package/styles/scss/lib/_theme.scss +0 -162
  220. package/styles/scss/lib/_transition.scss +0 -45
  221. package/switch.CoNnIhM4.js +0 -65
  222. package/text.fMcHzVbH.js +0 -57
  223. package/title.LY1ylQsb.js +0 -36
  224. /package/components/{CustomReactSelect → Combobox/CustomReactSelect}/CustomReactSelect.utils.test.d.ts +0 -0
  225. /package/components/{CustomReactSelect → Combobox/CustomReactSelect}/OptionCheckbox.d.ts +0 -0
@@ -1,6 +1,8 @@
1
- @mixin ds-grid {
1
+ @use 'media-query' as *;
2
+
3
+ @mixin grid {
2
4
  display: grid;
3
- --ds-grid-gap: 16px;
5
+ --ds-grid-gap: var(--ds-spacing-dynamic-xs);
4
6
  gap: var(--ds-grid-gap);
5
7
  min-width: 320px;
6
8
  grid-template-columns:
@@ -10,16 +12,14 @@
10
12
  --ds-internal-grid-safe-zone
11
13
  )
12
14
  [extended-end full-end];
13
- // The safe zone + gap equal to what is called "margin" in the figma designs 0+16 = 16
15
+
14
16
  --ds-internal-grid-safe-zone: 0;
15
17
  --ds-grid-span-one-half: span 4;
16
18
  --ds-grid-span-one-third: span 4;
17
19
  --ds-grid-span-two-thirds: span 4;
18
20
  --ds-grid-span-one-quarter: span 2;
19
21
 
20
- @include ds-media-query-min('m') {
21
- --ds-grid-gap: 24px;
22
- gap: var(--ds-grid-gap);
22
+ @include media-query-min('m') {
23
23
  grid-template-columns:
24
24
  [full-start extended-start] var(--ds-internal-grid-safe-zone)
25
25
  [main-start narrow-left-start narrow-center-start] repeat(
@@ -30,7 +30,7 @@
30
30
  --ds-internal-grid-safe-zone
31
31
  )
32
32
  [extended-end full-end];
33
- // The safe zone + gap equal to what is called "margin" in the figma designs 9+24 = 33
33
+
34
34
  --ds-internal-grid-safe-zone: 9px;
35
35
  --ds-grid-span-one-half: span 3;
36
36
  --ds-grid-span-one-third: span 2;
@@ -38,7 +38,7 @@
38
38
  --ds-grid-span-one-quarter: span 3;
39
39
  }
40
40
 
41
- @include ds-media-query-min('l') {
41
+ @include media-query-min('l') {
42
42
  grid-template-columns:
43
43
  [full-start extended-start] var(--ds-internal-grid-safe-zone)
44
44
  [main-start narrow-left-start] repeat(2, minmax(0, 1fr))
@@ -47,16 +47,14 @@
47
47
  [narrow-center-end] repeat(2, minmax(0, 1fr))
48
48
  [main-end] var(--ds-internal-grid-safe-zone)
49
49
  [extended-end full-end];
50
- // The safe zone + gap equal to what is called "margin" in the figma designs 26+24 = 50
50
+
51
51
  --ds-internal-grid-safe-zone: 26px;
52
52
  --ds-grid-span-one-half: span 6;
53
53
  --ds-grid-span-one-third: span 4;
54
54
  --ds-grid-span-two-thirds: span 8;
55
55
  }
56
56
 
57
- @include ds-media-query-min('xl') {
58
- --ds-grid-gap: 32px;
59
- gap: var(--ds-grid-gap);
57
+ @include media-query-min('xl') {
60
58
  grid-template-columns:
61
59
  [full-start extended-start] var(--ds-internal-grid-safe-zone)
62
60
  [main-start narrow-left-start] repeat(3, minmax(0, 1fr))
@@ -65,14 +63,14 @@
65
63
  [narrow-center-end] repeat(3, minmax(0, 1fr))
66
64
  [main-end] var(--ds-internal-grid-safe-zone)
67
65
  [extended-end full-end];
68
- // The safe zone + gap equal to what is called "margin" in the figma designs 32+32 = 64
66
+
69
67
  --ds-internal-grid-safe-zone: 32px;
70
68
  }
71
69
 
72
- @include ds-media-query-min('xxl') {
73
- // the calculation here is based on the fact
74
- // that we want the main area (main-start till main-end) maximum width to be exactly 1540px
75
- // so we have to pick 1584px and divide that by 16
70
+ @include media-query-min('xxl') {
71
+
72
+
73
+
76
74
  grid-template-columns:
77
75
  [full-start] auto
78
76
  [extended-start] var(--ds-internal-grid-safe-zone)
@@ -0,0 +1,75 @@
1
+ @use 'media-query' as *;
2
+ @use './ds-internal/_heading' as *;
3
+
4
+
5
+
6
+ @mixin heading-x-large {
7
+ @include base-heading-bold(
8
+ 'STIHL Contraface Digital Text Bold',
9
+ 1.625rem,
10
+ 1.2
11
+ );
12
+ @include responsive-heading('l', 1.875rem, 1.25);
13
+ }
14
+
15
+ @mixin heading-x-large-uppercase {
16
+ @include base-heading-display-title(
17
+ 'STIHL Contraface Digital Display Title',
18
+ 1.625rem,
19
+ 1.2
20
+ );
21
+ text-transform: uppercase;
22
+ @include responsive-heading('l', 1.875rem, 1.25);
23
+ }
24
+
25
+
26
+ @mixin heading-large {
27
+ @include base-heading-bold(
28
+ 'STIHL Contraface Digital Text Bold',
29
+ 1.375rem,
30
+ 1.25
31
+ );
32
+ @include responsive-heading('l', 1.625rem, 1.2);
33
+ }
34
+
35
+ @mixin heading-large-uppercase {
36
+ @include base-heading-display-title(
37
+ 'STIHL Contraface Digital Display Title',
38
+ 1.375rem,
39
+ 1.25
40
+ );
41
+ text-transform: uppercase;
42
+ @include responsive-heading('l', 1.625rem, 1.2);
43
+ }
44
+
45
+
46
+ @mixin heading-medium {
47
+ @include base-heading-bold(
48
+ 'STIHL Contraface Digital Text Bold',
49
+ 1.25rem,
50
+ 1.2
51
+ );
52
+ }
53
+
54
+ @mixin heading-medium-uppercase {
55
+ @include base-heading-display-title(
56
+ 'STIHL Contraface Digital Display Title',
57
+ 1.25rem,
58
+ 1.2
59
+ );
60
+ text-transform: uppercase;
61
+ }
62
+
63
+
64
+ @mixin heading-small {
65
+ @include base-heading-bold('STIHL Contraface Digital Text Bold', 1rem, 1.5);
66
+ }
67
+
68
+ @mixin heading-small-uppercase {
69
+ @include base-heading-display-title(
70
+ 'STIHL Contraface Digital Display Title',
71
+ 1rem,
72
+ 1.5
73
+ );
74
+ text-transform: uppercase;
75
+ }
@@ -0,0 +1,74 @@
1
+ @use 'spacing' as *;
2
+ @use 'theme' as *;
3
+ @use 'transition' as *;
4
+ @use './ds-internal/_link' as *;
5
+
6
+
7
+
8
+
9
+
10
+
11
+ @mixin link($variant: 'neutral', $theme: 'light') {
12
+ display: inline;
13
+ padding-inline-end: $spacing-2;
14
+ padding-inline-start: $spacing-2;
15
+ padding-block-start: 0;
16
+ padding-block-end: 0;
17
+ line-height: inherit;
18
+ font-size: inherit;
19
+
20
+
21
+ @include link-underline;
22
+
23
+
24
+
25
+
26
+
27
+
28
+ :where(&)[href^="http://"]::after,
29
+ :where(&)[href^="https://"]::after,
30
+ :where(&)[href^='#']::after {
31
+ display: inline-block;
32
+ margin-inline-start: 0.375em;
33
+ width: 0.75em;
34
+ height: 0.75em;
35
+ }
36
+
37
+
38
+ @if ($variant == 'neutral' and $theme == 'light') {
39
+ @include link-variant(
40
+ $theme-light-content-color-interaction-neutral,
41
+ $theme-light-background-color-transparent-hover,
42
+ $theme-light-content-color-interaction-neutral
43
+ );
44
+ }
45
+
46
+ @if ($variant == 'highlight' and $theme == 'light') {
47
+ @include link-variant(
48
+ $theme-light-content-color-interaction-accent,
49
+ $theme-light-background-color-transparent-hover,
50
+ $theme-light-content-color-interaction-accent-hover
51
+ );
52
+ }
53
+
54
+ @if ($variant == 'neutral' and $theme == 'dark') {
55
+ @include link-variant(
56
+ $theme-dark-content-color-interaction-neutral,
57
+ $theme-dark-background-color-transparent-hover,
58
+ $theme-dark-content-color-interaction-neutral,
59
+ $theme: 'dark'
60
+ );
61
+ }
62
+
63
+ @if ($variant == 'highlight' and $theme == 'dark') {
64
+ @include link-variant(
65
+ $theme-dark-content-color-interaction-accent,
66
+ $theme-dark-background-color-transparent-hover,
67
+ $theme-dark-content-color-interaction-accent,
68
+ $theme: 'dark'
69
+ );
70
+ }
71
+
72
+
73
+ @include transition((background-color, border-color, color));
74
+ }
@@ -0,0 +1,32 @@
1
+ @use 'sass:map';
2
+ @use 'breakpoints' as *;
3
+
4
+ @mixin media-query-min($min: null) {
5
+ @if map.has-key($breakpoints, $min) {
6
+ @media (min-width: #{map.get($breakpoints, $min)}px) {
7
+ @content;
8
+ }
9
+ } @else {
10
+ @error "[STIHL Design System] - [ds.media-query-min()]: Passed '#{$min}' breakpoint is not available in ds.media-query-min() mixin.";
11
+ }
12
+ }
13
+
14
+ @mixin media-query-max($max: null) {
15
+ @if map.has-key($breakpoints, $max) {
16
+ @media (max-width: #{map.get($breakpoints, $max) - 1}px) {
17
+ @content;
18
+ }
19
+ } @else {
20
+ @error "[STIHL Design System] - [ds.media-query-max()]: Passed '#{$max}' breakpoint is not available in ds.media-query-max() mixin.";
21
+ }
22
+ }
23
+
24
+ @mixin media-query-min-max($min: null, $max: null) {
25
+ @if map.has-key($breakpoints, $min) and map.has-key($breakpoints, $max) {
26
+ @media (min-width: #{map.get($breakpoints, $min)}px) and (max-width: #{map.get($breakpoints, $max) - 1}px) {
27
+ @content;
28
+ }
29
+ } @else {
30
+ @error "[STIHL Design System] - [ds.media-query-min-max()]: Passed '#{$min}' and/or '#{$max}' breakpoint is not available in ds.media-query-min-max() mixin.";
31
+ }
32
+ }
@@ -1,9 +1,9 @@
1
- @mixin ds-shadow-m {
1
+ @mixin shadow-m {
2
2
  box-shadow:
3
3
  0px 2px 12px 0px rgba(0, 0, 0, 0.08),
4
4
  0px 1px 2px 0px rgba(0, 0, 0, 0.16);
5
5
  }
6
- @mixin ds-shadow-l {
6
+ @mixin shadow-l {
7
7
  box-shadow:
8
8
  0px 8px 48px 0px rgba(0, 0, 0, 0.1),
9
9
  0px 2px 4px 0px rgba(0, 0, 0, 0.04);
@@ -0,0 +1,7 @@
1
+
2
+ $spacing-dynamic-xs: var(--ds-spacing-dynamic-xs);
3
+ $spacing-dynamic-s: var(--ds-spacing-dynamic-s);
4
+ $spacing-dynamic-m: var(--ds-spacing-dynamic-m);
5
+ $spacing-dynamic-l: var(--ds-spacing-dynamic-l);
6
+ $spacing-dynamic-xl: var(--ds-spacing-dynamic-xl);
7
+ $spacing-dynamic-xxl: var(--ds-spacing-dynamic-xxl);
@@ -0,0 +1,20 @@
1
+ $spacing-0: 0px;
2
+ $spacing-1: 1px;
3
+ $spacing-2: 2px;
4
+ $spacing-4: 4px;
5
+ $spacing-6: 6px;
6
+ $spacing-8: 8px;
7
+ $spacing-12: 12px;
8
+ $spacing-14: 14px;
9
+ $spacing-16: 16px;
10
+ $spacing-20: 20px;
11
+ $spacing-24: 24px;
12
+ $spacing-32: 32px;
13
+ $spacing-40: 40px;
14
+ $spacing-48: 48px;
15
+ $spacing-56: 56px;
16
+ $spacing-64: 64px;
17
+ $spacing-80: 80px;
18
+ $spacing-96: 96px;
19
+ $spacing-128: 128px;
20
+ $spacing-160: 160px;
@@ -0,0 +1,83 @@
1
+ @use './ds-internal/_text' as *;
2
+
3
+
4
+ @mixin text-large {
5
+ @include base-text-regular(
6
+ 'STIHL Contraface Digital Text Regular',
7
+ 1.25rem,
8
+ 1.6
9
+ );
10
+ }
11
+
12
+ @mixin text-large-bold {
13
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 1.25rem, 1.6);
14
+ }
15
+
16
+ @mixin text-medium {
17
+ @include base-text-regular(
18
+ 'STIHL Contraface Digital Text Regular',
19
+ 1rem,
20
+ 1.5
21
+ );
22
+ }
23
+
24
+ @mixin text-medium-bold {
25
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 1rem, 1.5);
26
+ }
27
+
28
+ @mixin text-small {
29
+ @include base-text-regular(
30
+ 'STIHL Contraface Digital Text Regular',
31
+ 0.875rem,
32
+ 1.14
33
+ );
34
+ }
35
+
36
+ @mixin text-small-bold {
37
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 0.875rem, 1.14);
38
+ }
39
+
40
+ @mixin text-x-small {
41
+ @include base-text-regular(
42
+ 'STIHL Contraface Digital Text Regular',
43
+ 0.75rem,
44
+ 1.33
45
+ );
46
+ }
47
+
48
+ @mixin text-x-small-bold {
49
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 0.75rem, 1.33);
50
+ }
51
+
52
+ @mixin text-xx-small {
53
+ @include base-text-regular(
54
+ 'STIHL Contraface Digital Text Regular',
55
+ 0.625rem,
56
+ 1.6
57
+ );
58
+ }
59
+
60
+
61
+ @mixin utility-medium {
62
+ @include base-text-regular(
63
+ 'STIHL Contraface Digital Text Regular',
64
+ 1rem,
65
+ 1.25
66
+ );
67
+ }
68
+
69
+ @mixin utility-medium-bold {
70
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 1rem, 1.25);
71
+ }
72
+
73
+ @mixin utility-small {
74
+ @include base-text-regular(
75
+ 'STIHL Contraface Digital Text Regular',
76
+ 0.875rem,
77
+ 1.14
78
+ );
79
+ }
80
+
81
+ @mixin utility-small-bold {
82
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 0.875rem, 1.14);
83
+ }
@@ -0,0 +1,162 @@
1
+
2
+
3
+
4
+ $color-core-black-base: #050505;
5
+ $color-core-black-opacity-10: #0000001A;
6
+ $color-core-black-opacity-50: #00000080;
7
+ $color-core-blue-base: #249ABE;
8
+ $color-core-blue-dark: #1E71A1;
9
+ $color-core-blue-deep: #19618B;
10
+ $color-core-blue-light: #D4ECF7;
11
+ $color-core-blue-mid: #8DCFE8;
12
+ $color-core-forest-base: #4A9E5F;
13
+ $color-core-forest-dark: #3C8653;
14
+ $color-core-forest-deep: #2D7644;
15
+ $color-core-forest-light: #DBF0E1;
16
+ $color-core-forest-mid: #77C089;
17
+ $color-core-green-base: #749F4A;
18
+ $color-core-green-dark: #5B863C;
19
+ $color-core-green-deep: #46762D;
20
+ $color-core-green-light: #E5F0DB;
21
+ $color-core-green-mid: #9BC077;
22
+ $color-core-grey-base: #B1B1B1;
23
+ $color-core-grey-dark: #666666;
24
+ $color-core-grey-deep: #444444;
25
+ $color-core-grey-light: #EDEDED;
26
+ $color-core-grey-mid: #DADADA;
27
+ $color-core-grey-ultra-deep: #252525;
28
+ $color-core-grey-ultra-light: #F8F8F8;
29
+ $color-core-orange-base: #F37A1F;
30
+ $color-core-orange-dark: #E9640C;
31
+ $color-core-orange-deep: #D9480F;
32
+ $color-core-orange-light: #FEE2CD;
33
+ $color-core-orange-mid: #F7A669;
34
+ $color-core-red-base: #D43B3B;
35
+ $color-core-red-dark: #B72427;
36
+ $color-core-red-deep: #A5181D;
37
+ $color-core-red-light: #EEBCBD;
38
+ $color-core-red-mid: #DA6B6D;
39
+ $color-core-white-base: #FFFFFF;
40
+ $color-core-white-opacity-15: #FFFFFF26;
41
+ $color-core-white-opacity-50: #FFFFFF80;
42
+ $color-core-yellow-base: #FDC543;
43
+ $color-core-yellow-dark: #F9A521;
44
+ $color-core-yellow-deep: #EE8F00;
45
+ $color-core-yellow-light: #FDECC3;
46
+ $color-core-yellow-mid: #FED277;
47
+
48
+
49
+ $theme-light-background-color-brand-disabled: $color-core-grey-mid;
50
+ $theme-light-background-color-brand-hover: $color-core-orange-dark;
51
+ $theme-light-background-color-brand-pressed: $color-core-orange-dark;
52
+ $theme-light-background-color-brand: $color-core-orange-base;
53
+ $theme-light-background-color-feedback-error: $color-core-red-light;
54
+ $theme-light-background-color-feedback-info: $color-core-grey-light;
55
+ $theme-light-background-color-feedback-success: $color-core-green-light;
56
+ $theme-light-background-color-feedback-warning: $color-core-yellow-light;
57
+ $theme-light-background-color-primary-disabled: $color-core-white-base;
58
+ $theme-light-background-color-primary-hover: $color-core-grey-light;
59
+ $theme-light-background-color-primary-inverse-disabled: $color-core-grey-mid;
60
+ $theme-light-background-color-primary-inverse-hover: $color-core-grey-deep;
61
+ $theme-light-background-color-primary-inverse-pressed: $color-core-grey-deep;
62
+ $theme-light-background-color-primary-inverse: $color-core-grey-ultra-deep;
63
+ $theme-light-background-color-primary-pressed: $color-core-grey-light;
64
+ $theme-light-background-color-primary: $color-core-white-base;
65
+ $theme-light-background-color-secondary-disabled: $color-core-grey-ultra-light;
66
+ $theme-light-background-color-secondary-inverse: $color-core-grey-deep;
67
+ $theme-light-background-color-secondary: $color-core-grey-ultra-light;
68
+ $theme-light-background-color-sustainability: $color-core-forest-light;
69
+ $theme-light-background-color-tertiary: $color-core-grey-light;
70
+ $theme-light-background-color-transparent-hover: $color-core-black-opacity-10;
71
+ $theme-light-background-color-transparent-pressed: $color-core-black-opacity-10;
72
+ $theme-light-border-color-feedback-error: $color-core-red-base;
73
+ $theme-light-border-color-feedback-info: $color-core-grey-dark;
74
+ $theme-light-border-color-feedback-success: $color-core-green-base;
75
+ $theme-light-border-color-feedback-warning: $color-core-yellow-base;
76
+ $theme-light-border-color-focus: $color-core-grey-ultra-deep;
77
+ $theme-light-border-color-primary-disabled: $color-core-black-opacity-50;
78
+ $theme-light-border-color-primary-inverse: $color-core-white-base;
79
+ $theme-light-border-color-primary: $color-core-grey-ultra-deep;
80
+ $theme-light-border-color-secondary-disabled: $color-core-black-opacity-10;
81
+ $theme-light-border-color-secondary: $color-core-grey-base;
82
+ $theme-light-border-color-tertiary: $color-core-grey-mid;
83
+ $theme-light-content-color-brand-disabled: $color-core-black-opacity-50;
84
+ $theme-light-content-color-brand-hover: $color-core-orange-deep;
85
+ $theme-light-content-color-brand-pressed: $color-core-orange-deep;
86
+ $theme-light-content-color-brand: $color-core-orange-dark;
87
+ $theme-light-content-color-feedback-error: $color-core-red-base;
88
+ $theme-light-content-color-feedback-info: $color-core-grey-base;
89
+ $theme-light-content-color-feedback-success: $color-core-green-base;
90
+ $theme-light-content-color-feedback-warning: $color-core-yellow-base;
91
+ $theme-light-content-color-interaction-accent-hover: $color-core-blue-deep;
92
+ $theme-light-content-color-interaction-accent-pressed: $color-core-blue-deep;
93
+ $theme-light-content-color-interaction-accent: $color-core-blue-dark;
94
+ $theme-light-content-color-interaction-neutral: $color-core-grey-ultra-deep;
95
+ $theme-light-content-color-primary-disabled: $color-core-black-opacity-50;
96
+ $theme-light-content-color-primary-inverse-disabled: $color-core-black-opacity-50;
97
+ $theme-light-content-color-primary-inverse: $color-core-white-base;
98
+ $theme-light-content-color-primary-on-brand-disabled: $color-core-black-opacity-50;
99
+ $theme-light-content-color-primary-on-brand: $color-core-grey-ultra-deep;
100
+ $theme-light-content-color-primary: $color-core-grey-ultra-deep;
101
+ $theme-light-content-color-secondary-disabled: $color-core-black-opacity-50;
102
+ $theme-light-content-color-secondary: $color-core-grey-dark;
103
+ $theme-light-content-color-sustainability: $color-core-forest-base;
104
+ $theme-light-content-color-tertiary: $color-core-grey-base;
105
+
106
+
107
+ $theme-dark-background-color-brand-disabled: $color-core-grey-mid;
108
+ $theme-dark-background-color-brand-hover: $color-core-orange-dark;
109
+ $theme-dark-background-color-brand-pressed: $color-core-orange-dark;
110
+ $theme-dark-background-color-brand: $color-core-orange-base;
111
+ $theme-dark-background-color-feedback-error: $color-core-grey-deep;
112
+ $theme-dark-background-color-feedback-info: $color-core-grey-deep;
113
+ $theme-dark-background-color-feedback-success: $color-core-grey-deep;
114
+ $theme-dark-background-color-feedback-warning: $color-core-grey-deep;
115
+ $theme-dark-background-color-primary-disabled: $color-core-black-base;
116
+ $theme-dark-background-color-primary-hover: $color-core-grey-deep;
117
+ $theme-dark-background-color-primary-inverse-disabled: $color-core-grey-mid;
118
+ $theme-dark-background-color-primary-inverse-hover: $color-core-grey-mid;
119
+ $theme-dark-background-color-primary-inverse-pressed: $color-core-grey-mid;
120
+ $theme-dark-background-color-primary-inverse: $color-core-grey-ultra-light;
121
+ $theme-dark-background-color-primary-pressed: $color-core-grey-deep;
122
+ $theme-dark-background-color-primary: $color-core-black-base;
123
+ $theme-dark-background-color-secondary-disabled: $color-core-grey-ultra-deep;
124
+ $theme-dark-background-color-secondary-inverse: $color-core-grey-light;
125
+ $theme-dark-background-color-secondary: $color-core-grey-ultra-deep;
126
+ $theme-dark-background-color-sustainability: $color-core-grey-deep;
127
+ $theme-dark-background-color-tertiary: $color-core-grey-ultra-deep;
128
+ $theme-dark-background-color-transparent-hover: $color-core-white-opacity-15;
129
+ $theme-dark-background-color-transparent-pressed: $color-core-white-opacity-15;
130
+ $theme-dark-border-color-feedback-error: $color-core-red-base;
131
+ $theme-dark-border-color-feedback-info: $color-core-grey-dark;
132
+ $theme-dark-border-color-feedback-success: $color-core-green-base;
133
+ $theme-dark-border-color-feedback-warning: $color-core-yellow-base;
134
+ $theme-dark-border-color-focus: $color-core-white-base;
135
+ $theme-dark-border-color-primary-disabled: $color-core-white-opacity-50;
136
+ $theme-dark-border-color-primary-inverse: $color-core-grey-ultra-deep;
137
+ $theme-dark-border-color-primary: $color-core-grey-ultra-light;
138
+ $theme-dark-border-color-secondary-disabled: $color-core-white-opacity-15;
139
+ $theme-dark-border-color-secondary: $color-core-grey-dark;
140
+ $theme-dark-border-color-tertiary: $color-core-grey-deep;
141
+ $theme-dark-content-color-brand-disabled: $color-core-white-opacity-50;
142
+ $theme-dark-content-color-brand-hover: $color-core-orange-mid;
143
+ $theme-dark-content-color-brand-pressed: $color-core-orange-mid;
144
+ $theme-dark-content-color-brand: $color-core-orange-base;
145
+ $theme-dark-content-color-feedback-error: $color-core-red-mid;
146
+ $theme-dark-content-color-feedback-info: $color-core-grey-base;
147
+ $theme-dark-content-color-feedback-success: $color-core-green-mid;
148
+ $theme-dark-content-color-feedback-warning: $color-core-yellow-mid;
149
+ $theme-dark-content-color-interaction-accent-hover: $color-core-blue-mid;
150
+ $theme-dark-content-color-interaction-accent-pressed: $color-core-blue-mid;
151
+ $theme-dark-content-color-interaction-accent: $color-core-blue-mid;
152
+ $theme-dark-content-color-interaction-neutral: $color-core-white-base;
153
+ $theme-dark-content-color-primary-disabled: $color-core-white-opacity-50;
154
+ $theme-dark-content-color-primary-inverse-disabled: $color-core-black-opacity-50;
155
+ $theme-dark-content-color-primary-inverse: $color-core-grey-ultra-deep;
156
+ $theme-dark-content-color-primary-on-brand-disabled: $color-core-black-opacity-50;
157
+ $theme-dark-content-color-primary-on-brand: $color-core-grey-ultra-deep;
158
+ $theme-dark-content-color-primary: $color-core-white-base;
159
+ $theme-dark-content-color-secondary-disabled: $color-core-white-opacity-50;
160
+ $theme-dark-content-color-secondary: $color-core-grey-base;
161
+ $theme-dark-content-color-sustainability: $color-core-forest-mid;
162
+ $theme-dark-content-color-tertiary: $color-core-grey-dark;
@@ -0,0 +1,36 @@
1
+ @use 'sass:list';
2
+ @use 'sass:map';
3
+ @use 'animation' as *;
4
+
5
+ @mixin transition($properties, $duration-key: '100', $easing-key: 'linear') {
6
+ @if list.length($properties) == 0 or $properties == null {
7
+ @error "[STIHL Design System] - [ds.transition()]: No properties provided for ds.transition() mixin.";
8
+ }
9
+
10
+ $duration: map.get($animation-durations, $duration-key);
11
+ $easing: map.get($animation-easing-functions, $easing-key);
12
+
13
+ @if not map.has-key($animation-durations, $duration-key) {
14
+ @error "[STIHL Design System] - [ds.transition()]: Duration key '#{$duration-key}' is not available in the ds.transition() mixin.";
15
+ }
16
+
17
+ @if not map.has-key($animation-easing-functions, $easing-key) {
18
+ @error "[STIHL Design System] - [ds.transition()]: Easing key '#{$easing-key}' is not available in the ds.transition() mixin.";
19
+ }
20
+
21
+ $transition-values: ();
22
+ @each $prop in $properties {
23
+ $transition-values: list.append(
24
+ $transition-values,
25
+ #{$prop} #{$duration} #{$easing},
26
+ comma
27
+ );
28
+ }
29
+ & {
30
+ transition: $transition-values;
31
+
32
+ @media (prefers-reduced-motion: reduce) {
33
+ transition-duration: 0ms;
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { j as t } from "./chunks/jsx-runtime.C115EyI4.js";
3
+ import { c as w } from "./chunks/index.CvOaL64Y.js";
4
+ import "react";
5
+ import { D as b } from "./chunks/Icon.BCmt_XBG.js";
6
+ import { DSSpinner as p } from "./spinner.Bq97Og-6.js";
7
+ import './assets/switch.gw6aa3kx.css';const f = "ds-switch_root_gdcld_1", x = "ds-switch_root--label-right_gdcld_40", j = "ds-switch_root--stretched_gdcld_43", k = "ds-switch_loader_gdcld_53", S = "ds-switch_thumb_gdcld_111", C = "ds-switch_root--checked_gdcld_126", s = {
8
+ root: f,
9
+ "root--label-right": "ds-switch_root--label-right_gdcld_40",
10
+ rootLabelRight: x,
11
+ "root--stretched": "ds-switch_root--stretched_gdcld_43",
12
+ rootStretched: j,
13
+ switch: "ds-switch_switch_gdcld_48",
14
+ loader: k,
15
+ thumb: S,
16
+ "root--checked": "ds-switch_root--checked_gdcld_126",
17
+ rootChecked: C
18
+ }, E = ({
19
+ children: a,
20
+ aria: h,
21
+ alignLabel: i = "left",
22
+ checked: r = !1,
23
+ className: l,
24
+ dataTrackingid: _,
25
+ disabled: e = !1,
26
+ loading: o = !1,
27
+ stretched: n = !1,
28
+ onClick: c,
29
+ ...m
30
+ }) => {
31
+ const g = w(s.root, l, {
32
+ [s.rootChecked]: r === !0,
33
+ [s.rootStretched]: n === !0,
34
+ [s.rootLabelRight]: i === "right"
35
+ }), u = (d) => {
36
+ if (e || o) {
37
+ d.preventDefault();
38
+ return;
39
+ }
40
+ c && c(d);
41
+ };
42
+ return /* @__PURE__ */ t.jsxs(
43
+ "button",
44
+ {
45
+ className: g,
46
+ "data-trackingid": _,
47
+ onClick: u,
48
+ ...h,
49
+ ...m,
50
+ type: "button",
51
+ role: "switch",
52
+ "aria-checked": r,
53
+ "aria-disabled": e || o,
54
+ "aria-busy": o,
55
+ children: [
56
+ /* @__PURE__ */ t.jsx("span", { children: a }),
57
+ !o && /* @__PURE__ */ t.jsx("span", { className: s.switch, children: /* @__PURE__ */ t.jsx("span", { className: s.thumb, children: /* @__PURE__ */ t.jsx(b, { name: "check", "aria-hidden": "true" }) }) }),
58
+ o && /* @__PURE__ */ t.jsx("span", { className: s.loader, children: /* @__PURE__ */ t.jsx(p, { aria: { "aria-label": "Loading state" } }) })
59
+ ]
60
+ }
61
+ );
62
+ };
63
+ export {
64
+ E as DSSwitch
65
+ };
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { j as o } from "./chunks/jsx-runtime.C115EyI4.js";
3
3
  import { c } from "./chunks/index.CvOaL64Y.js";
4
- import { D as n } from "./chunks/Icon.C2o2seDb.js";
5
- import './assets/systemfeedback.Sq0bAIyf.css';const i = "_root_10tno_76", l = {
4
+ import { D as n } from "./chunks/Icon.BCmt_XBG.js";
5
+ import './assets/systemfeedback.BPz5YlPC.css';const i = "ds-system-feedback_root_1l65g_1", l = {
6
6
  root: i
7
7
  }, m = {
8
8
  valid: "circle-check-colored",
@@ -10,14 +10,14 @@ import './assets/systemfeedback.Sq0bAIyf.css';const i = "_root_10tno_76", l = {
10
10
  warning: "triangle-exclamationmark-colored"
11
11
  }, p = ({
12
12
  className: e,
13
- message: r,
14
- type: s,
13
+ message: s,
14
+ type: r,
15
15
  ...t
16
16
  }) => {
17
17
  const a = c(l.root, e);
18
18
  return /* @__PURE__ */ o.jsxs("div", { className: a, ...t, role: "alert", children: [
19
- /* @__PURE__ */ o.jsx(n, { name: m[s], "aria-hidden": "true" }),
20
- r
19
+ /* @__PURE__ */ o.jsx(n, { name: m[r], "aria-hidden": "true" }),
20
+ s
21
21
  ] });
22
22
  };
23
23
  export {