@fremtind/jokul 5.0.0-next.1 → 5.0.0-next.11

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 (350) hide show
  1. package/README.md +41 -22
  2. package/bin/jokul.mjs +10 -0
  3. package/bin/run-jokul-cli.mjs +63 -0
  4. package/build/build-stats.html +1 -1
  5. package/build/cjs/components/card/Card.cjs +1 -1
  6. package/build/cjs/components/card/Card.cjs.map +1 -1
  7. package/build/cjs/components/card/index.d.cts +1 -1
  8. package/build/cjs/components/card/types.cjs +1 -1
  9. package/build/cjs/components/card/types.cjs.map +1 -1
  10. package/build/cjs/components/card/types.d.cts +3 -6
  11. package/build/cjs/components/checkbox/Checkbox.cjs +1 -1
  12. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  13. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  14. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  15. package/build/cjs/components/cookie-consent/CookieConsent.d.cts +1 -1
  16. package/build/cjs/components/cookie-consent/types.d.cts +4 -0
  17. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  18. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  19. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  20. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  21. package/build/cjs/components/link/Link.cjs +1 -1
  22. package/build/cjs/components/link/Link.cjs.map +1 -1
  23. package/build/cjs/components/link/Link.d.cts +2 -2
  24. package/build/cjs/components/link/types.d.cts +1 -4
  25. package/build/cjs/components/modal/Modal.cjs +1 -1
  26. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  27. package/build/cjs/components/modal/Modal.d.cts +2 -9
  28. package/build/cjs/components/modal/index.d.cts +1 -1
  29. package/build/cjs/components/modal/types.d.cts +18 -0
  30. package/build/cjs/components/popover/Popover.cjs +1 -1
  31. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  32. package/build/cjs/components/radio-button/BaseRadioButton.cjs +1 -1
  33. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  34. package/build/cjs/components/text-area/BaseTextArea.cjs +1 -1
  35. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  36. package/build/cjs/components/text-area/counter.cjs +2 -0
  37. package/build/cjs/components/text-area/counter.cjs.map +1 -0
  38. package/build/cjs/components/text-area/counter.d.cts +2 -0
  39. package/build/cjs/components/text-area/types.d.cts +21 -1
  40. package/build/cjs/components/typography/Text.cjs +2 -0
  41. package/build/cjs/components/typography/Text.cjs.map +1 -0
  42. package/build/cjs/components/typography/Text.d.cts +5 -0
  43. package/build/cjs/components/typography/Title.cjs +2 -0
  44. package/build/cjs/components/typography/Title.cjs.map +1 -0
  45. package/build/cjs/components/typography/Title.d.cts +5 -0
  46. package/build/cjs/components/typography/index.cjs +2 -0
  47. package/build/cjs/components/typography/index.cjs.map +1 -0
  48. package/build/cjs/components/typography/index.d.cts +3 -0
  49. package/build/cjs/components/typography/types.cjs +2 -0
  50. package/build/cjs/components/typography/types.cjs.map +1 -0
  51. package/build/cjs/components/typography/types.d.cts +48 -0
  52. package/build/cjs/tokens.cjs +1 -1
  53. package/build/cjs/tokens.cjs.map +1 -1
  54. package/build/cjs/tokens.d.cts +90 -38
  55. package/build/es/components/card/Card.js +1 -1
  56. package/build/es/components/card/Card.js.map +1 -1
  57. package/build/es/components/card/index.d.ts +1 -1
  58. package/build/es/components/card/types.d.ts +3 -6
  59. package/build/es/components/card/types.js +1 -1
  60. package/build/es/components/card/types.js.map +1 -1
  61. package/build/es/components/checkbox/Checkbox.js +1 -1
  62. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  63. package/build/es/components/cookie-consent/CookieConsent.d.ts +1 -1
  64. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  65. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  66. package/build/es/components/cookie-consent/types.d.ts +4 -0
  67. package/build/es/components/datepicker/DatePicker.js +1 -1
  68. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  69. package/build/es/components/expander/ExpandablePanel.js +1 -1
  70. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  71. package/build/es/components/link/Link.d.ts +2 -2
  72. package/build/es/components/link/Link.js +1 -1
  73. package/build/es/components/link/Link.js.map +1 -1
  74. package/build/es/components/link/types.d.ts +1 -4
  75. package/build/es/components/modal/Modal.d.ts +2 -9
  76. package/build/es/components/modal/Modal.js +1 -1
  77. package/build/es/components/modal/Modal.js.map +1 -1
  78. package/build/es/components/modal/index.d.ts +1 -1
  79. package/build/es/components/modal/types.d.ts +18 -0
  80. package/build/es/components/popover/Popover.js +1 -1
  81. package/build/es/components/popover/Popover.js.map +1 -1
  82. package/build/es/components/radio-button/BaseRadioButton.js +1 -1
  83. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  84. package/build/es/components/text-area/BaseTextArea.js +1 -1
  85. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  86. package/build/es/components/text-area/counter.d.ts +2 -0
  87. package/build/es/components/text-area/counter.js +2 -0
  88. package/build/es/components/text-area/counter.js.map +1 -0
  89. package/build/es/components/text-area/types.d.ts +21 -1
  90. package/build/es/components/typography/Text.d.ts +5 -0
  91. package/build/es/components/typography/Text.js +2 -0
  92. package/build/es/components/typography/Text.js.map +1 -0
  93. package/build/es/components/typography/Title.d.ts +5 -0
  94. package/build/es/components/typography/Title.js +2 -0
  95. package/build/es/components/typography/Title.js.map +1 -0
  96. package/build/es/components/typography/index.d.ts +3 -0
  97. package/build/es/components/typography/index.js +2 -0
  98. package/build/es/components/typography/index.js.map +1 -0
  99. package/build/es/components/typography/types.d.ts +48 -0
  100. package/build/es/components/typography/types.js +2 -0
  101. package/build/es/components/typography/types.js.map +1 -0
  102. package/build/es/tokens.d.ts +90 -38
  103. package/build/es/tokens.js +1 -1
  104. package/build/es/tokens.js.map +1 -1
  105. package/codemods/CODEMODS.md +133 -0
  106. package/codemods/__tests__/import-paths.test.mjs +648 -0
  107. package/codemods/import-paths.mjs +198 -0
  108. package/codemods/transforms/color-tokens.mjs +77 -0
  109. package/codemods/transforms/font-family.mjs +23 -0
  110. package/codemods/transforms/import-specifiers.mjs +230 -0
  111. package/codemods/transforms/warnings.mjs +41 -0
  112. package/codemods/utils.mjs +35 -0
  113. package/package.json +7 -1
  114. package/src/fonts/InterVariable-Italic.woff2 +0 -0
  115. package/src/fonts/InterVariable.woff2 +0 -0
  116. package/src/fonts/brands/dnb/DNB-Bold.woff2 +0 -0
  117. package/src/fonts/brands/dnb/DNB-Medium.woff2 +0 -0
  118. package/src/fonts/brands/dnb/DNB-Regular.woff2 +0 -0
  119. package/src/fonts/brands/dnb/DNBMono-Regular.woff2 +0 -0
  120. package/src/fonts/brands/eika/OpenSans-Bold.woff2 +0 -0
  121. package/src/fonts/brands/eika/OpenSans-Light.woff2 +0 -0
  122. package/src/fonts/brands/eika/OpenSans-Regular.woff2 +0 -0
  123. package/src/fonts/brands/eika/OpenSans-SemiBold.woff2 +0 -0
  124. package/src/fonts/brands/fremtind/Fremtind-Material-Symbols.woff2 +0 -0
  125. package/src/fonts/brands/fremtind/InterVariable-Italic.woff2 +0 -0
  126. package/src/fonts/brands/fremtind/InterVariable.woff2 +0 -0
  127. package/src/fonts/brands/sparebank1/SpareBank1-Medium-Web.woff2 +0 -0
  128. package/src/fonts/brands/sparebank1/SpareBank1-Regular-Web.woff2 +0 -0
  129. package/src/fonts/brands/sparebank1/SpareBank1-Title-Medium-Web.woff2 +0 -0
  130. package/styles/base.css +819 -218
  131. package/styles/base.min.css +1 -1
  132. package/styles/components/autosuggest/autosuggest.css +4 -4
  133. package/styles/components/autosuggest/autosuggest.min.css +1 -1
  134. package/styles/components/autosuggest/autosuggest.scss +4 -4
  135. package/styles/components/beta/description-list/description-list.css +1 -1
  136. package/styles/components/beta/description-list/description-list.min.css +1 -1
  137. package/styles/components/beta/description-list/description-list.scss +1 -1
  138. package/styles/components/beta/nav-link/navlink.css +4 -4
  139. package/styles/components/beta/nav-link/navlink.min.css +1 -1
  140. package/styles/components/beta/nav-link/navlink.scss +6 -4
  141. package/styles/components/beta/select/select.css +9 -9
  142. package/styles/components/beta/select/select.min.css +1 -1
  143. package/styles/components/beta/select/select.scss +8 -7
  144. package/styles/components/breadcrumb/breadcrumb.css +1 -1
  145. package/styles/components/breadcrumb/breadcrumb.min.css +1 -1
  146. package/styles/components/button/button.css +8 -4
  147. package/styles/components/button/button.min.css +1 -1
  148. package/styles/components/button/button.scss +14 -14
  149. package/styles/components/card/card.css +6 -11
  150. package/styles/components/card/card.min.css +1 -1
  151. package/styles/components/card/card.scss +5 -12
  152. package/styles/components/checkbox/checkbox.css +43 -15
  153. package/styles/components/checkbox/checkbox.min.css +1 -1
  154. package/styles/components/checkbox/checkbox.scss +35 -24
  155. package/styles/components/checkbox-panel/checkbox-panel.css +65 -32
  156. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  157. package/styles/components/checkbox-panel/checkbox-panel.scss +4 -0
  158. package/styles/components/checkbox-panel/development/styles.scss +1 -1
  159. package/styles/components/chip/chip.css +6 -6
  160. package/styles/components/chip/chip.min.css +1 -1
  161. package/styles/components/chip/chip.scss +6 -6
  162. package/styles/components/combobox/combobox.css +25 -23
  163. package/styles/components/combobox/combobox.min.css +1 -1
  164. package/styles/components/combobox/combobox.scss +15 -18
  165. package/styles/components/countdown/countdown.css +4 -4
  166. package/styles/components/countdown/countdown.min.css +1 -1
  167. package/styles/components/datepicker/_calendar-date-button.scss +11 -9
  168. package/styles/components/datepicker/_calendar-navigation-dropdown.scss +1 -1
  169. package/styles/components/datepicker/_calendar.scss +6 -7
  170. package/styles/components/datepicker/datepicker.css +20 -12
  171. package/styles/components/datepicker/datepicker.min.css +1 -1
  172. package/styles/components/description-list/description-list.css +1 -1
  173. package/styles/components/description-list/description-list.min.css +1 -1
  174. package/styles/components/description-list/description-list.scss +1 -1
  175. package/styles/components/expander/expandable.css +29 -27
  176. package/styles/components/expander/expandable.min.css +1 -1
  177. package/styles/components/expander/expandable.scss +29 -30
  178. package/styles/components/feedback/_index.scss +1 -1
  179. package/styles/components/feedback/feedback.css +6 -8
  180. package/styles/components/feedback/feedback.min.css +1 -1
  181. package/styles/components/feedback/feedback.scss +4 -9
  182. package/styles/components/file/file.css +5 -5
  183. package/styles/components/file/file.min.css +1 -1
  184. package/styles/components/file/file.scss +5 -5
  185. package/styles/components/file-input/file-input.css +29 -25
  186. package/styles/components/file-input/file-input.min.css +1 -1
  187. package/styles/components/file-input/file-input.scss +3 -3
  188. package/styles/components/help/help.css +2 -2
  189. package/styles/components/help/help.min.css +1 -1
  190. package/styles/components/help/help.scss +4 -4
  191. package/styles/components/icon/_base-styles.scss +12 -14
  192. package/styles/components/icon/icon.css +5 -5
  193. package/styles/components/icon/icon.min.css +1 -1
  194. package/styles/components/icon/icon.scss +73 -73
  195. package/styles/components/icon-button/icon-button.css +2 -2
  196. package/styles/components/icon-button/icon-button.min.css +1 -1
  197. package/styles/components/icon-button/icon-button.scss +1 -1
  198. package/styles/components/input-group/input-group.css +2 -2
  199. package/styles/components/input-group/input-group.min.css +1 -1
  200. package/styles/components/input-panel/input-panel.css +19 -17
  201. package/styles/components/input-panel/input-panel.min.css +1 -1
  202. package/styles/components/input-panel/input-panel.scss +21 -20
  203. package/styles/components/link/link.css +2 -2
  204. package/styles/components/link/link.min.css +1 -1
  205. package/styles/components/link-list/link-list.css +8 -4
  206. package/styles/components/link-list/link-list.min.css +1 -1
  207. package/styles/components/link-list/link-list.scss +7 -3
  208. package/styles/components/list/list.css +37 -21
  209. package/styles/components/list/list.min.css +1 -1
  210. package/styles/components/list/list.scss +27 -23
  211. package/styles/components/loader/loader.css +6 -6
  212. package/styles/components/loader/loader.min.css +1 -1
  213. package/styles/components/loader/skeleton-loader.css +4 -4
  214. package/styles/components/loader/skeleton-loader.min.css +1 -1
  215. package/styles/components/loader/skeleton-loader.scss +1 -1
  216. package/styles/components/menu/_menu-divider.scss +1 -1
  217. package/styles/components/menu/_menu-item.scss +2 -2
  218. package/styles/components/menu/menu.css +5 -5
  219. package/styles/components/menu/menu.min.css +1 -1
  220. package/styles/components/menu/menu.scss +2 -2
  221. package/styles/components/message/message.css +20 -10
  222. package/styles/components/message/message.min.css +1 -1
  223. package/styles/components/message/message.scss +19 -12
  224. package/styles/components/modal/_layout.scss +22 -0
  225. package/styles/components/modal/_modal-base.scss +32 -0
  226. package/styles/components/modal/_motion.scss +45 -0
  227. package/styles/components/modal/_overlay.scss +20 -0
  228. package/styles/components/modal/_parts.scss +33 -0
  229. package/styles/components/modal/_placement.scss +59 -0
  230. package/styles/components/modal/modal.css +118 -34
  231. package/styles/components/modal/modal.min.css +1 -1
  232. package/styles/components/modal/modal.scss +6 -95
  233. package/styles/components/nav-link/nav-link.css +1 -1
  234. package/styles/components/nav-link/nav-link.min.css +1 -1
  235. package/styles/components/pagination/development/styles.scss +1 -1
  236. package/styles/components/pagination/pagination.css +3 -3
  237. package/styles/components/pagination/pagination.min.css +1 -1
  238. package/styles/components/pagination/pagination.scss +2 -2
  239. package/styles/components/popover/popover.css +12 -1
  240. package/styles/components/popover/popover.min.css +1 -1
  241. package/styles/components/popover/popover.scss +15 -1
  242. package/styles/components/progress-bar/progress-bar.css +27 -3
  243. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  244. package/styles/components/progress-bar/progress-bar.scss +5 -0
  245. package/styles/components/radio-button/radio-button.css +43 -8
  246. package/styles/components/radio-button/radio-button.min.css +1 -1
  247. package/styles/components/radio-button/radio-button.scss +35 -16
  248. package/styles/components/radio-panel/development/styles.scss +1 -1
  249. package/styles/components/radio-panel/radio-panel.css +22 -17
  250. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  251. package/styles/components/radio-panel/radio-panel.scss +4 -0
  252. package/styles/components/search/search-with-submit-button.css +1 -1
  253. package/styles/components/search/search-with-submit-button.min.css +1 -1
  254. package/styles/components/search/search-with-submit-button.scss +1 -1
  255. package/styles/components/search/search.css +4 -4
  256. package/styles/components/search/search.min.css +1 -1
  257. package/styles/components/search/search.scss +3 -3
  258. package/styles/components/segmented-control/segmented-control.css +61 -26
  259. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  260. package/styles/components/segmented-control/segmented-control.scss +7 -7
  261. package/styles/components/select/select.css +17 -18
  262. package/styles/components/select/select.min.css +1 -1
  263. package/styles/components/select/select.scss +24 -29
  264. package/styles/components/summary-table/development/summary-table-example.scss +1 -1
  265. package/styles/components/summary-table/summary-table.css +2 -2
  266. package/styles/components/summary-table/summary-table.min.css +1 -1
  267. package/styles/components/summary-table/summary-table.scss +2 -2
  268. package/styles/components/system-message/system-message.css +23 -13
  269. package/styles/components/system-message/system-message.min.css +1 -1
  270. package/styles/components/system-message/system-message.scss +119 -108
  271. package/styles/components/table/_table-head.scss +1 -1
  272. package/styles/components/table/_table-row.scss +5 -3
  273. package/styles/components/table/table.css +6 -4
  274. package/styles/components/table/table.min.css +1 -1
  275. package/styles/components/table-of-contents/table-of-contents.css +2 -2
  276. package/styles/components/table-of-contents/table-of-contents.min.css +1 -1
  277. package/styles/components/table-of-contents/table-of-contents.scss +3 -3
  278. package/styles/components/tabs/tabs.css +5 -5
  279. package/styles/components/tabs/tabs.min.css +1 -1
  280. package/styles/components/tabs/tabs.scss +5 -6
  281. package/styles/components/tag/tag.css +16 -6
  282. package/styles/components/tag/tag.min.css +1 -1
  283. package/styles/components/tag/tag.scss +18 -7
  284. package/styles/components/text-area/text-area.css +12 -12
  285. package/styles/components/text-area/text-area.min.css +1 -1
  286. package/styles/components/text-input/text-input.css +12 -12
  287. package/styles/components/text-input/text-input.min.css +1 -1
  288. package/styles/components/toast/toast.css +20 -13
  289. package/styles/components/toast/toast.min.css +1 -1
  290. package/styles/components/toast/toast.scss +19 -18
  291. package/styles/components/toggle-switch/_toggle-slider.scss +4 -4
  292. package/styles/components/toggle-switch/toggle-switch.css +15 -25
  293. package/styles/components/toggle-switch/toggle-switch.min.css +1 -3
  294. package/styles/components/toggle-switch/toggle-switch.scss +10 -22
  295. package/styles/components/tooltip/tooltip.css +5 -5
  296. package/styles/components/tooltip/tooltip.min.css +1 -1
  297. package/styles/components/tooltip/tooltip.scss +5 -5
  298. package/styles/components/typography/_index.scss +2 -0
  299. package/styles/components/typography/text.css +38 -0
  300. package/styles/components/typography/text.min.css +1 -0
  301. package/styles/components/typography/text.scss +54 -0
  302. package/styles/components/typography/title.css +55 -0
  303. package/styles/components/typography/title.min.css +1 -0
  304. package/styles/components/typography/title.scss +59 -0
  305. package/styles/components.css +729 -395
  306. package/styles/components.min.css +1 -3
  307. package/styles/components.scss +53 -52
  308. package/styles/global/_base-class.scss +2 -2
  309. package/styles/global/_top-layer.scss +1 -1
  310. package/styles/hooks/stories/styles.scss +3 -3
  311. package/styles/jkl/_ornaments.scss +1 -1
  312. package/styles/jkl/_tokens.scss +140 -66
  313. package/styles/jkl/_typography.scss +13 -21
  314. package/styles/shared/input/shared-input-styles.scss +11 -15
  315. package/styles/shared/track/track.scss +2 -2
  316. package/styles/tailwind.css +106 -62
  317. package/styles/theme/_color-scheme.scss +107 -60
  318. package/styles/theme/_dynamic-spacing.scss +24 -18
  319. package/styles/theme/_fonts.scss +19 -78
  320. package/styles/theme/_index.scss +4 -0
  321. package/styles/theme/_size.scss +20 -20
  322. package/styles/theme/_tokens.scss +14 -14
  323. package/styles/theme/brands/dnb/_color-scheme.scss +121 -0
  324. package/styles/theme/brands/dnb/_fonts.scss +46 -0
  325. package/styles/theme/brands/dnb/_index.scss +2 -0
  326. package/styles/theme/brands/eika/_color-scheme.scss +121 -0
  327. package/styles/theme/brands/eika/_fonts.scss +46 -0
  328. package/styles/theme/brands/eika/_index.scss +2 -0
  329. package/styles/theme/brands/fremtind/_color-scheme.scss +121 -0
  330. package/styles/theme/brands/fremtind/_fonts.scss +30 -0
  331. package/styles/theme/brands/fremtind/_index.scss +2 -0
  332. package/styles/theme/brands/sparebank1/_color-scheme.scss +121 -0
  333. package/styles/theme/brands/sparebank1/_fonts.scss +38 -0
  334. package/styles/theme/brands/sparebank1/_index.scss +2 -0
  335. package/styles/utility/_headings.scss +1 -1
  336. package/styles/utility/_paragraphs.scss +2 -2
  337. package/styles/utility/_screen-reader.scss +1 -1
  338. package/styles/utility/_spacing.scss +2 -2
  339. package/src/fonts/FremtindGrotesk-Bold-Web.woff +0 -0
  340. package/src/fonts/FremtindGrotesk-Bold-Web.woff2 +0 -0
  341. package/src/fonts/FremtindGrotesk-BoldItalic-Web.woff +0 -0
  342. package/src/fonts/FremtindGrotesk-BoldItalic-Web.woff2 +0 -0
  343. package/src/fonts/FremtindGrotesk-Display-Web.woff +0 -0
  344. package/src/fonts/FremtindGrotesk-Display-Web.woff2 +0 -0
  345. package/src/fonts/FremtindGrotesk-Italic-Web.woff +0 -0
  346. package/src/fonts/FremtindGrotesk-Italic-Web.woff2 +0 -0
  347. package/src/fonts/FremtindGrotesk-Regular-Web.woff +0 -0
  348. package/src/fonts/FremtindGrotesk-Regular-Web.woff2 +0 -0
  349. package/src/fonts/FremtindGroteskMono-Regular-Web.woff +0 -0
  350. package/src/fonts/FremtindGroteskMono-Regular-Web.woff2 +0 -0
