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

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 (597) hide show
  1. package/Klarna.svg +1 -0
  2. package/Mastercard.svg +2 -0
  3. package/Notification-additional-information.jpeg +0 -0
  4. package/Notification-confirm-error.jpg +0 -0
  5. package/Notification-confirm-warn.jpeg +0 -0
  6. package/Notification-overview.jpeg +0 -0
  7. package/Notification-success.jpeg +0 -0
  8. package/PayPal.svg +2 -0
  9. package/Placeholder.svg +1 -0
  10. package/README.md +1 -1
  11. package/Visa.svg +2 -0
  12. package/accordion.B3UkxlAZ.js +10 -0
  13. package/accordion.d.ts +1 -0
  14. package/arialiveregions.BK4T7Vhk.js +27 -0
  15. package/arialiveregions.d.ts +1 -0
  16. package/assets/Accordion.lFv7Q_RG.css +1 -0
  17. package/assets/CustomReactSelect.CMkn-EGK.css +1 -0
  18. package/assets/Dialog.fiQvxJg_.css +1 -0
  19. package/assets/Drawer.BqBgbSuP.css +1 -0
  20. package/assets/Fieldset.qHYeUFZt.css +1 -0
  21. package/assets/Icon.Duy_0R8w.css +1 -0
  22. package/assets/InputPassword.Cf394z47.css +1 -0
  23. package/assets/InputSearch.eCRQoxjN.css +1 -0
  24. package/assets/InputStepper.B80KulYE.css +1 -0
  25. package/assets/Notification.DK6agBGS.css +1 -0
  26. package/assets/RadioGroup.Bz3_xkZU.css +1 -0
  27. package/assets/Select.BptsMxz4.css +1 -0
  28. package/assets/Textarea.CIIVh03G.css +1 -0
  29. package/assets/Toast.Dsvs1zdM.css +1 -0
  30. package/assets/arialiveregions.GsGx2USO.css +1 -0
  31. package/assets/asterisk.DlJ4YtSZ.css +1 -0
  32. package/assets/button.B1O7Yw3Q.css +1 -0
  33. package/assets/buttonround.DlH_ipDo.css +1 -0
  34. package/assets/checkbox.K4CVYK9g.css +1 -0
  35. package/assets/floatingactionbutton.DRYentYC.css +1 -0
  36. package/assets/heading.6bER-Eac.css +1 -0
  37. package/assets/input.C0MrSbQu.css +1 -0
  38. package/assets/link.vtTST2ki.css +1 -0
  39. package/assets/linkstandalone.BtAcziZ7.css +1 -0
  40. package/assets/logo.pETQEsvZ.css +1 -0
  41. package/assets/optioncheckbox.BJJAph5_.css +1 -0
  42. package/assets/radio.9kpIO3HC.css +1 -0
  43. package/assets/skiptocontent.CHcqLS7S.css +1 -0
  44. package/assets/spinner.D_Nnf1ZG.css +1 -0
  45. package/assets/switch.2DQF2zH-.css +1 -0
  46. package/assets/systemfeedback.Sq0bAIyf.css +1 -0
  47. package/assets/text.Dhb_l50R.css +1 -0
  48. package/assets/title.f74Bosn-.css +1 -0
  49. package/asterisk.DDn-yX4P.js +8 -0
  50. package/button.DH0h6uPs.js +135 -0
  51. package/buttonround.0mw4zzlU.js +118 -0
  52. package/checkbox.DETR3e3X.js +112 -0
  53. package/checkboxgroup.CZqrlF-x.js +9 -0
  54. package/chunks/360.CfjUtgxq.js +10 -0
  55. package/chunks/Accordion.pI3JyHJL.js +125 -0
  56. package/chunks/AriaLiveRegions.utils.D2ni4Yrf.js +34 -0
  57. package/chunks/CheckboxGroup.4J_gZ_XJ.js +87 -0
  58. package/chunks/CustomReactSelect.ChAtL6fu.js +3591 -0
  59. package/chunks/Dialog.Z5ESJQMi.js +148 -0
  60. package/chunks/Drawer.BdowMqE0.js +154 -0
  61. package/chunks/Fieldset.COGbZwry.js +99 -0
  62. package/chunks/Icon.C2o2seDb.js +223 -0
  63. package/chunks/{Input.utils.f8f3286f.js → Input.utils.ChV6RJsh.js} +24 -17
  64. package/chunks/InputPassword.Dgo95-PU.js +140 -0
  65. package/chunks/InputSearch.BFof0pBn.js +189 -0
  66. package/chunks/InputStepper.4IqLa5tX.js +291 -0
  67. package/chunks/Notification.BhwbaXqk.js +93 -0
  68. package/chunks/RadioGroup.C5jbCJM4.js +132 -0
  69. package/chunks/RadioGroup.module.BBZwHDjW.js +11 -0
  70. package/chunks/Select.fXeQJXtz.js +191 -0
  71. package/chunks/Textarea.Bewrp0Za.js +195 -0
  72. package/chunks/Toast.DA_CQ9J-.js +89 -0
  73. package/chunks/academic-cap.OBigTQQS.js +10 -0
  74. package/chunks/alarm-clock.CpK-AEZG.js +10 -0
  75. package/chunks/arrow-clockwise.BefOjGPg.js +10 -0
  76. package/chunks/arrow-counterclockwise.C7Ov32BZ.js +10 -0
  77. package/chunks/arrow-down-line.RDD2pRZY.js +10 -0
  78. package/chunks/arrow-down.XpokLh98.js +10 -0
  79. package/chunks/arrow-edge.CPA93M81.js +10 -0
  80. package/chunks/arrow-left.C8NG5I2X.js +10 -0
  81. package/chunks/arrow-out.CsHHHYN9.js +10 -0
  82. package/chunks/arrow-outline-left.Bhw_LzfV.js +10 -0
  83. package/chunks/arrow-right.HNwAz18h.js +10 -0
  84. package/chunks/arrow-up-arrow-down.BVyuVJP5.js +10 -0
  85. package/chunks/arrow-up.Ca1GnLaY.js +10 -0
  86. package/chunks/at.BNfdp4M0.js +10 -0
  87. package/chunks/barcode-scanner.D0olxB_m.js +10 -0
  88. package/chunks/battery.YCg9lYqC.js +10 -0
  89. package/chunks/bell.DbPxCAUM.js +10 -0
  90. package/chunks/bin-open.DsjIBW00.js +10 -0
  91. package/chunks/bin.ktpYUJmK.js +10 -0
  92. package/chunks/bluetooth.dW5tTwby.js +10 -0
  93. package/chunks/bookmark.B7Mbr-d6.js +10 -0
  94. package/chunks/burger.DLP81BXa.js +10 -0
  95. package/chunks/calendar.Cig7yG7m.js +10 -0
  96. package/chunks/camera.BoCB0Emp.js +10 -0
  97. package/chunks/cart-check.CYH0vTB8.js +10 -0
  98. package/chunks/cart-plus.DzXXFMZj.js +10 -0
  99. package/chunks/cart.CoEwMABr.js +10 -0
  100. package/chunks/catalog.CwV-J6Kb.js +10 -0
  101. package/chunks/certificate.Crs4RohK.js +10 -0
  102. package/chunks/chain-link.BMV2WV6k.js +10 -0
  103. package/chunks/chainsaw.CI1EYF7a.js +10 -0
  104. package/chunks/check.CuZKWgYj.js +10 -0
  105. package/chunks/chevron-down.5UkGOwK_.js +10 -0
  106. package/chunks/chevron-left.DRFQ-efY.js +10 -0
  107. package/chunks/chevron-line-left.SQvDJQ1t.js +10 -0
  108. package/chunks/chevron-line-right.CYQ3b2cQ.js +10 -0
  109. package/chunks/chevron-right.B_Ew9QUt.js +10 -0
  110. package/chunks/chevron-up.DqETUWqG.js +10 -0
  111. package/chunks/circle-check-colored.Bye_GwLy.js +10 -0
  112. package/chunks/circle-check-inverted.Cc2cUmWT.js +10 -0
  113. package/chunks/circle-info-colored.D2pp54gf.js +10 -0
  114. package/chunks/circle-info-inverted.D8Z0vTmu.js +10 -0
  115. package/chunks/circle-pause.DaRfXOff.js +10 -0
  116. package/chunks/circle-stroke.CWu_o3Gx.js +10 -0
  117. package/chunks/circle.471EUzv6.js +10 -0
  118. package/chunks/clock.Bw5ICIVH.js +10 -0
  119. package/chunks/coffee-cup.DIijzKx_.js +10 -0
  120. package/chunks/compare.BgktBbYD.js +10 -0
  121. package/chunks/connected-box-mobile.DboMCVxp.js +10 -0
  122. package/chunks/connected-box-stationary.CAPCPQ1d.js +10 -0
  123. package/chunks/connected-box.DVqJw-ws.js +10 -0
  124. package/chunks/cross.rEw3TuHs.js +10 -0
  125. package/chunks/diamond-exclamationmark-colored.WNKYwZ8q.js +10 -0
  126. package/chunks/diamond-exclamationmark-inverted.DzAIb8Nt.js +10 -0
  127. package/chunks/diamond.CXZHFpPC.js +10 -0
  128. package/chunks/diskette._0C2VZ9v.js +10 -0
  129. package/chunks/distance.FA6pTjcW.js +10 -0
  130. package/chunks/dots-connected.ZMYjHeNS.js +10 -0
  131. package/chunks/{download-complete.0b84a7cc.js → download-complete.CZVpzrvY.js} +3 -4
  132. package/chunks/envelope-open.CA4cE5lk.js +10 -0
  133. package/chunks/envelope.re-RxZVw.js +10 -0
  134. package/chunks/exclamationmark.DEbIGqGC.js +10 -0
  135. package/chunks/exit.Cgb8AB-k.js +10 -0
  136. package/chunks/eye-closed.CvqozUwK.js +10 -0
  137. package/chunks/eye.CRQMKZs4.js +10 -0
  138. package/chunks/{triangle.bff84ddf.js → facebook.CVcxa0rV.js} +2 -3
  139. package/chunks/filter.DrPSKpaG.js +10 -0
  140. package/chunks/finger-double-arrow.DDUZoPh8.js +10 -0
  141. package/chunks/flash.CgJJ1bUx.js +10 -0
  142. package/chunks/fullscreen.Be2rBj1i.js +10 -0
  143. package/chunks/gear.DEltGVSA.js +10 -0
  144. package/chunks/globe.DG6uw6fi.js +10 -0
  145. package/chunks/grid.DH1impeF.js +10 -0
  146. package/chunks/guidance.BBYB3JpW.js +10 -0
  147. package/chunks/haircross.D-whkit9.js +10 -0
  148. package/chunks/hanger.Bo8qtNo5.js +10 -0
  149. package/chunks/has-document.r9i9TxKV.js +5 -0
  150. package/chunks/headphones.DjWXOuJJ.js +10 -0
  151. package/chunks/heart.D-BnHMb-.js +10 -0
  152. package/chunks/hexagon-arrow-clockwise.D0eeDQQx.js +10 -0
  153. package/chunks/horizontal-ellipsis.ChdN6RnG.js +10 -0
  154. package/chunks/house.BohpDQ3q.js +10 -0
  155. package/chunks/imow.Dh1oMqcW.js +10 -0
  156. package/chunks/info.BZVg9FLA.js +10 -0
  157. package/chunks/instagram.CIlKb7xj.js +10 -0
  158. package/chunks/{jsx-runtime.5c071667.js → jsx-runtime.C115EyI4.js} +259 -256
  159. package/chunks/leave-fullscreen.BC5iwDur.js +10 -0
  160. package/chunks/lightbulb.DQ7TiRsr.js +10 -0
  161. package/chunks/linkedin.br5zvxco.js +10 -0
  162. package/chunks/list-three-rows.Cso4ybs8.js +10 -0
  163. package/chunks/list-two-rows.DOsZEv0-.js +10 -0
  164. package/chunks/loading-spinner.BukfMaU6.js +10 -0
  165. package/chunks/lock.Dw_GOpTn.js +10 -0
  166. package/chunks/magnifying-glass-minus.BYztw2P1.js +10 -0
  167. package/chunks/magnifying-glass-plus.BTgviDVh.js +10 -0
  168. package/chunks/magnifying-glass.C8DfRaIO.js +10 -0
  169. package/chunks/map.CXgG1iGz.js +10 -0
  170. package/chunks/minus.BkhCuIH4.js +10 -0
  171. package/chunks/mobile.C1Kj9VnC.js +10 -0
  172. package/chunks/nine-squares.DVsNAOzz.js +10 -0
  173. package/chunks/note-check.CM_kmt0M.js +10 -0
  174. package/chunks/note-plus.Bkn78EyA.js +10 -0
  175. package/chunks/note.CE0ACLn8.js +10 -0
  176. package/chunks/number-input.BLhoh5mh.js +10 -0
  177. package/chunks/paperclip.BMerX4rj.js +10 -0
  178. package/chunks/parcel.Ve9GL_EG.js +10 -0
  179. package/chunks/pause.B91Ejn-O.js +10 -0
  180. package/chunks/pdf.9kZbElrZ.js +10 -0
  181. package/chunks/pen.CvKw2PvE.js +10 -0
  182. package/chunks/percent.BlB6rG-B.js +10 -0
  183. package/chunks/petrol.Du6qAgp0.js +10 -0
  184. package/chunks/phone.DzdXfmNC.js +10 -0
  185. package/chunks/pin-s.DXgYuN9C.js +10 -0
  186. package/chunks/pin.DZfZr4El.js +10 -0
  187. package/chunks/pinterest.sUPAub_q.js +10 -0
  188. package/chunks/placeholder.Dbb0hT5R.js +10 -0
  189. package/chunks/play.BDiY2JrT.js +10 -0
  190. package/chunks/plug.DZozve4C.js +10 -0
  191. package/chunks/plus.zdu17kAe.js +10 -0
  192. package/chunks/printer.CaFaWfeS.js +10 -0
  193. package/chunks/prohibition-sign.DUFn0QiV.js +10 -0
  194. package/chunks/questionmark.QyDxanQy.js +10 -0
  195. package/chunks/security.DkLw5ym4.js +10 -0
  196. package/chunks/share.C3wwEl8n.js +10 -0
  197. package/chunks/shirt.BC8W-yCI.js +10 -0
  198. package/chunks/shop.DdPV35mK.js +10 -0
  199. package/chunks/sound-off.D4kGcehG.js +10 -0
  200. package/chunks/sound-on.Cynkb0_t.js +10 -0
  201. package/chunks/speechbubble.87vuoKUp.js +10 -0
  202. package/chunks/speechbubbles.CSFhpNJn.js +10 -0
  203. package/chunks/square.D6PgEi_r.js +10 -0
  204. package/chunks/star-half.DZTtM5Bw.js +10 -0
  205. package/chunks/star.BkjednvI.js +10 -0
  206. package/chunks/tag.yO7uMsHj.js +10 -0
  207. package/chunks/thumbs-down.DeBD6wnK.js +10 -0
  208. package/chunks/thumbs-up.D-44gexH.js +10 -0
  209. package/chunks/triangle-exclamationmark-colored.CbVC3Gzi.js +10 -0
  210. package/chunks/triangle-exclamationmark-inverted.BiGoK7TV.js +10 -0
  211. package/chunks/triangle.ibv6NDnt.js +10 -0
  212. package/chunks/truck.xIk5wW6T.js +10 -0
  213. package/chunks/two-people-screen.BBLouaW4.js +10 -0
  214. package/chunks/two-sheets.DWFmuL7N.js +10 -0
  215. package/chunks/upload.ZImTAIgx.js +10 -0
  216. package/chunks/user.BMARueuy.js +10 -0
  217. package/chunks/vertical-ellipsis.Bc9eBsDF.js +10 -0
  218. package/chunks/wc.gmKE1r5l.js +10 -0
  219. package/chunks/whatsapp.CPpu-7Nn.js +10 -0
  220. package/chunks/wifi-1bar.BcEP-r8w.js +10 -0
  221. package/chunks/wifi-2bars.jDOd4Q3q.js +10 -0
  222. package/chunks/wifi-off.D9xPqVWn.js +10 -0
  223. package/chunks/wifi.CuQykF6X.js +10 -0
  224. package/chunks/wind-rose.C-XcKdy-.js +10 -0
  225. package/chunks/wrench.DMFV2S9u.js +10 -0
  226. package/chunks/x.BqbpXd7O.js +10 -0
  227. package/chunks/xing.CiKYLbPq.js +10 -0
  228. package/chunks/youtube.DrImaRSP.js +10 -0
  229. package/combobox.JL1Dsn3E.js +47 -0
  230. package/components/Accordion/Accordion.d.ts +40 -0
  231. package/components/Accordion/Accordion.test.d.ts +1 -0
  232. package/components/Accordion/Accordion.utils.d.ts +15 -0
  233. package/components/Accordion/Acordion.utils.test.d.ts +1 -0
  234. package/components/AriaLiveRegions/AriaLiveRegions.d.ts +4 -0
  235. package/components/AriaLiveRegions/AriaLiveRegions.utils.d.ts +5 -0
  236. package/components/AriaLiveRegions/AriaLiveRegions.utils.test.d.ts +1 -0
  237. package/components/Asterisk/Asterisk.d.ts +0 -1
  238. package/components/Button/Button.d.ts +33 -17
  239. package/components/ButtonRound/ButtonRound.d.ts +12 -4
  240. package/components/Checkbox/Checkbox.d.ts +21 -11
  241. package/components/CheckboxGroup/CheckboxGroup.d.ts +19 -12
  242. package/components/CheckboxGroup/CheckboxGroup.utils.d.ts +3 -2
  243. package/components/Combobox/Combobox.d.ts +12 -6
  244. package/components/Combobox/Combobox.utils.d.ts +4 -3
  245. package/components/CustomReactSelect/CustomReactSelect.d.ts +39 -26
  246. package/components/CustomReactSelect/CustomReactSelect.utils.d.ts +3 -2
  247. package/components/CustomReactSelect/OptionCheckbox.d.ts +2 -1
  248. package/components/Dialog/Dialog.d.ts +35 -0
  249. package/components/Dialog/Dialog.test.d.ts +1 -0
  250. package/components/Dialog/Dialog.utils.d.ts +12 -0
  251. package/components/Dialog/Dialog.utils.test.d.ts +1 -0
  252. package/components/Drawer/Drawer.d.ts +40 -0
  253. package/components/Drawer/Drawer.test.d.ts +1 -0
  254. package/components/Drawer/Drawer.utils.d.ts +14 -0
  255. package/components/Drawer/Drawer.utils.test.d.ts +1 -0
  256. package/components/Fieldset/Fieldset.d.ts +16 -10
  257. package/components/Fieldset/Fieldset.utils.d.ts +4 -3
  258. package/components/FloatingActionButton/FloatingActionButton.d.ts +7 -2
  259. package/components/Heading/Heading.d.ts +14 -7
  260. package/components/Heading/Heading.utils.d.ts +1 -1
  261. package/components/Icon/Icon.d.ts +15 -8
  262. package/components/Icon/Icon.utils.d.ts +4 -6
  263. package/components/Input/Input.d.ts +37 -23
  264. package/components/Input/Input.utils.d.ts +2 -1
  265. package/components/InputPassword/InputPassword.d.ts +35 -17
  266. package/components/InputPassword/InputPassword.utils.d.ts +2 -1
  267. package/components/InputSearch/InputSearch.d.ts +34 -18
  268. package/components/InputSearch/InputSearch.utils.d.ts +2 -1
  269. package/components/InputStepper/InputStepper.d.ts +47 -23
  270. package/components/InputStepper/InputStepper.utils.d.ts +2 -1
  271. package/components/Link/Link.d.ts +33 -20
  272. package/components/LinkStandalone/LinkStandalone.d.ts +8 -6
  273. package/components/Logo/Logo.d.ts +17 -8
  274. package/components/Logo/Logo.utils.d.ts +3 -1
  275. package/components/Notification/Notification.d.ts +36 -0
  276. package/components/Notification/Notification.test.d.ts +1 -0
  277. package/components/Notification/Notification.utils.d.ts +5 -0
  278. package/components/Radio/Radio.d.ts +31 -13
  279. package/components/RadioGroup/RadioGroup.d.ts +31 -21
  280. package/components/RadioGroup/RadioGroup.utils.d.ts +8 -5
  281. package/components/RadioGroup/RadioGroup.utils.test.d.ts +1 -0
  282. package/components/Select/Select.d.ts +26 -14
  283. package/components/Select/Select.utils.d.ts +4 -3
  284. package/components/SkipToContent/SkipToContent.d.ts +18 -0
  285. package/components/SkipToContent/SkipToContent.test.d.ts +1 -0
  286. package/components/Spinner/Spinner.d.ts +11 -6
  287. package/components/Switch/Switch.d.ts +23 -12
  288. package/components/SystemFeedback/SystemFeedback.d.ts +5 -4
  289. package/components/Text/Text.d.ts +17 -8
  290. package/components/Textarea/Textarea.d.ts +35 -17
  291. package/components/Textarea/Textarea.utils.d.ts +2 -1
  292. package/components/Title/Title.d.ts +14 -7
  293. package/components/Toast/Toast.d.ts +28 -0
  294. package/components/Toast/Toast.utils.d.ts +15 -0
  295. package/components/Toast/ToastManager.d.ts +10 -0
  296. package/components/Toast/ToastManager.test.d.ts +1 -0
  297. package/components/Toast/ToastManager.utils.d.ts +2 -0
  298. package/components/Toast/ToastManager.utils.test.d.ts +1 -0
  299. package/customreactselect.Dg8Kgq3e.js +13 -0
  300. package/dialog.D3bJ0rsW.js +9 -0
  301. package/dialog.d.ts +1 -0
  302. package/drawer.CNPF1-Kc.js +9 -0
  303. package/drawer.d.ts +1 -0
  304. package/fieldset.CTshPWYX.js +11 -0
  305. package/floatingactionbutton.CCIj9Fjr.js +87 -0
  306. package/heading.CAkraI2D.js +50 -0
  307. package/icon.BoMgOmC1.js +8 -0
  308. package/index.d.ts +32 -0
  309. package/index.es.js +158 -46
  310. package/input.CTgeAYdu.js +236 -0
  311. package/inputpassword.nsYu6YeB.js +12 -0
  312. package/inputsearch.ZGIrDrcv.js +13 -0
  313. package/inputstepper.BvY36hA1.js +13 -0
  314. package/link.DAZNwQ0a.js +116 -0
  315. package/linkstandalone.C9X3er7g.js +80 -0
  316. package/{logo.e6576fe3.js → logo.CEO6OV7u.js} +31 -34
  317. package/notification.BAS13UQ6.js +9 -0
  318. package/notification.d.ts +1 -0
  319. package/optioncheckbox.DZWwtx6f.js +43 -0
  320. package/package.json +51 -45
  321. package/partials/connected-apple-icon.png +0 -0
  322. package/partials/connected-favicon.ico +0 -0
  323. package/partials/connected-icon-192.png +0 -0
  324. package/partials/connected-icon-512.png +0 -0
  325. package/partials/connected-icon.svg +1 -0
  326. package/partials/copyAssets.js +25 -13
  327. package/partials/imow-apple-icon.png +0 -0
  328. package/partials/imow-favicon.ico +0 -0
  329. package/partials/imow-icon-192.png +0 -0
  330. package/partials/imow-icon-512.png +0 -0
  331. package/partials/imow-icon.svg +1 -0
  332. package/partials/index.js +914 -934
  333. package/partials/lib/partials.d.ts +2 -2
  334. package/partials/mystihl-apple-icon.png +0 -0
  335. package/partials/mystihl-favicon.ico +0 -0
  336. package/partials/mystihl-icon-192.png +0 -0
  337. package/partials/mystihl-icon-512.png +0 -0
  338. package/partials/mystihl-icon.svg +1 -0
  339. package/radio.CWGJtmKl.js +115 -0
  340. package/radiogroup.BhffFqN3.js +11 -0
  341. package/select.C4OZMB-V.js +12 -0
  342. package/skiptocontent.C4yQfWr2.js +46 -0
  343. package/skiptocontent.d.ts +1 -0
  344. package/spinner.D-xrotcu.js +58 -0
  345. package/styles/scss/_index.scss +2 -0
  346. package/styles/scss/lib/_animation.scss +20 -5
  347. package/styles/scss/lib/_container-query.scss +3 -3
  348. package/styles/scss/lib/_focus.scss +2 -1
  349. package/styles/scss/lib/_grid-extended.scss +2 -2
  350. package/styles/scss/lib/_grid-narrow.scss +2 -0
  351. package/styles/scss/lib/_grid-sidebar-sidebar.scss +4 -2
  352. package/styles/scss/lib/_grid-sidebar.scss +35 -45
  353. package/styles/scss/lib/_grid.scss +15 -13
  354. package/styles/scss/lib/_heading.scss +61 -7
  355. package/styles/scss/lib/_helpers.scss +12 -0
  356. package/styles/scss/lib/_high-contrast.scss +24 -0
  357. package/styles/scss/lib/_link.scss +62 -91
  358. package/styles/scss/lib/_media-query.scss +3 -3
  359. package/styles/scss/lib/_shadow.scss +10 -0
  360. package/styles/scss/lib/_spacing.scss +14 -0
  361. package/styles/scss/lib/_text.scss +60 -13
  362. package/styles/scss/lib/_theme.scss +9 -7
  363. package/styles/scss/lib/_transition.scss +26 -7
  364. package/switch.CmpNUC7s.js +65 -0
  365. package/systemfeedback.ZzRUAVYX.js +25 -0
  366. package/text.rgDKQBrU.js +57 -0
  367. package/textarea.CtQtGqn5.js +12 -0
  368. package/title.LY1ylQsb.js +36 -0
  369. package/toast.DVd9dLs2.js +10 -0
  370. package/toast.d.ts +1 -0
  371. package/toastmanager.Dh0gzFkM.js +119 -0
  372. package/toastmanager.d.ts +1 -0
  373. package/types/icon-types.d.ts +1 -1
  374. package/utils/index.d.ts +2 -0
  375. package/utils/remove-spaces.d.ts +6 -0
  376. package/utils/remove-spaces.test.d.ts +1 -0
  377. package/utils/render-documentation.d.ts +0 -1
  378. package/utils/render-in-iframe.d.ts +15 -0
  379. package/utils/useBreakpoint.d.ts +2 -1
  380. package/utils/useIsomorphicLayoutEffect.d.ts +26 -0
  381. package/utils/vitest.setup.d.ts +5 -0
  382. package/assets/Asterisk.288a3f48.css +0 -1
  383. package/assets/Button.c09c516e.css +0 -1
  384. package/assets/ButtonRound.fd628e54.css +0 -1
  385. package/assets/Checkbox.cde01607.css +0 -1
  386. package/assets/CustomReactSelect.cdb5f164.css +0 -1
  387. package/assets/Fieldset.729910fe.css +0 -1
  388. package/assets/FloatingActionButton.de295f5d.css +0 -1
  389. package/assets/Heading.50f5e903.css +0 -1
  390. package/assets/Icon.8890ee9a.css +0 -1
  391. package/assets/Input.92913cfe.css +0 -1
  392. package/assets/InputPassword.d7b9c937.css +0 -1
  393. package/assets/InputSearch.888f630a.css +0 -1
  394. package/assets/InputStepper.969db0d2.css +0 -1
  395. package/assets/Link.75834750.css +0 -1
  396. package/assets/LinkStandalone.19bdab0d.css +0 -1
  397. package/assets/Logo.09e48e82.css +0 -1
  398. package/assets/OptionCheckbox.c56568a3.css +0 -1
  399. package/assets/Radio.79d98dde.css +0 -1
  400. package/assets/RadioGroup.8b55ee38.css +0 -1
  401. package/assets/Select.b9c135c2.css +0 -1
  402. package/assets/Spinner.af45d460.css +0 -1
  403. package/assets/Switch.781e3de6.css +0 -1
  404. package/assets/SystemFeedback.c30264c0.css +0 -1
  405. package/assets/Text.ac70cc84.css +0 -1
  406. package/assets/Textarea.12046393.css +0 -1
  407. package/assets/Title.e9e5a7e6.css +0 -1
  408. package/asterisk.cb74ea72.js +0 -8
  409. package/button.87ad387c.js +0 -135
  410. package/buttonround.ecb24c29.js +0 -118
  411. package/checkbox.42617f46.js +0 -112
  412. package/checkboxgroup.fa110fdf.js +0 -78
  413. package/chunks/360.3f3132d9.js +0 -11
  414. package/chunks/CustomReactSelect.2e4e7ba0.js +0 -5015
  415. package/chunks/Link.module.15dedc23.js +0 -37
  416. package/chunks/RadioGroup.module.59ca486a.js +0 -11
  417. package/chunks/academic-cap.a6849ffc.js +0 -11
  418. package/chunks/alarm-clock.542230f3.js +0 -11
  419. package/chunks/arrow-clockwise.0496f663.js +0 -11
  420. package/chunks/arrow-counterclockwise.635a0130.js +0 -11
  421. package/chunks/arrow-down-line.0976611e.js +0 -11
  422. package/chunks/arrow-down.9780d975.js +0 -11
  423. package/chunks/arrow-edge.3288acdd.js +0 -11
  424. package/chunks/arrow-left.ace9c808.js +0 -11
  425. package/chunks/arrow-out.0499f39e.js +0 -11
  426. package/chunks/arrow-outline-left.efc33275.js +0 -11
  427. package/chunks/arrow-right.133feef2.js +0 -11
  428. package/chunks/arrow-up-arrow-down.b612e9b1.js +0 -11
  429. package/chunks/arrow-up.3be6430a.js +0 -11
  430. package/chunks/at.6279d12b.js +0 -11
  431. package/chunks/barcode-scanner.0a4a314d.js +0 -11
  432. package/chunks/battery.e1249ee1.js +0 -11
  433. package/chunks/bell.87fe4f0b.js +0 -11
  434. package/chunks/bin-open.be4290d8.js +0 -11
  435. package/chunks/bin.b36466f3.js +0 -11
  436. package/chunks/bluetooth.54b89b90.js +0 -11
  437. package/chunks/bookmark.4d5ce4c3.js +0 -11
  438. package/chunks/burger.1301d91e.js +0 -11
  439. package/chunks/calendar.ba39a664.js +0 -11
  440. package/chunks/camera.3bed4f3b.js +0 -11
  441. package/chunks/cart-check.9fb6abdb.js +0 -11
  442. package/chunks/cart-plus.fd5c4674.js +0 -11
  443. package/chunks/cart.7516d35c.js +0 -11
  444. package/chunks/catalog.bd0c7830.js +0 -11
  445. package/chunks/certificate.1639c28e.js +0 -11
  446. package/chunks/chain-link.45025ed0.js +0 -11
  447. package/chunks/chainsaw.56d43a9f.js +0 -11
  448. package/chunks/check.a08beeae.js +0 -11
  449. package/chunks/chevron-down.80b0dc85.js +0 -11
  450. package/chunks/chevron-left.f5feade0.js +0 -11
  451. package/chunks/chevron-line-left.17b172d1.js +0 -11
  452. package/chunks/chevron-line-right.7cd234b7.js +0 -11
  453. package/chunks/chevron-right.259bc1a3.js +0 -11
  454. package/chunks/chevron-up.d1335850.js +0 -11
  455. package/chunks/circle-check-colored.98e13ab9.js +0 -11
  456. package/chunks/circle-check-inverted.db29ab06.js +0 -11
  457. package/chunks/circle-info-colored.8da47e36.js +0 -11
  458. package/chunks/circle-info-inverted.0ed118fb.js +0 -11
  459. package/chunks/circle-pause.55300d1b.js +0 -11
  460. package/chunks/circle-stroke.203dd7aa.js +0 -11
  461. package/chunks/circle.33ec82eb.js +0 -11
  462. package/chunks/clock.3014a102.js +0 -11
  463. package/chunks/coffee-cup.98d6531f.js +0 -11
  464. package/chunks/compare.c76b221b.js +0 -11
  465. package/chunks/connected-box-mobile.9cd742dd.js +0 -11
  466. package/chunks/connected-box-stationary.191a3ed0.js +0 -11
  467. package/chunks/connected-box.fe21c39b.js +0 -11
  468. package/chunks/cross.fe709ee7.js +0 -11
  469. package/chunks/diamond-exclamationmark-colored.bf3ffccf.js +0 -11
  470. package/chunks/diamond-exclamationmark-inverted.b5648587.js +0 -11
  471. package/chunks/diamond.e962c289.js +0 -11
  472. package/chunks/diskette.04733444.js +0 -11
  473. package/chunks/distance.9e6b56ff.js +0 -11
  474. package/chunks/dots-connected.9869fae1.js +0 -11
  475. package/chunks/envelope-open.3c3fd714.js +0 -11
  476. package/chunks/envelope.5c9ff834.js +0 -11
  477. package/chunks/exclamationmark.92afe58f.js +0 -11
  478. package/chunks/exit.bde46887.js +0 -11
  479. package/chunks/eye-closed.0b517bb7.js +0 -11
  480. package/chunks/eye.8f4b311b.js +0 -11
  481. package/chunks/facebook.4a040606.js +0 -11
  482. package/chunks/filter.dee66683.js +0 -11
  483. package/chunks/finger-double-arrow.9cd4c623.js +0 -11
  484. package/chunks/flash.15646b5e.js +0 -11
  485. package/chunks/fullscreen.fdd976fe.js +0 -11
  486. package/chunks/gear.1f5f6fe9.js +0 -11
  487. package/chunks/globe.7f419498.js +0 -11
  488. package/chunks/grid.2c1cdc21.js +0 -11
  489. package/chunks/guidance.63bebf3e.js +0 -11
  490. package/chunks/haircross.0ac15319.js +0 -11
  491. package/chunks/hanger.edc848f4.js +0 -11
  492. package/chunks/headphones.a023699e.js +0 -11
  493. package/chunks/heart.d4440641.js +0 -11
  494. package/chunks/hexagon-arrow-clockwise.98e9b555.js +0 -11
  495. package/chunks/horizontal-ellipsis.84419429.js +0 -11
  496. package/chunks/house.70059642.js +0 -11
  497. package/chunks/imow.3374e620.js +0 -11
  498. package/chunks/info.1787448e.js +0 -11
  499. package/chunks/instagram.e12dd682.js +0 -11
  500. package/chunks/leave-fullscreen.def46043.js +0 -11
  501. package/chunks/lightbulb.b73d3ebf.js +0 -11
  502. package/chunks/linkedin.ce0c68cb.js +0 -11
  503. package/chunks/list-three-rows.ef44c7ef.js +0 -11
  504. package/chunks/list-two-rows.5ed8f1af.js +0 -11
  505. package/chunks/loading-spinner.8293421e.js +0 -11
  506. package/chunks/lock.3cbc8ced.js +0 -11
  507. package/chunks/magnifying-glass-minus.b0f906e5.js +0 -11
  508. package/chunks/magnifying-glass-plus.6ffc69c5.js +0 -11
  509. package/chunks/magnifying-glass.c297e41f.js +0 -11
  510. package/chunks/map.c96b1dcd.js +0 -11
  511. package/chunks/minus.7f6676e8.js +0 -11
  512. package/chunks/mobile.416ee5b0.js +0 -11
  513. package/chunks/nine-squares.34eeb0d4.js +0 -11
  514. package/chunks/note-check.aaf92ef9.js +0 -11
  515. package/chunks/note-plus.e7ab1b93.js +0 -11
  516. package/chunks/note.cc96375c.js +0 -11
  517. package/chunks/number-input.076fcf63.js +0 -11
  518. package/chunks/paperclip.e8831256.js +0 -11
  519. package/chunks/parcel.75534dbd.js +0 -11
  520. package/chunks/pause.901567cf.js +0 -11
  521. package/chunks/pdf.92c1781a.js +0 -11
  522. package/chunks/pen.ecbcb50d.js +0 -11
  523. package/chunks/percent.4b7fa587.js +0 -11
  524. package/chunks/petrol.41999bec.js +0 -11
  525. package/chunks/phone.3c23c041.js +0 -11
  526. package/chunks/pin-s.a5519070.js +0 -11
  527. package/chunks/pin.1137362d.js +0 -11
  528. package/chunks/pinterest.88763b51.js +0 -11
  529. package/chunks/placeholder.d6fdaf8f.js +0 -11
  530. package/chunks/play.dd0f1d8c.js +0 -11
  531. package/chunks/plug.00f114c4.js +0 -11
  532. package/chunks/plus.42721ebf.js +0 -11
  533. package/chunks/printer.5bb7ee0d.js +0 -11
  534. package/chunks/prohibition-sign.af5616b3.js +0 -11
  535. package/chunks/questionmark.db94a06d.js +0 -11
  536. package/chunks/security.2be491e3.js +0 -11
  537. package/chunks/share.ddae7aef.js +0 -11
  538. package/chunks/shirt.135d58c1.js +0 -11
  539. package/chunks/shop.f120426b.js +0 -11
  540. package/chunks/sound-off.c6f5ed43.js +0 -11
  541. package/chunks/sound-on.212c36bc.js +0 -11
  542. package/chunks/speechbubble.9428546e.js +0 -11
  543. package/chunks/speechbubbles.65cb946e.js +0 -11
  544. package/chunks/square.452f505f.js +0 -11
  545. package/chunks/star-half.1458bc5b.js +0 -11
  546. package/chunks/star.fab17456.js +0 -11
  547. package/chunks/tag.4d730d72.js +0 -11
  548. package/chunks/thumbs-down.cbf6e4ec.js +0 -11
  549. package/chunks/thumbs-up.435754e1.js +0 -11
  550. package/chunks/triangle-exclamationmark-colored.94025893.js +0 -11
  551. package/chunks/triangle-exclamationmark-inverted.bc4eed15.js +0 -11
  552. package/chunks/truck.a904d6d3.js +0 -11
  553. package/chunks/two-people-screen.3e509922.js +0 -11
  554. package/chunks/two-sheets.d1cfef0f.js +0 -11
  555. package/chunks/upload.7f1850a3.js +0 -11
  556. package/chunks/user.bf5b30a5.js +0 -11
  557. package/chunks/vertical-ellipsis.1cac00e5.js +0 -11
  558. package/chunks/wc.9d108bd0.js +0 -11
  559. package/chunks/wifi-1bar.b6fc33aa.js +0 -11
  560. package/chunks/wifi-2bars.27e9da59.js +0 -11
  561. package/chunks/wifi-off.e5daf3a9.js +0 -11
  562. package/chunks/wifi.40bb915d.js +0 -11
  563. package/chunks/wind-rose.27fa658a.js +0 -11
  564. package/chunks/wrench.69493ef3.js +0 -11
  565. package/chunks/x.d9da4202.js +0 -11
  566. package/chunks/xing.e17c1a24.js +0 -11
  567. package/chunks/youtube.dbf50787.js +0 -11
  568. package/combobox.d93091e0.js +0 -45
  569. package/customreactselect.7c77375a.js +0 -13
  570. package/fieldset.fdd84bda.js +0 -98
  571. package/floatingactionbutton.281b5465.js +0 -87
  572. package/heading.c02dcb70.js +0 -44
  573. package/icon.b4211784.js +0 -215
  574. package/input.064e0bbf.js +0 -230
  575. package/inputpassword.f76c2f62.js +0 -139
  576. package/inputsearch.6e913fc6.js +0 -188
  577. package/inputstepper.2047ec77.js +0 -286
  578. package/link.5eb13d6e.js +0 -84
  579. package/linkstandalone.edfd6288.js +0 -80
  580. package/optioncheckbox.2369560b.js +0 -43
  581. package/radio.fd841ab0.js +0 -79
  582. package/radiogroup.e1c8ea3d.js +0 -100
  583. package/select.88d40c51.js +0 -188
  584. package/spinner.ee015469.js +0 -58
  585. package/switch.96fd1689.js +0 -65
  586. package/systemfeedback.8515a4e0.js +0 -25
  587. package/text.de8facb9.js +0 -57
  588. package/textarea.b8c40c8b.js +0 -189
  589. package/title.7be43d50.js +0 -36
  590. /package/chunks/{helpers.ea3ca41a.js → helpers.B1JT5ShS.js} +0 -0
  591. /package/chunks/{index.8021d3e0.js → index.CvOaL64Y.js} +0 -0
  592. /package/chunks/{useBreakpoint.6c1b06c2.js → useBreakpoint.5xBNDiCf.js} +0 -0
  593. /package/partials/{apple-icon.png → default-apple-icon.png} +0 -0
  594. /package/partials/{favicon.ico → default-favicon.ico} +0 -0
  595. /package/partials/{icon-192.png → default-icon-192.png} +0 -0
  596. /package/partials/{icon-512.png → default-icon-512.png} +0 -0
  597. /package/partials/{icon.svg → default-icon.svg} +0 -0
