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

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 (258) hide show
  1. package/README.md +29 -6
  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/types.cjs +1 -1
  8. package/build/cjs/components/card/types.cjs.map +1 -1
  9. package/build/cjs/components/card/types.d.cts +2 -2
  10. package/build/cjs/components/checkbox/Checkbox.cjs +1 -1
  11. package/build/cjs/components/checkbox/Checkbox.cjs.map +1 -1
  12. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  13. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  14. package/build/cjs/components/cookie-consent/CookieConsent.d.cts +1 -1
  15. package/build/cjs/components/cookie-consent/types.d.cts +4 -0
  16. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  17. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  18. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  19. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  20. package/build/cjs/components/link/Link.cjs +1 -1
  21. package/build/cjs/components/link/Link.cjs.map +1 -1
  22. package/build/cjs/components/link/Link.d.cts +2 -2
  23. package/build/cjs/components/link/types.d.cts +1 -4
  24. package/build/cjs/components/modal/Modal.cjs +1 -1
  25. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  26. package/build/cjs/components/modal/Modal.d.cts +2 -9
  27. package/build/cjs/components/modal/index.d.cts +1 -1
  28. package/build/cjs/components/modal/types.d.cts +18 -0
  29. package/build/cjs/components/popover/Popover.cjs +1 -1
  30. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  31. package/build/cjs/components/radio-button/BaseRadioButton.cjs +1 -1
  32. package/build/cjs/components/radio-button/BaseRadioButton.cjs.map +1 -1
  33. package/build/cjs/core/tokens.cjs +2 -0
  34. package/build/cjs/core/tokens.cjs.map +1 -0
  35. package/build/cjs/core/tokens.d.cts +593 -0
  36. package/build/cjs/tailwind/colors.cjs +2 -0
  37. package/build/cjs/tailwind/colors.cjs.map +1 -0
  38. package/build/cjs/tailwind/colors.d.cts +39 -0
  39. package/build/cjs/tokens.cjs +1 -1
  40. package/build/cjs/tokens.cjs.map +1 -1
  41. package/build/cjs/tokens.d.cts +98 -39
  42. package/build/es/components/card/Card.js +1 -1
  43. package/build/es/components/card/Card.js.map +1 -1
  44. package/build/es/components/card/types.d.ts +2 -2
  45. package/build/es/components/card/types.js +1 -1
  46. package/build/es/components/card/types.js.map +1 -1
  47. package/build/es/components/checkbox/Checkbox.js +1 -1
  48. package/build/es/components/checkbox/Checkbox.js.map +1 -1
  49. package/build/es/components/cookie-consent/CookieConsent.d.ts +1 -1
  50. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  51. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  52. package/build/es/components/cookie-consent/types.d.ts +4 -0
  53. package/build/es/components/datepicker/DatePicker.js +1 -1
  54. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  55. package/build/es/components/expander/ExpandablePanel.js +1 -1
  56. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  57. package/build/es/components/link/Link.d.ts +2 -2
  58. package/build/es/components/link/Link.js +1 -1
  59. package/build/es/components/link/Link.js.map +1 -1
  60. package/build/es/components/link/types.d.ts +1 -4
  61. package/build/es/components/modal/Modal.d.ts +2 -9
  62. package/build/es/components/modal/Modal.js +1 -1
  63. package/build/es/components/modal/Modal.js.map +1 -1
  64. package/build/es/components/modal/index.d.ts +1 -1
  65. package/build/es/components/modal/types.d.ts +18 -0
  66. package/build/es/components/popover/Popover.js +1 -1
  67. package/build/es/components/popover/Popover.js.map +1 -1
  68. package/build/es/components/radio-button/BaseRadioButton.js +1 -1
  69. package/build/es/components/radio-button/BaseRadioButton.js.map +1 -1
  70. package/build/es/core/tokens.d.ts +593 -0
  71. package/build/es/core/tokens.js +2 -0
  72. package/build/es/core/tokens.js.map +1 -0
  73. package/build/es/tailwind/colors.d.ts +39 -0
  74. package/build/es/tailwind/colors.js +2 -0
  75. package/build/es/tailwind/colors.js.map +1 -0
  76. package/build/es/tokens.d.ts +98 -39
  77. package/build/es/tokens.js +1 -1
  78. package/build/es/tokens.js.map +1 -1
  79. package/codemods/__tests__/import-paths.test.mjs +84 -0
  80. package/codemods/import-paths.mjs +393 -0
  81. package/package.json +6 -1
  82. package/styles/base.css +483 -66
  83. package/styles/base.min.css +1 -1
  84. package/styles/components/autosuggest/autosuggest.css +2 -2
  85. package/styles/components/autosuggest/autosuggest.min.css +1 -1
  86. package/styles/components/autosuggest/autosuggest.scss +2 -2
  87. package/styles/components/beta/description-list/description-list.css +1 -1
  88. package/styles/components/beta/description-list/description-list.min.css +1 -1
  89. package/styles/components/beta/description-list/description-list.scss +1 -1
  90. package/styles/components/beta/nav-link/navlink.css +2 -2
  91. package/styles/components/beta/nav-link/navlink.min.css +1 -1
  92. package/styles/components/beta/nav-link/navlink.scss +2 -2
  93. package/styles/components/beta/select/select.css +9 -9
  94. package/styles/components/beta/select/select.min.css +1 -1
  95. package/styles/components/beta/select/select.scss +8 -7
  96. package/styles/components/breadcrumb/breadcrumb.css +1 -1
  97. package/styles/components/breadcrumb/breadcrumb.min.css +1 -1
  98. package/styles/components/button/button.css +6 -2
  99. package/styles/components/button/button.min.css +1 -1
  100. package/styles/components/button/button.scss +12 -12
  101. package/styles/components/card/card.css +6 -9
  102. package/styles/components/card/card.min.css +1 -1
  103. package/styles/components/card/card.scss +6 -10
  104. package/styles/components/checkbox/checkbox.css +43 -9
  105. package/styles/components/checkbox/checkbox.min.css +1 -1
  106. package/styles/components/checkbox/checkbox.scss +38 -21
  107. package/styles/components/checkbox-panel/checkbox-panel.css +65 -26
  108. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  109. package/styles/components/checkbox-panel/checkbox-panel.scss +4 -0
  110. package/styles/components/chip/chip.css +2 -2
  111. package/styles/components/chip/chip.min.css +1 -1
  112. package/styles/components/chip/chip.scss +1 -1
  113. package/styles/components/combobox/combobox.css +18 -15
  114. package/styles/components/combobox/combobox.min.css +1 -1
  115. package/styles/components/combobox/combobox.scss +9 -6
  116. package/styles/components/countdown/countdown.css +4 -4
  117. package/styles/components/countdown/countdown.min.css +1 -1
  118. package/styles/components/datepicker/_calendar-date-button.scss +7 -7
  119. package/styles/components/datepicker/_calendar-navigation-dropdown.scss +1 -1
  120. package/styles/components/datepicker/_calendar.scss +6 -7
  121. package/styles/components/datepicker/datepicker.css +19 -11
  122. package/styles/components/datepicker/datepicker.min.css +1 -1
  123. package/styles/components/description-list/description-list.css +1 -1
  124. package/styles/components/description-list/description-list.min.css +1 -1
  125. package/styles/components/description-list/description-list.scss +1 -1
  126. package/styles/components/expander/expandable.css +17 -17
  127. package/styles/components/expander/expandable.min.css +1 -1
  128. package/styles/components/expander/expandable.scss +15 -19
  129. package/styles/components/feedback/feedback.css +6 -8
  130. package/styles/components/feedback/feedback.min.css +1 -1
  131. package/styles/components/feedback/feedback.scss +4 -9
  132. package/styles/components/file/file.css +5 -5
  133. package/styles/components/file/file.min.css +1 -1
  134. package/styles/components/file/file.scss +5 -5
  135. package/styles/components/file-input/file-input.css +26 -22
  136. package/styles/components/file-input/file-input.min.css +1 -1
  137. package/styles/components/file-input/file-input.scss +3 -3
  138. package/styles/components/help/help.css +2 -2
  139. package/styles/components/help/help.min.css +1 -1
  140. package/styles/components/help/help.scss +2 -2
  141. package/styles/components/icon/icon.css +4 -4
  142. package/styles/components/icon/icon.min.css +1 -1
  143. package/styles/components/icon/icon.scss +4 -4
  144. package/styles/components/icon-button/icon-button.css +1 -1
  145. package/styles/components/icon-button/icon-button.min.css +1 -1
  146. package/styles/components/input-group/input-group.css +2 -2
  147. package/styles/components/input-group/input-group.min.css +1 -1
  148. package/styles/components/input-panel/input-panel.css +19 -17
  149. package/styles/components/input-panel/input-panel.min.css +1 -1
  150. package/styles/components/input-panel/input-panel.scss +20 -18
  151. package/styles/components/link/link.css +1 -1
  152. package/styles/components/link/link.min.css +1 -1
  153. package/styles/components/link-list/link-list.css +6 -2
  154. package/styles/components/link-list/link-list.min.css +1 -1
  155. package/styles/components/link-list/link-list.scss +6 -2
  156. package/styles/components/loader/loader.css +6 -6
  157. package/styles/components/loader/loader.min.css +1 -1
  158. package/styles/components/loader/skeleton-loader.css +4 -4
  159. package/styles/components/loader/skeleton-loader.min.css +1 -1
  160. package/styles/components/loader/skeleton-loader.scss +1 -1
  161. package/styles/components/menu/_menu-divider.scss +1 -1
  162. package/styles/components/menu/menu.css +3 -3
  163. package/styles/components/menu/menu.min.css +1 -1
  164. package/styles/components/menu/menu.scss +2 -2
  165. package/styles/components/message/message.css +19 -9
  166. package/styles/components/message/message.min.css +1 -1
  167. package/styles/components/message/message.scss +16 -6
  168. package/styles/components/modal/_layout.scss +22 -0
  169. package/styles/components/modal/_modal-base.scss +32 -0
  170. package/styles/components/modal/_motion.scss +45 -0
  171. package/styles/components/modal/_overlay.scss +20 -0
  172. package/styles/components/modal/_parts.scss +33 -0
  173. package/styles/components/modal/_placement.scss +59 -0
  174. package/styles/components/modal/modal.css +118 -34
  175. package/styles/components/modal/modal.min.css +1 -1
  176. package/styles/components/modal/modal.scss +6 -95
  177. package/styles/components/nav-link/nav-link.css +1 -1
  178. package/styles/components/nav-link/nav-link.min.css +1 -1
  179. package/styles/components/pagination/pagination.css +1 -1
  180. package/styles/components/pagination/pagination.min.css +1 -1
  181. package/styles/components/popover/popover.css +12 -1
  182. package/styles/components/popover/popover.min.css +1 -1
  183. package/styles/components/popover/popover.scss +15 -1
  184. package/styles/components/progress-bar/progress-bar.css +27 -3
  185. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  186. package/styles/components/progress-bar/progress-bar.scss +5 -0
  187. package/styles/components/radio-button/radio-button.css +41 -6
  188. package/styles/components/radio-button/radio-button.min.css +1 -1
  189. package/styles/components/radio-button/radio-button.scss +35 -16
  190. package/styles/components/radio-panel/radio-panel.css +22 -17
  191. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  192. package/styles/components/radio-panel/radio-panel.scss +4 -0
  193. package/styles/components/search/search-with-submit-button.css +1 -1
  194. package/styles/components/search/search-with-submit-button.min.css +1 -1
  195. package/styles/components/search/search-with-submit-button.scss +1 -1
  196. package/styles/components/search/search.css +2 -2
  197. package/styles/components/search/search.min.css +1 -1
  198. package/styles/components/search/search.scss +1 -1
  199. package/styles/components/segmented-control/segmented-control.css +54 -19
  200. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  201. package/styles/components/segmented-control/segmented-control.scss +4 -4
  202. package/styles/components/select/select.css +15 -15
  203. package/styles/components/select/select.min.css +1 -1
  204. package/styles/components/select/select.scss +12 -12
  205. package/styles/components/summary-table/summary-table.css +2 -2
  206. package/styles/components/summary-table/summary-table.min.css +1 -1
  207. package/styles/components/summary-table/summary-table.scss +2 -2
  208. package/styles/components/system-message/system-message.css +20 -10
  209. package/styles/components/system-message/system-message.min.css +1 -1
  210. package/styles/components/system-message/system-message.scss +17 -7
  211. package/styles/components/table/_table-head.scss +1 -1
  212. package/styles/components/table/_table-row.scss +2 -2
  213. package/styles/components/table/table.css +3 -3
  214. package/styles/components/table/table.min.css +1 -1
  215. package/styles/components/table-of-contents/table-of-contents.css +1 -1
  216. package/styles/components/table-of-contents/table-of-contents.min.css +1 -1
  217. package/styles/components/table-of-contents/table-of-contents.scss +1 -1
  218. package/styles/components/tabs/tabs.css +3 -3
  219. package/styles/components/tabs/tabs.min.css +1 -1
  220. package/styles/components/tabs/tabs.scss +2 -2
  221. package/styles/components/tag/tag.css +16 -6
  222. package/styles/components/tag/tag.min.css +1 -1
  223. package/styles/components/tag/tag.scss +16 -6
  224. package/styles/components/text-area/text-area.css +8 -8
  225. package/styles/components/text-area/text-area.min.css +1 -1
  226. package/styles/components/text-input/text-input.css +8 -8
  227. package/styles/components/text-input/text-input.min.css +1 -1
  228. package/styles/components/toast/toast.css +19 -12
  229. package/styles/components/toast/toast.min.css +1 -1
  230. package/styles/components/toast/toast.scss +15 -12
  231. package/styles/components/toggle-switch/_toggle-slider.scss +4 -4
  232. package/styles/components/toggle-switch/toggle-switch.css +14 -19
  233. package/styles/components/toggle-switch/toggle-switch.min.css +2 -2
  234. package/styles/components/toggle-switch/toggle-switch.scss +9 -16
  235. package/styles/components/tooltip/tooltip.css +3 -3
  236. package/styles/components/tooltip/tooltip.min.css +1 -1
  237. package/styles/components/tooltip/tooltip.scss +3 -3
  238. package/styles/components.css +536 -294
  239. package/styles/components.min.css +2 -2
  240. package/styles/core/jkl/_tokens.scss +59 -0
  241. package/styles/core/jkl/legacy/_dynamic-colors.scss +40 -0
  242. package/styles/core/jkl/legacy/_tokens.scss +742 -0
  243. package/styles/core/theme/_color-tokens.scss +73 -0
  244. package/styles/core/theme/_legacy-color-tokens.scss +81 -0
  245. package/styles/core/theme/_legacy-tokens.scss +279 -0
  246. package/styles/core/theme/_spacing-tokens.scss +33 -0
  247. package/styles/core/theme/_tokens.scss +33 -0
  248. package/styles/hooks/stories/styles.scss +2 -2
  249. package/styles/jkl/_ornaments.scss +1 -1
  250. package/styles/jkl/_tokens.scss +151 -71
  251. package/styles/shared/input/shared-input-styles.scss +6 -6
  252. package/styles/shared/track/track.scss +2 -2
  253. package/styles/tailwind.css +108 -66
  254. package/styles/theme/_color-scheme.scss +135 -66
  255. package/styles/theme/_index.scss +3 -0
  256. package/styles/theme/brands/dnb/_color-scheme.scss +119 -0
  257. package/styles/theme/brands/eika/_color-scheme.scss +119 -0
  258. package/styles/theme/brands/sparebank1/_color-scheme.scss +119 -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;