@@ -25,8 +25,8 @@
25
25
  color: var(--jkl-color-text-subdued);
26
26
  }
27
27
  .jkl-autosuggest__menu {
28
- background-color: var(--jkl-color-background-container-high);
29
- border: 0.125rem solid var(--jkl-color-border-input-focus);
28
+ background-color: var(--jkl-color-background-container);
29
+ border: 0.125rem solid var(--jkl-color-border-strong);
30
30
  border-top: none;
31
31
  border-radius: 0 0 var(--border-radius) var(--border-radius);
32
32
  box-sizing: border-box;
@@ -51,7 +51,7 @@
51
51
  display: flex;
52
52
  align-items: center;
53
53
  border: 0;
54
- background-color: var(--jkl-color-background-interactive);
54
+ background-color: transparent;
55
55
  min-height: var(--jkl-autosuggest-option-height);
56
56
  text-align: left;
57
57
  transition-timing-function: var(--jkl-motion-easing-standard);
@@ -63,13 +63,12 @@
63
63
  }
64
64
  .jkl-autosuggest__item:focus, .jkl-autosuggest__item--active, .jkl-autosuggest__item:hover {
65
65
  color: var(--jkl-color-text-default);
66
- background-color: var(--jkl-color-background-interactive-hover);
66
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
67
67
  }
68
68
  }
69
69
  @layer jokul.components {
70
70
  .jkl-text-input-wrapper {
71
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
72
- var(--jkl-text-input-horizontal-padding);
71
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
73
72
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
74
73
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
75
74
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -77,8 +76,8 @@
77
76
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
78
77
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
79
78
  --text-color: var(--jkl-color-text-default);
80
- --background-color: var(--jkl-color-background-input-base);
81
- --border-color: var(--jkl-color-border-input);
79
+ --background-color: transparent;
80
+ --border-color: var(--jkl-color-border-default);
82
81
  --placeholder-color: var(--jkl-color-text-subdued);
83
82
  border-radius: var(--jkl-border-radius-s);
84
83
  box-sizing: border-box;
@@ -95,15 +94,16 @@
95
94
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
96
95
  }
97
96
  .jkl-text-input-wrapper:focus-within, .jkl-text-input-wrapper:has([data-focused=true]) {
98
- --background-color: var(--jkl-color-background-input-focus);
97
+ --background-color: var(--jkl-color-background-container);
99
98
  }
100
99
  .jkl-text-input-wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
101
- --background-color: var(--jkl-color-background-alert-error);
102
- --text-color: var(--jkl-color-text-on-alert);
103
- --placeholder-color: color(from currentColor sRGB r g b / 75%);
100
+ --background-color: var(--jkl-color-error-background-container);
101
+ --text-color: var(--jkl-color-error-text-default);
102
+ --border-color: var(--jkl-color-error-border-default);
103
+ --placeholder-color: var(--jkl-color-error-text-subdued);
104
104
  }
105
105
  .jkl-text-input-wrapper:hover, .jkl-text-input-wrapper:focus-within, .jkl-text-input-wrapper:has([data-focused=true]) {
106
- --border-color: var(--jkl-color-border-input-focus);
106
+ --border-color: var(--jkl-color-border-strong);
107
107
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
108
108
  }
109
109
  @media screen and (forced-colors: active) {
@@ -112,11 +112,11 @@
112
112
  }
113
113
  }