@@ -1,7 +1,8 @@
1
1
  // Base mixin to define common styles
2
2
  @mixin base-heading($fontFamily, $fontSize, $lineHeight) {
3
3
  font-family: #{unquote(
4
- $fontFamily + ', Arial Narrow, Arial, Heiti SC, sans-serif'
4
+ $fontFamily +
5
+ ', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif'
5
6
  )};
6
7
  font-style: normal;
7
8
  font-variant: normal;
@@ -10,6 +11,21 @@
10
11
  line-height: $lineHeight;
11
12
  }
12
13
 
14
+ // Mixin for bold title
15
+ @mixin base-heading-bold($fontFamily, $fontSize, $lineHeight) {
16
+ @include base-heading($fontFamily, $fontSize, $lineHeight);
17
+
18
+ /* x-height 426 https://vertical-metrics.netlify.app/ */
19
+ font-size-adjust: 0.426;
20
+ }
21
+
22
+ // Mixin for display title text
23
+ @mixin base-heading-display-title($fontFamily, $fontSize, $lineHeight) {
24
+ @include base-heading($fontFamily, $fontSize, $lineHeight);
25
+ /* cap-height 680 https://vertical-metrics.netlify.app/*/
26
+ font-size-adjust: cap-height 0.68;
27
+ }
28
+
13
29
  @mixin responsive-heading($min, $fontSize, $lineHeight) {
14
30
  @include ds-media-query-min($min: $min) {
15
31
  font-size: $fontSize;
@@ -18,36 +34,74 @@
18
34
  }
19
35
 
20
36
  // Mixins for specific heading sizes
37
+ // XL
21
38
  @mixin ds-heading-x-large {
22
- @include base-heading(
39
+ @include base-heading-bold(
40
+ 'STIHL Contraface Digital Text Bold',
41
+ 1.625rem,
42
+ 1.2
43
+ );
44
+ @include responsive-heading('l', 1.875rem, 1.25);
45
+ }
46
+
47
+ @mixin ds-heading-x-large-uppercase {
48
+ @include base-heading-display-title(
23
49
  'STIHL Contraface Digital Display Title',
24
50
  1.625rem,
25
51
  1.2
26
52
  );
53
+ text-transform: uppercase;
27
54
  @include responsive-heading('l', 1.875rem, 1.25);
28
55
  }
29
56
 
57
+ // Large
30
58
  @mixin ds-heading-large {
31
- @include base-heading(
59
+ @include base-heading-bold(
60
+ 'STIHL Contraface Digital Text Bold',
61
+ 1.375rem,
62
+ 1.25
63
+ );
64
+ @include responsive-heading('l', 1.625rem, 1.2);
65
+ }
66
+
67
+ @mixin ds-heading-large-uppercase {
68
+ @include base-heading-display-title(
32
69
  'STIHL Contraface Digital Display Title',
33
70
  1.375rem,
34
71
  1.25
35
72
  );
73
+ text-transform: uppercase;
36
74
  @include responsive-heading('l', 1.625rem, 1.2);
37
75
  }
38
76
 
77
+ // Medium
39
78
  @mixin ds-heading-medium {
40
- @include base-heading('STIHL Contraface Digital Text Bold', 1.25rem, 1.2);
79
+ @include base-heading-bold(
80
+ 'STIHL Contraface Digital Text Bold',
81
+ 1.25rem,
82
+ 1.2
83
+ );
41
84
  }
42
85
 
43
86
  @mixin ds-heading-medium-uppercase {
44
- @include base-heading('STIHL Contraface Digital Display Title', 1.25rem, 1.2);
87
+ @include base-heading-display-title(
88
+ 'STIHL Contraface Digital Display Title',
89
+ 1.25rem,
90
+ 1.2
91
+ );
92
+ text-transform: uppercase;
45
93
  }
46
94
 
95
+ // Small
47
96
  @mixin ds-heading-small {
48
- @include base-heading('STIHL Contraface Digital Text Bold', 1rem, 1.5);
97
+ @include base-heading-bold('STIHL Contraface Digital Text Bold', 1rem, 1.5);
49
98
  }
50
99
 
51
100
  @mixin ds-heading-small-uppercase {
52
- @include base-heading('STIHL Contraface Digital Display Title', 1rem, 1.5);
101
+ @include base-heading-display-title(
102
+ 'STIHL Contraface Digital Display Title',
103
+ 1rem,
104
+ 1.5
105
+ );
106
+ text-transform: uppercase;
53
107
  }
@@ -1,3 +1,15 @@
1
1
  @function px-to-rem($pixels, $base-font-size: 16px) {
2
2
  @return #{calc($pixels / $base-font-size)}rem;
3
3
  }
4
+
5
+ // Encode a color to be used in a data url.
6
+ @function urlEncodeHexColor($string) {
7
+ @if type-of($string) == 'color' and str-index(#{$string}, '#') == 1 {
8
+ $hex: str-slice(ie-hex-str($string), 4);
9
+ $string: unquote('#{$hex}');
10
+
11
+ @return '%23' + $string;
12
+ }
13
+
14
+ @return $string;
15
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * This mixin provides a utility to wrap styles within a media query specifically
3
+ * targeting devices that have forced-colors active and thus are in high-contrast mode.
4
+ *
5
+ * You can use the following keywords to set specific colors for elements in high contrast mode:
6
+ * @example
7
+ * ```markdown
8
+ * | Content | Keyword |
9
+ * |--------------------------|---------------|
10
+ * | Text | CanvasText |
11
+ * | Hyperlinks | LinkText |
12
+ * | Disabled Text | GrayText |
13
+ * | Selected Text, foreground| HighlightText |
14
+ * | Selected Text, background| Highlight |
15
+ * | Buttons, foreground | ButtonText |
16
+ * | Buttons, background | ButtonFace |
17
+ * | Backgrounds | Canvas |
18
+ * ```
19
+ */
20
+ @mixin high-contrast-media-query {
21
+ @media screen and (forced-colors: active) {
22
+ @content;
23
+ }
24
+ }
@@ -1,31 +1,32 @@
1
+ @import '_helpers';
1
2
  @import '_hover';
2
3
  @import '_spacing';
4
+ @import '_transition';
3
5
 
4
- // Encode a color to be used in a data url.
5
- @function urlEncodeHexColor($string) {
6
- @if type-of($string) == 'color' and str-index(#{$string}, '#') == 1 {
7
- $hex: str-slice(ie-hex-str($string), 4);
8
- $string: unquote('#{$hex}');
9
-
10
- @return '%23' + $string;
11
- }
12
-
13
- @return $string;
14
- }
6
+ // IMPORTANT: DSLinkStandalone and ds-link mixin have same visual appearance
7
+ // so if any changes are made to this component, they should be reflected in LinkStandalone as well.
15
8
 
16
9
  // Set the link variant colors
17
10
  @mixin link-variant(
18
11
  $content-color,
19
12
  $background-color-hover,
20
- $content-color-hover
13
+ $content-color-hover,
14
+ $theme: 'light'
21
15
  ) {
22
- color: $content-color;
16
+ & {
17
+ color: $content-color;
18
+ }
23
19
 
24
20
  &:link,
25
21
  &:visited {
26
22
  color: $content-color;
27
23
  }
28
24
 
25
+ &:active {
26
+ background-color: $background-color-hover;
27
+ color: $content-color-hover;
28
+ }
29
+
29
30
  @include hover-media-query {
30
31
  &:hover {
31
32
  background-color: $background-color-hover;
@@ -33,14 +34,24 @@
33
34
  }
34
35
  }
35
36
 
36
- &:active {
37
- background-color: $background-color-hover;
38
- color: $content-color-hover;
37
+ &[href^="http://"]::after,
38
+ &[href^="https://"]::after
39
+ {
40
+ content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{urlEncodeHexColor($content-color)}' viewBox='0 0 16 16' focusable='false' width='100%25' height='100%25'%3E%3Cpath fill-rule='evenodd' d='M9 2V0h7v7h-2V3.4L8.1 9.3 6.7 7.9 12.6 2H9Zm5 8h-2v4H2V4h4V2H0v14h14v-6Z' clip-rule='evenodd'/%3E%3C/svg%3E");
41
+ }
42
+
43
+ &[href^='#']::after {
44
+ content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{urlEncodeHexColor($content-color)}' viewBox='0 0 16 16' focusable='false' width='100%25' height='100%25'%3E%3Cpath d='M14.4 9.6 8 16 1.6 9.6 3 8.2l4 4V0h2v12.2l4-4 1.4 1.4Z'/%3E%3C/svg%3E");
39
45
  }
46
+
47
+ // The offset is set to 0 since Inline Links do not have a 2px
48
+ // outline offset like the Button component. See designs for reference.
49
+ @include ds-focus($theme, $offset: 0);
40
50
  }
41
51
 
42
52
  // Mixin for underlined links (inline link or active standalone link)
43
53
  @mixin link-underline {
54
+ text-decoration-skip-ink: auto;
44
55
  text-decoration-line: underline;
45
56
  text-underline-offset: 2px;
46
57
  text-decoration-thickness: 1px;
@@ -48,108 +59,68 @@
48
59
  }
49
60
 
50
61
  // Public Link mixin that can be used to style links.
51
- // Is also used to style the LinkStandalone component.
52
- // The $type variable is used to determine if the link is inline or standalone,
53
62
  // since there a few design differences between the two.
54
- @mixin ds-link($variant: 'neutral', $theme: 'light', $type: 'inline') {
55
- // Default link color (neutral/light)
56
- $link-color: $ds-theme-light-content-color-interaction-neutral;
57
-
58
- // The offset is set to 0 since LinkStandalone does not have a 2px
59
- // outline offset like the Button component. See designs for reference.
60
- @include ds-focus($theme, $offset: 0);
63
+ @mixin ds-link($variant: 'neutral', $theme: 'light') {
64
+ display: inline;
65
+ padding-inline-end: $ds-spacing-2;
66
+ padding-inline-start: $ds-spacing-2;
67
+ padding-block-start: 0;
68
+ padding-block-end: 0;
69
+ line-height: inherit;
70
+ font-size: inherit;
71
+
72
+ // Inline links are always underlined
73
+ @include link-underline;
74
+
75
+ // Inline links do have two predefined icons for external links and anchors.
76
+ // The icons are added via the ::after pseudo element as svg data urls to
77
+ // enable the change of the icon color via the fill property.
78
+ // Setting the icon & icon color is done in the link-variant mixin since
79
+ // it depends on the actual link color.
80
+ :where(&)[href^="http://"]::after,
81
+ :where(&)[href^="https://"]::after,
82
+ :where(&)[href^='#']::after {
83
+ display: inline-block;
84
+ margin-inline-start: 0.375em;
85
+ width: 0.75em;
86
+ height: 0.75em;
87
+ }
61
88
 
62
89
  // Variants & themes
63
90
  @if ($variant == 'neutral' and $theme == 'light') {
64
91
  @include link-variant(
65
- $link-color,
92
+ $ds-theme-light-content-color-interaction-neutral,
66
93
  $ds-theme-light-background-color-transparent-hover,
67
- $link-color
94
+ $ds-theme-light-content-color-interaction-neutral
68
95
  );
69
96
  }
70
97
 
71
98
  @if ($variant == 'highlight' and $theme == 'light') {
72
- $link-color: $ds-theme-light-content-color-interaction-accent;
73
99
  @include link-variant(
74
- $link-color,
100
+ $ds-theme-light-content-color-interaction-accent,
75
101
  $ds-theme-light-background-color-transparent-hover,
76
102
  $ds-theme-light-content-color-interaction-accent-hover
77
103
  );
78
104
  }
79
105
 
80
106
  @if ($variant == 'neutral' and $theme == 'dark') {
81
- $link-color: $ds-theme-dark-content-color-interaction-neutral;
82
107
  @include link-variant(
83
- $link-color,
108
+ $ds-theme-dark-content-color-interaction-neutral,
84
109
  $ds-theme-dark-background-color-transparent-hover,
85
- $link-color
110
+ $ds-theme-dark-content-color-interaction-neutral,
111
+ $theme: 'dark'
86
112
  );
87
113
  }
88
114
 
89
115
  @if ($variant == 'highlight' and $theme == 'dark') {
90
- $link-color: $ds-theme-dark-content-color-interaction-accent;
91
116
  @include link-variant(
92
- $link-color,
117
+ $ds-theme-dark-content-color-interaction-accent,
93
118
  $ds-theme-dark-background-color-transparent-hover,
94
- $link-color
119
+ $ds-theme-dark-content-color-interaction-accent,
120
+ $theme: 'dark'
95
121
  );
96
122
  }
97
123
 
98
- // Type
99
- @if ($type == 'inline') {
100
- // Inline link
101
- @include link-underline;
102
-
103
- display: inline;
104
- padding-right: $ds-spacing-2;
105
- padding-left: $ds-spacing-2;
106
- padding-top: 0;
107
- padding-bottom: 0;
108
- line-height: inherit;
109
- font-size: inherit;
110
-
111
- // Inline links do have two predefined icons for external links and anchors.
112
- // The icons are added via the ::after pseudo element as svg data urls to
113
- // enable the change of the icon color via the fill property.
114
- :where(&)[href^="http://"]::after,
115
- :where(&)[href^="https://"]::after,
116
- :where(&)[href^='#']::after {
117
- display: inline-block;
118
- margin-left: 0.375em;
119
- width: 0.75em;
120
- height: 0.75em;
121
- }
122
-
123
- &[href^="http://"]::after,
124
- &[href^="https://"]::after
125
- {
126
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{urlEncodeHexColor($link-color)}' viewBox='0 0 16 16' focusable='false' width='100%25' height='100%25'%3E%3Cpath fill-rule='evenodd' d='M9 2V0h7v7h-2V3.4L8.1 9.3 6.7 7.9 12.6 2H9Zm5 8h-2v4H2V4h4V2H0v14h14v-6Z' clip-rule='evenodd'/%3E%3C/svg%3E");
127
- }
128
-
129
- &[href^='#']::after {
130
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{urlEncodeHexColor($link-color)}' viewBox='0 0 16 16' focusable='false' width='100%25' height='100%25'%3E%3Cpath d='M14.4 9.6 8 16 1.6 9.6 3 8.2l4 4V0h2v12.2l4-4 1.4 1.4Z'/%3E%3C/svg%3E");
131
- }
132
- } @else {
133
- // Standalone link
134
- @include ds-utility-medium;
135
-
136
- display: inline-flex;
137
- align-items: center;
138
- gap: $ds-spacing-6;
139
- padding-right: $ds-spacing-4;
140
- padding-left: $ds-spacing-4;
141
- padding-top: $ds-spacing-2;
142
- padding-bottom: $ds-spacing-2;
143
- // Set color to transparent instead of text-decoration: none to support forced colors link decoration
144
- text-decoration-color: transparent;
145
-
146
- // The DSLinkStandalone component uses the DSIcon component to render a
147
- // selectable icon. The icon is colored with the current text color.
148
- svg {
149
- fill: currentColor;
150
- }
151
- }
152
-
153
124
  // Transition
154
- @include transition(background-color, border-color, color);
125
+ @include ds-transition((background-color, border-color, color));
155
126
  }
@@ -6,7 +6,7 @@
6
6
  @content;
7
7
  }
8
8
  } @else {
9
- @error "Passed #{$min} breakpoint is not available for used ds-media-query-min() mixin.";
9
+ @error "[STIHL Design System] - [ds-media-query-min()]: Passed '#{$min}' breakpoint is not available in ds-media-query-min() mixin.";
10
10
  }
11
11
  }
12
12
 
@@ -16,7 +16,7 @@
16
16
  @content;
17
17
  }
18
18
  } @else {
19
- @error "Passed #{$max} breakpoint is not available for used ds-media-query-max() mixin.";
19
+ @error "[STIHL Design System] - [ds-media-query-max()]: Passed '#{$max}' breakpoint is not available in ds-media-query-max() mixin.";
20
20
  }
21
21
  }