@@ -77,8 +77,8 @@
77
77
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
78
78
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
79
79
  --text-color: var(--jkl-color-text-default);
80
- --background-color: var(--jkl-color-background-input-base);
81
- --border-color: var(--jkl-color-border-input);
80
+ --background-color: transparent;
81
+ --border-color: var(--jkl-color-border-default);
82
82
  --placeholder-color: var(--jkl-color-text-subdued);
83
83
  border-radius: var(--jkl-border-radius-s);
84
84
  box-sizing: border-box;
@@ -95,15 +95,15 @@
95
95
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
96
96
  }
97
97
  .jkl-text-input-wrapper:focus-within, .jkl-text-input-wrapper:has([data-focused=true]) {
98
- --background-color: var(--jkl-color-background-input-focus);
98
+ --background-color: var(--jkl-color-background-container);
99
99
  }
100
100
  .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);
101
+ --background-color: var(--jkl-color-error-background-container);
102
+ --text-color: var(--jkl-color-error-text-default);
103
103
  --placeholder-color: color(from currentColor sRGB r g b / 75%);
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) {
@@ -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-action);
248
+ --red-cross-path: var(--jkl-color-error-text-on-action);
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-action);
260
+ --green-check-path: var(--jkl-color-success-text-on-action);
261
261
  width: 1.3em;
262
262
  height: 1.3em;
263
263
  }
@@ -357,7 +357,7 @@
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 {
@@ -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-ufcxafr 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-ufcxafr {
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-action);
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-action);
540
540
  display: inline-block;
541
541
  min-width: min-content;
542
542
  max-width: min(19.375rem, 100%);
@@ -587,7 +587,7 @@
587
587
  --button-color: var(--jkl-color-text-interactive-hover);
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 {
@@ -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
  }