114
114
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-input-wrapper:has(.jkl-text-input__input:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-input-wrapper:has(.jkl-text-area__text-area:focus-visible) {
115
- outline: 3px solid var(--jkl-color-border-action);
115
+ outline: 3px solid var(--jkl-color-border-strong);
116
116
  outline-offset: 3px;
117
117
  }
118
118
  .jkl-text-input-wrapper > .jkl-icon-button:focus-visible {
119
- outline: 3px solid var(--jkl-color-border-action);
119
+ outline: 3px solid var(--jkl-color-border-strong);
120
120
  outline-offset: -8px;
121
121
  }
122
122
  @media screen and (forced-colors: active) {
@@ -140,7 +140,7 @@
140
140
  width: var(--jkl-text-input-action-button-icon-size);
141
141
  }
142
142
  .jkl-text-input-wrapper > .jkl-text-input-action-button:hover {
143
- color: var(--jkl-color-text-interactive-hover);
143
+ color: var(--jkl-color-text-subdued);
144
144
  }
145
145
  @media screen and (forced-colors: active) {
146
146
  .jkl-text-input-wrapper > .jkl-text-input-action-button:hover {
@@ -224,7 +224,7 @@
224
224
  @layer jokul.components {
225
225
  .jkl-icon {
226
226
  --jkl-icon-fill: 0;
227
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
227
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
228
228
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
229
229
  font-feature-settings: "liga";
230
230
  -webkit-font-feature-settings: "liga";
@@ -244,8 +244,8 @@
244
244
  display: block;
245
245
  }
246
246
  .jkl-icon-red-cross {
247
- --red-cross-circle: var(--jkl-color-background-alert-error);
248
- --red-cross-path: var(--jkl-color-text-on-alert);
247
+ --red-cross-circle: var(--jkl-color-error-background-contrast);
248
+ --red-cross-path: var(--jkl-color-error-text-on-contrast);
249
249
  width: 1.3em;
250
250
  height: 1.3em;
251
251
  }
@@ -256,8 +256,8 @@
256
256
  fill: var(--red-cross-circle);
257
257
  }
258
258
  .jkl-icon-green-check {
259
- --green-check-circle: var(--jkl-color-background-alert-success);
260
- --green-check-path: var(--jkl-color-text-on-alert);
259
+ --green-check-circle: var(--jkl-color-success-background-contrast);
260
+ --green-check-path: var(--jkl-color-success-text-on-contrast);
261
261
  width: 1.3em;
262
262
  height: 1.3em;
263
263
  }
@@ -357,11 +357,11 @@
357
357
  display: revert;
358
358
  }
359
359
  .jkl-icon-button:focus-visible {
360
- outline: 3px solid var(--jkl-color-border-action);
360
+ outline: 3px solid var(--jkl-color-border-strong);
361
361
  outline-offset: 3px;
362
362
  }
363
363
  .jkl-icon-button:hover {
364
- color: var(--jkl-color-text-interactive-hover);
364
+ color: var(--jkl-color-text-subdued);
365
365
  }
366
366
  @media screen and (forced-colors: active) {
367
367
  .jkl-icon-button {
@@ -431,7 +431,7 @@
431
431
  --color: var(--jkl-color-text-default);
432
432
  }
433
433
  .jkl-form-support-label--error .jkl-form-support-label__icon, .jkl-form-support-label--warning .jkl-form-support-label__icon, .jkl-form-support-label--success .jkl-form-support-label__icon {
434
- animation: var(--jkl-motion-timing-lazy) cubic-bezier(0, 0, 0.3, 1) var(--jkl-motion-timing-expressive) jkl-support-icon-entrance-udz455c forwards;
434
+ animation: var(--jkl-motion-timing-lazy) cubic-bezier(0, 0, 0.3, 1) var(--jkl-motion-timing-expressive) jkl-support-icon-entrance-uglesc0 forwards;
435
435
  }
436
436
  .jkl-form-support-label--sr-only {
437
437
  border: 0 !important;
@@ -485,7 +485,7 @@
485
485
  .jkl-label:has(+ .jkl-input-group-description) {
486
486
  margin-block-end: var(--jkl-spacing-4);
487
487
  }
488
- @keyframes jkl-support-icon-entrance-udz455c {
488
+ @keyframes jkl-support-icon-entrance-uglesc0 {
489
489
  0% {
490
490
  margin-right: 0;
491
491
  opacity: 0;
@@ -533,10 +533,10 @@
533
533
  }
534
534
  .jkl-tooltip-content {
535
535
  --content-padding: var(--jkl-unit-15);
536
- --background-color: var(--jkl-color-background-container-inverted);
536
+ --background-color: var(--jkl-color-background-contrast);
537
537
  font: var(--jkl-text-style-paragraph-small);
538
538
  background-color: var(--background-color);
539
- color: var(--jkl-color-text-inverted);
539
+ color: var(--jkl-color-text-on-contrast);
540
540
  display: inline-block;
541
541
  min-width: min-content;
542
542
  max-width: min(19.375rem, 100%);
@@ -559,7 +559,7 @@
559
559
  padding: 0;
560
560
  display: inline-flex;
561
561
  align-items: baseline;
562
- color: var(--jkl-color-text-interactive);
562
+ color: var(--jkl-color-text-default);
563
563
  transform: translateY(min(0.25em, 0.375rem));
564
564
  border-radius: 9999px;
565
565
  }
@@ -584,10 +584,10 @@
584
584
  }
585
585
  }
586
586
  .jkl-tooltip-question-button:hover {
587
- --button-color: var(--jkl-color-text-interactive-hover);
587
+ color: var(--jkl-color-text-subdued);
588
588
  }
589
589
  .jkl-tooltip-question-button:focus-visible {
590
- outline: 3px solid var(--jkl-color-border-action);
590
+ outline: 3px solid var(--jkl-color-border-strong);
591
591
  outline-offset: 0;
592
592
  }
593
593
  .jkl-tooltip-question-button::after {
@@ -611,7 +611,7 @@
611
611
  background-image: none;
612
612
  }
613
613
  .jkl-breadcrumb a:focus-visible {
614
- outline: 3px solid var(--jkl-color-border-action);
614
+ outline: 3px solid var(--jkl-color-border-strong);
615
615
  outline-offset: 3px;
616
616
  }
617
617
  .jkl-breadcrumb__list {
@@ -659,7 +659,7 @@
659
659
  margin-block-start: -0.1em;
660
660
  padding-inline-start: 0.2em;
661
661
  vertical-align: middle;
662
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
662
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
663
663
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
664
664
  font-feature-settings: "liga";
665
665
  -webkit-font-feature-settings: "liga";
@@ -680,7 +680,7 @@
680
680
  --link-color: var(--jkl-color-text-subdued);
681
681
  }
682
682
  .jkl-link:focus-visible {
683
- outline: 3px solid var(--jkl-color-border-action);
683
+ outline: 3px solid var(--jkl-color-border-strong);
684
684
  outline-offset: 0;
685
685
  }
686
686
  @media screen and (forced-colors: active) {
@@ -698,6 +698,7 @@
698
698
  --jkl-button-padding-icon: var(--jkl-unit-20);
699
699
  --jkl-button-padding-icon-button: var(--jkl-unit-10);
700
700
  --jkl-button-tertiary-padding-icon: var(--jkl-unit-05);
701
+ --jkl-button-text-ink-offset: 0.1em;
701
702
  --jkl-icon-weight: var(--jkl-icon-weight-bold);
702
703
  --text-color: var(--jkl-color-text-default);
703
704
  --background-color: transparent;
@@ -759,8 +760,11 @@
759
760
  pointer-events: none;
760
761
  }
761
762
  .jkl-button__text {
763
+ display: block;
762
764
  width: 100%;
763
765
  max-width: 100%;
766
+ padding-block-start: var(--jkl-button-text-ink-offset);
767
+ margin-block-start: calc(var(--jkl-button-text-ink-offset) * -1);
764
768
  overflow: hidden;
765
769
  white-space: nowrap;
766
770
  text-overflow: ellipsis;
@@ -773,7 +777,7 @@
773
777
  opacity: 1;
774
778
  }
775
779
  .jkl-button:focus-visible {
776
- outline: 3px solid var(--jkl-color-border-action);
780
+ outline: 3px solid var(--jkl-color-border-strong);
777
781
  outline-offset: 3px;
778
782
  }
779
783
  .jkl-button:hover {
@@ -781,7 +785,7 @@
781
785
  }
782
786
  @media (forced-colors: active) {
783
787
  .jkl-button:hover {
784
- outline: 3px solid var(--jkl-color-border-action);
788
+ outline: 3px solid var(--jkl-color-border-strong);
785
789
  outline-offset: 3px;
786
790
  }
787
791
  }
@@ -789,8 +793,8 @@
789
793
  --border-radius: 999px;
790
794
  }
791
795
  .jkl-button--primary {
792
- --background-color: var(--jkl-color-background-action);
793
- --text-color: var(--jkl-color-text-on-action);
796
+ --background-color: var(--jkl-color-background-contrast);
797
+ --text-color: var(--jkl-color-text-on-contrast);
794
798
  }
795
799
  @media (forced-colors: active) {
796
800
  .jkl-button--primary {
@@ -829,22 +833,22 @@
829
833
  animation: 2500ms linear infinite;
830
834
  }
831
835
  .jkl-loader__dot--left {
832
- animation-name: jkl-loader-left-spin-udz455l;
836
+ animation-name: jkl-loader-left-spin-uglesca;
833
837
  margin-right: calc(var(--jkl-loader-spacing) * 0.9);
834
838
  }
835
839
  .jkl-loader__dot--middle {
836
- animation-name: jkl-loader-middle-spin-udz4564;
840
+ animation-name: jkl-loader-middle-spin-uglesce;
837
841
  margin-right: var(--jkl-loader-spacing);
838
842
  }
839
843
  .jkl-loader__dot--right {
840
- animation-name: jkl-loader-right-spin-udz456e;
844
+ animation-name: jkl-loader-right-spin-uglesct;
841
845
  }
842
846
  @media screen and (forced-colors: active) {
843
847
  .jkl-loader__dot {
844
848
  background-color: CanvasText;
845
849
  }
846
850
  }
847
- @keyframes jkl-loader-left-spin-udz455l {
851
+ @keyframes jkl-loader-left-spin-uglesca {
848
852
  0% {
849
853
  transform: rotate(0) scale(0);
850
854
  }
@@ -858,7 +862,7 @@
858
862
  transform: rotate(180deg) scale(0);
859
863
  }
860
864
  }
861
- @keyframes jkl-loader-middle-spin-udz4564 {
865
+ @keyframes jkl-loader-middle-spin-uglesce {
862
866
  0% {
863
867
  transform: rotate(20deg) scale(0);
864
868
  }
@@ -875,7 +879,7 @@
875
879
  transform: rotate(200deg) scale(0);
876
880
  }
877
881
  }
878
- @keyframes jkl-loader-right-spin-udz456e {
882
+ @keyframes jkl-loader-right-spin-uglesct {
879
883
  0% {
880
884
  transform: rotate(40deg) scale(0);
881
885
  }
@@ -897,7 +901,7 @@
897
901
  inherits: true;
898
902
  }
899
903
  .jkl-skeleton-animation {
900
- --jkl-skeleton-element-color: var(--jkl-color-background-container-low);
904
+ --jkl-skeleton-element-color: var(--jkl-color-background-page);
901
905
  --jkl-skeleton-sweep-duration: 4500ms;
902
906
  --jkl-skeleton-sweeper-width: 40%;
903
907
  mask-image: linear-gradient(to right, #000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)), transparent calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width) / 2), #000 var(--jkl-skeleton-sweeper-position));
@@ -915,7 +919,7 @@
915
919
  @media screen and (forced-colors: active) {
916
920
  .jkl-skeleton-element {
917
921
  border: 1px solid CanvasText;
918
- animation: 2s ease infinite jkl-blink-udz456m;
922
+ animation: 2s ease infinite jkl-blink-uglesd3;
919
923
  }
920
924
  }
921
925
  .jkl-skeleton-input {
@@ -963,10 +967,10 @@
963
967
  }
964
968
  @media screen and (forced-colors: active) {
965
969
  .jkl-skeleton-table {
966
- animation: 2s ease-in-out infinite jkl-blink-udz456m;
970
+ animation: 2s ease-in-out infinite jkl-blink-uglesd3;
967
971
  }
968
972
  }
969
- @keyframes jkl-blink-udz456m {
973
+ @keyframes jkl-blink-uglesd3 {
970
974
  0% {
971
975
  opacity: 1;
972
976
  }
@@ -992,10 +996,10 @@
992
996
  --padding-m: var(--jkl-unit-15);
993
997
  --padding-l: var(--jkl-unit-20);
994
998
  --padding-xl: var(--jkl-unit-30);
995
- --border-radius: 0.25rem;
999
+ --border-radius: var(--jkl-border-radius-m);
996
1000
  --border-color: transparent;
997
1001
  --border-width: 0.0625rem;
998
- --background-color: transparent;
1002
+ --background-color: var(--jkl-color-background-container);
999
1003
  position: relative;
1000
1004
  overflow: hidden;
1001
1005
  display: block;
@@ -1037,24 +1041,19 @@
1037
1041
  .jkl-card[data-padding=xl] {
1038
1042
  --padding: var(--padding-xl);
1039
1043
  }
1040
- .jkl-card--high {
1041
- --background-color: var(--jkl-color-background-container-high);
1042
- }
1043
- .jkl-card--low {
1044
- --background-color: var(--jkl-color-background-container-low);
1045
- }
1046
1044
  .jkl-card--outlined {
1047
- --border-color: var(--jkl-color-border-separator);
1045
+ --border-color: var(--jkl-color-border-subdued);
1046
+ --background-color: transparent;
1048
1047
  }
1049
1048
  .jkl-card[data-clickable=true] {
1050
1049
  cursor: pointer;
1051
1050
  }
1052
1051
  .jkl-card[data-clickable=true]:hover {
1053
- --border-color: var(--jkl-color-border-separator-hover);
1052
+ --border-color: var(--jkl-color-border-strong);
1054
1053
  --border-width: 0.125rem;
1055
1054
  }
1056
1055
  .jkl-card[data-clickable=true]:focus-visible {
1057
- outline: 3px solid var(--jkl-color-border-action);
1056
+ outline: 3px solid var(--jkl-color-border-strong);
1058
1057
  outline-offset: 3px;
1059
1058
  }
1060
1059
  .jkl-card-image {
@@ -1105,12 +1104,14 @@
1105
1104
  .jkl-tag {
1106
1105
  --padding: var(--jkl-unit-02) var(--jkl-unit-10);
1107
1106
  --gap: var(--jkl-unit-05);
1108
- --background-color: var(--jkl-color-background-alert-neutral);
1109
- --text-color: var(--jkl-color-text-on-alert);
1107
+ --background-color: var(--jkl-color-background-container);
1108
+ --text-color: var(--jkl-color-text-default);
1109
+ --border-color: var(--jkl-color-border-subdued);
1110
1110
  font: var(--jkl-text-style-text-small);
1111
1111
  font-weight: var(--jkl-font-weight-bold);
1112
1112
  background-color: var(--background-color);
1113
1113
  color: var(--text-color);
1114
+ border: 1px solid var(--border-color);
1114
1115
  border-radius: 0.25rem;
1115
1116
  display: inline-flex;
1116
1117
  align-items: center;
@@ -1119,16 +1120,24 @@
1119
1120
  gap: var(--gap);
1120
1121
  }
1121
1122
  .jkl-tag--info {
1122
- --background-color: var(--jkl-color-background-alert-info);
1123
+ --background-color: var(--jkl-color-info-background-container);
1124
+ --text-color: var(--jkl-color-info-text-default);
1125
+ --border-color: var(--jkl-color-info-border-subdued);
1123
1126
  }
1124
1127
  .jkl-tag--warning {
1125
- --background-color: var(--jkl-color-background-alert-warning);
1128
+ --background-color: var(--jkl-color-warning-background-container);
1129
+ --text-color: var(--jkl-color-warning-text-default);
1130
+ --border-color: var(--jkl-color-warning-border-subdued);
1126
1131
  }
1127
1132
  .jkl-tag--error {
1128
- --background-color: var(--jkl-color-background-alert-error);
1133
+ --background-color: var(--jkl-color-error-background-container);
1134
+ --text-color: var(--jkl-color-error-text-default);
1135
+ --border-color: var(--jkl-color-error-border-subdued);
1129
1136
  }
1130
1137
  .jkl-tag--success {
1131
- --background-color: var(--jkl-color-background-alert-success);
1138
+ --background-color: var(--jkl-color-success-background-container);
1139
+ --text-color: var(--jkl-color-success-text-default);
1140
+ --border-color: var(--jkl-color-success-border-subdued);
1132
1141
  }
1133
1142
  @media screen and (forced-colors: active) {
1134
1143
  .jkl-tag {
@@ -1152,12 +1161,6 @@
1152
1161
 
1153
1162
  @layer jokul.components {
1154
1163
  .jkl-checkbox {
1155
- /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
1156
- --jkl-checkbox-error-color: #ab2e43;
1157
- --jkl-checkbox-error-color: light-dark(#ab2e43, #d79ba5);
1158
- /* stylelint-enable declaration-block-no-duplicate-custom-properties */
1159
- --box-color: var(--jkl-color-border-action);
1160
- --check-color: var(--jkl-color-border-action);
1161
1164
  --text-color: var(--jkl-color-text-default);
1162
1165
  --background-color: transparent;
1163
1166
  font: var(--jkl-text-style-text-medium);
@@ -1168,10 +1171,37 @@
1168
1171
  }
1169
1172
  .jkl-checkbox__input {
1170
1173
  position: absolute;
1171
- opacity: 0;
1172
- pointer-events: none;
1173
- inset: 0 auto 0 0;
1174
- width: 1lh;
1174
+ inset-block-start: 0;
1175
+ inset-inline-start: 0;
1176
+ block-size: 1lh;
1177
+ inline-size: 1lh;
1178
+ margin: 0;
1179
+ padding: 0;
1180
+ cursor: pointer;
1181
+ z-index: 1;
1182
+ appearance: none;
1183
+ background: transparent;
1184
+ border: 0;
1185
+ }
1186
+ .jkl-checkbox__input {
1187
+ outline: 0;
1188
+ border-style: none;
1189
+ outline-style: none;
1190
+ }
1191
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1192
+ outline: 0;
1193
+ outline-style: none;
1194
+ }
1195
+ @media screen and (forced-colors: active) {
1196
+ .jkl-checkbox__input {
1197
+ outline: revert;
1198
+ border-style: revert;
1199
+ outline-style: revert;
1200
+ }
1201
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1202
+ outline: revert;
1203
+ outline-style: revert;
1204
+ }
1175
1205
  }
1176
1206
  .jkl-checkbox__label {
1177
1207
  cursor: pointer;
@@ -1184,7 +1214,7 @@
1184
1214
  .jkl-checkbox__label::before {
1185
1215
  content: "check_box_outline_blank";
1186
1216
  margin-inline-end: 0.25em;
1187
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
1217
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1188
1218
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1189
1219
  font-feature-settings: "liga";
1190
1220
  -webkit-font-feature-settings: "liga";
@@ -1197,16 +1227,23 @@
1197
1227
  transition-duration: var(--jkl-motion-timing-energetic);
1198
1228
  transition-property: font-variation-settings, transform;
1199
1229
  }
1200
- .jkl-checkbox__label:has(+ :checked)::before {
1230
+ .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1231
+ outline: 3px solid var(--jkl-color-border-strong);
1232
+ outline-offset: 3px;
1233
+ }
1234
+ .jkl-checkbox__input:is(:hover, :active) + .jkl-checkbox__label, .jkl-checkbox__label:hover, .jkl-checkbox__label:active {
1235
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
1236
+ }
1237
+ .jkl-checkbox__input:checked + .jkl-checkbox__label::before {
1201
1238
  content: "check_box";
1202
1239
  --jkl-icon-fill: 1;
1203
1240
  }
1204
- .jkl-checkbox__label:has(+ :indeterminate:not(:checked))::before {
1241
+ .jkl-checkbox__input:indeterminate:not(:checked) + .jkl-checkbox__label::before {
1205
1242
  content: "indeterminate_check_box";
1206
1243
  --jkl-icon-fill: 1;
1207
1244
  }
1208
- .jkl-checkbox__label:has(+ [aria-invalid=true])::before {
1209
- color: var(--jkl-checkbox-error-color);
1245
+ .jkl-checkbox__input[aria-invalid=true] + .jkl-checkbox__label::before {
1246
+ color: var(--jkl-color-error-background-contrast);
1210
1247
  }
1211
1248
  .jkl-checkbox + .jkl-checkbox {
1212
1249
  margin-top: 0.75em;
@@ -1220,7 +1257,7 @@
1220
1257
  }
1221
1258
  @layer jokul.components {
1222
1259
  .jkl-input-panel {
1223
- --outer-border-color: var(--jkl-color-border-input);
1260
+ --outer-border-color: var(--jkl-color-border-default);
1224
1261
  --outer-border-thickness: 0.0625rem;
1225
1262
  --background-color: transparent;
1226
1263
  --padding-inline: var(--jkl-unit-25);
@@ -1243,26 +1280,28 @@
1243
1280
  position: relative;
1244
1281
  padding: var(--jkl-unit-20) var(--padding-inline);
1245
1282
  }
1283
+ .jkl-input-panel__header .jkl-radio-button,
1284
+ .jkl-input-panel__header .jkl-checkbox {
1285
+ grid-column: 1/-1;
1286
+ grid-row: 1;
1287
+ inline-size: 100%;
1288
+ }
1289
+ .jkl-input-panel__header label {
1290
+ inline-size: 100%;
1291
+ }
1246
1292
  .jkl-input-panel__header__amount {
1247
1293
  display: flex;
1248
1294
  height: 100%;
1249
1295
  align-items: center;
1296
+ grid-column: 2;
1297
+ grid-row: 1;
1298
+ justify-self: end;
1299
+ pointer-events: none;
1300
+ position: relative;
1301
+ z-index: 1;
1250
1302
  font: var(--jkl-text-style-text-medium);
1251
1303
  font-weight: var(--jkl-font-weight-bold);
1252
1304
  }
1253
- .jkl-input-panel__header label,
1254
- .jkl-input-panel__header .jkl-radio-button,
1255
- .jkl-input-panel__header .jkl-checkbox {
1256
- position: unset;
1257
- }
1258
- .jkl-input-panel__header label::after {
1259
- content: "";
1260
- position: absolute;
1261
- top: 0;
1262
- left: 0;
1263
- inline-size: 100%;
1264
- block-size: 100%;
1265
- }
1266
1305
  .jkl-input-panel__description {
1267
1306
  height: 0;
1268
1307
  overflow: hidden;
@@ -1275,18 +1314,18 @@
1275
1314
  transition-property: height;
1276
1315
  }
1277
1316
  .jkl-input-panel:has(:focus-visible) {
1278
- outline: 3px solid var(--jkl-color-border-action);
1317
+ outline: 3px solid var(--jkl-color-border-strong);
1279
1318
  outline-offset: 3px;
1280
1319
  }
1281
1320
  .jkl-input-panel:has(:checked), .jkl-input-panel[data-always-open=true], .jkl-input-panel:not([data-always-open]) {
1282
- --background-color: var(--jkl-color-background-container-high);
1321
+ --background-color: var(--jkl-color-background-container);
1283
1322
  }
1284
1323
  .jkl-input-panel:has(:checked) .jkl-input-panel__description, .jkl-input-panel[data-always-open=true] .jkl-input-panel__description, .jkl-input-panel:not([data-always-open]) .jkl-input-panel__description {
1285
1324
  height: auto;
1286
1325
  padding-block-end: var(--jkl-unit-20);
1287
1326
  }
1288
1327
  .jkl-input-panel:has(input:hover) {
1289
- --outer-border-color: var(--jkl-color-border-separator-hover);
1328
+ --outer-border-color: var(--jkl-color-border-strong);
1290
1329
  --outer-border-thickness: 0.125rem;
1291
1330
  cursor: pointer;
1292
1331
  }
@@ -1296,6 +1335,9 @@
1296
1335
  /* Visuell justering ettersom ikonet ikke fyller bounding box helt */
1297
1336
  margin-inline-start: -0.1em;
1298
1337
  }
1338
+ .jkl-checkbox-panel .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1339
+ outline: none;
1340
+ }
1299
1341
  }
1300
1342
  .jkl-chip {
1301
1343
  --padding-inline: var(--jkl-unit-15);
@@ -1303,8 +1345,8 @@
1303
1345
  --height: var(--jkl-unit-40);
1304
1346
  --gap: var(--jkl-unit-05);
1305
1347
  --text-color: var(--jkl-color-text-default);
1306
- --border-color: var(--jkl-color-border-separator);
1307
- --background-color: transparent;
1348
+ --border-color: var(--jkl-color-border-subdued);
1349
+ --background-color: var(--jkl-color-background-container);
1308
1350
  --border-width: 0.0625rem;
1309
1351
  font: var(--jkl-text-style-text-small);
1310
1352
  font-weight: var(--jkl-font-weight-bold);
@@ -1340,16 +1382,16 @@
1340
1382
  transition-property: opacity;
1341
1383
  }
1342
1384
  .jkl-chip:focus-visible {
1343
- outline: 3px solid var(--jkl-color-border-action);
1385
+ outline: 3px solid var(--jkl-color-border-strong);
1344
1386
  outline-offset: 3px;
1345
1387
  }
1346
1388
  .jkl-chip:hover::after {
1347
1389
  opacity: 0.15;
1348
1390
  }
1349
1391
  .jkl-chip--filter[aria-pressed=true] {
1350
- --background-color: var(--jkl-color-background-action);
1351
- --text-color: var(--jkl-color-text-on-action);
1352
- --border-color: var(--text-color);
1392
+ --background-color: var(--jkl-color-background-contrast);
1393
+ --text-color: var(--jkl-color-text-on-contrast);
1394
+ --border-color: var(--jkl-color-border-strong);
1353
1395
  }
1354
1396
  @media screen and (forced-colors: active) {
1355
1397
  .jkl-chip--filter[aria-pressed=true] {
@@ -1365,8 +1407,7 @@
1365
1407
  @layer jokul.components {
1366
1408
  .jkl-combobox {
1367
1409
  --jkl-combobox-button-padding: var(--jkl-unit-10);
1368
- --jkl-combobox-button-active-value-padding: var(--jkl-unit-10)
1369
- var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1410
+ --jkl-combobox-button-active-value-padding: var(--jkl-unit-10) var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1370
1411
  --jkl-combobox-input-height: 3rem;
1371
1412
  --jkl-combobox-actions-right: var(--jkl-unit-10);
1372
1413
  --jkl-combobox-actions-top: var(--jkl-unit-05);
@@ -1414,8 +1455,7 @@
1414
1455
  display: flex;
1415
1456
  gap: 1ch;
1416
1457
  cursor: pointer;
1417
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
1418
- var(--jkl-text-input-horizontal-padding);
1458
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
1419
1459
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
1420
1460
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
1421
1461
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -1423,8 +1463,8 @@
1423
1463
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
1424
1464
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
1425
1465
  --text-color: var(--jkl-color-text-default);
1426
- --background-color: var(--jkl-color-background-input-base);
1427
- --border-color: var(--jkl-color-border-input);
1466
+ --background-color: transparent;
1467
+ --border-color: var(--jkl-color-border-default);
1428
1468
  --placeholder-color: var(--jkl-color-text-subdued);
1429
1469
  border-radius: var(--jkl-border-radius-s);
1430
1470
  box-sizing: border-box;
@@ -1441,15 +1481,16 @@
1441
1481
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
1442
1482
  }
1443
1483
  .jkl-combobox__wrapper:focus-within, .jkl-combobox__wrapper:has([data-focused=true]) {
1444
- --background-color: var(--jkl-color-background-input-focus);
1484
+ --background-color: var(--jkl-color-background-container);
1445
1485
  }
1446
1486
  .jkl-combobox__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
1447
- --background-color: var(--jkl-color-background-alert-error);
1448
- --text-color: var(--jkl-color-text-on-alert);
1449
- --placeholder-color: color(from currentColor sRGB r g b / 75%);
1487
+ --background-color: var(--jkl-color-error-background-container);
1488
+ --text-color: var(--jkl-color-error-text-default);
1489
+ --border-color: var(--jkl-color-error-border-default);
1490
+ --placeholder-color: var(--jkl-color-error-text-subdued);
1450
1491
  }
1451
1492
  .jkl-combobox__wrapper:hover, .jkl-combobox__wrapper:focus-within, .jkl-combobox__wrapper:has([data-focused=true]) {
1452
- --border-color: var(--jkl-color-border-input-focus);
1493
+ --border-color: var(--jkl-color-border-strong);
1453
1494
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
1454
1495
  }
1455
1496
  @media screen and (forced-colors: active) {
@@ -1458,11 +1499,11 @@
1458
1499
  }
1459
1500
  }
1460
1501
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(.jkl-text-input__input:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(.jkl-text-area__text-area:focus-visible) {
1461
- outline: 3px solid var(--jkl-color-border-action);
1502
+ outline: 3px solid var(--jkl-color-border-strong);
1462
1503
  outline-offset: 3px;
1463
1504
  }
1464
1505
  .jkl-combobox__wrapper > .jkl-icon-button:focus-visible {
1465
- outline: 3px solid var(--jkl-color-border-action);
1506
+ outline: 3px solid var(--jkl-color-border-strong);
1466
1507
  outline-offset: -8px;
1467
1508
  }
1468
1509
  @media screen and (forced-colors: active) {
@@ -1486,7 +1527,7 @@
1486
1527
  width: var(--jkl-text-input-action-button-icon-size);
1487
1528
  }
1488
1529
  .jkl-combobox__wrapper > .jkl-text-input-action-button:hover {
1489
- color: var(--jkl-color-text-interactive-hover);
1530
+ color: var(--jkl-color-text-subdued);
1490
1531
  }
1491
1532
  @media screen and (forced-colors: active) {
1492
1533
  .jkl-combobox__wrapper > .jkl-text-input-action-button:hover {
@@ -1505,9 +1546,9 @@
1505
1546
  padding: 0.46875rem;
1506
1547
  }
1507
1548
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(:focus-visible) {
1508
- outline: 3px solid var(--jkl-color-border-action);
1549
+ outline: 3px solid var(--jkl-color-border-strong);
1509
1550
  outline-offset: 3px;
1510
- background-color: var(--jkl-color-background-input-focus);
1551
+ background-color: var(--jkl-color-background-container);
1511
1552
  }
1512
1553
  .jkl-combobox__wrapper:has(.jkl-icon-button:focus-visible) {
1513
1554
  outline: none;
@@ -1520,6 +1561,7 @@
1520
1561
  outline: none;
1521
1562
  padding: 0;
1522
1563
  flex: 1 1 1ch;
1564
+ min-width: 0;
1523
1565
  max-height: var(--jkl-combobox-search-input-height);
1524
1566
  background: none;
1525
1567
  -webkit-appearance: none;
@@ -1593,8 +1635,8 @@
1593
1635
  z-index: 7000;
1594
1636
  left: -0.0625rem;
1595
1637
  right: -0.0625rem;
1596
- background-color: var(--jkl-color-background-container-high);
1597
- border: 0.125rem solid var(--jkl-color-border-input-focus);
1638
+ background-color: var(--jkl-color-background-container);
1639
+ border: 0.125rem solid var(--jkl-color-border-strong);
1598
1640
  border-radius: 0 0 0.1875rem 0.1875rem;
1599
1641
  box-sizing: border-box;
1600
1642
  max-height: calc((var(--jkl-combobox-max-shown-options, 5) + 0.5) * var(--jkl-combobox-input-height));
@@ -1607,7 +1649,7 @@
1607
1649
  align-items: center;
1608
1650
  border: 0;
1609
1651
  color: var(--jkl-color-text-default);
1610
- background-color: var(--jkl-color-background-interactive);
1652
+ background-color: transparent;
1611
1653
  transition-property: color, background-color;
1612
1654
  cursor: pointer;
1613
1655
  padding: var(--jkl-combobox-option-padding);
@@ -1616,7 +1658,7 @@
1616
1658
  line-height: var(--jkl-combobox-option-line-height);
1617
1659
  }
1618
1660
  .jkl-combobox__option:focus, .jkl-combobox__option:hover {
1619
- background-color: var(--jkl-color-background-interactive-hover);
1661
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
1620
1662
  }
1621
1663
  .jkl-combobox__option-description {
1622
1664
  font: var(--jkl-text-style-text-small);
@@ -1632,10 +1674,12 @@
1632
1674
  }
1633
1675
  .jkl-combobox__chips {
1634
1676
  display: flex;
1677
+ flex: 1 1 auto;
1635
1678
  flex-wrap: wrap;
1636
1679
  align-items: center;
1637
1680
  gap: var(--jkl-combobox-chips-gap);
1638
- width: 100%;
1681
+ min-width: 0;
1682
+ box-sizing: border-box;
1639
1683
  padding: var(--jkl-text-input-padding);
1640
1684
  }
1641
1685
  .jkl-combobox__chips .jkl-chip {
@@ -1646,12 +1690,12 @@
1646
1690
  }
1647
1691
  .jkl-combobox--invalid .jkl-combobox__search-input,
1648
1692
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1649
- background-color: var(--jkl-color-background-alert-error);
1693
+ background-color: var(--jkl-color-error-background-container);
1650
1694
  }
1651
1695
  .jkl-combobox--invalid .jkl-combobox__search-input,
1652
1696
  .jkl-combobox--invalid .jkl-combobox__button,
1653
1697
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1654
- color: var(--jkl-color-text-on-alert);
1698
+ color: var(--jkl-color-error-text-default);
1655
1699
  }
1656
1700
  .jkl-combobox--menu-closed .jkl-combobox__search-input {
1657
1701
  position: absolute;
@@ -1692,14 +1736,12 @@
1692
1736
  margin-top: var(--jkl-unit-30);
1693
1737
  }
1694
1738
  }
1739
+ /*
1740
+ * NOTE: These markers should stay visually aligned with GreenCheckIcon and
1741
+ * RedCrossIcon in the icon package.
1742
+ */
1695
1743
  @layer jokul.components {
1696
1744
  .jkl-list {
1697
- /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
1698
- --jkl-list-marker-cross: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A");
1699
- --jkl-list-marker-cross: light-dark(url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A"), url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23DE9E9E'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A"));
1700
- --jkl-list-marker-check: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A");
1701
- --jkl-list-marker-check: light-dark(url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A"), url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%2394B79B'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A"));
1702
- /* stylelint-enable declaration-block-no-duplicate-custom-properties */
1703
1745
  --list-text-color: var(--jkl-color-text-default);
1704
1746
  list-style-type: "•";
1705
1747
  padding-left: var(--jkl-unit-20);
@@ -1735,36 +1777,55 @@
1735
1777
  padding-left: 0;
1736
1778
  }
1737
1779
  .jkl-list__item--iconed::before {
1738
- text-indent: -9999px;
1739
- background-size: contain;
1740
- width: 1em;
1741
- height: 1em;
1780
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1781
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1782
+ font-feature-settings: "liga";
1783
+ -webkit-font-feature-settings: "liga";
1784
+ font-size: 1.3em;
1785
+ font-weight: 400;
1786
+ line-height: 1;
1787
+ display: inline-block;
1788
+ -webkit-font-smoothing: antialiased;
1789
+ transition-timing-function: var(--jkl-motion-easing-standard);
1790
+ transition-duration: var(--jkl-motion-timing-energetic);
1791
+ transition-property: font-variation-settings, transform;
1792
+ display: inline-grid;
1793
+ place-items: center;
1794
+ width: 1.1875em;
1795
+ height: 1.1875em;
1796
+ box-sizing: border-box;
1742
1797
  flex-shrink: 0;
1743
1798
  margin-right: 0.5em;
1744
1799
  margin-top: 0.2em;
1800
+ font-size: 1em;
1801
+ line-height: 1;
1802
+ border-radius: 999px;
1803
+ --jkl-icon-weight: var(--jkl-icon-weight-bold);
1745
1804
  }
1746
1805
  .jkl-list__item--check::before {
1747
- content: "";
1748
- content: ""/"";
1806
+ content: "\e5ca";
1807
+ content: "\e5ca"/"";
1749
1808
  alt: " ";
1750
- background-image: var(--jkl-list-marker-check);
1809
+ color: var(--jkl-color-success-text-on-contrast);
1810
+ background-color: var(--jkl-color-success-background-contrast);
1751
1811
  }
1752
1812
  .jkl-list__item--cross::before {
1753
- content: "";
1754
- content: ""/"";
1813
+ content: "\e5cd";
1814
+ content: "\e5cd"/"";
1755
1815
  alt: " ";
1756
- background-image: var(--jkl-list-marker-cross);
1816
+ color: var(--jkl-color-error-text-on-contrast);
1817
+ background-color: var(--jkl-color-error-background-contrast);
1757
1818
  }
1758
1819
  @media screen and (forced-colors: active) {
1759
- .jkl-list .jkl-list__item--check::before {
1760
- background-image: _check(CanvasText, Canvas);
1761
- }
1762
- .jkl-list .jkl-list__item--cross::before {
1763
- background-image: _cross(CanvasText, Canvas);
1820
+ .jkl-list .jkl-list__item--check::before, .jkl-list .jkl-list__item--cross::before {
1821
+ background-color: Canvas;
1822
+ color: CanvasText;
1823
+ border: 1px solid CanvasText;
1764
1824
  }
1765
1825
  }
1766
1826
  }
1767
1827
  @layer jokul.components {
1828
+ /* Base layout */
1768
1829
  .jkl-modal-container,
1769
1830
  .jkl-modal-overlay {
1770
1831
  position: fixed;
@@ -1773,29 +1834,46 @@
1773
1834
  .jkl-modal-container {
1774
1835
  z-index: 9000;
1775
1836
  display: flex;
1837
+ align-items: center;
1838
+ justify-content: center;
1776
1839
  }
1777
1840
  .jkl-modal-container[aria-hidden=true] {
1778
- display: none;
1841
+ visibility: hidden;
1842
+ pointer-events: none;
1779
1843
  }
1844
+ }
1845
+ @layer jokul.components {
1780
1846
  .jkl-modal-overlay {
1781
1847
  background-color: rgba(27, 25, 23, 0.8);
1848
+ opacity: 0;
1849
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1850
+ transition-duration: var(--jkl-motion-timing-expressive);
1851
+ transition-property: opacity;
1852
+ }
1853
+ .jkl-modal-container:not([aria-hidden=true]) .jkl-modal-overlay {
1854
+ opacity: 1;
1855
+ }
1856
+ @media (prefers-reduced-motion: reduce) {
1857
+ .jkl-modal-overlay {
1858
+ transition-duration: 0ms;
1859
+ }
1782
1860
  }
1861
+ }
1862
+ @layer jokul.components {
1783
1863
  .jkl-modal {
1784
- --jkl-modal-padding: var(--jkl-unit-50);
1785
- --jkl-modal-min-width: 13.75rem;
1786
- --jkl-modal-max-width: 41.25rem;
1787
- margin: auto;
1864
+ --margin: var(--jkl-spacing-m);
1865
+ container-type: inline-size;
1866
+ box-sizing: border-box;
1867
+ margin: var(--margin);
1868
+ padding: var(--modal-padding, var(--jkl-unit-40));
1788
1869
  z-index: 9000;
1789
- position: relative;
1790
- background-color: var(--jkl-color-background-container-high);
1791
- border-radius: 0.125rem;
1870
+ background-color: var(--jkl-color-background-container);
1871
+ border-radius: var(--jkl-border-radius-l);
1792
1872
  box-shadow: 0 0.25rem 0.75rem rgba(37, 42, 49, 0.03);
1793
- width: 100%;
1794
- min-width: var(--jkl-modal-min-width);
1795
- max-width: var(--jkl-modal-max-width);
1873
+ width: min(100vw - 2 * var(--margin), var(--modal-width, 60ch));
1874
+ max-width: none;
1796
1875
  max-height: 90vh;
1797
1876
  overflow: auto;
1798
- padding: var(--jkl-modal-padding);
1799
1877
  display: flex;
1800
1878
  flex-direction: column;
1801
1879
  }
@@ -1804,26 +1882,100 @@
1804
1882
  border-color: CanvasText;
1805
1883
  }
1806
1884
  }
1807
- @media (width >= 0) and (max-width: 679px) {
1808
- .jkl-modal {
1809
- margin: auto var(--jkl-unit-30);
1810
- }
1885
+ }
1886
+ @layer jokul.components {
1887
+ .jkl-modal-container--slide-in {
1888
+ --jkl-modal-slide-x: 0px;
1889
+ --jkl-modal-slide-y: 12px;
1890
+ transition-timing-function: var(--jkl-motion-easing-exit);
1891
+ transition-duration: var(--jkl-motion-timing-expressive);
1892
+ transition-property: visibility;
1893
+ transition-duration: 0ms;
1811
1894
  }
1812
- .jkl-modal-header {
1813
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1895
+ .jkl-modal-container--slide-in[aria-hidden=true] {
1896
+ display: flex;
1897
+ visibility: hidden;
1898
+ pointer-events: none;
1899
+ transition-delay: var(--jkl-motion-timing-expressive);
1814
1900
  }
1815
- @media (width >= 0) and (max-width: 679px) {
1816
- .jkl-modal-header {
1817
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-15);
1901
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) {
1902
+ visibility: visible;
1903
+ transition-delay: 0ms;
1904
+ }
1905
+ .jkl-modal-container--slide-in .jkl-modal {
1906
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1907
+ transition-duration: var(--jkl-motion-timing-expressive);
1908
+ transition-property: transform, opacity;
1909
+ transform: translate(var(--jkl-modal-slide-x), var(--jkl-modal-slide-y));
1910
+ opacity: 0;
1911
+ will-change: transform, opacity;
1912
+ }
1913
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) .jkl-modal {
1914
+ transform: translate(0, 0);
1915
+ opacity: 1;
1916
+ }
1917
+ @media (prefers-reduced-motion: reduce) {
1918
+ .jkl-modal-container--slide-in .jkl-modal {
1919
+ transition-duration: 0ms;
1818
1920
  }
1819
1921
  }
1922
+ }
1923
+ @layer jokul.components {
1924
+ /* Placement: bottom */
1925
+ .jkl-modal-container--placement-bottom {
1926
+ align-items: flex-end;
1927
+ }
1928
+ .jkl-modal-container--placement-bottom.jkl-modal-container--slide-in {
1929
+ --jkl-modal-slide-x: 0px;
1930
+ --jkl-modal-slide-y: 24px;
1931
+ }
1932
+ .jkl-modal-container--placement-bottom .jkl-modal {
1933
+ --margin: 0px;
1934
+ width: min(100vw, var(--modal-width, 100vw));
1935
+ border-bottom-left-radius: 0;
1936
+ border-bottom-right-radius: 0;
1937
+ }
1938
+ /* Placement: left */
1939
+ .jkl-modal-container--placement-left {
1940
+ justify-content: flex-start;
1941
+ }
1942
+ .jkl-modal-container--placement-left.jkl-modal-container--slide-in {
1943
+ --jkl-modal-slide-x: -24px;
1944
+ --jkl-modal-slide-y: 0px;
1945
+ }
1946
+ .jkl-modal-container--placement-left .jkl-modal {
1947
+ height: 100%;
1948
+ max-height: 100%;
1949
+ margin-block: 0;
1950
+ margin-inline-start: 0;
1951
+ border-top-left-radius: 0;
1952
+ border-bottom-left-radius: 0;
1953
+ }
1954
+ /* Placement: right */
1955
+ .jkl-modal-container--placement-right {
1956
+ justify-content: flex-end;
1957
+ }
1958
+ .jkl-modal-container--placement-right.jkl-modal-container--slide-in {
1959
+ --jkl-modal-slide-x: 24px;
1960
+ --jkl-modal-slide-y: 0px;
1961
+ }
1962
+ .jkl-modal-container--placement-right .jkl-modal {
1963
+ height: 100%;
1964
+ max-height: 100%;
1965
+ margin-block: 0;
1966
+ margin-inline-end: 0;
1967
+ border-top-right-radius: 0;
1968
+ border-bottom-right-radius: 0;
1969
+ }
1970
+ }
1971
+ @layer jokul.components {
1820
1972
  .jkl-modal-header {
1973
+ --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1821
1974
  display: flex;
1822
1975
  flex-direction: row;
1823
1976
  justify-content: space-between;
1824
1977
  align-items: center;
1825
1978
  margin: var(--jkl-modal-header-margin);
1826
- gap: var(--jkl-modal-gap);
1827
1979
  }
1828
1980
  .jkl-modal-body {
1829
1981
  font: var(--jkl-text-style-paragraph-medium);
@@ -1832,20 +1984,12 @@
1832
1984
  font: var(--jkl-text-style-heading-3);
1833
1985
  }
1834
1986
  .jkl-modal-actions {
1835
- --jkl-modal-actions-margin: var(--jkl-unit-50) 0 0 0;
1836
- }
1837
- @media (width >= 0) and (max-width: 679px) {
1838
- .jkl-modal-actions {
1839
- --jkl-modal-actions-margin: var(--jkl-unit-40) 0 0 0;
1840
- }
1841
- }
1842
- .jkl-modal-actions {
1843
- margin: var(--jkl-modal-actions-margin);
1987
+ margin-block-start: var(--jkl-unit-50);
1844
1988
  display: flex;
1845
1989
  flex-direction: column;
1846
- gap: var(--jkl-unit-20);
1990
+ gap: var(--jkl-unit-15) var(--jkl-unit-20);
1847
1991
  }
1848
- @media (min-width: 60ch) {
1992
+ @container (width > 35ch /* ~380px ved vanlig zoom/size */) {
1849
1993
  .jkl-modal-actions {
1850
1994
  flex-direction: row-reverse;
1851
1995
  align-self: flex-end;
@@ -1854,8 +1998,8 @@
1854
1998
  }
1855
1999
  @layer jokul.components {
1856
2000
  .jkl-countdown {
1857
- --track-color: var(--jkl-color-border-separator);
1858
- --bar-color: var(--jkl-color-border-input-focus);
2001
+ --track-color: var(--jkl-color-border-subdued);
2002
+ --bar-color: var(--jkl-color-border-strong);
1859
2003
  --bar-height: 0.25rem;
1860
2004
  background-color: var(--track-color);
1861
2005
  border-radius: 6.25rem;
@@ -1877,10 +2021,10 @@
1877
2021
  }
1878
2022
  }
1879
2023
  .jkl-countdown__tracker {
1880
- animation: jkl-downcount-udz458g var(--duration) linear forwards;
2024
+ animation: jkl-downcount-uglesdl var(--duration) linear forwards;
1881
2025
  animation-play-state: var(--play-state, running);
1882
2026
  }
1883
- @keyframes jkl-downcount-udz458g {
2027
+ @keyframes jkl-downcount-uglesdl {
1884
2028
  from {
1885
2029
  width: 100%;
1886
2030
  }
@@ -1890,14 +2034,18 @@
1890
2034
  }
1891
2035
  }
1892
2036
  @layer jokul.components {
1893
- @media (width >= 0) and (max-width: 374px) {
1894
- --jkl-calendar-padding: var(--jkl-unit-05) var(--jkl-unit-10) var(--jkl-unit-20);
1895
- }
1896
2037
  .jkl-calendar {
1897
2038
  --jkl-calendar-padding: var(--jkl-unit-15) var(--jkl-unit-20) var(--jkl-unit-20);
1898
2039
  --jkl-calendar-gap: var(--jkl-unit-15);
2040
+ }
2041
+ @media (width >= 0) and (max-width: 374px) {
2042
+ .jkl-calendar {
2043
+ --jkl-calendar-padding: var(--jkl-unit-05) var(--jkl-unit-10) var(--jkl-unit-20);
2044
+ }
2045
+ }
2046
+ .jkl-calendar {
1899
2047
  display: block;
1900
- background-color: var(--jkl-color-background-container-high);
2048
+ background-color: var(--jkl-color-background-container);
1901
2049
  color: var(--jkl-color);
1902
2050
  }
1903
2051
  .jkl-calendar__padding {
@@ -1970,11 +2118,11 @@
1970
2118
  }
1971
2119
  .jkl-calendar-navigation-dropdown__select option {
1972
2120
  color: var(--jkl-color-text-default);
1973
- background-color: var(--jkl-color-background-container-high);
2121
+ background-color: var(--jkl-color-background-container);
1974
2122
  text-align: left;
1975
2123
  }
1976
2124
  .jkl-calendar-navigation-dropdown__select:focus-visible {
1977
- outline: 3px solid var(--jkl-color-border-action);
2125
+ outline: 3px solid var(--jkl-color-border-strong);
1978
2126
  outline-offset: 3px;
1979
2127
  }
1980
2128
  .jkl-calendar-navigation-dropdown__chevron {
@@ -2002,11 +2150,15 @@
2002
2150
  }
2003
2151
  }
2004
2152
  @layer jokul.components {
2153
+ .jkl-calendar-date-button {
2154
+ --jkl-calendar-date-size: var(--jkl-unit-50);
2155
+ }
2005
2156
  @media (width >= 0) and (max-width: 374px) {
2006
- --jkl-calendar-date-size: var(--jkl-unit-40);
2157
+ .jkl-calendar-date-button {
2158
+ --jkl-calendar-date-size: var(--jkl-unit-40);
2159
+ }
2007
2160
  }
2008
2161
  .jkl-calendar-date-button {
2009
- --jkl-calendar-date-size: var(--jkl-unit-50);
2010
2162
  font: var(--jkl-text-style-text-small);
2011
2163
  appearance: none;
2012
2164
  position: relative;
@@ -2055,12 +2207,12 @@
2055
2207
  font-weight: var(--jkl-font-weight-bold);
2056
2208
  }
2057
2209
  .jkl-calendar-date-button:hover:not(:disabled) {
2058
- background-color: var(--jkl-color-background-interactive-hover);
2210
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
2059
2211
  cursor: pointer;
2060
2212
  }
2061
2213
  .jkl-calendar-date-button[aria-pressed=true] {
2062
- background-color: var(--jkl-color-background-container-inverted);
2063
- color: var(--jkl-color-text-inverted);
2214
+ background-color: var(--jkl-color-background-contrast);
2215
+ color: var(--jkl-color-text-on-contrast);
2064
2216
  cursor: pointer;
2065
2217
  }
2066
2218
  .jkl-calendar-date-button[aria-pressed=true]:hover {
@@ -2070,7 +2222,7 @@
2070
2222
  color: color(from var(--jkl-color-text-subdued) srgb r g b/70%);
2071
2223
  }
2072
2224
  .jkl-calendar-date-button:focus-visible {
2073
- outline: 3px solid var(--jkl-color-border-action);
2225
+ outline: 3px solid var(--jkl-color-border-strong);
2074
2226
  outline-offset: 3px;
2075
2227
  }
2076
2228
  }
@@ -2135,9 +2287,20 @@
2135
2287
  padding: var(--popover-padding, 0);
2136
2288
  z-index: 10000;
2137
2289
  box-shadow: 0 4px 20px 0 var(--shadow-color);
2138
- background-color: var(--jkl-color-background-container-high);
2290
+ background-color: var(--jkl-color-background-container);
2139
2291
  border-radius: var(--jkl-border-radius-s);
2140
2292
  }
2293
+ .jkl-popover:focus-visible {
2294
+ outline: 3px solid var(--jkl-color-border-strong);
2295
+ outline-offset: 3px;
2296
+ }
2297
+ .jkl-popover-trigger:focus {
2298
+ outline: 0;
2299
+ }
2300
+ .jkl-popover-trigger:focus-visible {
2301
+ outline: 3px solid var(--jkl-color-border-strong);
2302
+ outline-offset: 3px;
2303
+ }
2141
2304
  }
2142
2305
  @layer jokul.components {
2143
2306
  .jkl-description-list {
@@ -2196,12 +2359,12 @@
2196
2359
  }
2197
2360
  .jkl-description-list[data-separators=true] .seperator:not(:first-of-type) {
2198
2361
  margin-block: var(--jkl-unit-15);
2199
- border-top: 1px solid var(--jkl-color-border-separator);
2362
+ border-top: 1px solid var(--jkl-color-border-subdued);
2200
2363
  }
2201
2364
  }
2202
2365
  @layer jokul.components {
2203
2366
  .jkl-expandable {
2204
- background-color: var(--jkl-color-background-container-low);
2367
+ background-color: var(--jkl-color-background-container);
2205
2368
  border: 1px solid transparent;
2206
2369
  border-radius: var(--border-radius);
2207
2370
  box-sizing: border-box;
@@ -2221,41 +2384,53 @@
2221
2384
  padding: var(--jkl-unit-20);
2222
2385
  }
2223
2386
  .jkl-expandable--stroke {
2224
- border-color: var(--jkl-color-border-separator);
2387
+ border-color: var(--jkl-color-border-subdued);
2225
2388
  background-color: transparent;
2226
2389
  border-radius: 0;
2227
2390
  border-radius: var(--border-top-left-radius) var(--border-top-right-radius) var(--border-bottom-right-radius) var(--border-bottom-left-radius);
2228
2391
  }
2229
2392
  .jkl-expandable__wrapper {
2230
- --border-radius: 0.25rem;
2393
+ --border-radius: var(--jkl-border-radius-s);
2231
2394
  --outline-offset: 3px;
2395
+ --stroke-outline-offset: 3px;
2396
+ --border-top-left-radius: var(--border-radius);
2397
+ --border-top-right-radius: var(--border-radius);
2398
+ --border-bottom-left-radius: var(--border-radius);
2399
+ --border-bottom-right-radius: var(--border-radius);
2400
+ position: relative;
2401
+ }
2402
+ .jkl-expandable__wrapper + .jkl-expandable__wrapper {
2232
2403
  --border-top-left-radius: 0;
2233
2404
  --border-top-right-radius: 0;
2234
- --border-bottom-left-radius: 0;
2235
- --border-bottom-right-radius: 0;
2236
- position: relative;
2405
+ --stroke-outline-offset: -1px;
2237
2406
  }
2238
2407
  .jkl-expandable__wrapper + .jkl-expandable__wrapper .jkl-expandable--stroke {
2239
2408
  border-top: none;
2240
2409
  }
2241
- .jkl-expandable__wrapper:first-child {
2242
- --border-top-left-radius: var(--border-radius);
2243
- --border-top-right-radius: var(--border-radius);
2244
- }
2245
- .jkl-expandable__wrapper:last-child {
2246
- --border-bottom-left-radius: var(--border-radius);
2247
- --border-bottom-right-radius: var(--border-radius);
2410
+ .jkl-expandable__wrapper:has(+ .jkl-expandable__wrapper) {
2411
+ --border-bottom-left-radius: 0;
2412
+ --border-bottom-right-radius: 0;
2413
+ --stroke-outline-offset: -1px;
2248
2414
  }
2249
2415
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible):has(.jkl-expandable--stroke) {
2250
- --outline-offset: -1px;
2416
+ --outline-offset: var(--stroke-outline-offset);
2251
2417
  }
2252
2418
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible) .jkl-expandable__focus-container {
2253
- outline: 3px solid var(--jkl-color-border-action);
2419
+ outline: 3px solid var(--jkl-color-border-strong);
2254
2420
  outline-offset: 3px;
2255
2421
  outline-offset: var(--outline-offset);
2256
2422
  }
2257
- .jkl-expandable__wrapper:has(:focus-visible):first-child:last-child {
2258
- --outline-offset: 3px;
2423
+ .jkl-expandable__wrapper .jkl-expander {
2424
+ padding: var(--jkl-unit-20);
2425
+ width: 100%;
2426
+ }
2427
+ .jkl-expandable__wrapper .jkl-expander__label {
2428
+ flex-grow: 1;
2429
+ }
2430
+ @media (hover: hover) {
2431
+ .jkl-expandable__wrapper .jkl-expander:hover {
2432
+ background-color: color-mix(in srgb, currentColor 15%, transparent);
2433
+ }
2259
2434
  }
2260
2435
  .jkl-expandable__focus-container {
2261
2436
  border-radius: var(--border-radius);
@@ -2268,8 +2443,6 @@
2268
2443
  appearance: none;
2269
2444
  border: none;
2270
2445
  text-align: left;
2271
- width: 100%;
2272
- padding: var(--jkl-unit-20);
2273
2446
  cursor: pointer;
2274
2447
  color: var(--jkl-color);
2275
2448
  display: flex;
@@ -2281,9 +2454,6 @@
2281
2454
  .jkl-expander::-webkit-details-marker {
2282
2455
  display: none;
2283
2456
  }
2284
- .jkl-expander__label {
2285
- flex-grow: 1;
2286
- }
2287
2457
  .jkl-expander__chevron {
2288
2458
  user-select: none;
2289
2459
  transition-property: transform;
@@ -2300,11 +2470,6 @@
2300
2470
  transition-timing-function: var(--jkl-motion-easing-standard);
2301
2471
  transition-duration: var(--jkl-motion-timing-snappy);
2302
2472
  }
2303
- @media (hover: hover) {
2304
- .jkl-expander:hover {
2305
- background-color: var(--jkl-color-background-interactive-selected);
2306
- }
2307
- }
2308
2473
  .jkl-expander {
2309
2474
  outline: 0;
2310
2475
  border-style: none;
@@ -2345,12 +2510,12 @@
2345
2510
  font: var(--jkl-text-style-paragraph-small);
2346
2511
  }
2347
2512
  .jkl-feedback__fade-in {
2348
- animation: jkl-show-udz4593 0.25s ease-out;
2513
+ animation: jkl-show-uglesea 0.25s ease-out;
2349
2514
  }
2350
2515
  .jkl-feedback__buttons {
2351
2516
  display: flex;
2352
2517
  }
2353
- @keyframes jkl-show-udz4593 {
2518
+ @keyframes jkl-show-uglesea {
2354
2519
  from {
2355
2520
  transform: translate3d(0, 0.5rem, 0);
2356
2521
  opacity: 0;
@@ -2396,10 +2561,6 @@
2396
2561
  transition-duration: var(--jkl-motion-timing-productive);
2397
2562
  transition-property: opacity;
2398
2563
  }
2399
- .jkl-feedback-smiley-option::after {
2400
- inset: -0.125rem -0.125rem -0.125rem -0.125rem;
2401
- box-shadow: 0 0 0 0.125rem currentColor;
2402
- }
2403
2564
  .jkl-feedback-smiley-option::before {
2404
2565
  inset: 0;
2405
2566
  box-shadow: 0 0.125rem 1.875rem rgba(0, 0, 0, 0.1);
@@ -2414,8 +2575,10 @@
2414
2575
  input:checked + .jkl-feedback-smiley-option::before {
2415
2576
  opacity: 1;
2416
2577
  }
2417
- html:not([data-mousenavigation]):not([data-touchnavigation]) input:focus + .jkl-feedback-smiley-option::after {
2418
- opacity: 1;
2578
+ input:focus-visible + .jkl-feedback-smiley-option {
2579
+ border-radius: var(--jkl-border-radius-full);
2580
+ outline: 3px solid var(--jkl-color-border-strong);
2581
+ outline-offset: 3px;
2419
2582
  }
2420
2583
  }
2421
2584
  @layer jokul.components {
@@ -2426,13 +2589,15 @@
2426
2589
  --jkl-message-dismiss-button-size: var(--jkl-unit-50);
2427
2590
  --jkl-message-gap: var(--jkl-unit-20);
2428
2591
  --jkl-message-padding: var(--jkl-unit-25) var(--jkl-unit-15);
2429
- --background-color: var(--jkl-color-background-alert-neutral);
2430
- --text-color: var(--jkl-color-text-on-alert);
2592
+ --background-color: var(--jkl-color-background-container);
2593
+ --text-color: var(--jkl-color-text-default);
2594
+ --border-color: var(--jkl-color-border-subdued);
2431
2595
  width: 100%;
2432
2596
  max-width: 35rem;
2433
2597
  padding: var(--jkl-message-padding);
2434
2598
  background-color: var(--background-color);
2435
2599
  color: var(--text-color);
2600
+ border: 1px solid var(--border-color);
2436
2601
  border-radius: 0.25rem;
2437
2602
  box-sizing: border-box;
2438
2603
  display: grid;
@@ -2525,7 +2690,7 @@
2525
2690
  transform: translate(-50%, -50%);
2526
2691
  }
2527
2692
  .jkl-message__dismiss-button:hover {
2528
- color: var(--jkl-color-text-interactive-hover);
2693
+ color: var(--jkl-color-text-subdued);
2529
2694
  }
2530
2695
  @media screen and (forced-colors: active) {
2531
2696
  .jkl-message__dismiss-button:hover {
@@ -2536,26 +2701,34 @@
2536
2701
  }
2537
2702
  }
2538
2703
  .jkl-message__dismiss-button:focus-visible {
2539
- outline: 3px solid var(--jkl-color-border-action);
2704
+ outline: 3px solid var(--jkl-color-border-strong);
2540
2705
  outline-offset: 3px;
2541
2706
  }
2542
2707
  .jkl-message--full {
2543
2708
  max-width: 100%;
2544
2709
  }
2545
2710
  .jkl-message--info {
2546
- --background-color: var(--jkl-color-background-alert-info);
2711
+ --background-color: var(--jkl-color-info-background-container);
2712
+ --text-color: var(--jkl-color-info-text-default);
2713
+ --border-color: var(--jkl-color-info-border-subdued);
2547
2714
  }
2548
2715
  .jkl-message--warning {
2549
- --background-color: var(--jkl-color-background-alert-warning);
2716
+ --background-color: var(--jkl-color-warning-background-container);
2717
+ --text-color: var(--jkl-color-warning-text-default);
2718
+ --border-color: var(--jkl-color-warning-border-subdued);
2550
2719
  }
2551
2720
  .jkl-message--error {
2552
- --background-color: var(--jkl-color-background-alert-error);
2721
+ --background-color: var(--jkl-color-error-background-container);
2722
+ --text-color: var(--jkl-color-error-text-default);
2723
+ --border-color: var(--jkl-color-error-border-subdued);
2553
2724
  }
2554
2725
  .jkl-message--success {
2555
- --background-color: var(--jkl-color-background-alert-success);
2726
+ --background-color: var(--jkl-color-success-background-container);
2727
+ --text-color: var(--jkl-color-success-text-default);
2728
+ --border-color: var(--jkl-color-success-border-subdued);
2556
2729
  }
2557
2730
  .jkl-message--dismissed {
2558
- animation: jkl-dismiss-udz45a1 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2731
+ animation: jkl-dismiss-uglesf4 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2559
2732
  transition: visibility 0ms var(--jkl-motion-timing-lazy);
2560
2733
  visibility: hidden;
2561
2734
  }
@@ -2577,7 +2750,7 @@
2577
2750
  .jkl-form-error-message {
2578
2751
  padding-bottom: var(--jkl-unit-50);
2579
2752
  }
2580
- @keyframes jkl-dismiss-udz45a1 {
2753
+ @keyframes jkl-dismiss-uglesf4 {
2581
2754
  from {
2582
2755
  opacity: 1;
2583
2756
  transform: translate3d(0, 0, 0);
@@ -2619,10 +2792,37 @@
2619
2792
  }
2620
2793
  .jkl-radio-button__input {
2621
2794
  position: absolute;
2622
- opacity: 0;
2623
- pointer-events: none;
2624
- inset: 0 auto 0 0;
2625
- width: 1lh;
2795
+ inset-block-start: 0;
2796
+ inset-inline-start: 0;
2797
+ block-size: 1lh;
2798
+ inline-size: 1lh;
2799
+ margin: 0;
2800
+ padding: 0;
2801
+ cursor: pointer;
2802
+ z-index: 1;
2803
+ appearance: none;
2804
+ background: transparent;
2805
+ border: 0;
2806
+ }
2807
+ .jkl-radio-button__input {
2808
+ outline: 0;
2809
+ border-style: none;
2810
+ outline-style: none;
2811
+ }
2812
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2813
+ outline: 0;
2814
+ outline-style: none;
2815
+ }
2816
+ @media screen and (forced-colors: active) {
2817
+ .jkl-radio-button__input {
2818
+ outline: revert;
2819
+ border-style: revert;
2820
+ outline-style: revert;
2821
+ }
2822
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2823
+ outline: revert;
2824
+ outline-style: revert;
2825
+ }
2626
2826
  }
2627
2827
  .jkl-radio-button__label {
2628
2828
  cursor: pointer;
@@ -2635,7 +2835,7 @@
2635
2835
  .jkl-radio-button__label::before {
2636
2836
  content: "radio_button_unchecked";
2637
2837
  margin-inline-end: 0.25em;
2638
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
2838
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
2639
2839
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
2640
2840
  font-feature-settings: "liga";
2641
2841
  -webkit-font-feature-settings: "liga";
@@ -2648,11 +2848,19 @@
2648
2848
  transition-duration: var(--jkl-motion-timing-energetic);
2649
2849
  transition-property: font-variation-settings, transform;
2650
2850
  }
2651
- .jkl-radio-button__label:has(+ :checked)::before {
2851
+ .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
2852
+ border-radius: var(--jkl-border-radius-full);
2853
+ outline: 3px solid var(--jkl-color-border-strong);
2854
+ outline-offset: 3px;
2855
+ }
2856
+ .jkl-radio-button__input:is(:hover, :active) + .jkl-radio-button__label, .jkl-radio-button__label:hover, .jkl-radio-button__label:active {
2857
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
2858
+ }
2859
+ .jkl-radio-button__input:checked + .jkl-radio-button__label::before {
2652
2860
  content: "radio_button_checked";
2653
2861
  }
2654
- .jkl-radio-button__label:has(+ [aria-invalid=true])::before {
2655
- color: var(--jkl-radio-button-error-color);
2862
+ .jkl-radio-button__input[aria-invalid=true] + .jkl-radio-button__label::before {
2863
+ color: var(--jkl-color-error-text-default);
2656
2864
  }
2657
2865
  .jkl-radio-button + .jkl-radio-button, .jkl-dormant-form-support-label + .jkl-radio-button, .jkl-form-support-label + .jkl-radio-button {
2658
2866
  margin-top: 0.75lh;
@@ -2673,8 +2881,7 @@
2673
2881
  @layer jokul.components {
2674
2882
  .jkl-text-area-wrapper {
2675
2883
  overflow: hidden;
2676
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
2677
- var(--jkl-text-input-horizontal-padding);
2884
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
2678
2885
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
2679
2886
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
2680
2887
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -2682,8 +2889,8 @@
2682
2889
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
2683
2890
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
2684
2891
  --text-color: var(--jkl-color-text-default);
2685
- --background-color: var(--jkl-color-background-input-base);
2686
- --border-color: var(--jkl-color-border-input);
2892
+ --background-color: transparent;
2893
+ --border-color: var(--jkl-color-border-default);
2687
2894
  --placeholder-color: var(--jkl-color-text-subdued);
2688
2895
  border-radius: var(--jkl-border-radius-s);
2689
2896
  box-sizing: border-box;
@@ -2700,15 +2907,16 @@
2700
2907
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
2701
2908
  }
2702
2909
  .jkl-text-area-wrapper:focus-within, .jkl-text-area-wrapper:has([data-focused=true]) {
2703
- --background-color: var(--jkl-color-background-input-focus);
2910
+ --background-color: var(--jkl-color-background-container);
2704
2911
  }
2705
2912
  .jkl-text-area-wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
2706
- --background-color: var(--jkl-color-background-alert-error);
2707
- --text-color: var(--jkl-color-text-on-alert);
2708
- --placeholder-color: color(from currentColor sRGB r g b / 75%);
2913
+ --background-color: var(--jkl-color-error-background-container);
2914
+ --text-color: var(--jkl-color-error-text-default);
2915
+ --border-color: var(--jkl-color-error-border-default);
2916
+ --placeholder-color: var(--jkl-color-error-text-subdued);
2709
2917
  }
2710
2918
  .jkl-text-area-wrapper:hover, .jkl-text-area-wrapper:focus-within, .jkl-text-area-wrapper:has([data-focused=true]) {
2711
- --border-color: var(--jkl-color-border-input-focus);
2919
+ --border-color: var(--jkl-color-border-strong);
2712
2920
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
2713
2921
  }
2714
2922
  @media screen and (forced-colors: active) {
@@ -2717,11 +2925,11 @@
2717
2925
  }
2718
2926
  }
2719
2927
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-area-wrapper:has(.jkl-text-input__input:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-text-area-wrapper:has(.jkl-text-area__text-area:focus-visible) {
2720
- outline: 3px solid var(--jkl-color-border-action);
2928
+ outline: 3px solid var(--jkl-color-border-strong);
2721
2929
  outline-offset: 3px;
2722
2930
  }
2723
2931
  .jkl-text-area-wrapper > .jkl-icon-button:focus-visible {
2724
- outline: 3px solid var(--jkl-color-border-action);
2932
+ outline: 3px solid var(--jkl-color-border-strong);
2725
2933
  outline-offset: -8px;
2726
2934
  }
2727
2935
  @media screen and (forced-colors: active) {
@@ -2745,7 +2953,7 @@
2745
2953
  width: var(--jkl-text-input-action-button-icon-size);
2746
2954
  }
2747
2955
  .jkl-text-area-wrapper > .jkl-text-input-action-button:hover {
2748
- color: var(--jkl-color-text-interactive-hover);
2956
+ color: var(--jkl-color-text-subdued);
2749
2957
  }
2750
2958
  @media screen and (forced-colors: active) {
2751
2959
  .jkl-text-area-wrapper > .jkl-text-input-action-button:hover {
@@ -2944,7 +3152,7 @@
2944
3152
  --jkl-file-gap: var(--jkl-unit-10) var(--jkl-unit-20);
2945
3153
  --jkl-file-button-width: var(--jkl-unit-50);
2946
3154
  --text-color: var(--jkl-color-text-default);
2947
- --border: 1px solid var(--jkl-color-border-separator);
3155
+ --border: 1px solid var(--jkl-color-border-subdued);
2948
3156
  --border-radius: 2px;
2949
3157
  --bg: transparent;
2950
3158
  --transition-time: var(--jkl-motion-timing-expressive);
@@ -2988,7 +3196,7 @@
2988
3196
  display: flex;
2989
3197
  align-items: center;
2990
3198
  justify-content: center;
2991
- background: var(--jkl-color-background-container-low);
3199
+ background: var(--jkl-color-background-page);
2992
3200
  border-radius: 2px;
2993
3201
  overflow: hidden;
2994
3202
  container-type: inline-size;
@@ -3047,16 +3255,16 @@
3047
3255
  scale: 1;
3048
3256
  }
3049
3257
  .jkl-file[data-state=error] {
3050
- --bg: var(--jkl-color-functional-error);
3258
+ --bg: var(--jkl-color-error-background-container);
3051
3259
  }
3052
3260
  .jkl-file[data-state=error],
3053
3261
  .jkl-file[data-state=error] a,
3054
3262
  .jkl-file[data-state=error] a:hover,
3055
3263
  .jkl-file[data-state=error] button,
3056
3264
  .jkl-file[data-state=error] span {
3057
- --text-color: var(--jkl-color-text-on-alert);
3265
+ --text-color: var(--jkl-color-error-text-default);
3058
3266
  --link-color: var(--text-color);
3059
- --jkl-color-border-action: currentColor;
3267
+ --jkl-color-border-strong: currentColor;
3060
3268
  }
3061
3269
  @keyframes spin {
3062
3270
  from {
@@ -3076,7 +3284,7 @@
3076
3284
  --jkl-file-list-gap: var(--jkl-unit-10);
3077
3285
  }
3078
3286
  .jkl-file-input__dropzone {
3079
- --border-color: var(--jkl-color-border-input);
3287
+ --border-color: var(--jkl-color-border-default);
3080
3288
  --background-color: transparent;
3081
3289
  border: var(--border-color) 1px dashed;
3082
3290
  border-radius: 0.25rem;
@@ -3093,8 +3301,8 @@
3093
3301
  background-color: var(--background-color);
3094
3302
  }
3095
3303
  .jkl-file-input__dropzone--enter {
3096
- --border-color: var(--jkl-color-border-input-focus);
3097
- --background-color: var(--jkl-color-background-container-high);
3304
+ --border-color: var(--jkl-color-border-strong);
3305
+ --background-color: var(--jkl-color-background-container);
3098
3306
  border-style: solid;
3099
3307
  }
3100
3308
  .jkl-file-input__dropzone__drag-text {
@@ -3114,7 +3322,7 @@
3114
3322
  }
3115
3323
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button {
3116
3324
  transform: scale(1.05);
3117
- outline: 3px solid var(--jkl-color-border-action);
3325
+ outline: 3px solid var(--jkl-color-border-strong);
3118
3326
  outline-offset: 3px;
3119
3327
  }
3120
3328
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button:active {
@@ -3164,7 +3372,7 @@
3164
3372
  }
3165
3373
  @layer jokul.components {
3166
3374
  .jkl-link-list {
3167
- --border: 1px solid var(--jkl-color-border-separator);
3375
+ --border: 1px solid var(--jkl-color-border-subdued);
3168
3376
  --text-color: var(--jkl-color-text-default);
3169
3377
  font: var(--jkl-text-style-paragraph-medium);
3170
3378
  }
@@ -3181,7 +3389,7 @@
3181
3389
  height: min-content;
3182
3390
  border-radius: var(--jkl-unit-05);
3183
3391
  overflow: hidden;
3184
- background: var(--jkl-color-background-container-low);
3392
+ background-color: var(--jkl-color-background-container);
3185
3393
  }
3186
3394
  .jkl-link-list ul .jkl-link-list-link {
3187
3395
  display: flex;
@@ -3201,7 +3409,7 @@
3201
3409
  }
3202
3410
  .jkl-link-list ul .jkl-link-list-link::after {
3203
3411
  content: "arrow_forward"/"";
3204
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
3412
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
3205
3413
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3206
3414
  font-feature-settings: "liga";
3207
3415
  -webkit-font-feature-settings: "liga";
@@ -3218,11 +3426,15 @@
3218
3426
  transition-property: translate;
3219
3427
  }
3220
3428
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible) {
3221
- background: var(--jkl-color-background-interactive-selected);
3429
+ background-color: color-mix(in srgb, var(--text-color) 15%);
3222
3430
  }
3223
3431
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible)::after {
3224
3432
  translate: 4px 0;
3225
3433
  }
3434
+ .jkl-link-list ul .jkl-link-list-link:focus-visible {
3435
+ outline: 3px solid var(--jkl-color-border-strong);
3436
+ outline-offset: 3px;
3437
+ }
3226
3438
  .jkl-link-list .jkl-link-list-item {
3227
3439
  display: flex;
3228
3440
  }
@@ -3309,7 +3521,7 @@
3309
3521
  .jkl-menu-item {
3310
3522
  --jkl-menu-item-height: var(--jkl-unit-60);
3311
3523
  --jkl-menu-item-padding: var(--jkl-unit-15) var(--jkl-unit-30);
3312
- --background-color: var(--jkl-color-background-interactive);
3524
+ --background-color: transparent;
3313
3525
  background-color: var(--background-color);
3314
3526
  color: var(--jkl-color-text-default);
3315
3527
  text-decoration: none;
@@ -3368,7 +3580,7 @@
3368
3580
  flex-shrink: 0;
3369
3581
  }
3370
3582
  .jkl-menu-item:hover, .jkl-menu-item:focus-visible {
3371
- --background-color: var(--jkl-color-background-interactive-hover);
3583
+ --background-color: color-mix(in srgb, currentColor 18%, transparent);
3372
3584
  }
3373
3585
  }
3374
3586
  @layer jokul.components {
@@ -3376,16 +3588,16 @@
3376
3588
  width: 100%;
3377
3589
  margin-block: 0;
3378
3590
  border: none;
3379
- border-bottom: 0.0625rem solid var(--jkl-color-border-separator);
3591
+ border-bottom: 0.0625rem solid var(--jkl-color-border-subdued);
3380
3592
  }
3381
3593
  }
3382
3594
  @layer jokul.components {
3383
3595
  .jkl-menu {
3384
3596
  /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
3385
3597
  --border-color: transparent;
3386
- --border-color: light-dark(transparent, var(--jkl-color-border-input-focus));
3598
+ --border-color: light-dark(transparent, var(--jkl-color-border-strong));
3387
3599
  /* stylelint-enable declaration-block-no-duplicate-custom-properties */
3388
- background-color: var(--jkl-color-background-container-high);
3600
+ background-color: var(--jkl-color-background-container);
3389
3601
  width: 100%;
3390
3602
  max-width: 21rem;
3391
3603
  display: flex;
@@ -3438,7 +3650,7 @@
3438
3650
  color: var(--jkl-color-text-subdued);
3439
3651
  }
3440
3652
  .jkl-nav-link:focus-visible {
3441
- outline: 3px solid var(--jkl-color-border-action);
3653
+ outline: 3px solid var(--jkl-color-border-strong);
3442
3654
  outline-offset: 0;
3443
3655
  }
3444
3656
  .jkl-nav-link:focus-visible .jkl-nav-link__icon, .jkl-nav-link:hover:not(:focus) .jkl-nav-link__icon {
@@ -3473,14 +3685,14 @@
3473
3685
  }
3474
3686
  .jkl-navlink--beta {
3475
3687
  --border-radius: 4px;
3476
- --separator: 1px solid var(--jkl-color-border-separator);
3688
+ --separator: 1px solid var(--jkl-color-border-subdued);
3477
3689
  display: grid;
3478
3690
  grid-template-columns: 1fr auto;
3479
3691
  align-items: center;
3480
3692
  column-gap: 2em;
3481
3693
  color: inherit;
3482
3694
  text-decoration: none;
3483
- background-color: var(--jkl-color-background-container-low);
3695
+ background-color: var(--jkl-color-background-page);
3484
3696
  padding: var(--jkl-spacing-s);
3485
3697
  border-radius: 0;
3486
3698
  font: var(--jkl-text-style-paragraph-medium);
@@ -3500,7 +3712,7 @@
3500
3712
  grid-column: 2;
3501
3713
  grid-row: 1/span 999;
3502
3714
  translate: 0;
3503
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
3715
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
3504
3716
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3505
3717
  font-feature-settings: "liga";
3506
3718
  -webkit-font-feature-settings: "liga";
@@ -3517,7 +3729,7 @@
3517
3729
  transition-property: translate;
3518
3730
  }
3519
3731
  .jkl-navlink--beta:hover, .jkl-navlink--beta:focus-visible {
3520
- background-color: var(--jkl-color-background-interactive-selected);
3732
+ background-color: color-mix(in srgb, currentColor 15%, transparent);
3521
3733
  }
3522
3734
  .jkl-navlink--beta:hover::after, .jkl-navlink--beta:focus-visible::after {
3523
3735
  translate: 4px 0;
@@ -3558,13 +3770,13 @@
3558
3770
  cursor: pointer;
3559
3771
  user-select: none;
3560
3772
  border-radius: 0.1875rem;
3561
- color: var(--jkl-color-text-interactive);
3773
+ color: var(--jkl-color-text-default);
3562
3774
  }
3563
3775
  .jkl-pagination-button:hover:not(:focus) {
3564
- color: var(--jkl-color-text-interactive-hover);
3776
+ color: var(--jkl-color-text-subdued);
3565
3777
  }
3566
3778
  .jkl-pagination-button:focus-visible {
3567
- outline: 3px solid var(--jkl-color-border-action);
3779
+ outline: 3px solid var(--jkl-color-border-strong);
3568
3780
  outline-offset: 3px;
3569
3781
  }
3570
3782
  .jkl-pagination-button--current {
@@ -3587,8 +3799,7 @@
3587
3799
  --border-radius: var(--jkl-border-radius-s);
3588
3800
  --min-option-height: min(var(--jkl-unit-60), 3rem);
3589
3801
  /* Vi må trekke fra bredden til rammen for å få riktig høyde */
3590
- --button-padding: calc(var(--jkl-unit-15) - var(--border-width))
3591
- calc(0.75em - var(--border-width));
3802
+ --button-padding: calc(var(--jkl-unit-15) - var(--border-width)) calc(0.75em - var(--border-width));
3592
3803
  --option-padding: var(--jkl-unit-05) 0.75em;
3593
3804
  display: block;
3594
3805
  position: relative;
@@ -3617,7 +3828,7 @@
3617
3828
  outline: none;
3618
3829
  }
3619
3830
  .jkl-select .jkl-tooltip-question-button:focus {
3620
- outline: 3px solid var(--jkl-color-border-action);
3831
+ outline: 3px solid var(--jkl-color-border-strong);
3621
3832
  outline-offset: 0;
3622
3833
  }
3623
3834
  .jkl-select select {
@@ -3631,7 +3842,7 @@
3631
3842
  font-weight: normal;
3632
3843
  font-family: sans-serif;
3633
3844
  color: var(--jkl-color-text-subdued);
3634
- background-color: var(--jkl-color-background-container-high);
3845
+ background-color: var(--jkl-color-background-container);
3635
3846
  }
3636
3847
  .jkl-select__outer-wrapper {
3637
3848
  position: relative;
@@ -3652,7 +3863,7 @@
3652
3863
  cursor: pointer;
3653
3864
  height: var(--jkl-select-input-height);
3654
3865
  border-radius: var(--border-radius);
3655
- border: var(--border-width) solid var(--jkl-color-border-input);
3866
+ border: var(--border-width) solid var(--jkl-color-border-default);
3656
3867
  box-shadow: 0 0 0 0.0625rem transparent;
3657
3868
  text-align: left;
3658
3869
  width: 100%;
@@ -3668,8 +3879,8 @@
3668
3879
  color: var(--jkl-color-text-default);
3669
3880
  }
3670
3881
  .jkl-select__search-input:hover, .jkl-select__button:hover {
3671
- border-color: var(--jkl-color-border-input-focus);
3672
- box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-input-focus);
3882
+ border-color: var(--jkl-color-border-strong);
3883
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
3673
3884
  }
3674
3885
  .jkl-select__search-input:hover ~ .jkl-select__arrow, .jkl-select__button:hover ~ .jkl-select__arrow {
3675
3886
  transform: translateY(calc(-50% + 0.1875rem));
@@ -3678,12 +3889,12 @@
3678
3889
  outline: none;
3679
3890
  }
3680
3891
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__search-input:focus-visible, html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__search-input:has(:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__button:focus-visible, html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select__button:has(:focus-visible) {
3681
- outline: 3px solid var(--jkl-color-border-action);
3892
+ outline: 3px solid var(--jkl-color-border-strong);
3682
3893
  outline-offset: 3px;
3683
3894
  }
3684
3895
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select:has(:focus-visible) .jkl-select__button,
3685
3896
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select:has(:focus-visible) .jkl-select__search-input {
3686
- outline: 3px solid var(--jkl-color-border-action);
3897
+ outline: 3px solid var(--jkl-color-border-strong);
3687
3898
  outline-offset: 3px;
3688
3899
  }
3689
3900
  .jkl-select__arrow {
@@ -3708,7 +3919,7 @@
3708
3919
  }
3709
3920
  }
3710
3921
  .jkl-select:has([aria-invalid=true]) .jkl-select__arrow {
3711
- color: var(--jkl-color-text-on-alert);
3922
+ color: var(--jkl-color-error-text-default);
3712
3923
  }
3713
3924
  .jkl-select__options-menu {
3714
3925
  position: absolute;
@@ -3716,8 +3927,8 @@
3716
3927
  right: -0.0625rem;
3717
3928
  top: 100%;
3718
3929
  z-index: 7000;
3719
- background-color: var(--jkl-color-background-container-high);
3720
- border: 0.125rem solid var(--jkl-color-border-input-focus);
3930
+ background-color: var(--jkl-color-background-container);
3931
+ border: 0.125rem solid var(--jkl-color-border-strong);
3721
3932
  border-top: none;
3722
3933
  border-radius: 0 0 var(--border-radius) var(--border-radius);
3723
3934
  box-sizing: border-box;
@@ -3753,7 +3964,7 @@
3753
3964
  }
3754
3965
  .jkl-select__option:focus, :not([data-focus=controlled]) > .jkl-select__option:hover {
3755
3966
  color: var(--jkl-color-text-default);
3756
- background-color: var(--jkl-color-background-interactive-hover);
3967
+ background-color: color-mix(in srgb, currentColor 10%, transparent);
3757
3968
  }
3758
3969
  .jkl-select__option-description {
3759
3970
  color: var(--jkl-color-text-subdued);
@@ -3774,9 +3985,9 @@
3774
3985
  .jkl-select--open .jkl-select__button {
3775
3986
  border-bottom-left-radius: 0;
3776
3987
  border-bottom-right-radius: 0;
3777
- border-color: var(--jkl-color-border-input-focus);
3778
- background-color: var(--jkl-color-background-container-high);
3779
- box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-input-focus);
3988
+ border-color: var(--jkl-color-border-strong);
3989
+ background-color: var(--jkl-color-background-container);
3990
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
3780
3991
  }
3781
3992
  .jkl-select--open .jkl-select__search-input:hover ~ .jkl-select__arrow,
3782
3993
  .jkl-select--open .jkl-select__button:hover ~ .jkl-select__arrow {
@@ -3784,8 +3995,8 @@
3784
3995
  }
3785
3996
  .jkl-select--invalid .jkl-select__search-input,
3786
3997
  .jkl-select--invalid .jkl-select__button {
3787
- background-color: var(--jkl-color-background-alert-error);
3788
- color: var(--jkl-color-text-on-alert-subdued);
3998
+ background-color: var(--jkl-color-error-background-container);
3999
+ color: var(--jkl-color-error-text-subdued);
3789
4000
  }
3790
4001
  .jkl-select--invalid .jkl-select__search-input--active-value,
3791
4002
  .jkl-select--invalid .jkl-select__button--active-value {
@@ -3817,8 +4028,8 @@
3817
4028
  }
3818
4029
  @layer jokul.components {
3819
4030
  .jkl-progress-bar {
3820
- --track-color: var(--jkl-color-border-separator);
3821
- --bar-color: var(--jkl-color-border-input-focus);
4031
+ --track-color: var(--jkl-color-border-subdued);
4032
+ --bar-color: var(--jkl-color-border-strong);
3822
4033
  --bar-height: 0.25rem;
3823
4034
  background-color: var(--track-color);
3824
4035
  border-radius: 6.25rem;
@@ -3839,12 +4050,36 @@
3839
4050
  background-color: CanvasText;
3840
4051
  }
3841
4052
  }
4053
+ .jkl-progress-bar {
4054
+ outline: 0;
4055
+ border-style: none;
4056
+ outline-style: none;
4057
+ }
4058
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4059
+ outline: 0;
4060
+ outline-style: none;
4061
+ }
4062
+ @media screen and (forced-colors: active) {
4063
+ .jkl-progress-bar {
4064
+ outline: revert;
4065
+ border-style: revert;
4066
+ outline-style: revert;
4067
+ }
4068
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4069
+ outline: revert;
4070
+ outline-style: revert;
4071
+ }
4072
+ }
4073
+ .jkl-progress-bar:focus-visible {
4074
+ outline: 3px solid var(--jkl-color-border-strong);
4075
+ outline-offset: 3px;
4076
+ }
3842
4077
  .jkl-progress-bar__tracker {
3843
4078
  transition-property: width;
3844
4079
  transition-timing-function: var(--jkl-motion-easing-standard);
3845
4080
  transition-duration: var(--jkl-motion-timing-productive);
3846
4081
  }
3847
- @keyframes jkl-downcount-udz45ax {
4082
+ @keyframes jkl-downcount-uglesfa {
3848
4083
  from {
3849
4084
  width: 100%;
3850
4085
  }
@@ -3858,10 +4093,13 @@
3858
4093
  /* Visuell justering pga. rundt ikon */
3859
4094
  margin-inline-start: -0.15em;
3860
4095
  }
4096
+ .jkl-radio-panel .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
4097
+ outline: none;
4098
+ }
3861
4099
  }
3862
4100
  .jkl-select--beta {
3863
- --border-color: var(--jkl-color-border-input);
3864
- --background-color: var(transparent);
4101
+ --border-color: var(--jkl-color-border-default);
4102
+ --background-color: transparent;
3865
4103
  --color: var(--jkl-color-text-default);
3866
4104
  --box-shadow: 0 0 0 jkl.rem(1px) transparent;
3867
4105
  --border-width: 0.0625rem;
@@ -3894,7 +4132,7 @@
3894
4132
  outline: none;
3895
4133
  }
3896
4134
  .jkl-select--beta .jkl-tooltip-question-button:focus {
3897
- outline: 3px solid var(--jkl-color-border-action);
4135
+ outline: 3px solid var(--jkl-color-border-strong);
3898
4136
  outline-offset: 0;
3899
4137
  }
3900
4138
  .jkl-select--beta-wrapper {
@@ -3928,12 +4166,12 @@
3928
4166
  --color: var(--jkl-color-text-subdued);
3929
4167
  }
3930
4168
  .jkl-select--beta select:hover {
3931
- --border-color: var(--jkl-color-border-input-focus);
3932
- --box-shadow: 0 0 0 jkl.rem(1px) var(--jkl-color-border-input-focus);
4169
+ --border-color: var(--jkl-color-border-strong);
4170
+ --box-shadow: 0 0 0 jkl.rem(1px) var(--jkl-color-border-strong);
3933
4171
  }
3934
4172
  .jkl-select--beta select:invalid {
3935
- --background-color: var(--jkl-color-background-alert-error);
3936
- --color: var(--jkl-color-text-on-alert-subdued);
4173
+ --background-color: var(--jkl-color-error-background-container);
4174
+ --color: var(--jkl-color-error-text-subdued);
3937
4175
  }
3938
4176
  .jkl-select--beta select:focus-visible {
3939
4177
  outline: none;
@@ -3944,11 +4182,11 @@
3944
4182
  font: var(--jkl-text-style-text-medium);
3945
4183
  }
3946
4184
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:focus-visible, html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:has(:focus-visible) {
3947
- outline: 3px solid var(--jkl-color-border-action);
4185
+ outline: 3px solid var(--jkl-color-border-strong);
3948
4186
  outline-offset: 3px;
3949
4187
  }
3950
4188
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:has(:focus-visible) select {
3951
- outline: 3px solid var(--jkl-color-border-action);
4189
+ outline: 3px solid var(--jkl-color-border-strong);
3952
4190
  outline-offset: 3px;
3953
4191
  }
3954
4192
 
@@ -3962,7 +4200,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
3962
4200
  --icon-size: var(--jkl-text-input-height);
3963
4201
  --border-radius: var(--jkl-border-radius-s);
3964
4202
  --border-width: 1px;
3965
- --border: var(--border-width) solid var(--jkl-color-border-input);
4203
+ --border: var(--border-width) solid var(--jkl-color-border-default);
3966
4204
  width: 100%;
3967
4205
  font: var(--jkl-text-style-text-medium);
3968
4206
  }
@@ -4017,7 +4255,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4017
4255
  justify-content: center;
4018
4256
  height: 100%;
4019
4257
  grid-column: 1;
4020
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", monospace;
4258
+ font-family: "Jokul Icons", "Jokul Icons Fallback", monospace;
4021
4259
  }
4022
4260
  .jkl-search .input-wrapper:has(.clear-button) {
4023
4261
  grid-template-columns: 1.3em 1fr 1.3em;
@@ -4047,7 +4285,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4047
4285
  grid-row: 1;
4048
4286
  grid-column: 1;
4049
4287
  z-index: 1;
4050
- font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
4288
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
4051
4289
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
4052
4290
  font-feature-settings: "liga";
4053
4291
  -webkit-font-feature-settings: "liga";
@@ -4076,7 +4314,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4076
4314
  opacity: 0.15;
4077
4315
  }
4078
4316
  .jkl-search .clear-button:focus-visible {
4079
- outline: 3px solid var(--jkl-color-border-action);
4317
+ outline: 3px solid var(--jkl-color-border-strong);
4080
4318
  outline-offset: 3px;
4081
4319
  }
4082
4320
 
@@ -4105,7 +4343,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4105
4343
  width: 1px;
4106
4344
  inset: 0;
4107
4345
  inset-block: 20%;
4108
- background-color: var(--jkl-color-border-separator);
4346
+ background-color: var(--jkl-color-border-subdued);
4109
4347
  transition-timing-function: var(--jkl-motion-easing-standard);
4110
4348
  transition-duration: var(--jkl-motion-timing-productive);
4111
4349
  transition-property: inset;
@@ -4129,8 +4367,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4129
4367
  position: relative;
4130
4368
  display: inline-flex;
4131
4369
  align-items: center;
4132
- background-color: var(--jkl-color-background-interactive);
4133
- border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-separator);
4370
+ background-color: transparent;
4371
+ border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-subdued);
4134
4372
  border-radius: 0;
4135
4373
  margin-inline-end: calc(var(--jkl-segmented-control-border-width) * -1);
4136
4374
  margin-block-end: 0.5lh;
@@ -4143,13 +4381,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4143
4381
  padding: var(--jkl-segmented-controls-padding);
4144
4382
  }
4145
4383
  .jkl-segmented-control .jkl-segmented-control-item:hover {
4146
- background-color: var(--jkl-color-background-interactive-hover);
4147
- border-color: var(--jkl-color-border-separator-hover);
4384
+ background-color: color-mix(in srgb, currentColor 6%, transparent);
4385
+ border-color: var(--jkl-color-border-default);
4148
4386
  z-index: 2;
4149
4387
  }
4150
4388
  .jkl-segmented-control .jkl-segmented-control-item:has(input:checked) {
4151
- background-color: var(--jkl-color-background-container-high);
4152
- border-color: var(--jkl-color-border-separator);
4389
+ background-color: var(--jkl-color-background-container);
4390
+ border-color: var(--jkl-color-border-subdued);
4153
4391
  z-index: 1;
4154
4392
  }
4155
4393
  .jkl-segmented-control .jkl-segmented-control-item:has(input[data-separated=true]) {
@@ -4208,8 +4446,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4208
4446
  font-weight: var(--jkl-font-weight-normal);
4209
4447
  }
4210
4448
  .jkl-summary-table > tfoot {
4211
- border-top: 0.0625rem solid var(--jkl-color-border-separator-strong);
4212
- border-bottom: 0.0625rem solid var(--jkl-color-border-separator-strong);
4449
+ border-top: 0.0625rem solid var(--jkl-color-border-strong);
4450
+ border-bottom: 0.0625rem solid var(--jkl-color-border-strong);
4213
4451
  padding-top: var(--jkl-unit-10);
4214
4452
  }
4215
4453
  .jkl-summary-table > tfoot th,
@@ -4223,14 +4461,16 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4223
4461
  --jkl-system-message-icon-padding: 0.1875rem 0 0 0;
4224
4462
  --jkl-system-message-content-padding: var(--jkl-unit-30);
4225
4463
  --jkl-system-message-dismiss-button-size: var(--jkl-unit-40);
4226
- --jkl-system-message-dismiss-button-margin: -0.40625rem -1.125rem -0.40625rem
4227
- auto;
4228
- --jkl-system-message-message-margin: 0 var(--jkl-spacing-20);
4229
- --background-color: var(--jkl-color-background-alert-neutral);
4230
- --text-color: var(--jkl-color-text-on-alert);
4464
+ --jkl-system-message-dismiss-button-margin: -0.40625rem
4465
+ -1.125rem -0.40625rem auto;
4466
+ --jkl-system-message-message-margin: 0 var(--jkl-unit-20);
4467
+ --background-color: var(--jkl-color-background-container);
4468
+ --text-color: var(--jkl-color-text-default);
4469
+ --border-color: var(--jkl-color-border-subdued);
4231
4470
  width: 100%;
4232
4471
  background-color: var(--background-color);
4233
4472
  color: var(--text-color);
4473
+ border: 1px solid var(--border-color);
4234
4474
  transition-behavior: allow-discrete;
4235
4475
  box-sizing: border-box;
4236
4476
  }
@@ -4315,7 +4555,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4315
4555
  }
4316
4556
  }
4317
4557
  .jkl-system-message__dismiss-button:hover {
4318
- color: var(--jkl-color-text-interactive-hover);
4558
+ color: var(--jkl-color-text-subdued);
4319
4559
  }
4320
4560
  @media screen and (forced-colors: active) {
4321
4561
  .jkl-system-message__dismiss-button:hover {
@@ -4326,7 +4566,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4326
4566
  }
4327
4567
  }
4328
4568
  .jkl-system-message__dismiss-button:focus-visible {
4329
- outline: 3px solid var(--jkl-color-border-action);
4569
+ outline: 3px solid var(--jkl-color-border-strong);
4330
4570
  outline-offset: 3px;
4331
4571
  }
4332
4572
  @media screen and (forced-colors: active) {
@@ -4339,20 +4579,28 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4339
4579
  margin-bottom: 0;
4340
4580
  }
4341
4581
  .jkl-system-message--dismissed {
4342
- animation: jkl-dismiss-udz45ci var(--jkl-motion-timing-lazy) forwards;
4582
+ animation: jkl-dismiss-uglesfo var(--jkl-motion-timing-lazy) forwards;
4343
4583
  transition: block var(--jkl-motion-timing-lazy) var(--jkl-motion-timing-lazy);
4344
4584
  }
4345
4585
  .jkl-system-message--info {
4346
- --background-color: var(--jkl-color-background-alert-info);
4586
+ --background-color: var(--jkl-color-info-background-container);
4587
+ --text-color: var(--jkl-color-info-text-default);
4588
+ --border-color: var(--jkl-color-info-border-subdued);
4347
4589
  }
4348
4590
  .jkl-system-message--warning {
4349
- --background-color: var(--jkl-color-background-alert-warning);
4591
+ --background-color: var(--jkl-color-warning-background-container);
4592
+ --text-color: var(--jkl-color-warning-text-default);
4593
+ --border-color: var(--jkl-color-warning-border-subdued);
4350
4594
  }
4351
4595
  .jkl-system-message--error {
4352
- --background-color: var(--jkl-color-background-alert-error);
4596
+ --background-color: var(--jkl-color-error-background-container);
4597
+ --text-color: var(--jkl-color-error-text-default);
4598
+ --border-color: var(--jkl-color-error-border-subdued);
4353
4599
  }
4354
4600
  .jkl-system-message--success {
4355
- --background-color: var(--jkl-color-background-alert-success);
4601
+ --background-color: var(--jkl-color-success-background-container);
4602
+ --text-color: var(--jkl-color-success-text-default);
4603
+ --border-color: var(--jkl-color-success-border-subdued);
4356
4604
  }
4357
4605
  @media screen and (forced-colors: active) {
4358
4606
  .jkl-system-message {
@@ -4369,7 +4617,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4369
4617
  border-width: 4px;
4370
4618
  }
4371
4619
  }
4372
- @keyframes jkl-dismiss-udz45ci {
4620
+ @keyframes jkl-dismiss-uglesfo {
4373
4621
  from {
4374
4622
  opacity: 1;
4375
4623
  transform: translateY(0);
@@ -4485,7 +4733,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4485
4733
  z-index: 1;
4486
4734
  background-color: var(--jkl-table-head-sticky-color, var(--jkl-color-background-page));
4487
4735
  border-bottom: none;
4488
- box-shadow: inset 0 0 0 #000, inset 0 var(--jkl-border-width-1) 0 var(--jkl-color-border-separator-strong);
4736
+ box-shadow: inset 0 0 0 #000, inset 0 var(--jkl-border-width-1) 0 var(--jkl-color-border-strong);
4489
4737
  background-clip: padding-box;
4490
4738
  vertical-align: bottom;
4491
4739
  height: 2.3em;
@@ -4655,10 +4903,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4655
4903
  }
4656
4904
  @layer jokul.components {
4657
4905
  .jkl-table-row {
4658
- --jkl-table-row-border-color: var(--jkl-color-border-separator);
4906
+ --jkl-table-row-border-color: var(--jkl-color-border-subdued);
4659
4907
  --jkl-table-row-border-none-color: transparent;
4660
- --jkl-table-row-hover-border-color: var(--jkl-color-border-separator-strong);
4661
- --jkl-table-row-highlight-color: var(--jkl-color-background-interactive-selected);
4908
+ --jkl-table-row-hover-border-color: var(--jkl-color-border-strong);
4909
+ --jkl-table-row-highlight-color: color-mix(in srgb,
4910
+ currentColor 15%,
4911
+ transparent);
4662
4912
  border-bottom: solid 0.0625rem var(--jkl-table-row-border-color);
4663
4913
  }
4664
4914
  .jkl-table-head > .jkl-table-row {
@@ -4862,7 +5112,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4862
5112
  @layer jokul.components {
4863
5113
  .jkl-table-of-contents {
4864
5114
  --ordered-item-padding: var(--jkl-unit-10);
4865
- --border: 1px solid var(--jkl-color-border-separator);
5115
+ --border: 1px solid var(--jkl-color-border-subdued);
4866
5116
  --text-color: var(--jkl-color-text-default);
4867
5117
  }
4868
5118
  .jkl-table-of-contents .jkl-table-of-contents-title {
@@ -4925,7 +5175,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4925
5175
  }
4926
5176
  .jkl-table-of-contents ol .jkl-table-of-contents-link::before {
4927
5177
  content: counter(table-of-contents, decimal-leading-zero);
4928
- font-family: "Fremtind Grotesk Mono", "Adjusted Courier New Fallback", -apple-system, BlinkMacSystemFont, monospace;
5178
+ font-family: var(--jkl-font-family-mono);
4929
5179
  color: inherit;
4930
5180
  font-size: var(--jkl-small-font-size);
4931
5181
  }
@@ -4936,9 +5186,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4936
5186
  }
4937
5187
  .jkl-tablist {
4938
5188
  --padding-inline-end: var(--jkl-unit-50);
4939
- --text-color: var(--jkl-color-text-interactive);
4940
- --line-color: var(--jkl-color-border-separator);
4941
- --indicator-color: var(--jkl-color-border-separator-hover);
5189
+ --text-color: var(--jkl-color-text-default);
5190
+ --line-color: var(--jkl-color-border-subdued);
5191
+ --indicator-color: var(--jkl-color-border-default);
4942
5192
  scroll-snap-type: x proximity;
4943
5193
  overflow: scroll hidden;
4944
5194
  scrollbar-width: none;
@@ -5008,10 +5258,10 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5008
5258
  }
5009
5259
  }
5010
5260
  .jkl-tab:hover {
5011
- --text-color: var(--jkl-color-text-interactive-hover);
5261
+ --text-color: var(--jkl-color-text-subdued);
5012
5262
  }
5013
5263
  .jkl-tab:focus-visible {
5014
- outline: 3px solid var(--jkl-color-border-action);
5264
+ outline: 3px solid var(--jkl-color-border-strong);
5015
5265
  outline-offset: -2px;
5016
5266
  }
5017
5267
  .jkl-tab[aria-selected=true] {
@@ -5063,11 +5313,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5063
5313
  left: var(--jkl-unit-30);
5064
5314
  }
5065
5315
  .jkl-toast {
5066
- --background-color: var(--jkl-color-background-container-high);
5316
+ --background-color: var(--jkl-color-background-container);
5067
5317
  --text-color: var(--jkl-color-text-default);
5318
+ --border-color: transparent;
5068
5319
  --jkl-toast-padding: var(--jkl-unit-20);
5069
5320
  color: var(--text-color);
5070
5321
  background-color: var(--background-color);
5322
+ border: 1px solid var(--border-color);
5071
5323
  border-radius: 4px;
5072
5324
  box-sizing: border-box;
5073
5325
  align-items: start;
@@ -5078,7 +5330,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5078
5330
  font: var(--jkl-text-style-paragraph-medium);
5079
5331
  }
5080
5332
  .jkl-toast__progress {
5081
- --bar-color: var(--text-color);
5333
+ --bar-color: var(--jkl-color-background-contrast);
5082
5334
  --track-color: transparent;
5083
5335
  border-radius: 0;
5084
5336
  position: absolute;
@@ -5133,20 +5385,25 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5133
5385
  position: absolute;
5134
5386
  inset: calc((var(--tap-size) - 100%) / 2 * -1);
5135
5387
  }
5136
- .jkl-toast--info, .jkl-toast--warning, .jkl-toast--error, .jkl-toast--success {
5137
- --text-color: var(--jkl-color-text-on-alert);
5138
- }
5139
5388
  .jkl-toast--info {
5140
- --background-color: var(--jkl-color-background-alert-info);
5389
+ --background-color: var(--jkl-color-info-background-container);
5390
+ --text-color: var(--jkl-color-info-text-default);
5391
+ --border-color: var(--jkl-color-info-border-subdued);
5141
5392
  }
5142
5393
  .jkl-toast--warning {
5143
- --background-color: var(--jkl-color-background-alert-warning);
5394
+ --background-color: var(--jkl-color-warning-background-container);
5395
+ --text-color: var(--jkl-color-warning-text-default);
5396
+ --border-color: var(--jkl-color-warning-border-subdued);
5144
5397
  }
5145
5398
  .jkl-toast--error {
5146
- --background-color: var(--jkl-color-background-alert-error);
5399
+ --background-color: var(--jkl-color-error-background-container);
5400
+ --text-color: var(--jkl-color-error-text-default);
5401
+ --border-color: var(--jkl-color-error-border-subdued);
5147
5402
  }
5148
5403
  .jkl-toast--success {
5149
- --background-color: var(--jkl-color-background-alert-success);
5404
+ --background-color: var(--jkl-color-success-background-container);
5405
+ --text-color: var(--jkl-color-success-text-default);
5406
+ --border-color: var(--jkl-color-success-border-subdued);
5150
5407
  }
5151
5408
  @media screen and (forced-colors: active) {
5152
5409
  .jkl-toast {
@@ -5165,12 +5422,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5165
5422
  }
5166
5423
  .jkl-toast[data-animation=entering],
5167
5424
  .jkl-toast[data-animation=queued] {
5168
- animation: jkl-entering-udz45ct var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5425
+ animation: jkl-entering-uglesgn var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5169
5426
  }
5170
5427
  .jkl-toast[data-animation=exiting] {
5171
- animation: jkl-exiting-udz45db var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5428
+ animation: jkl-exiting-ugleshk var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5172
5429
  }
5173
- @keyframes jkl-entering-udz45ct {
5430
+ @keyframes jkl-entering-uglesgn {
5174
5431
  from {
5175
5432
  opacity: 0;
5176
5433
  transform: translate3d(0, 50%, 0);
@@ -5180,7 +5437,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5180
5437
  transform: translate3d(0, 0, 0);
5181
5438
  }
5182
5439
  }
5183
- @keyframes jkl-exiting-udz45db {
5440
+ @keyframes jkl-exiting-ugleshk {
5184
5441
  from {
5185
5442
  opacity: 1;
5186
5443
  transform: translate3d(0, 0, 0);
@@ -6540,12 +6797,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
6540
6797
  }
6541
6798
  }
6542
6799
  .jkl-toggle-slider {
6543
- --jkl-slider-bg: var(--jkl-color-background-container-low);
6544
- --jkl-slider-pill: var(--jkl-color-background-container-high);
6800
+ --jkl-slider-bg: var(--jkl-color-background-page);
6801
+ --jkl-slider-pill: var(--jkl-color-background-container);
6545
6802
  --jkl-slider-text: var(--jkl-color-text-default);
6546
6803
  --jkl-slider-text--active: var(--jkl-color-text-default);
6547
- --jkl-slider-focus-color: var(--jkl-color-border-action);
6548
- --jkl-slider-hover-color: var(--jkl-color-border-action);
6804
+ --jkl-slider-focus-color: var(--jkl-color-border-strong);
6805
+ --jkl-slider-hover-color: var(--jkl-color-border-strong);
6549
6806
  font-size: var(--jkl-slider-font-size);
6550
6807
  line-height: var(--jkl-slider-line-height);
6551
6808
  font-weight: var(--jkl-slider-font-weight);
@@ -6644,14 +6901,14 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6644
6901
  --jkl-toggle-switch-width: var(--jkl-unit-60);
6645
6902
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
6646
6903
  --border-width: 0.0625rem;
6647
- --switch-padding: 0.25rem;
6904
+ --switch-padding: var(--jkl-unit-05);
6648
6905
  --knob-position: 0;
6649
- --switch-border-color: var(--jkl-color-border-action);
6650
- --indicator-color: var(--jkl-color-background-container-high);
6651
- --knob-border-color: var(--jkl-color-border-action);
6652
- --knob-color: var(--jkl-color-background-container-high);
6906
+ --switch-border-color: var(--jkl-color-border-strong);
6907
+ --indicator-color: var(--jkl-color-background-container);
6908
+ --knob-border-color: var(--jkl-color-border-strong);
6909
+ --knob-color: var(--jkl-color-background-container);
6653
6910
  --text-color: var(--jkl-color-text-default);
6654
- --icon-color: var(--jkl-color-text-inverted);
6911
+ --icon-color: var(--jkl-color-text-on-contrast);
6655
6912
  background: transparent;
6656
6913
  color: var(--text-color);
6657
6914
  padding: 0;
@@ -6691,14 +6948,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6691
6948
  }
6692
6949
  }
6693
6950
  .jkl-toggle-switch[aria-pressed=true], [aria-checked=true] > .jkl-toggle-switch {
6694
- --indicator-color: var(--jkl-color-background-container-inverted);
6695
- --knob-color: var(--jkl-color-text-inverted);
6696
- --knob-position: calc(
6697
- var(--jkl-toggle-switch-width) - var(
6698
- --jkl-toggle-switch-knob-size
6699
- ) - var(--switch-padding) *
6700
- 2
6701
- );
6951
+ --indicator-color: var(--jkl-color-background-contrast);
6952
+ --knob-color: var(--jkl-color-text-on-contrast);
6953
+ --knob-position: calc(var(--jkl-toggle-switch-width) - var(--jkl-toggle-switch-knob-size) - var(--switch-padding) * 2);
6702
6954
  }
6703
6955
  .jkl-toggle-switch[disabled] {
6704
6956
  cursor: revert;
@@ -6714,7 +6966,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6714
6966
  --jkl-toggle-switch-height: var(--jkl-unit-40);
6715
6967
  --jkl-toggle-switch-width: var(--jkl-unit-60);
6716
6968
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
6717
- --jkl-toggle-switch-indicator-spacing: 0;
6718
6969
  position: relative;
6719
6970
  box-sizing: border-box;
6720
6971
  display: flex;
@@ -6736,7 +6987,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6736
6987
  }
6737
6988
  }
6738
6989
  .jkl-toggle-switch:focus-visible .jkl-toggle-switch-widget {
6739
- outline: 3px solid var(--jkl-color-border-action);
6990
+ outline: 3px solid var(--jkl-color-border-strong);
6740
6991
  outline-offset: 3px;
6741
6992
  }
6742
6993
  .jkl-toggle-switch-widget__slider {
@@ -6762,14 +7013,97 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6762
7013
  position: absolute;
6763
7014
  top: 50%;
6764
7015
  right: 100%;
6765
- margin-right: var(--jkl-toggle-switch-indicator-spacing);
7016
+ font-size: var(--jkl-unit-20);
6766
7017
  transform: translate(0, -50%);
6767
7018
  }
6768
- .jkl-toggle-switch-widget__indicator > .jkl-icon__icon {
6769
- position: absolute;
6770
- inset: 0;
6771
- }
6772
7019
 
7020
+ @layer jokul.components {
7021
+ :where(.jkl-text) {
7022
+ font-weight: var(--jkl-typography-weight-normal);
7023
+ line-height: var(--jkl-line-height-relaxed);
7024
+ }
7025
+ .jkl-text[data-text-size] {
7026
+ margin-block: 0;
7027
+ }
7028
+ .jkl-text[data-text-size=xs] {
7029
+ font: var(--jkl-text-style-text-micro);
7030
+ }
7031
+ .jkl-text[data-text-size=s] {
7032
+ font: var(--jkl-text-style-paragraph-small);
7033
+ }
7034
+ .jkl-text[data-text-size=m] {
7035
+ font: var(--jkl-text-style-paragraph-medium);
7036
+ }
7037
+ .jkl-text[data-text-size=l] {
7038
+ font: var(--jkl-text-style-paragraph-large);
7039
+ }
7040
+ .jkl-text[data-bold],
7041
+ strong.jkl-text[data-text-size] {
7042
+ font-weight: var(--jkl-typography-weight-bold);
7043
+ }
7044
+ .jkl-text[data-short] {
7045
+ line-height: var(--jkl-line-height-tight);
7046
+ }
7047
+ :is(code, kbd, samp, var).jkl-text {
7048
+ font-family: var(--jkl-font-family-mono);
7049
+ }
7050
+ label.jkl-text {
7051
+ display: block;
7052
+ margin-block-end: var(--jkl-spacing-8);
7053
+ }
7054
+ }
7055
+ @layer jokul.components {
7056
+ :where(.jkl-title) {
7057
+ font-weight: var(--jkl-typography-weight-normal);
7058
+ line-height: var(--jkl-line-height-tight);
7059
+ }
7060
+ .jkl-title[data-text-size] {
7061
+ margin-block: 0;
7062
+ }
7063
+ .jkl-title[data-text-size=xs],
7064
+ .jkl-heading-xs {
7065
+ font: var(--jkl-text-style-heading-5);
7066
+ }
7067
+ :where(.jkl-heading-xs) {
7068
+ margin-block: 0;
7069
+ }
7070
+ .jkl-title[data-text-size=s],
7071
+ .jkl-heading-s {
7072
+ font: var(--jkl-text-style-heading-4);
7073
+ }
7074
+ :where(.jkl-heading-s) {
7075
+ margin-block: 0;
7076
+ }
7077
+ .jkl-title[data-text-size=m],
7078
+ .jkl-heading-m {
7079
+ font: var(--jkl-text-style-heading-3);
7080
+ }
7081
+ :where(.jkl-heading-m) {
7082
+ margin-block: 0;
7083
+ }
7084
+ .jkl-title[data-text-size=l],
7085
+ .jkl-heading-l {
7086
+ font: var(--jkl-text-style-heading-2);
7087
+ }
7088
+ :where(.jkl-heading-l) {
7089
+ margin-block: 0;
7090
+ }
7091
+ .jkl-title[data-text-size=xl],
7092
+ .jkl-heading-xl {
7093
+ font: var(--jkl-text-style-heading-1);
7094
+ }
7095
+ :where(.jkl-heading-xl) {
7096
+ margin-block: 0;
7097
+ }
7098
+ :is(label, legend).jkl-title[data-text-size] {
7099
+ font-weight: var(--jkl-typography-weight-normal);
7100
+ line-height: var(--jkl-line-height-relaxed);
7101
+ }
7102
+ label.jkl-title[data-text-size] {
7103
+ display: block;
7104
+ margin-block-end: var(--jkl-spacing-8);
7105
+ }
7106
+ }
6773
7107
  @layer jokul.components {
6774
7108
  .jkl-help {
6775
7109
  anchor-scope: all;
@@ -6797,8 +7131,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6797
7131
  padding: var(--jkl-unit-30);
6798
7132
  margin: var(--jkl-unit-05);
6799
7133
  position-anchor: --trigger;
6800
- background-color: var(--jkl-color-background-container-inverted);
6801
- color: var(--jkl-color-text-inverted);
7134
+ background-color: var(--jkl-color-background-contrast);
7135
+ color: var(--jkl-color-text-on-contrast);
6802
7136
  anchor-name: --help-box;
6803
7137
  }
6804
7138
  .jkl-help-popover[data-position=top] {