22
22
 
@@ -27,6 +27,6 @@
27
27
  @content;
28
28
  }
29
29
  } @else {
30
- @error "Passed #{$min} and/or #{$max} breakpoint is not available for used ds-media-query-min-max() mixin.";
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
31
  }
32
32
  }
@@ -0,0 +1,10 @@
1
+ @mixin ds-shadow-m {
2
+ box-shadow:
3
+ 0px 2px 12px 0px rgba(0, 0, 0, 0.08),
4
+ 0px 1px 2px 0px rgba(0, 0, 0, 0.16);
5
+ }
6
+ @mixin ds-shadow-l {
7
+ box-shadow:
8
+ 0px 8px 48px 0px rgba(0, 0, 0, 0.1),
9
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.04);
10
+ }
@@ -1,9 +1,11 @@
1
+ $ds-spacing-0: 0px;
1
2
  $ds-spacing-1: 1px;
2
3
  $ds-spacing-2: 2px;
3
4
  $ds-spacing-4: 4px;
4
5
  $ds-spacing-6: 6px;
5
6
  $ds-spacing-8: 8px;
6
7
  $ds-spacing-12: 12px;
8
+ $ds-spacing-14: 14px;
7
9
  $ds-spacing-16: 16px;
8
10
  $ds-spacing-20: 20px;