@@ -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-ufcxag3;
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-ufcxaga;
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-ufcxaha;
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-ufcxag3 {
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-ufcxaga {
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-ufcxaha {
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-ufcxahy;
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-ufcxahy;
967
971
  }
968
972
  }
969
- @keyframes jkl-blink-udz456m {
973
+ @keyframes jkl-blink-ufcxahy {
970
974
  0% {
971
975
  opacity: 1;
972
976
  }
@@ -992,7 +996,7 @@
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
1002
  --background-color: transparent;
@@ -1037,24 +1041,21 @@
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);
1044
+ .jkl-card--filled {
1045
+ --background-color: var(--jkl-color-background-container);
1045
1046
  }
1046
1047
  .jkl-card--outlined {
1047
- --border-color: var(--jkl-color-border-separator);
1048
+ --border-color: var(--jkl-color-border-default);
1048
1049
  }
1049
1050
  .jkl-card[data-clickable=true] {
1050
1051
  cursor: pointer;
1051
1052
  }
1052
1053
  .jkl-card[data-clickable=true]:hover {
1053
- --border-color: var(--jkl-color-border-separator-hover);
1054
+ --border-color: var(--jkl-color-border-strong);
1054
1055
  --border-width: 0.125rem;
1055
1056
  }
1056
1057
  .jkl-card[data-clickable=true]:focus-visible {
1057
- outline: 3px solid var(--jkl-color-border-action);
1058
+ outline: 3px solid var(--jkl-color-border-strong);
1058
1059
  outline-offset: 3px;
1059
1060
  }
1060
1061
  .jkl-card-image {
@@ -1105,12 +1106,14 @@
1105
1106
  .jkl-tag {
1106
1107
  --padding: var(--jkl-unit-02) var(--jkl-unit-10);
1107
1108
  --gap: var(--jkl-unit-05);
1108
- --background-color: var(--jkl-color-background-alert-neutral);
1109
- --text-color: var(--jkl-color-text-on-alert);
1109
+ --background-color: var(--jkl-color-background-container);
1110
+ --text-color: var(--jkl-color-text-default);
1111
+ --border-color: var(--jkl-color-border-subdued);
1110
1112
  font: var(--jkl-text-style-text-small);
1111
1113
  font-weight: var(--jkl-font-weight-bold);
1112
1114
  background-color: var(--background-color);
1113
1115
  color: var(--text-color);
1116
+ border: 1px solid var(--border-color);
1114
1117
  border-radius: 0.25rem;
1115
1118
  display: inline-flex;
1116
1119
  align-items: center;
@@ -1119,16 +1122,24 @@
1119
1122
  gap: var(--gap);
1120
1123
  }
1121
1124
  .jkl-tag--info {
1122
- --background-color: var(--jkl-color-background-alert-info);
1125
+ --background-color: var(--jkl-color-info-background-container);
1126
+ --text-color: var(--jkl-color-info-text-default);
1127
+ --border-color: var(--jkl-color-info-border-subdued);
1123
1128
  }
1124
1129
  .jkl-tag--warning {
1125
- --background-color: var(--jkl-color-background-alert-warning);
1130
+ --background-color: var(--jkl-color-warning-background-container);
1131
+ --text-color: var(--jkl-color-warning-text-default);
1132
+ --border-color: var(--jkl-color-warning-border-subdued);
1126
1133
  }
1127
1134
  .jkl-tag--error {
1128
- --background-color: var(--jkl-color-background-alert-error);
1135
+ --background-color: var(--jkl-color-error-background-container);
1136
+ --text-color: var(--jkl-color-error-text-default);
1137
+ --border-color: var(--jkl-color-error-border-subdued);
1129
1138
  }
1130
1139
  .jkl-tag--success {
1131
- --background-color: var(--jkl-color-background-alert-success);
1140
+ --background-color: var(--jkl-color-success-background-container);
1141
+ --text-color: var(--jkl-color-success-text-default);
1142
+ --border-color: var(--jkl-color-success-border-subdued);
1132
1143
  }
1133
1144
  @media screen and (forced-colors: active) {
1134
1145
  .jkl-tag {
@@ -1156,8 +1167,8 @@
1156
1167
  --jkl-checkbox-error-color: #ab2e43;
1157
1168
  --jkl-checkbox-error-color: light-dark(#ab2e43, #d79ba5);
1158
1169
  /* stylelint-enable declaration-block-no-duplicate-custom-properties */
1159
- --box-color: var(--jkl-color-border-action);
1160
- --check-color: var(--jkl-color-border-action);
1170
+ --box-color: var(--jkl-color-border-strong);
1171
+ --check-color: var(--jkl-color-border-strong);
1161
1172
  --text-color: var(--jkl-color-text-default);
1162
1173
  --background-color: transparent;
1163
1174
  font: var(--jkl-text-style-text-medium);
@@ -1168,10 +1179,37 @@
1168
1179
  }
1169
1180
  .jkl-checkbox__input {
1170
1181
  position: absolute;
1171
- opacity: 0;
1172
- pointer-events: none;
1173
- inset: 0 auto 0 0;
1174
- width: 1lh;
1182
+ inset-block-start: 0;
1183
+ inset-inline-start: 0;
1184
+ block-size: 1lh;
1185
+ inline-size: 1lh;
1186
+ margin: 0;
1187
+ padding: 0;
1188
+ cursor: pointer;
1189
+ z-index: 1;
1190
+ appearance: none;
1191
+ background: transparent;
1192
+ border: 0;
1193
+ }
1194
+ .jkl-checkbox__input {
1195
+ outline: 0;
1196
+ border-style: none;
1197
+ outline-style: none;
1198
+ }
1199
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1200
+ outline: 0;
1201
+ outline-style: none;
1202
+ }
1203
+ @media screen and (forced-colors: active) {
1204
+ .jkl-checkbox__input {
1205
+ outline: revert;
1206
+ border-style: revert;
1207
+ outline-style: revert;
1208
+ }
1209
+ .jkl-checkbox__input:active, .jkl-checkbox__input:hover, .jkl-checkbox__input:focus {
1210
+ outline: revert;
1211
+ outline-style: revert;
1212
+ }
1175
1213
  }
1176
1214
  .jkl-checkbox__label {
1177
1215
  cursor: pointer;
@@ -1197,15 +1235,22 @@
1197
1235
  transition-duration: var(--jkl-motion-timing-energetic);
1198
1236
  transition-property: font-variation-settings, transform;
1199
1237
  }
1200
- .jkl-checkbox__label:has(+ :checked)::before {
1238
+ .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1239
+ outline: 3px solid var(--jkl-color-border-strong);
1240
+ outline-offset: 3px;
1241
+ }
1242
+ .jkl-checkbox__input:is(:hover, :active) + .jkl-checkbox__label, .jkl-checkbox__label:hover, .jkl-checkbox__label:active {
1243
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
1244
+ }
1245
+ .jkl-checkbox__input:checked + .jkl-checkbox__label::before {
1201
1246
  content: "check_box";
1202
1247
  --jkl-icon-fill: 1;
1203
1248
  }
1204
- .jkl-checkbox__label:has(+ :indeterminate:not(:checked))::before {
1249
+ .jkl-checkbox__input:indeterminate:not(:checked) + .jkl-checkbox__label::before {
1205
1250
  content: "indeterminate_check_box";
1206
1251
  --jkl-icon-fill: 1;
1207
1252
  }
1208
- .jkl-checkbox__label:has(+ [aria-invalid=true])::before {
1253
+ .jkl-checkbox__input[aria-invalid=true] + .jkl-checkbox__label::before {
1209
1254
  color: var(--jkl-checkbox-error-color);
1210
1255
  }
1211
1256
  .jkl-checkbox + .jkl-checkbox {
@@ -1220,7 +1265,7 @@
1220
1265
  }
1221
1266
  @layer jokul.components {
1222
1267
  .jkl-input-panel {
1223
- --outer-border-color: var(--jkl-color-border-input);
1268
+ --outer-border-color: var(--jkl-color-border-default);
1224
1269
  --outer-border-thickness: 0.0625rem;
1225
1270
  --background-color: transparent;
1226
1271
  --padding-inline: var(--jkl-unit-25);
@@ -1243,26 +1288,28 @@
1243
1288
  position: relative;
1244
1289
  padding: var(--jkl-unit-20) var(--padding-inline);
1245
1290
  }
1291
+ .jkl-input-panel__header .jkl-radio-button,
1292
+ .jkl-input-panel__header .jkl-checkbox {
1293
+ grid-column: 1/-1;
1294
+ grid-row: 1;
1295
+ inline-size: 100%;
1296
+ }
1297
+ .jkl-input-panel__header label {
1298
+ inline-size: 100%;
1299
+ }
1246
1300
  .jkl-input-panel__header__amount {
1247
1301
  display: flex;
1248
1302
  height: 100%;
1249
1303
  align-items: center;
1304
+ grid-column: 2;
1305
+ grid-row: 1;
1306
+ justify-self: end;
1307
+ pointer-events: none;
1308
+ position: relative;
1309
+ z-index: 1;
1250
1310
  font: var(--jkl-text-style-text-medium);
1251
1311
  font-weight: var(--jkl-font-weight-bold);
1252
1312
  }
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
1313
  .jkl-input-panel__description {
1267
1314
  height: 0;
1268
1315
  overflow: hidden;
@@ -1275,18 +1322,18 @@
1275
1322
  transition-property: height;
1276
1323
  }
1277
1324
  .jkl-input-panel:has(:focus-visible) {
1278
- outline: 3px solid var(--jkl-color-border-action);
1325
+ outline: 3px solid var(--jkl-color-border-strong);
1279
1326
  outline-offset: 3px;
1280
1327
  }
1281
1328
  .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);
1329
+ --background-color: var(--jkl-color-background-container);
1283
1330
  }
1284
1331
  .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
1332
  height: auto;
1286
1333
  padding-block-end: var(--jkl-unit-20);
1287
1334
  }
1288
1335
  .jkl-input-panel:has(input:hover) {
1289
- --outer-border-color: var(--jkl-color-border-separator-hover);
1336
+ --outer-border-color: var(--jkl-color-border-default);
1290
1337
  --outer-border-thickness: 0.125rem;
1291
1338
  cursor: pointer;
1292
1339
  }
@@ -1296,6 +1343,9 @@
1296
1343
  /* Visuell justering ettersom ikonet ikke fyller bounding box helt */
1297
1344
  margin-inline-start: -0.1em;
1298
1345
  }
1346
+ .jkl-checkbox-panel .jkl-checkbox__input:focus-visible + .jkl-checkbox__label::before {
1347
+ outline: none;
1348
+ }
1299
1349
  }
1300
1350
  .jkl-chip {
1301
1351
  --padding-inline: var(--jkl-unit-15);
@@ -1303,7 +1353,7 @@
1303
1353
  --height: var(--jkl-unit-40);
1304
1354
  --gap: var(--jkl-unit-05);
1305
1355
  --text-color: var(--jkl-color-text-default);
1306
- --border-color: var(--jkl-color-border-separator);
1356
+ --border-color: var(--jkl-color-border-subdued);
1307
1357
  --background-color: transparent;
1308
1358
  --border-width: 0.0625rem;
1309
1359
  font: var(--jkl-text-style-text-small);
@@ -1340,7 +1390,7 @@
1340
1390
  transition-property: opacity;
1341
1391
  }
1342
1392
  .jkl-chip:focus-visible {
1343
- outline: 3px solid var(--jkl-color-border-action);
1393
+ outline: 3px solid var(--jkl-color-border-strong);
1344
1394
  outline-offset: 3px;
1345
1395
  }
1346
1396
  .jkl-chip:hover::after {
@@ -1423,8 +1473,8 @@
1423
1473
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
1424
1474
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
1425
1475
  --text-color: var(--jkl-color-text-default);
1426
- --background-color: var(--jkl-color-background-input-base);
1427
- --border-color: var(--jkl-color-border-input);
1476
+ --background-color: transparent;
1477
+ --border-color: var(--jkl-color-border-default);
1428
1478
  --placeholder-color: var(--jkl-color-text-subdued);
1429
1479
  border-radius: var(--jkl-border-radius-s);
1430
1480
  box-sizing: border-box;
@@ -1441,15 +1491,15 @@
1441
1491
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
1442
1492
  }
1443
1493
  .jkl-combobox__wrapper:focus-within, .jkl-combobox__wrapper:has([data-focused=true]) {
1444
- --background-color: var(--jkl-color-background-input-focus);
1494
+ --background-color: var(--jkl-color-background-container);
1445
1495
  }
1446
1496
  .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);
1497
+ --background-color: var(--jkl-color-error-background-container);
1498
+ --text-color: var(--jkl-color-error-text-default);
1449
1499
  --placeholder-color: color(from currentColor sRGB r g b / 75%);
1450
1500
  }
1451
1501
  .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);
1502
+ --border-color: var(--jkl-color-border-strong);
1453
1503
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
1454
1504
  }
1455
1505
  @media screen and (forced-colors: active) {
@@ -1458,11 +1508,11 @@
1458
1508
  }
1459
1509
  }
1460
1510
  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);
1511
+ outline: 3px solid var(--jkl-color-border-strong);
1462
1512
  outline-offset: 3px;
1463
1513
  }
1464
1514
  .jkl-combobox__wrapper > .jkl-icon-button:focus-visible {
1465
- outline: 3px solid var(--jkl-color-border-action);
1515
+ outline: 3px solid var(--jkl-color-border-strong);
1466
1516
  outline-offset: -8px;
1467
1517
  }
1468
1518
  @media screen and (forced-colors: active) {
@@ -1505,9 +1555,9 @@
1505
1555
  padding: 0.46875rem;
1506
1556
  }
1507
1557
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-combobox__wrapper:has(:focus-visible) {
1508
- outline: 3px solid var(--jkl-color-border-action);
1558
+ outline: 3px solid var(--jkl-color-border-strong);
1509
1559
  outline-offset: 3px;
1510
- background-color: var(--jkl-color-background-input-focus);
1560
+ background-color: var(--jkl-color-background-container);
1511
1561
  }
1512
1562
  .jkl-combobox__wrapper:has(.jkl-icon-button:focus-visible) {
1513
1563
  outline: none;
@@ -1520,6 +1570,7 @@
1520
1570
  outline: none;
1521
1571
  padding: 0;
1522
1572
  flex: 1 1 1ch;
1573
+ min-width: 0;
1523
1574
  max-height: var(--jkl-combobox-search-input-height);
1524
1575
  background: none;
1525
1576
  -webkit-appearance: none;
@@ -1593,8 +1644,8 @@
1593
1644
  z-index: 7000;
1594
1645
  left: -0.0625rem;
1595
1646
  right: -0.0625rem;
1596
- background-color: var(--jkl-color-background-container-high);
1597
- border: 0.125rem solid var(--jkl-color-border-input-focus);
1647
+ background-color: var(--jkl-color-background-container);
1648
+ border: 0.125rem solid var(--jkl-color-border-strong);
1598
1649
  border-radius: 0 0 0.1875rem 0.1875rem;
1599
1650
  box-sizing: border-box;
1600
1651
  max-height: calc((var(--jkl-combobox-max-shown-options, 5) + 0.5) * var(--jkl-combobox-input-height));
@@ -1632,10 +1683,12 @@
1632
1683
  }
1633
1684
  .jkl-combobox__chips {
1634
1685
  display: flex;
1686
+ flex: 1 1 auto;
1635
1687
  flex-wrap: wrap;
1636
1688
  align-items: center;
1637
1689
  gap: var(--jkl-combobox-chips-gap);
1638
- width: 100%;
1690
+ min-width: 0;
1691
+ box-sizing: border-box;
1639
1692
  padding: var(--jkl-text-input-padding);
1640
1693
  }
1641
1694
  .jkl-combobox__chips .jkl-chip {
@@ -1646,12 +1699,12 @@
1646
1699
  }
1647
1700
  .jkl-combobox--invalid .jkl-combobox__search-input,
1648
1701
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1649
- background-color: var(--jkl-color-background-alert-error);
1702
+ background-color: var(--jkl-color-error-background-container);
1650
1703
  }
1651
1704
  .jkl-combobox--invalid .jkl-combobox__search-input,
1652
1705
  .jkl-combobox--invalid .jkl-combobox__button,
1653
1706
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1654
- color: var(--jkl-color-text-on-alert);
1707
+ color: var(--jkl-color-error-text-default);
1655
1708
  }
1656
1709
  .jkl-combobox--menu-closed .jkl-combobox__search-input {
1657
1710
  position: absolute;
@@ -1765,6 +1818,7 @@
1765
1818
  }
1766
1819
  }
1767
1820
  @layer jokul.components {
1821
+ /* Base layout */
1768
1822
  .jkl-modal-container,
1769
1823
  .jkl-modal-overlay {
1770
1824
  position: fixed;
@@ -1773,29 +1827,46 @@
1773
1827
  .jkl-modal-container {
1774
1828
  z-index: 9000;
1775
1829
  display: flex;
1830
+ align-items: center;
1831
+ justify-content: center;
1776
1832
  }
1777
1833
  .jkl-modal-container[aria-hidden=true] {
1778
- display: none;
1834
+ visibility: hidden;
1835
+ pointer-events: none;
1779
1836
  }
1837
+ }
1838
+ @layer jokul.components {
1780
1839
  .jkl-modal-overlay {
1781
1840
  background-color: rgba(27, 25, 23, 0.8);
1841
+ opacity: 0;
1842
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1843
+ transition-duration: var(--jkl-motion-timing-expressive);
1844
+ transition-property: opacity;
1845
+ }
1846
+ .jkl-modal-container:not([aria-hidden=true]) .jkl-modal-overlay {
1847
+ opacity: 1;
1782
1848
  }
1849
+ @media (prefers-reduced-motion: reduce) {
1850
+ .jkl-modal-overlay {
1851
+ transition-duration: 0ms;
1852
+ }
1853
+ }
1854
+ }
1855
+ @layer jokul.components {
1783
1856
  .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;
1857
+ --margin: var(--jkl-spacing-m);
1858
+ container-type: inline-size;
1859
+ box-sizing: border-box;
1860
+ margin: var(--margin);
1861
+ padding: var(--modal-padding, var(--jkl-unit-40));
1788
1862
  z-index: 9000;
1789
- position: relative;
1790
- background-color: var(--jkl-color-background-container-high);
1791
- border-radius: 0.125rem;
1863
+ background-color: var(--jkl-color-background-container);
1864
+ border-radius: var(--jkl-border-radius-l);
1792
1865
  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);
1866
+ width: min(100vw - 2 * var(--margin), var(--modal-width, 60ch));
1867
+ max-width: none;
1796
1868
  max-height: 90vh;
1797
1869
  overflow: auto;
1798
- padding: var(--jkl-modal-padding);
1799
1870
  display: flex;
1800
1871
  flex-direction: column;
1801
1872
  }