9
11
  $ds-spacing-24: 24px;
@@ -16,3 +18,15 @@ $ds-spacing-80: 80px;
16
18
  $ds-spacing-96: 96px;
17
19
  $ds-spacing-128: 128px;
18
20
  $ds-spacing-160: 160px;
21
+
22
+ // Functions to adjust spacing to account for the inner border of an element as designed in Figma.
23
+ // This is necessary to ensure that the spacing matches the design specifications
24
+ // where the border is included inside the element, causing an effective reduction
25
+ // in the available space by the width of the border.
26
+ @function adjust-spacing-for-border-1($spacing) {
27
+ @return #{calc($spacing - $ds-spacing-1)};
28
+ }
29
+
30
+ @function adjust-spacing-for-border-2($spacing) {
31
+ @return #{calc($spacing - $ds-spacing-2)};
32
+ }
@@ -1,7 +1,8 @@
1
1
  // Base mixin for text styles
2
2
  @mixin base-text($fontFamily, $fontSize, $lineHeight) {
3
3
  font-family: #{unquote(
4
- $fontFamily + ', Arial Narrow, Arial, Heiti SC, sans-serif'
4
+ $fontFamily +
5
+ ', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif'
5
6
  )};
6
7
  font-style: normal;
7
8
  font-variant: normal;