@@ -1804,26 +1875,100 @@
1804
1875
  border-color: CanvasText;
1805
1876
  }
1806
1877
  }
1807
- @media (width >= 0) and (max-width: 679px) {
1808
- .jkl-modal {
1809
- margin: auto var(--jkl-unit-30);
1810
- }
1878
+ }
1879
+ @layer jokul.components {
1880
+ .jkl-modal-container--slide-in {
1881
+ --jkl-modal-slide-x: 0px;
1882
+ --jkl-modal-slide-y: 12px;
1883
+ transition-timing-function: var(--jkl-motion-easing-exit);
1884
+ transition-duration: var(--jkl-motion-timing-expressive);
1885
+ transition-property: visibility;
1886
+ transition-duration: 0ms;
1811
1887
  }
1812
- .jkl-modal-header {
1813
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1888
+ .jkl-modal-container--slide-in[aria-hidden=true] {
1889
+ display: flex;
1890
+ visibility: hidden;
1891
+ pointer-events: none;
1892
+ transition-delay: var(--jkl-motion-timing-expressive);
1814
1893
  }
1815
- @media (width >= 0) and (max-width: 679px) {
1816
- .jkl-modal-header {
1817
- --jkl-modal-header-margin: 0 0 var(--jkl-unit-15);
1894
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) {
1895
+ visibility: visible;
1896
+ transition-delay: 0ms;
1897
+ }
1898
+ .jkl-modal-container--slide-in .jkl-modal {
1899
+ transition-timing-function: var(--jkl-motion-easing-entrance);
1900
+ transition-duration: var(--jkl-motion-timing-expressive);
1901
+ transition-property: transform, opacity;
1902
+ transform: translate(var(--jkl-modal-slide-x), var(--jkl-modal-slide-y));
1903
+ opacity: 0;
1904
+ will-change: transform, opacity;
1905
+ }
1906
+ .jkl-modal-container--slide-in:not([aria-hidden=true]) .jkl-modal {
1907
+ transform: translate(0, 0);
1908
+ opacity: 1;
1909
+ }
1910
+ @media (prefers-reduced-motion: reduce) {
1911
+ .jkl-modal-container--slide-in .jkl-modal {
1912
+ transition-duration: 0ms;
1818
1913
  }
1819
1914
  }
1915
+ }
1916
+ @layer jokul.components {
1917
+ /* Placement: bottom */
1918
+ .jkl-modal-container--placement-bottom {
1919
+ align-items: flex-end;
1920
+ }
1921
+ .jkl-modal-container--placement-bottom.jkl-modal-container--slide-in {
1922
+ --jkl-modal-slide-x: 0px;
1923
+ --jkl-modal-slide-y: 24px;
1924
+ }
1925
+ .jkl-modal-container--placement-bottom .jkl-modal {
1926
+ --margin: 0px;
1927
+ width: min(100vw, var(--modal-width, 100vw));
1928
+ border-bottom-left-radius: 0;
1929
+ border-bottom-right-radius: 0;
1930
+ }
1931
+ /* Placement: left */
1932
+ .jkl-modal-container--placement-left {
1933
+ justify-content: flex-start;
1934
+ }
1935
+ .jkl-modal-container--placement-left.jkl-modal-container--slide-in {
1936
+ --jkl-modal-slide-x: -24px;
1937
+ --jkl-modal-slide-y: 0px;
1938
+ }
1939
+ .jkl-modal-container--placement-left .jkl-modal {
1940
+ height: 100%;
1941
+ max-height: 100%;
1942
+ margin-block: 0;
1943
+ margin-inline-start: 0;
1944
+ border-top-left-radius: 0;
1945
+ border-bottom-left-radius: 0;
1946
+ }
1947
+ /* Placement: right */
1948
+ .jkl-modal-container--placement-right {
1949
+ justify-content: flex-end;
1950
+ }
1951
+ .jkl-modal-container--placement-right.jkl-modal-container--slide-in {
1952
+ --jkl-modal-slide-x: 24px;
1953
+ --jkl-modal-slide-y: 0px;
1954
+ }
1955
+ .jkl-modal-container--placement-right .jkl-modal {
1956
+ height: 100%;
1957
+ max-height: 100%;
1958
+ margin-block: 0;
1959
+ margin-inline-end: 0;
1960
+ border-top-right-radius: 0;
1961
+ border-bottom-right-radius: 0;
1962
+ }
1963
+ }
1964
+ @layer jokul.components {
1820
1965
  .jkl-modal-header {
1966
+ --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1821
1967
  display: flex;
1822
1968
  flex-direction: row;
1823
1969
  justify-content: space-between;
1824
1970
  align-items: center;
1825
1971
  margin: var(--jkl-modal-header-margin);
1826
- gap: var(--jkl-modal-gap);
1827
1972
  }
1828
1973
  .jkl-modal-body {
1829
1974
  font: var(--jkl-text-style-paragraph-medium);
@@ -1832,20 +1977,12 @@
1832
1977
  font: var(--jkl-text-style-heading-3);
1833
1978
  }
1834
1979
  .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);
1980
+ margin-block-start: var(--jkl-unit-50);
1844
1981
  display: flex;
1845
1982
  flex-direction: column;
1846
- gap: var(--jkl-unit-20);
1983
+ gap: var(--jkl-unit-15) var(--jkl-unit-20);
1847
1984
  }
1848
- @media (min-width: 60ch) {
1985
+ @container (width > 35ch /* ~380px ved vanlig zoom/size */) {
1849
1986
  .jkl-modal-actions {
1850
1987
  flex-direction: row-reverse;
1851
1988
  align-self: flex-end;
@@ -1854,8 +1991,8 @@
1854
1991
  }
1855
1992
  @layer jokul.components {
1856
1993
  .jkl-countdown {
1857
- --track-color: var(--jkl-color-border-separator);
1858
- --bar-color: var(--jkl-color-border-input-focus);
1994
+ --track-color: var(--jkl-color-border-subdued);
1995
+ --bar-color: var(--jkl-color-border-strong);
1859
1996
  --bar-height: 0.25rem;
1860
1997
  background-color: var(--track-color);
1861
1998
  border-radius: 6.25rem;
@@ -1877,10 +2014,10 @@
1877
2014
  }
1878
2015
  }
1879
2016
  .jkl-countdown__tracker {
1880
- animation: jkl-downcount-udz458g var(--duration) linear forwards;
2017
+ animation: jkl-downcount-ufcxaj2 var(--duration) linear forwards;
1881
2018
  animation-play-state: var(--play-state, running);
1882
2019
  }
1883
- @keyframes jkl-downcount-udz458g {
2020
+ @keyframes jkl-downcount-ufcxaj2 {
1884
2021
  from {
1885
2022
  width: 100%;
1886
2023
  }
@@ -1890,14 +2027,18 @@
1890
2027
  }
1891
2028
  }
1892
2029
  @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
2030
  .jkl-calendar {
1897
2031
  --jkl-calendar-padding: var(--jkl-unit-15) var(--jkl-unit-20) var(--jkl-unit-20);
1898
2032
  --jkl-calendar-gap: var(--jkl-unit-15);
2033
+ }
2034
+ @media (width >= 0) and (max-width: 374px) {
2035
+ .jkl-calendar {
2036
+ --jkl-calendar-padding: var(--jkl-unit-05) var(--jkl-unit-10) var(--jkl-unit-20);
2037
+ }
2038
+ }
2039
+ .jkl-calendar {
1899
2040
  display: block;
1900
- background-color: var(--jkl-color-background-container-high);
2041
+ background-color: var(--jkl-color-background-container);
1901
2042
  color: var(--jkl-color);
1902
2043
  }
1903
2044
  .jkl-calendar__padding {
@@ -1970,11 +2111,11 @@
1970
2111
  }
1971
2112
  .jkl-calendar-navigation-dropdown__select option {
1972
2113
  color: var(--jkl-color-text-default);
1973
- background-color: var(--jkl-color-background-container-high);
2114
+ background-color: var(--jkl-color-background-container);
1974
2115
  text-align: left;
1975
2116
  }
1976
2117
  .jkl-calendar-navigation-dropdown__select:focus-visible {
1977
- outline: 3px solid var(--jkl-color-border-action);
2118
+ outline: 3px solid var(--jkl-color-border-strong);
1978
2119
  outline-offset: 3px;
1979
2120
  }
1980
2121
  .jkl-calendar-navigation-dropdown__chevron {
@@ -2002,11 +2143,15 @@
2002
2143
  }
2003
2144
  }
2004
2145
  @layer jokul.components {
2146
+ .jkl-calendar-date-button {
2147
+ --jkl-calendar-date-size: var(--jkl-unit-50);
2148
+ }
2005
2149
  @media (width >= 0) and (max-width: 374px) {
2006
- --jkl-calendar-date-size: var(--jkl-unit-40);
2150
+ .jkl-calendar-date-button {
2151
+ --jkl-calendar-date-size: var(--jkl-unit-40);
2152
+ }
2007
2153
  }
2008
2154
  .jkl-calendar-date-button {
2009
- --jkl-calendar-date-size: var(--jkl-unit-50);
2010
2155
  font: var(--jkl-text-style-text-small);
2011
2156
  appearance: none;
2012
2157
  position: relative;
@@ -2059,8 +2204,8 @@
2059
2204
  cursor: pointer;
2060
2205
  }
2061
2206
  .jkl-calendar-date-button[aria-pressed=true] {
2062
- background-color: var(--jkl-color-background-container-inverted);
2063
- color: var(--jkl-color-text-inverted);
2207
+ background-color: var(--jkl-color-background-action);
2208
+ color: var(--jkl-color-text-on-action);
2064
2209
  cursor: pointer;
2065
2210
  }
2066
2211
  .jkl-calendar-date-button[aria-pressed=true]:hover {
@@ -2070,7 +2215,7 @@
2070
2215
  color: color(from var(--jkl-color-text-subdued) srgb r g b/70%);
2071
2216
  }
2072
2217
  .jkl-calendar-date-button:focus-visible {
2073
- outline: 3px solid var(--jkl-color-border-action);
2218
+ outline: 3px solid var(--jkl-color-border-strong);
2074
2219
  outline-offset: 3px;
2075
2220
  }
2076
2221
  }
@@ -2135,9 +2280,20 @@
2135
2280
  padding: var(--popover-padding, 0);
2136
2281
  z-index: 10000;
2137
2282
  box-shadow: 0 4px 20px 0 var(--shadow-color);
2138
- background-color: var(--jkl-color-background-container-high);
2283
+ background-color: var(--jkl-color-background-container);
2139
2284
  border-radius: var(--jkl-border-radius-s);
2140
2285
  }
2286
+ .jkl-popover:focus-visible {
2287
+ outline: 3px solid var(--jkl-color-border-strong);
2288
+ outline-offset: 3px;
2289
+ }
2290
+ .jkl-popover-trigger:focus {
2291
+ outline: 0;
2292
+ }
2293
+ .jkl-popover-trigger:focus-visible {
2294
+ outline: 3px solid var(--jkl-color-border-strong);
2295
+ outline-offset: 3px;
2296
+ }
2141
2297
  }