@@ -12,52 +13,98 @@
12
13
  line-height: $lineHeight;
13
14
  }
14
15
 
16
+ // Mixin for regular text
17
+ @mixin base-text-regular($fontFamily, $fontSize, $lineHeight) {
18
+ @include base-text($fontFamily, $fontSize, $lineHeight);
19
+ /* x-height 414 https://vertical-metrics.netlify.app/ */
20
+ font-size-adjust: 0.414;
21
+ }
22
+
23
+ // Mixin for bold text
24
+ @mixin base-text-bold($fontFamily, $fontSize, $lineHeight) {
25
+ @include base-text($fontFamily, $fontSize, $lineHeight);
26
+ /* x-height 426 https://vertical-metrics.netlify.app/ */
27
+ font-size-adjust: 0.426;
28
+ }
29
+
15
30
  // Mixins for specific text sizes
16
31
  @mixin ds-text-large {
17
- @include base-text('STIHL Contraface Digital Text Regular', 1.25rem, 1.6);
32
+ @include base-text-regular(
33
+ 'STIHL Contraface Digital Text Regular',
34
+ 1.25rem,
35
+ 1.6
36
+ );
18
37
  }
19
38
 
20
39
  @mixin ds-text-large-bold {
21
- @include base-text('STIHL Contraface Digital Text Bold', 1.25rem, 1.6);
40
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 1.25rem, 1.6);
22
41
  }
23
42
 
24
43
  @mixin ds-text-medium {
25
- @include base-text('STIHL Contraface Digital Text Regular', 1rem, 1.5);
44
+ @include base-text-regular(
45
+ 'STIHL Contraface Digital Text Regular',
46
+ 1rem,
47
+ 1.5
48
+ );
26
49
  }
27
50
 
28
51
  @mixin ds-text-medium-bold {
29
- @include base-text('STIHL Contraface Digital Text Bold', 1rem, 1.5);
52
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 1rem, 1.5);
30
53
  }
31
54
 
32
55
  @mixin ds-text-small {
33
- @include base-text('STIHL Contraface Digital Text Regular', 0.875rem, 1.14);
56
+ @include base-text-regular(
57
+ 'STIHL Contraface Digital Text Regular',
58
+ 0.875rem,
59
+ 1.14
60
+ );
34
61
  }
35
62
 
36
63
  @mixin ds-text-small-bold {
37
- @include base-text('STIHL Contraface Digital Text Bold', 0.875rem, 1.14);
64
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 0.875rem, 1.14);
38
65
  }
39
66
 
40
67
  @mixin ds-text-x-small {
41
- @include base-text('STIHL Contraface Digital Text Regular', 0.75rem, 1.33);
68
+ @include base-text-regular(
69
+ 'STIHL Contraface Digital Text Regular',
70
+ 0.75rem,
71
+ 1.33
72
+ );
42
73
  }