2142
2298
  @layer jokul.components {
2143
2299
  .jkl-description-list {
@@ -2196,12 +2352,12 @@
2196
2352
  }
2197
2353
  .jkl-description-list[data-separators=true] .seperator:not(:first-of-type) {
2198
2354
  margin-block: var(--jkl-unit-15);
2199
- border-top: 1px solid var(--jkl-color-border-separator);
2355
+ border-top: 1px solid var(--jkl-color-border-subdued);
2200
2356
  }
2201
2357
  }
2202
2358
  @layer jokul.components {
2203
2359
  .jkl-expandable {
2204
- background-color: var(--jkl-color-background-container-low);
2360
+ background-color: var(--jkl-color-background-page);
2205
2361
  border: 1px solid transparent;
2206
2362
  border-radius: var(--border-radius);
2207
2363
  box-sizing: border-box;
@@ -2221,7 +2377,7 @@
2221
2377
  padding: var(--jkl-unit-20);
2222
2378
  }
2223
2379
  .jkl-expandable--stroke {
2224
- border-color: var(--jkl-color-border-separator);
2380
+ border-color: var(--jkl-color-border-subdued);
2225
2381
  background-color: transparent;
2226
2382
  border-radius: 0;
2227
2383
  border-radius: var(--border-top-left-radius) var(--border-top-right-radius) var(--border-bottom-right-radius) var(--border-bottom-left-radius);
@@ -2229,34 +2385,34 @@
2229
2385
  .jkl-expandable__wrapper {
2230
2386
  --border-radius: 0.25rem;
2231
2387
  --outline-offset: 3px;
2388
+ --stroke-outline-offset: 3px;
2389
+ --border-top-left-radius: var(--border-radius);
2390
+ --border-top-right-radius: var(--border-radius);
2391
+ --border-bottom-left-radius: var(--border-radius);
2392
+ --border-bottom-right-radius: var(--border-radius);
2393
+ position: relative;
2394
+ }
2395
+ .jkl-expandable__wrapper + .jkl-expandable__wrapper {
2232
2396
  --border-top-left-radius: 0;
2233
2397
  --border-top-right-radius: 0;
2234
- --border-bottom-left-radius: 0;
2235
- --border-bottom-right-radius: 0;
2236
- position: relative;
2398
+ --stroke-outline-offset: -1px;
2237
2399
  }
2238
2400
  .jkl-expandable__wrapper + .jkl-expandable__wrapper .jkl-expandable--stroke {
2239
2401
  border-top: none;
2240
2402
  }
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);
2403
+ .jkl-expandable__wrapper:has(+ .jkl-expandable__wrapper) {
2404
+ --border-bottom-left-radius: 0;
2405
+ --border-bottom-right-radius: 0;
2406
+ --stroke-outline-offset: -1px;
2248
2407
  }
2249
2408
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible):has(.jkl-expandable--stroke) {
2250
- --outline-offset: -1px;
2409
+ --outline-offset: var(--stroke-outline-offset);
2251
2410
  }
2252
2411
  .jkl-expandable__wrapper:has(.jkl-expander:focus-visible) .jkl-expandable__focus-container {
2253
- outline: 3px solid var(--jkl-color-border-action);
2412
+ outline: 3px solid var(--jkl-color-border-strong);
2254
2413
  outline-offset: 3px;
2255
2414
  outline-offset: var(--outline-offset);
2256
2415
  }
2257
- .jkl-expandable__wrapper:has(:focus-visible):first-child:last-child {
2258
- --outline-offset: 3px;
2259
- }
2260
2416
  .jkl-expandable__focus-container {
2261
2417
  border-radius: var(--border-radius);
2262
2418
  position: absolute;
@@ -2345,12 +2501,12 @@
2345
2501
  font: var(--jkl-text-style-paragraph-small);
2346
2502
  }
2347
2503
  .jkl-feedback__fade-in {
2348
- animation: jkl-show-udz4593 0.25s ease-out;
2504
+ animation: jkl-show-ufcxajq 0.25s ease-out;
2349
2505
  }
2350
2506
  .jkl-feedback__buttons {
2351
2507
  display: flex;
2352
2508
  }
2353
- @keyframes jkl-show-udz4593 {
2509
+ @keyframes jkl-show-ufcxajq {
2354
2510
  from {
2355
2511
  transform: translate3d(0, 0.5rem, 0);
2356
2512
  opacity: 0;
@@ -2396,10 +2552,6 @@
2396
2552
  transition-duration: var(--jkl-motion-timing-productive);
2397
2553
  transition-property: opacity;
2398
2554
  }
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
2555
  .jkl-feedback-smiley-option::before {
2404
2556
  inset: 0;
2405
2557
  box-shadow: 0 0.125rem 1.875rem rgba(0, 0, 0, 0.1);
@@ -2414,8 +2566,10 @@
2414
2566
  input:checked + .jkl-feedback-smiley-option::before {
2415
2567
  opacity: 1;
2416
2568
  }
2417
- html:not([data-mousenavigation]):not([data-touchnavigation]) input:focus + .jkl-feedback-smiley-option::after {
2418
- opacity: 1;
2569
+ input:focus-visible + .jkl-feedback-smiley-option {
2570
+ border-radius: var(--jkl-border-radius-full);
2571
+ outline: 3px solid var(--jkl-color-border-strong);
2572
+ outline-offset: 3px;
2419
2573
  }
2420
2574
  }
2421
2575
  @layer jokul.components {
@@ -2426,13 +2580,15 @@
2426
2580
  --jkl-message-dismiss-button-size: var(--jkl-unit-50);
2427
2581
  --jkl-message-gap: var(--jkl-unit-20);
2428
2582
  --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);
2583
+ --background-color: var(--jkl-color-background-container);
2584
+ --text-color: var(--jkl-color-text-default);
2585
+ --border-color: var(--jkl-color-border-subdued);
2431
2586
  width: 100%;
2432
2587
  max-width: 35rem;
2433
2588
  padding: var(--jkl-message-padding);
2434
2589
  background-color: var(--background-color);
2435
2590
  color: var(--text-color);
2591
+ border: 1px solid var(--border-color);
2436
2592
  border-radius: 0.25rem;
2437
2593
  box-sizing: border-box;
2438
2594
  display: grid;
@@ -2536,26 +2692,34 @@
2536
2692
  }
2537
2693
  }
2538
2694
  .jkl-message__dismiss-button:focus-visible {
2539
- outline: 3px solid var(--jkl-color-border-action);
2695
+ outline: 3px solid var(--jkl-color-border-strong);
2540
2696
  outline-offset: 3px;
2541
2697
  }
2542
2698
  .jkl-message--full {
2543
2699
  max-width: 100%;
2544
2700
  }
2545
2701
  .jkl-message--info {
2546
- --background-color: var(--jkl-color-background-alert-info);
2702
+ --background-color: var(--jkl-color-info-background-container);
2703
+ --text-color: var(--jkl-color-info-text-default);
2704
+ --border-color: var(--jkl-color-info-border-subdued);
2547
2705
  }
2548
2706
  .jkl-message--warning {
2549
- --background-color: var(--jkl-color-background-alert-warning);
2707
+ --background-color: var(--jkl-color-warning-background-container);
2708
+ --text-color: var(--jkl-color-warning-text-default);
2709
+ --border-color: var(--jkl-color-warning-border-subdued);
2550
2710
  }
2551
2711
  .jkl-message--error {
2552
- --background-color: var(--jkl-color-background-alert-error);
2712
+ --background-color: var(--jkl-color-error-background-container);
2713
+ --text-color: var(--jkl-color-error-text-default);
2714
+ --border-color: var(--jkl-color-error-border-subdued);
2553
2715
  }
2554
2716
  .jkl-message--success {
2555
- --background-color: var(--jkl-color-background-alert-success);
2717
+ --background-color: var(--jkl-color-success-background-container);
2718
+ --text-color: var(--jkl-color-success-text-default);
2719
+ --border-color: var(--jkl-color-success-border-subdued);
2556
2720
  }
2557
2721
  .jkl-message--dismissed {
2558
- animation: jkl-dismiss-udz45a1 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2722
+ animation: jkl-dismiss-ufcxak2 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2559
2723
  transition: visibility 0ms var(--jkl-motion-timing-lazy);
2560
2724
  visibility: hidden;
2561
2725
  }
@@ -2577,7 +2741,7 @@
2577
2741
  .jkl-form-error-message {
2578
2742
  padding-bottom: var(--jkl-unit-50);
2579
2743
  }
2580
- @keyframes jkl-dismiss-udz45a1 {
2744
+ @keyframes jkl-dismiss-ufcxak2 {
2581
2745
  from {
2582
2746
  opacity: 1;
2583
2747
  transform: translate3d(0, 0, 0);
@@ -2619,10 +2783,37 @@
2619
2783
  }
2620
2784
  .jkl-radio-button__input {
2621
2785
  position: absolute;
2622
- opacity: 0;
2623
- pointer-events: none;
2624
- inset: 0 auto 0 0;
2625
- width: 1lh;
2786
+ inset-block-start: 0;
2787
+ inset-inline-start: 0;
2788
+ block-size: 1lh;
2789
+ inline-size: 1lh;
2790
+ margin: 0;
2791
+ padding: 0;
2792
+ cursor: pointer;
2793
+ z-index: 1;
2794
+ appearance: none;
2795
+ background: transparent;
2796
+ border: 0;
2797
+ }
2798
+ .jkl-radio-button__input {
2799
+ outline: 0;
2800
+ border-style: none;
2801
+ outline-style: none;
2802
+ }
2803
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2804
+ outline: 0;
2805
+ outline-style: none;
2806
+ }
2807
+ @media screen and (forced-colors: active) {
2808
+ .jkl-radio-button__input {
2809
+ outline: revert;
2810
+ border-style: revert;
2811
+ outline-style: revert;
2812
+ }
2813
+ .jkl-radio-button__input:active, .jkl-radio-button__input:hover, .jkl-radio-button__input:focus {
2814
+ outline: revert;
2815
+ outline-style: revert;
2816
+ }
2626
2817
  }
2627
2818
  .jkl-radio-button__label {
2628
2819
  cursor: pointer;
@@ -2648,10 +2839,18 @@
2648
2839
  transition-duration: var(--jkl-motion-timing-energetic);
2649
2840
  transition-property: font-variation-settings, transform;
2650
2841
  }
2651
- .jkl-radio-button__label:has(+ :checked)::before {
2842
+ .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
2843
+ border-radius: var(--jkl-border-radius-full);
2844
+ outline: 3px solid var(--jkl-color-border-strong);
2845
+ outline-offset: 3px;
2846
+ }
2847
+ .jkl-radio-button__input:is(:hover, :active) + .jkl-radio-button__label, .jkl-radio-button__label:hover, .jkl-radio-button__label:active {
2848
+ --jkl-icon-weight: var(--jkl-font-weight-bold);
2849
+ }
2850
+ .jkl-radio-button__input:checked + .jkl-radio-button__label::before {
2652
2851
  content: "radio_button_checked";
2653
2852
  }
2654
- .jkl-radio-button__label:has(+ [aria-invalid=true])::before {
2853
+ .jkl-radio-button__input[aria-invalid=true] + .jkl-radio-button__label::before {
2655
2854
  color: var(--jkl-radio-button-error-color);
2656
2855
  }
2657
2856
  .jkl-radio-button + .jkl-radio-button, .jkl-dormant-form-support-label + .jkl-radio-button, .jkl-form-support-label + .jkl-radio-button {
@@ -2682,8 +2881,8 @@
2682
2881
  --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
2683
2882
  --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
2684
2883
  --text-color: var(--jkl-color-text-default);
2685
- --background-color: var(--jkl-color-background-input-base);
2686
- --border-color: var(--jkl-color-border-input);
2884
+ --background-color: transparent;
2885
+ --border-color: var(--jkl-color-border-default);
2687
2886
  --placeholder-color: var(--jkl-color-text-subdued);
2688
2887
  border-radius: var(--jkl-border-radius-s);
2689
2888
  box-sizing: border-box;
@@ -2700,15 +2899,15 @@
2700
2899
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
2701
2900
  }
2702
2901
  .jkl-text-area-wrapper:focus-within, .jkl-text-area-wrapper:has([data-focused=true]) {
2703
- --background-color: var(--jkl-color-background-input-focus);
2902
+ --background-color: var(--jkl-color-background-container);
2704
2903
  }
2705
2904
  .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);
2905
+ --background-color: var(--jkl-color-error-background-container);
2906
+ --text-color: var(--jkl-color-error-text-default);
2708
2907
  --placeholder-color: color(from currentColor sRGB r g b / 75%);
2709
2908
  }
2710
2909
  .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);
2910
+ --border-color: var(--jkl-color-border-strong);
2712
2911
  box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
2713
2912
  }
2714
2913
  @media screen and (forced-colors: active) {
@@ -2717,11 +2916,11 @@
2717
2916
  }
2718
2917
  }
2719
2918
  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);
2919
+ outline: 3px solid var(--jkl-color-border-strong);
2721
2920
  outline-offset: 3px;
2722
2921
  }
2723
2922
  .jkl-text-area-wrapper > .jkl-icon-button:focus-visible {
2724
- outline: 3px solid var(--jkl-color-border-action);
2923
+ outline: 3px solid var(--jkl-color-border-strong);
2725
2924
  outline-offset: -8px;
2726
2925
  }
2727
2926
  @media screen and (forced-colors: active) {
@@ -2944,7 +3143,7 @@
2944
3143
  --jkl-file-gap: var(--jkl-unit-10) var(--jkl-unit-20);
2945
3144
  --jkl-file-button-width: var(--jkl-unit-50);
2946
3145
  --text-color: var(--jkl-color-text-default);
2947
- --border: 1px solid var(--jkl-color-border-separator);
3146
+ --border: 1px solid var(--jkl-color-border-subdued);
2948
3147
  --border-radius: 2px;
2949
3148
  --bg: transparent;
2950
3149
  --transition-time: var(--jkl-motion-timing-expressive);
@@ -2988,7 +3187,7 @@
2988
3187
  display: flex;
2989
3188
  align-items: center;
2990
3189
  justify-content: center;
2991
- background: var(--jkl-color-background-container-low);
3190
+ background: var(--jkl-color-background-page);
2992
3191
  border-radius: 2px;
2993
3192
  overflow: hidden;
2994
3193
  container-type: inline-size;
@@ -3047,16 +3246,16 @@
3047
3246
  scale: 1;
3048
3247
  }
3049
3248
  .jkl-file[data-state=error] {
3050
- --bg: var(--jkl-color-functional-error);
3249
+ --bg: var(--jkl-color-error-background-container);
3051
3250
  }
3052
3251
  .jkl-file[data-state=error],
3053
3252
  .jkl-file[data-state=error] a,
3054
3253
  .jkl-file[data-state=error] a:hover,
3055
3254
  .jkl-file[data-state=error] button,
3056
3255
  .jkl-file[data-state=error] span {
3057
- --text-color: var(--jkl-color-text-on-alert);
3256
+ --text-color: var(--jkl-color-error-text-default);
3058
3257
  --link-color: var(--text-color);
3059
- --jkl-color-border-action: currentColor;
3258
+ --jkl-color-border-strong: currentColor;
3060
3259
  }
3061
3260
  @keyframes spin {
3062
3261
  from {
@@ -3076,7 +3275,7 @@
3076
3275
  --jkl-file-list-gap: var(--jkl-unit-10);
3077
3276
  }
3078
3277
  .jkl-file-input__dropzone {
3079
- --border-color: var(--jkl-color-border-input);
3278
+ --border-color: var(--jkl-color-border-default);
3080
3279
  --background-color: transparent;
3081
3280
  border: var(--border-color) 1px dashed;
3082
3281
  border-radius: 0.25rem;
@@ -3093,8 +3292,8 @@
3093
3292
  background-color: var(--background-color);
3094
3293
  }
3095
3294
  .jkl-file-input__dropzone--enter {
3096
- --border-color: var(--jkl-color-border-input-focus);
3097
- --background-color: var(--jkl-color-background-container-high);
3295
+ --border-color: var(--jkl-color-border-strong);
3296
+ --background-color: var(--jkl-color-background-container);
3098
3297
  border-style: solid;
3099
3298
  }
3100
3299
  .jkl-file-input__dropzone__drag-text {
@@ -3114,7 +3313,7 @@
3114
3313
  }
3115
3314
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button {
3116
3315
  transform: scale(1.05);
3117
- outline: 3px solid var(--jkl-color-border-action);
3316
+ outline: 3px solid var(--jkl-color-border-strong);
3118
3317
  outline-offset: 3px;
3119
3318
  }
3120
3319
  .jkl-file-input__call-to-action:has(:focus-visible) .jkl-button:active {
@@ -3164,7 +3363,7 @@
3164
3363
  }
3165
3364
  @layer jokul.components {
3166
3365
  .jkl-link-list {
3167
- --border: 1px solid var(--jkl-color-border-separator);
3366
+ --border: 1px solid var(--jkl-color-border-subdued);
3168
3367
  --text-color: var(--jkl-color-text-default);
3169
3368
  font: var(--jkl-text-style-paragraph-medium);
3170
3369
  }
@@ -3181,7 +3380,7 @@
3181
3380
  height: min-content;
3182
3381
  border-radius: var(--jkl-unit-05);
3183
3382
  overflow: hidden;
3184
- background: var(--jkl-color-background-container-low);
3383
+ background: var(--jkl-color-background-page);
3185
3384
  }
3186
3385
  .jkl-link-list ul .jkl-link-list-link {
3187
3386
  display: flex;
@@ -3223,6 +3422,10 @@
3223
3422
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible)::after {
3224
3423
  translate: 4px 0;
3225
3424
  }
3425
+ .jkl-link-list ul .jkl-link-list-link:focus-visible {
3426
+ outline: 3px solid var(--jkl-color-border-strong);
3427
+ outline-offset: 3px;
3428
+ }
3226
3429
  .jkl-link-list .jkl-link-list-item {
3227
3430
  display: flex;
3228
3431
  }
@@ -3376,16 +3579,16 @@
3376
3579
  width: 100%;
3377
3580
  margin-block: 0;
3378
3581
  border: none;
3379
- border-bottom: 0.0625rem solid var(--jkl-color-border-separator);
3582
+ border-bottom: 0.0625rem solid var(--jkl-color-border-subdued);
3380
3583
  }
3381
3584
  }
3382
3585
  @layer jokul.components {
3383
3586
  .jkl-menu {
3384
3587
  /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
3385
3588
  --border-color: transparent;
3386
- --border-color: light-dark(transparent, var(--jkl-color-border-input-focus));
3589
+ --border-color: light-dark(transparent, var(--jkl-color-border-strong));
3387
3590
  /* stylelint-enable declaration-block-no-duplicate-custom-properties */
3388
- background-color: var(--jkl-color-background-container-high);
3591
+ background-color: var(--jkl-color-background-container);
3389
3592
  width: 100%;
3390
3593
  max-width: 21rem;
3391
3594
  display: flex;
@@ -3438,7 +3641,7 @@
3438
3641
  color: var(--jkl-color-text-subdued);
3439
3642
  }
3440
3643
  .jkl-nav-link:focus-visible {
3441
- outline: 3px solid var(--jkl-color-border-action);
3644
+ outline: 3px solid var(--jkl-color-border-strong);
3442
3645
  outline-offset: 0;
3443
3646
  }
3444
3647
  .jkl-nav-link:focus-visible .jkl-nav-link__icon, .jkl-nav-link:hover:not(:focus) .jkl-nav-link__icon {
@@ -3473,14 +3676,14 @@
3473
3676
  }
3474
3677
  .jkl-navlink--beta {
3475
3678
  --border-radius: 4px;
3476
- --separator: 1px solid var(--jkl-color-border-separator);
3679
+ --separator: 1px solid var(--jkl-color-border-subdued);
3477
3680
  display: grid;
3478
3681
  grid-template-columns: 1fr auto;
3479
3682
  align-items: center;
3480
3683
  column-gap: 2em;
3481
3684
  color: inherit;
3482
3685
  text-decoration: none;
3483
- background-color: var(--jkl-color-background-container-low);
3686
+ background-color: var(--jkl-color-background-page);
3484
3687
  padding: var(--jkl-spacing-s);
3485
3688
  border-radius: 0;
3486
3689
  font: var(--jkl-text-style-paragraph-medium);
@@ -3564,7 +3767,7 @@
3564
3767
  color: var(--jkl-color-text-interactive-hover);
3565
3768
  }
3566
3769
  .jkl-pagination-button:focus-visible {
3567
- outline: 3px solid var(--jkl-color-border-action);
3770
+ outline: 3px solid var(--jkl-color-border-strong);
3568
3771
  outline-offset: 3px;
3569
3772
  }
3570
3773
  .jkl-pagination-button--current {
@@ -3617,7 +3820,7 @@
3617
3820
  outline: none;
3618
3821
  }
3619
3822
  .jkl-select .jkl-tooltip-question-button:focus {
3620
- outline: 3px solid var(--jkl-color-border-action);
3823
+ outline: 3px solid var(--jkl-color-border-strong);
3621
3824
  outline-offset: 0;
3622
3825
  }
3623
3826
  .jkl-select select {
@@ -3631,7 +3834,7 @@
3631
3834
  font-weight: normal;
3632
3835
  font-family: sans-serif;
3633
3836
  color: var(--jkl-color-text-subdued);
3634
- background-color: var(--jkl-color-background-container-high);
3837
+ background-color: var(--jkl-color-background-container);
3635
3838
  }
3636
3839
  .jkl-select__outer-wrapper {
3637
3840
  position: relative;
@@ -3652,7 +3855,7 @@
3652
3855
  cursor: pointer;
3653
3856
  height: var(--jkl-select-input-height);
3654
3857
  border-radius: var(--border-radius);
3655
- border: var(--border-width) solid var(--jkl-color-border-input);
3858
+ border: var(--border-width) solid var(--jkl-color-border-default);
3656
3859
  box-shadow: 0 0 0 0.0625rem transparent;
3657
3860
  text-align: left;
3658
3861
  width: 100%;
@@ -3668,8 +3871,8 @@
3668
3871
  color: var(--jkl-color-text-default);
3669
3872
  }
3670
3873
  .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);
3874
+ border-color: var(--jkl-color-border-strong);
3875
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
3673
3876
  }
3674
3877
  .jkl-select__search-input:hover ~ .jkl-select__arrow, .jkl-select__button:hover ~ .jkl-select__arrow {
3675
3878
  transform: translateY(calc(-50% + 0.1875rem));
@@ -3678,12 +3881,12 @@
3678
3881
  outline: none;
3679
3882
  }
3680
3883
  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);
3884
+ outline: 3px solid var(--jkl-color-border-strong);
3682
3885
  outline-offset: 3px;
3683
3886
  }
3684
3887
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select:has(:focus-visible) .jkl-select__button,
3685
3888
  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);
3889
+ outline: 3px solid var(--jkl-color-border-strong);
3687
3890
  outline-offset: 3px;
3688
3891
  }
3689
3892
  .jkl-select__arrow {
@@ -3708,7 +3911,7 @@
3708
3911
  }
3709
3912
  }
3710
3913
  .jkl-select:has([aria-invalid=true]) .jkl-select__arrow {
3711
- color: var(--jkl-color-text-on-alert);
3914
+ color: var(--jkl-color-error-text-default);
3712
3915
  }