43
74
 
44
75
  @mixin ds-text-x-small-bold {
45
- @include base-text('STIHL Contraface Digital Text Bold', 0.75rem, 1.33);
76
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 0.75rem, 1.33);
46
77
  }
47
78
 
48
79
  @mixin ds-text-xx-small {
49
- @include base-text('STIHL Contraface Digital Text Regular', 0.625rem, 1.6);
80
+ @include base-text-regular(
81
+ 'STIHL Contraface Digital Text Regular',
82
+ 0.625rem,
83
+ 1.6
84
+ );
50
85
  }
51
86
 
52
87
  // Utility text styles
53
88
  @mixin ds-utility-medium {
54
- @include base-text('STIHL Contraface Digital Text Regular', 1rem, 1.25);
89
+ @include base-text-regular(
90
+ 'STIHL Contraface Digital Text Regular',
91
+ 1rem,
92
+ 1.25
93
+ );
55
94
  }
56
95
 
57
96
  @mixin ds-utility-medium-bold {
58
- @include base-text('STIHL Contraface Digital Text Bold', 1rem, 1.25);
97
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 1rem, 1.25);
59
98
  }
60
99
 
61
100
  @mixin ds-utility-small {
62
- @include base-text('STIHL Contraface Digital Text Regular', 0.875rem, 1.14);
101
+ @include base-text-regular(
102
+ 'STIHL Contraface Digital Text Regular',
103
+ 0.875rem,
104
+ 1.14
105
+ );
106
+ }
107
+
108
+ @mixin ds-utility-small-bold {
109
+ @include base-text-bold('STIHL Contraface Digital Text Bold', 0.875rem, 1.14);
63
110
  }
@@ -70,13 +70,14 @@ $ds-theme-light-background-color-tertiary: $ds-color-core-grey-light;
70
70
  $ds-theme-light-background-color-transparent-hover: $ds-color-core-black-opacity-10;
71
71
  $ds-theme-light-background-color-transparent-pressed: $ds-color-core-black-opacity-10;
72
72
  $ds-theme-light-border-color-feedback-error: $ds-color-core-red-base;
73
+ $ds-theme-light-border-color-feedback-info: $ds-color-core-grey-dark;
73
74
  $ds-theme-light-border-color-feedback-success: $ds-color-core-green-base;
74
75
  $ds-theme-light-border-color-feedback-warning: $ds-color-core-yellow-base;
75
76
  $ds-theme-light-border-color-focus: $ds-color-core-grey-ultra-deep;
76
77
  $ds-theme-light-border-color-primary-disabled: $ds-color-core-black-opacity-50;
77
78
  $ds-theme-light-border-color-primary-inverse: $ds-color-core-white-base;
78
79
  $ds-theme-light-border-color-primary: $ds-color-core-grey-ultra-deep;
79
- $ds-theme-light-border-color-secondary-disabled: $ds-color-core-black-opacity-50;
80
+ $ds-theme-light-border-color-secondary-disabled: $ds-color-core-black-opacity-10;
80
81
  $ds-theme-light-border-color-secondary: $ds-color-core-grey-base;
81
82
  $ds-theme-light-border-color-tertiary: $ds-color-core-grey-mid;
82
83
  $ds-theme-light-content-color-brand-disabled: $ds-color-core-black-opacity-50;
@@ -107,10 +108,10 @@ $ds-theme-dark-background-color-brand-disabled: $ds-color-core-grey-mid;
107
108
  $ds-theme-dark-background-color-brand-hover: $ds-color-core-orange-dark;
108
109
  $ds-theme-dark-background-color-brand-pressed: $ds-color-core-orange-dark;
109
110
  $ds-theme-dark-background-color-brand: $ds-color-core-orange-base;
110
- $ds-theme-dark-background-color-feedback-error: $ds-color-core-grey-ultra-deep;
111
- $ds-theme-dark-background-color-feedback-info: $ds-color-core-grey-ultra-deep;
112
- $ds-theme-dark-background-color-feedback-success: $ds-color-core-grey-ultra-deep;
113
- $ds-theme-dark-background-color-feedback-warning: $ds-color-core-grey-ultra-deep;
111
+ $ds-theme-dark-background-color-feedback-error: $ds-color-core-grey-deep;
112
+ $ds-theme-dark-background-color-feedback-info: $ds-color-core-grey-deep;
113
+ $ds-theme-dark-background-color-feedback-success: $ds-color-core-grey-deep;
114
+ $ds-theme-dark-background-color-feedback-warning: $ds-color-core-grey-deep;
114
115
  $ds-theme-dark-background-color-primary-disabled: $ds-color-core-black-base;
115
116
  $ds-theme-dark-background-color-primary-hover: $ds-color-core-grey-deep;
116
117
  $ds-theme-dark-background-color-primary-inverse-disabled: $ds-color-core-grey-mid;
@@ -122,18 +123,19 @@ $ds-theme-dark-background-color-primary: $ds-color-core-black-base;
122
123
  $ds-theme-dark-background-color-secondary-disabled: $ds-color-core-grey-ultra-deep;
123
124
  $ds-theme-dark-background-color-secondary-inverse: $ds-color-core-grey-light;
124
125
  $ds-theme-dark-background-color-secondary: $ds-color-core-grey-ultra-deep;
125
- $ds-theme-dark-background-color-sustainability: $ds-color-core-grey-ultra-deep;
126
+ $ds-theme-dark-background-color-sustainability: $ds-color-core-grey-deep;
126
127
  $ds-theme-dark-background-color-tertiary: $ds-color-core-grey-ultra-deep;
127
128
  $ds-theme-dark-background-color-transparent-hover: $ds-color-core-white-opacity-15;
128
129
  $ds-theme-dark-background-color-transparent-pressed: $ds-color-core-white-opacity-15;
129
130
  $ds-theme-dark-border-color-feedback-error: $ds-color-core-red-base;
131
+ $ds-theme-dark-border-color-feedback-info: $ds-color-core-grey-dark;
130
132
  $ds-theme-dark-border-color-feedback-success: $ds-color-core-green-base;
131
133
  $ds-theme-dark-border-color-feedback-warning: $ds-color-core-yellow-base;
132
134
  $ds-theme-dark-border-color-focus: $ds-color-core-white-base;
133
135
  $ds-theme-dark-border-color-primary-disabled: $ds-color-core-white-opacity-50;
134
136
  $ds-theme-dark-border-color-primary-inverse: $ds-color-core-grey-ultra-deep;
135
137
  $ds-theme-dark-border-color-primary: $ds-color-core-grey-ultra-light;
136
- $ds-theme-dark-border-color-secondary-disabled: $ds-color-core-white-opacity-50;
138
+ $ds-theme-dark-border-color-secondary-disabled: $ds-color-core-white-opacity-15;
137
139
  $ds-theme-dark-border-color-secondary: $ds-color-core-grey-dark;
138
140
  $ds-theme-dark-border-color-tertiary: $ds-color-core-grey-deep;
139
141
  $ds-theme-dark-content-color-brand-disabled: $ds-color-core-white-opacity-50;
@@ -1,3 +1,4 @@
1
+ @import '_animation.scss';
1
2
  /**
2
3
  *
3
4
  * This mixin provides a concise way to set transitions with a default
@@ -7,20 +8,38 @@
7
8
  * motion and adjusts the transition duration accordingly.
8
9
  *
9
10
  * Example Usage:
10
- * @include transition(opacity, transform);
11
+ * @include ds-transition((opacity, transform), '250', 'ease-out');
12
+ * @include ds-transition(width, $easing-key: 'ease-out');
11
13
  */
12
- @mixin transition($properties...) {
14
+ @mixin ds-transition($properties, $duration-key: '100', $easing-key: 'linear') {
13
15
  @if length($properties) == 0 or $properties == null {
14
- @error "No properties provided for transition mixin.";
16
+ @error "[STIHL Design System] - [ds-transition()]: No properties provided for ds-transition() mixin.";
17
+ }
18
+
19
+ $duration: map-get($ds-animation-durations, $duration-key);
20
+ $easing: map-get($ds-animation-easing-functions, $easing-key);
21
+
22
+ @if not map-has-key($ds-animation-durations, $duration-key) {
23
+ @error "[STIHL Design System] - [ds-transition()]: Duration key '#{$duration-key}' is not available in the ds-transition() mixin.";
24
+ }
25
+
26
+ @if not map-has-key($ds-animation-easing-functions, $easing-key) {
27
+ @error "[STIHL Design System] - [ds-transition()]: Easing key '#{$easing-key}' is not available in the ds-transition() mixin.";
15
28
  }
16
29
 
17
30
  $transition-values: ();
18
31
  @each $prop in $properties {
19
- $transition-values: append($transition-values, #{$prop} 0.3s ease, comma);
32
+ $transition-values: append(
33
+ $transition-values,
34
+ #{$prop} #{$duration} #{$easing},
35
+ comma
36
+ );
20
37
  }
21
- transition: $transition-values;
38
+ & {
39
+ transition: $transition-values;
22
40
 
23
- @media (prefers-reduced-motion: reduce) {
24
- transition-duration: 0ms;
41
+ @media (prefers-reduced-motion: reduce) {
42
+ transition-duration: 0ms;
43
+ }
25
44
  }
26
45
  }