3713
3916
  .jkl-select__options-menu {
3714
3917
  position: absolute;
@@ -3716,8 +3919,8 @@
3716
3919
  right: -0.0625rem;
3717
3920
  top: 100%;
3718
3921
  z-index: 7000;
3719
- background-color: var(--jkl-color-background-container-high);
3720
- border: 0.125rem solid var(--jkl-color-border-input-focus);
3922
+ background-color: var(--jkl-color-background-container);
3923
+ border: 0.125rem solid var(--jkl-color-border-strong);
3721
3924
  border-top: none;
3722
3925
  border-radius: 0 0 var(--border-radius) var(--border-radius);
3723
3926
  box-sizing: border-box;
@@ -3774,9 +3977,9 @@
3774
3977
  .jkl-select--open .jkl-select__button {
3775
3978
  border-bottom-left-radius: 0;
3776
3979
  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);
3980
+ border-color: var(--jkl-color-border-strong);
3981
+ background-color: var(--jkl-color-background-container);
3982
+ box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
3780
3983
  }
3781
3984
  .jkl-select--open .jkl-select__search-input:hover ~ .jkl-select__arrow,
3782
3985
  .jkl-select--open .jkl-select__button:hover ~ .jkl-select__arrow {
@@ -3784,8 +3987,8 @@
3784
3987
  }
3785
3988
  .jkl-select--invalid .jkl-select__search-input,
3786
3989
  .jkl-select--invalid .jkl-select__button {
3787
- background-color: var(--jkl-color-background-alert-error);
3788
- color: var(--jkl-color-text-on-alert-subdued);
3990
+ background-color: var(--jkl-color-error-background-container);
3991
+ color: var(--jkl-color-error-text-subdued);
3789
3992
  }
3790
3993
  .jkl-select--invalid .jkl-select__search-input--active-value,
3791
3994
  .jkl-select--invalid .jkl-select__button--active-value {
@@ -3817,8 +4020,8 @@
3817
4020
  }
3818
4021
  @layer jokul.components {
3819
4022
  .jkl-progress-bar {
3820
- --track-color: var(--jkl-color-border-separator);
3821
- --bar-color: var(--jkl-color-border-input-focus);
4023
+ --track-color: var(--jkl-color-border-subdued);
4024
+ --bar-color: var(--jkl-color-border-strong);
3822
4025
  --bar-height: 0.25rem;
3823
4026
  background-color: var(--track-color);
3824
4027
  border-radius: 6.25rem;
@@ -3839,12 +4042,36 @@
3839
4042
  background-color: CanvasText;
3840
4043
  }
3841
4044
  }
4045
+ .jkl-progress-bar {
4046
+ outline: 0;
4047
+ border-style: none;
4048
+ outline-style: none;
4049
+ }
4050
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4051
+ outline: 0;
4052
+ outline-style: none;
4053
+ }
4054
+ @media screen and (forced-colors: active) {
4055
+ .jkl-progress-bar {
4056
+ outline: revert;
4057
+ border-style: revert;
4058
+ outline-style: revert;
4059
+ }
4060
+ .jkl-progress-bar:active, .jkl-progress-bar:hover, .jkl-progress-bar:focus {
4061
+ outline: revert;
4062
+ outline-style: revert;
4063
+ }
4064
+ }
4065
+ .jkl-progress-bar:focus-visible {
4066
+ outline: 3px solid var(--jkl-color-border-strong);
4067
+ outline-offset: 3px;
4068
+ }
3842
4069
  .jkl-progress-bar__tracker {
3843
4070
  transition-property: width;
3844
4071
  transition-timing-function: var(--jkl-motion-easing-standard);
3845
4072
  transition-duration: var(--jkl-motion-timing-productive);
3846
4073
  }
3847
- @keyframes jkl-downcount-udz45ax {
4074
+ @keyframes jkl-downcount-ufcxakc {
3848
4075
  from {
3849
4076
  width: 100%;
3850
4077
  }
@@ -3858,10 +4085,13 @@
3858
4085
  /* Visuell justering pga. rundt ikon */
3859
4086
  margin-inline-start: -0.15em;
3860
4087
  }
4088
+ .jkl-radio-panel .jkl-radio-button__input:focus-visible + .jkl-radio-button__label::before {
4089
+ outline: none;
4090
+ }
3861
4091
  }
3862
4092
  .jkl-select--beta {
3863
- --border-color: var(--jkl-color-border-input);
3864
- --background-color: var(transparent);
4093
+ --border-color: var(--jkl-color-border-default);
4094
+ --background-color: transparent;
3865
4095
  --color: var(--jkl-color-text-default);
3866
4096
  --box-shadow: 0 0 0 jkl.rem(1px) transparent;
3867
4097
  --border-width: 0.0625rem;
@@ -3894,7 +4124,7 @@
3894
4124
  outline: none;
3895
4125
  }
3896
4126
  .jkl-select--beta .jkl-tooltip-question-button:focus {
3897
- outline: 3px solid var(--jkl-color-border-action);
4127
+ outline: 3px solid var(--jkl-color-border-strong);
3898
4128
  outline-offset: 0;
3899
4129
  }
3900
4130
  .jkl-select--beta-wrapper {
@@ -3928,12 +4158,12 @@
3928
4158
  --color: var(--jkl-color-text-subdued);
3929
4159
  }
3930
4160
  .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);
4161
+ --border-color: var(--jkl-color-border-strong);
4162
+ --box-shadow: 0 0 0 jkl.rem(1px) var(--jkl-color-border-strong);
3933
4163
  }
3934
4164
  .jkl-select--beta select:invalid {
3935
- --background-color: var(--jkl-color-background-alert-error);
3936
- --color: var(--jkl-color-text-on-alert-subdued);
4165
+ --background-color: var(--jkl-color-error-background-container);
4166
+ --color: var(--jkl-color-error-text-subdued);
3937
4167
  }
3938
4168
  .jkl-select--beta select:focus-visible {
3939
4169
  outline: none;
@@ -3944,11 +4174,11 @@
3944
4174
  font: var(--jkl-text-style-text-medium);
3945
4175
  }
3946
4176
  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);
4177
+ outline: 3px solid var(--jkl-color-border-strong);
3948
4178
  outline-offset: 3px;
3949
4179
  }
3950
4180
  html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta select:has(:focus-visible) select {
3951
- outline: 3px solid var(--jkl-color-border-action);
4181
+ outline: 3px solid var(--jkl-color-border-strong);
3952
4182
  outline-offset: 3px;
3953
4183
  }
3954
4184
 
@@ -3962,7 +4192,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
3962
4192
  --icon-size: var(--jkl-text-input-height);
3963
4193
  --border-radius: var(--jkl-border-radius-s);
3964
4194
  --border-width: 1px;
3965
- --border: var(--border-width) solid var(--jkl-color-border-input);
4195
+ --border: var(--border-width) solid var(--jkl-color-border-default);
3966
4196
  width: 100%;
3967
4197
  font: var(--jkl-text-style-text-medium);
3968
4198
  }
@@ -4076,7 +4306,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4076
4306
  opacity: 0.15;
4077
4307
  }
4078
4308
  .jkl-search .clear-button:focus-visible {
4079
- outline: 3px solid var(--jkl-color-border-action);
4309
+ outline: 3px solid var(--jkl-color-border-strong);
4080
4310
  outline-offset: 3px;
4081
4311
  }
4082
4312
 
@@ -4105,7 +4335,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4105
4335
  width: 1px;
4106
4336
  inset: 0;
4107
4337
  inset-block: 20%;
4108
- background-color: var(--jkl-color-border-separator);
4338
+ background-color: var(--jkl-color-border-subdued);
4109
4339
  transition-timing-function: var(--jkl-motion-easing-standard);
4110
4340
  transition-duration: var(--jkl-motion-timing-productive);
4111
4341
  transition-property: inset;
@@ -4130,7 +4360,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4130
4360
  display: inline-flex;
4131
4361
  align-items: center;
4132
4362
  background-color: var(--jkl-color-background-interactive);
4133
- border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-separator);
4363
+ border: var(--jkl-segmented-control-border-width) solid var(--jkl-color-border-subdued);
4134
4364
  border-radius: 0;
4135
4365
  margin-inline-end: calc(var(--jkl-segmented-control-border-width) * -1);
4136
4366
  margin-block-end: 0.5lh;
@@ -4144,12 +4374,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4144
4374
  }
4145
4375
  .jkl-segmented-control .jkl-segmented-control-item:hover {
4146
4376
  background-color: var(--jkl-color-background-interactive-hover);
4147
- border-color: var(--jkl-color-border-separator-hover);
4377
+ border-color: var(--jkl-color-border-default);
4148
4378
  z-index: 2;
4149
4379
  }
4150
4380
  .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);
4381
+ background-color: var(--jkl-color-background-container);
4382
+ border-color: var(--jkl-color-border-subdued);
4153
4383
  z-index: 1;
4154
4384
  }
4155
4385
  .jkl-segmented-control .jkl-segmented-control-item:has(input[data-separated=true]) {
@@ -4208,8 +4438,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4208
4438
  font-weight: var(--jkl-font-weight-normal);
4209
4439
  }
4210
4440
  .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);
4441
+ border-top: 0.0625rem solid var(--jkl-color-border-strong);
4442
+ border-bottom: 0.0625rem solid var(--jkl-color-border-strong);
4213
4443
  padding-top: var(--jkl-unit-10);
4214
4444
  }
4215
4445
  .jkl-summary-table > tfoot th,
@@ -4225,12 +4455,14 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4225
4455
  --jkl-system-message-dismiss-button-size: var(--jkl-unit-40);
4226
4456
  --jkl-system-message-dismiss-button-margin: -0.40625rem -1.125rem -0.40625rem
4227
4457
  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);
4458
+ --jkl-system-message-message-margin: 0 var(--jkl-unit-20);
4459
+ --background-color: var(--jkl-color-background-container);
4460
+ --text-color: var(--jkl-color-text-default);
4461
+ --border-color: var(--jkl-color-border-subdued);
4231
4462
  width: 100%;
4232
4463
  background-color: var(--background-color);
4233
4464
  color: var(--text-color);
4465
+ border: 1px solid var(--border-color);
4234
4466
  transition-behavior: allow-discrete;
4235
4467
  box-sizing: border-box;
4236
4468
  }
@@ -4326,7 +4558,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4326
4558
  }
4327
4559
  }
4328
4560
  .jkl-system-message__dismiss-button:focus-visible {
4329
- outline: 3px solid var(--jkl-color-border-action);
4561
+ outline: 3px solid var(--jkl-color-border-strong);
4330
4562
  outline-offset: 3px;
4331
4563
  }
4332
4564
  @media screen and (forced-colors: active) {
@@ -4339,20 +4571,28 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4339
4571
  margin-bottom: 0;
4340
4572
  }
4341
4573
  .jkl-system-message--dismissed {
4342
- animation: jkl-dismiss-udz45ci var(--jkl-motion-timing-lazy) forwards;
4574
+ animation: jkl-dismiss-ufcxalc var(--jkl-motion-timing-lazy) forwards;
4343
4575
  transition: block var(--jkl-motion-timing-lazy) var(--jkl-motion-timing-lazy);
4344
4576
  }
4345
4577
  .jkl-system-message--info {
4346
- --background-color: var(--jkl-color-background-alert-info);
4578
+ --background-color: var(--jkl-color-info-background-container);
4579
+ --text-color: var(--jkl-color-info-text-default);
4580
+ --border-color: var(--jkl-color-info-border-subdued);
4347
4581
  }
4348
4582
  .jkl-system-message--warning {
4349
- --background-color: var(--jkl-color-background-alert-warning);
4583
+ --background-color: var(--jkl-color-warning-background-container);
4584
+ --text-color: var(--jkl-color-warning-text-default);
4585
+ --border-color: var(--jkl-color-warning-border-subdued);
4350
4586
  }
4351
4587
  .jkl-system-message--error {
4352
- --background-color: var(--jkl-color-background-alert-error);
4588
+ --background-color: var(--jkl-color-error-background-container);
4589
+ --text-color: var(--jkl-color-error-text-default);
4590
+ --border-color: var(--jkl-color-error-border-subdued);
4353
4591
  }
4354
4592
  .jkl-system-message--success {
4355
- --background-color: var(--jkl-color-background-alert-success);
4593
+ --background-color: var(--jkl-color-success-background-container);
4594
+ --text-color: var(--jkl-color-success-text-default);
4595
+ --border-color: var(--jkl-color-success-border-subdued);
4356
4596
  }
4357
4597
  @media screen and (forced-colors: active) {
4358
4598
  .jkl-system-message {
@@ -4369,7 +4609,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4369
4609
  border-width: 4px;
4370
4610
  }
4371
4611
  }
4372
- @keyframes jkl-dismiss-udz45ci {
4612
+ @keyframes jkl-dismiss-ufcxalc {
4373
4613
  from {
4374
4614
  opacity: 1;
4375
4615
  transform: translateY(0);
@@ -4485,7 +4725,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4485
4725
  z-index: 1;
4486
4726
  background-color: var(--jkl-table-head-sticky-color, var(--jkl-color-background-page));
4487
4727
  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);
4728
+ box-shadow: inset 0 0 0 #000, inset 0 var(--jkl-border-width-1) 0 var(--jkl-color-border-strong);
4489
4729
  background-clip: padding-box;
4490
4730
  vertical-align: bottom;
4491
4731
  height: 2.3em;
@@ -4655,9 +4895,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4655
4895
  }
4656
4896
  @layer jokul.components {
4657
4897
  .jkl-table-row {
4658
- --jkl-table-row-border-color: var(--jkl-color-border-separator);
4898
+ --jkl-table-row-border-color: var(--jkl-color-border-subdued);
4659
4899
  --jkl-table-row-border-none-color: transparent;
4660
- --jkl-table-row-hover-border-color: var(--jkl-color-border-separator-strong);
4900
+ --jkl-table-row-hover-border-color: var(--jkl-color-border-strong);
4661
4901
  --jkl-table-row-highlight-color: var(--jkl-color-background-interactive-selected);
4662
4902
  border-bottom: solid 0.0625rem var(--jkl-table-row-border-color);
4663
4903
  }
@@ -4862,7 +5102,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4862
5102
  @layer jokul.components {
4863
5103
  .jkl-table-of-contents {
4864
5104
  --ordered-item-padding: var(--jkl-unit-10);
4865
- --border: 1px solid var(--jkl-color-border-separator);
5105
+ --border: 1px solid var(--jkl-color-border-subdued);
4866
5106
  --text-color: var(--jkl-color-text-default);
4867
5107
  }
4868
5108
  .jkl-table-of-contents .jkl-table-of-contents-title {
@@ -4937,8 +5177,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4937
5177
  .jkl-tablist {
4938
5178
  --padding-inline-end: var(--jkl-unit-50);
4939
5179
  --text-color: var(--jkl-color-text-interactive);
4940
- --line-color: var(--jkl-color-border-separator);
4941
- --indicator-color: var(--jkl-color-border-separator-hover);
5180
+ --line-color: var(--jkl-color-border-subdued);
5181
+ --indicator-color: var(--jkl-color-border-default);
4942
5182
  scroll-snap-type: x proximity;
4943
5183
  overflow: scroll hidden;
4944
5184
  scrollbar-width: none;
@@ -5011,7 +5251,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5011
5251
  --text-color: var(--jkl-color-text-interactive-hover);
5012
5252
  }
5013
5253
  .jkl-tab:focus-visible {
5014
- outline: 3px solid var(--jkl-color-border-action);
5254
+ outline: 3px solid var(--jkl-color-border-strong);
5015
5255
  outline-offset: -2px;
5016
5256
  }
5017
5257
  .jkl-tab[aria-selected=true] {
@@ -5063,11 +5303,13 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5063
5303
  left: var(--jkl-unit-30);
5064
5304
  }
5065
5305
  .jkl-toast {
5066
- --background-color: var(--jkl-color-background-container-high);
5306
+ --background-color: var(--jkl-color-background-container);
5067
5307
  --text-color: var(--jkl-color-text-default);
5308
+ --border-color: transparent;
5068
5309
  --jkl-toast-padding: var(--jkl-unit-20);
5069
5310
  color: var(--text-color);
5070
5311
  background-color: var(--background-color);
5312
+ border: 1px solid var(--border-color);
5071
5313
  border-radius: 4px;
5072
5314
  box-sizing: border-box;
5073
5315
  align-items: start;
@@ -5133,20 +5375,25 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5133
5375
  position: absolute;
5134
5376
  inset: calc((var(--tap-size) - 100%) / 2 * -1);
5135
5377
  }
5136
- .jkl-toast--info, .jkl-toast--warning, .jkl-toast--error, .jkl-toast--success {
5137
- --text-color: var(--jkl-color-text-on-alert);
5138
- }
5139
5378
  .jkl-toast--info {
5140
- --background-color: var(--jkl-color-background-alert-info);
5379
+ --background-color: var(--jkl-color-info-background-container);
5380
+ --text-color: var(--jkl-color-info-text-default);
5381
+ --border-color: var(--jkl-color-info-border-subdued);
5141
5382
  }
5142
5383
  .jkl-toast--warning {
5143
- --background-color: var(--jkl-color-background-alert-warning);
5384
+ --background-color: var(--jkl-color-warning-background-container);
5385
+ --text-color: var(--jkl-color-warning-text-default);
5386
+ --border-color: var(--jkl-color-warning-border-subdued);
5144
5387
  }
5145
5388
  .jkl-toast--error {
5146
- --background-color: var(--jkl-color-background-alert-error);
5389
+ --background-color: var(--jkl-color-error-background-container);
5390
+ --text-color: var(--jkl-color-error-text-default);
5391
+ --border-color: var(--jkl-color-error-border-subdued);
5147
5392
  }
5148
5393
  .jkl-toast--success {
5149
- --background-color: var(--jkl-color-background-alert-success);
5394
+ --background-color: var(--jkl-color-success-background-container);
5395
+ --text-color: var(--jkl-color-success-text-default);
5396
+ --border-color: var(--jkl-color-success-border-subdued);
5150
5397
  }
5151
5398
  @media screen and (forced-colors: active) {
5152
5399
  .jkl-toast {
@@ -5165,12 +5412,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5165
5412
  }
5166
5413
  .jkl-toast[data-animation=entering],
5167
5414
  .jkl-toast[data-animation=queued] {
5168
- animation: jkl-entering-udz45ct var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5415
+ animation: jkl-entering-ufcxall var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5169
5416
  }
5170
5417
  .jkl-toast[data-animation=exiting] {
5171
- animation: jkl-exiting-udz45db var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5418
+ animation: jkl-exiting-ufcxalu var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5172
5419
  }
5173
- @keyframes jkl-entering-udz45ct {
5420
+ @keyframes jkl-entering-ufcxall {
5174
5421
  from {
5175
5422
  opacity: 0;
5176
5423
  transform: translate3d(0, 50%, 0);
@@ -5180,7 +5427,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5180
5427
  transform: translate3d(0, 0, 0);
5181
5428
  }
5182
5429
  }
5183
- @keyframes jkl-exiting-udz45db {
5430
+ @keyframes jkl-exiting-ufcxalu {
5184
5431
  from {
5185
5432
  opacity: 1;
5186
5433
  transform: translate3d(0, 0, 0);
@@ -6540,12 +6787,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
6540
6787
  }
6541
6788
  }
6542
6789
  .jkl-toggle-slider {
6543
- --jkl-slider-bg: var(--jkl-color-background-container-low);
6544
- --jkl-slider-pill: var(--jkl-color-background-container-high);
6790
+ --jkl-slider-bg: var(--jkl-color-background-page);
6791
+ --jkl-slider-pill: var(--jkl-color-background-container);
6545
6792
  --jkl-slider-text: var(--jkl-color-text-default);
6546
6793
  --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);
6794
+ --jkl-slider-focus-color: var(--jkl-color-border-strong);
6795
+ --jkl-slider-hover-color: var(--jkl-color-border-strong);
6549
6796
  font-size: var(--jkl-slider-font-size);
6550
6797
  line-height: var(--jkl-slider-line-height);
6551
6798
  font-weight: var(--jkl-slider-font-weight);
@@ -6644,14 +6891,14 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6644
6891
  --jkl-toggle-switch-width: var(--jkl-unit-60);
6645
6892
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
6646
6893
  --border-width: 0.0625rem;
6647
- --switch-padding: 0.25rem;
6894
+ --switch-padding: var(--jkl-unit-05);
6648
6895
  --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);
6896
+ --switch-border-color: var(--jkl-color-border-strong);
6897
+ --indicator-color: var(--jkl-color-background-container);
6898
+ --knob-border-color: var(--jkl-color-border-strong);
6899
+ --knob-color: var(--jkl-color-background-container);
6653
6900
  --text-color: var(--jkl-color-text-default);
6654
- --icon-color: var(--jkl-color-text-inverted);
6901
+ --icon-color: var(--jkl-color-text-on-action);
6655
6902
  background: transparent;
6656
6903
  color: var(--text-color);
6657
6904
  padding: 0;
@@ -6691,8 +6938,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6691
6938
  }
6692
6939
  }
6693
6940
  .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);
6941
+ --indicator-color: var(--jkl-color-background-action);
6942
+ --knob-color: var(--jkl-color-text-on-action);
6696
6943
  --knob-position: calc(
6697
6944
  var(--jkl-toggle-switch-width) - var(
6698
6945
  --jkl-toggle-switch-knob-size
@@ -6714,7 +6961,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6714
6961
  --jkl-toggle-switch-height: var(--jkl-unit-40);
6715
6962
  --jkl-toggle-switch-width: var(--jkl-unit-60);
6716
6963
  --jkl-toggle-switch-knob-size: var(--jkl-unit-30);
6717
- --jkl-toggle-switch-indicator-spacing: 0;
6718
6964
  position: relative;
6719
6965
  box-sizing: border-box;
6720
6966
  display: flex;
@@ -6736,7 +6982,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6736
6982
  }
6737
6983
  }
6738
6984
  .jkl-toggle-switch:focus-visible .jkl-toggle-switch-widget {
6739
- outline: 3px solid var(--jkl-color-border-action);
6985
+ outline: 3px solid var(--jkl-color-border-strong);
6740
6986
  outline-offset: 3px;
6741
6987
  }
6742
6988
  .jkl-toggle-switch-widget__slider {
@@ -6762,13 +7008,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6762
7008
  position: absolute;
6763
7009
  top: 50%;
6764
7010
  right: 100%;
6765
- margin-right: var(--jkl-toggle-switch-indicator-spacing);
7011
+ font-size: var(--jkl-unit-20);
6766
7012
  transform: translate(0, -50%);
6767
7013
  }
6768
- .jkl-toggle-switch-widget__indicator > .jkl-icon__icon {
6769
- position: absolute;
6770
- inset: 0;
6771
- }
6772
7014
 
6773
7015
  @layer jokul.components {
6774
7016
  .jkl-help {
@@ -6797,8 +7039,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6797
7039
  padding: var(--jkl-unit-30);
6798
7040
  margin: var(--jkl-unit-05);
6799
7041
  position-anchor: --trigger;
6800
- background-color: var(--jkl-color-background-container-inverted);
6801
- color: var(--jkl-color-text-inverted);
7042
+ background-color: var(--jkl-color-background-action);
7043
+ color: var(--jkl-color-text-on-action);
6802
7044
  anchor-name: --help-box;
6803
7045
  }
6804
7046
  .jkl-help-popover[data-position=top] {