@fremtind/jokul 5.0.0-next.9 → 5.0.1

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 (305) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs +1 -1
  3. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
  4. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs +1 -1
  5. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs.map +1 -1
  6. package/build/cjs/components/checkbox-panel/CheckboxPanel.d.cts +1 -1
  7. package/build/cjs/components/expander/Accordion.cjs +2 -0
  8. package/build/cjs/components/expander/Accordion.cjs.map +1 -0
  9. package/build/cjs/components/expander/Accordion.d.cts +2 -0
  10. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  11. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  12. package/build/cjs/components/expander/ExpandablePanelContent.cjs +1 -1
  13. package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -1
  14. package/build/cjs/components/expander/Expander.cjs +1 -1
  15. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  16. package/build/cjs/components/expander/index.cjs +1 -1
  17. package/build/cjs/components/expander/index.d.cts +2 -1
  18. package/build/cjs/components/expander/types.d.cts +5 -2
  19. package/build/cjs/components/icon/Icon.cjs +1 -1
  20. package/build/cjs/components/icon/Icon.cjs.map +1 -1
  21. package/build/cjs/components/icon/Icon.d.cts +2 -2
  22. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs +1 -1
  23. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  24. package/build/cjs/components/icon/icons/GreenCheckIcon.d.cts +2 -3
  25. package/build/cjs/components/icon/icons/RedCrossIcon.cjs +1 -1
  26. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  27. package/build/cjs/components/icon/icons/RedCrossIcon.d.cts +2 -3
  28. package/build/cjs/components/input-panel/InputPanel.cjs +1 -1
  29. package/build/cjs/components/input-panel/InputPanel.cjs.map +1 -1
  30. package/build/cjs/components/input-panel/InputPanel.d.cts +1 -1
  31. package/build/cjs/components/input-panel/types.d.cts +2 -1
  32. package/build/cjs/components/link-list/LinkList.cjs +1 -1
  33. package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
  34. package/build/cjs/components/link-list/LinkList.d.cts +1 -1
  35. package/build/cjs/components/link-list/types.d.cts +1 -0
  36. package/build/cjs/components/message/Message.cjs +1 -1
  37. package/build/cjs/components/message/Message.cjs.map +1 -1
  38. package/build/cjs/components/number-input/NumberInput.cjs +2 -0
  39. package/build/cjs/components/number-input/NumberInput.cjs.map +1 -0
  40. package/build/cjs/components/number-input/NumberInput.d.cts +7 -0
  41. package/build/cjs/components/number-input/index.cjs +2 -0
  42. package/build/cjs/components/number-input/index.cjs.map +1 -0
  43. package/build/cjs/components/number-input/index.d.cts +2 -0
  44. package/build/cjs/components/number-input/types.cjs +2 -0
  45. package/build/cjs/components/number-input/types.cjs.map +1 -0
  46. package/build/cjs/components/number-input/types.d.cts +20 -0
  47. package/build/cjs/components/popover/Popover.cjs +1 -1
  48. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  49. package/build/cjs/components/popover/types.d.cts +8 -1
  50. package/build/cjs/components/radio-panel/RadioPanel.cjs +1 -1
  51. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
  52. package/build/cjs/components/select/Select.cjs +1 -1
  53. package/build/cjs/components/select/Select.cjs.map +1 -1
  54. package/build/cjs/components/system-message/types.d.cts +7 -2
  55. package/build/cjs/components/toast/Toast.cjs +1 -1
  56. package/build/cjs/components/toast/Toast.cjs.map +1 -1
  57. package/build/cjs/components/typography/Title.cjs +1 -1
  58. package/build/cjs/components/typography/Title.cjs.map +1 -1
  59. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs +1 -1
  60. package/build/cjs/hooks/useListNavigation/useListNavigation.cjs.map +1 -1
  61. package/build/cjs/hooks/useListNavigation/useListNavigation.d.cts +11 -2
  62. package/build/cjs/tokens.cjs +1 -1
  63. package/build/cjs/tokens.cjs.map +1 -1
  64. package/build/cjs/utilities/index.cjs +1 -1
  65. package/build/cjs/utilities/types.cjs +1 -1
  66. package/build/cjs/utilities/types.cjs.map +1 -1
  67. package/build/cjs/utilities/types.d.cts +13 -1
  68. package/build/es/components/autosuggest/BaseAutosuggest.js +1 -1
  69. package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
  70. package/build/es/components/checkbox-panel/CheckboxPanel.d.ts +1 -1
  71. package/build/es/components/checkbox-panel/CheckboxPanel.js +1 -1
  72. package/build/es/components/checkbox-panel/CheckboxPanel.js.map +1 -1
  73. package/build/es/components/datepicker/DatePicker.js +1 -1
  74. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  75. package/build/es/components/datepicker/internal/useCalendar.js +1 -1
  76. package/build/es/components/datepicker/internal/utils.js +1 -1
  77. package/build/es/components/expander/Accordion.d.ts +2 -0
  78. package/build/es/components/expander/Accordion.js +2 -0
  79. package/build/es/components/expander/Accordion.js.map +1 -0
  80. package/build/es/components/expander/ExpandablePanel.js +1 -1
  81. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  82. package/build/es/components/expander/ExpandablePanelContent.js +1 -1
  83. package/build/es/components/expander/ExpandablePanelContent.js.map +1 -1
  84. package/build/es/components/expander/Expander.js +1 -1
  85. package/build/es/components/expander/Expander.js.map +1 -1
  86. package/build/es/components/expander/index.d.ts +2 -1
  87. package/build/es/components/expander/index.js +1 -1
  88. package/build/es/components/expander/types.d.ts +5 -2
  89. package/build/es/components/icon/Icon.d.ts +2 -2
  90. package/build/es/components/icon/Icon.js +1 -1
  91. package/build/es/components/icon/Icon.js.map +1 -1
  92. package/build/es/components/icon/icons/GreenCheckIcon.d.ts +2 -3
  93. package/build/es/components/icon/icons/GreenCheckIcon.js +1 -1
  94. package/build/es/components/icon/icons/GreenCheckIcon.js.map +1 -1
  95. package/build/es/components/icon/icons/RedCrossIcon.d.ts +2 -3
  96. package/build/es/components/icon/icons/RedCrossIcon.js +1 -1
  97. package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
  98. package/build/es/components/input-panel/InputPanel.d.ts +1 -1
  99. package/build/es/components/input-panel/InputPanel.js +1 -1
  100. package/build/es/components/input-panel/InputPanel.js.map +1 -1
  101. package/build/es/components/input-panel/types.d.ts +2 -1
  102. package/build/es/components/link-list/LinkList.d.ts +1 -1
  103. package/build/es/components/link-list/LinkList.js +1 -1
  104. package/build/es/components/link-list/LinkList.js.map +1 -1
  105. package/build/es/components/link-list/types.d.ts +1 -0
  106. package/build/es/components/menu/Menu.js +1 -1
  107. package/build/es/components/message/Message.js +1 -1
  108. package/build/es/components/message/Message.js.map +1 -1
  109. package/build/es/components/number-input/NumberInput.d.ts +7 -0
  110. package/build/es/components/number-input/NumberInput.js +2 -0
  111. package/build/es/components/number-input/NumberInput.js.map +1 -0
  112. package/build/es/components/number-input/index.d.ts +2 -0
  113. package/build/es/components/number-input/index.js +2 -0
  114. package/build/es/components/number-input/index.js.map +1 -0
  115. package/build/es/components/number-input/types.d.ts +20 -0
  116. package/build/es/components/number-input/types.js +2 -0
  117. package/build/es/components/number-input/types.js.map +1 -0
  118. package/build/es/components/popover/Popover.js +1 -1
  119. package/build/es/components/popover/Popover.js.map +1 -1
  120. package/build/es/components/popover/types.d.ts +8 -1
  121. package/build/es/components/radio-panel/RadioPanel.js +1 -1
  122. package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
  123. package/build/es/components/select/Select.js +1 -1
  124. package/build/es/components/select/Select.js.map +1 -1
  125. package/build/es/components/system-message/types.d.ts +7 -2
  126. package/build/es/components/toast/Toast.js +1 -1
  127. package/build/es/components/toast/Toast.js.map +1 -1
  128. package/build/es/components/toast/toastContext.js +1 -1
  129. package/build/es/components/tooltip/Tooltip.js +1 -1
  130. package/build/es/components/typography/Title.js +1 -1
  131. package/build/es/components/typography/Title.js.map +1 -1
  132. package/build/es/hooks/stories/content.js +1 -1
  133. package/build/es/hooks/useListNavigation/useListNavigation.d.ts +11 -2
  134. package/build/es/hooks/useListNavigation/useListNavigation.js +1 -1
  135. package/build/es/hooks/useListNavigation/useListNavigation.js.map +1 -1
  136. package/build/es/tokens.js +1 -1
  137. package/build/es/tokens.js.map +1 -1
  138. package/build/es/utilities/constants/index.js +1 -1
  139. package/build/es/utilities/constants/unicode.js +1 -1
  140. package/build/es/utilities/formatters/bytes/formatBytes.js +1 -1
  141. package/build/es/utilities/formatters/fodselsnummer/formatFodselsnummer.js +1 -1
  142. package/build/es/utilities/formatters/kontonummer/formatKontonummer.js +1 -1
  143. package/build/es/utilities/formatters/kortnummer/formatKortnummer.js +1 -1
  144. package/build/es/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js +1 -1
  145. package/build/es/utilities/formatters/telefonnummer/formatTelefonnummer.js +1 -1
  146. package/build/es/utilities/formatters/valuta/formatValuta.js +1 -1
  147. package/build/es/utilities/index.js +1 -1
  148. package/build/es/utilities/types.d.ts +13 -1
  149. package/build/es/utilities/types.js +1 -1
  150. package/build/es/utilities/types.js.map +1 -1
  151. package/build/{index-CWRMnfcx.js → index-C1iqmqvT.js} +2 -2
  152. package/build/{index-CWRMnfcx.js.map → index-C1iqmqvT.js.map} +1 -1
  153. package/build/{utils-CcE6HjQp.js → utils-CtwpNW4I.js} +2 -2
  154. package/build/{utils-CcE6HjQp.js.map → utils-CtwpNW4I.js.map} +1 -1
  155. package/codemods/CODEMODS.md +133 -0
  156. package/codemods/__tests__/import-paths.test.mjs +568 -94
  157. package/codemods/import-paths.mjs +34 -339
  158. package/codemods/transforms/color-tokens.mjs +102 -0
  159. package/codemods/transforms/expandable-panel.mjs +41 -0
  160. package/codemods/transforms/font-family.mjs +23 -0
  161. package/codemods/transforms/import-specifiers.mjs +226 -0
  162. package/codemods/transforms/warnings.mjs +41 -0
  163. package/codemods/utils.mjs +35 -0
  164. package/package.json +8 -4
  165. package/styles/base.css +183 -805
  166. package/styles/base.min.css +1 -1
  167. package/styles/components/autosuggest/autosuggest.css +4 -3
  168. package/styles/components/autosuggest/autosuggest.min.css +1 -1
  169. package/styles/components/autosuggest/autosuggest.scss +4 -3
  170. package/styles/components/breadcrumb/breadcrumb.css +0 -1
  171. package/styles/components/breadcrumb/breadcrumb.min.css +1 -1
  172. package/styles/components/breadcrumb/breadcrumb.scss +0 -1
  173. package/styles/components/button/button.css +9 -4
  174. package/styles/components/button/button.min.css +1 -1
  175. package/styles/components/button/button.scss +11 -5
  176. package/styles/components/checkbox/checkbox.css +1 -1
  177. package/styles/components/checkbox/checkbox.min.css +1 -1
  178. package/styles/components/checkbox/checkbox.scss +1 -1
  179. package/styles/components/checkbox-panel/checkbox-panel.css +1 -1
  180. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  181. package/styles/components/chip/chip.css +0 -1
  182. package/styles/components/chip/chip.min.css +1 -1
  183. package/styles/components/chip/chip.scss +0 -1
  184. package/styles/components/combobox/combobox.css +4 -5
  185. package/styles/components/combobox/combobox.min.css +1 -1
  186. package/styles/components/combobox/combobox.scss +4 -5
  187. package/styles/components/countdown/countdown.css +2 -2
  188. package/styles/components/countdown/countdown.min.css +1 -1
  189. package/styles/components/datepicker/_calendar-date-button.scss +0 -2
  190. package/styles/components/datepicker/datepicker.css +0 -2
  191. package/styles/components/datepicker/datepicker.min.css +1 -1
  192. package/styles/components/expander/_index.scss +1 -0
  193. package/styles/components/expander/accordion.css +21 -0
  194. package/styles/components/expander/accordion.min.css +1 -0
  195. package/styles/components/expander/accordion.scss +24 -0
  196. package/styles/components/expander/expandable.css +32 -37
  197. package/styles/components/expander/expandable.min.css +1 -1
  198. package/styles/components/expander/expandable.scss +27 -36
  199. package/styles/components/feedback/feedback.css +2 -2
  200. package/styles/components/feedback/feedback.min.css +1 -1
  201. package/styles/components/feedback/feedback.scss +0 -1
  202. package/styles/components/file/file.css +4 -1
  203. package/styles/components/file/file.min.css +1 -1
  204. package/styles/components/file/file.scss +5 -1
  205. package/styles/components/file-input/file-input.css +36 -21
  206. package/styles/components/file-input/file-input.min.css +1 -1
  207. package/styles/components/icon/icon.scss +1 -1
  208. package/styles/components/icon-button/icon-button.css +0 -1
  209. package/styles/components/icon-button/icon-button.min.css +1 -1
  210. package/styles/components/icon-button/icon-button.scss +0 -1
  211. package/styles/components/input-group/input-group.css +2 -2
  212. package/styles/components/input-group/input-group.min.css +1 -1
  213. package/styles/components/link/link.css +14 -7
  214. package/styles/components/link/link.min.css +1 -1
  215. package/styles/components/link/link.scss +18 -10
  216. package/styles/components/link-list/link-list.css +7 -2
  217. package/styles/components/link-list/link-list.min.css +1 -1
  218. package/styles/components/link-list/link-list.scss +10 -3
  219. package/styles/components/list/list.css +33 -21
  220. package/styles/components/list/list.min.css +1 -1
  221. package/styles/components/list/list.scss +24 -24
  222. package/styles/components/loader/loader.css +6 -6
  223. package/styles/components/loader/loader.min.css +1 -1
  224. package/styles/components/loader/skeleton-loader.css +3 -3
  225. package/styles/components/loader/skeleton-loader.min.css +1 -1
  226. package/styles/components/menu/_menu-item.scss +1 -2
  227. package/styles/components/menu/menu.css +1 -2
  228. package/styles/components/menu/menu.min.css +1 -1
  229. package/styles/components/message/message.css +9 -10
  230. package/styles/components/message/message.min.css +1 -1
  231. package/styles/components/message/message.scss +7 -8
  232. package/styles/components/modal/_index.scss +7 -0
  233. package/styles/components/modal/_overlay.scss +4 -0
  234. package/styles/components/modal/modal.css +32 -116
  235. package/styles/components/modal/modal.min.css +1 -1
  236. package/styles/components/modal/modal.scss +96 -6
  237. package/styles/components/number-input/_index.scss +2 -0
  238. package/styles/components/number-input/number-input.css +214 -0
  239. package/styles/components/number-input/number-input.min.css +1 -0
  240. package/styles/components/number-input/number-input.scss +115 -0
  241. package/styles/components/pagination/pagination.css +1 -1
  242. package/styles/components/pagination/pagination.scss +1 -1
  243. package/styles/components/progress-bar/progress-bar.css +1 -1
  244. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  245. package/styles/components/radio-button/radio-button.css +1 -5
  246. package/styles/components/radio-button/radio-button.min.css +1 -1
  247. package/styles/components/radio-button/radio-button.scss +2 -7
  248. package/styles/components/search/search.css +0 -1
  249. package/styles/components/search/search.min.css +1 -1
  250. package/styles/components/search/search.scss +0 -1
  251. package/styles/components/segmented-control/segmented-control.css +3 -7
  252. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  253. package/styles/components/select/select.css +65 -7
  254. package/styles/components/select/select.min.css +1 -1
  255. package/styles/components/select/select.scss +129 -18
  256. package/styles/components/system-message/system-message.css +9 -14
  257. package/styles/components/system-message/system-message.min.css +1 -1
  258. package/styles/components/system-message/system-message.scss +113 -121
  259. package/styles/components/table/_table-pagination.scss +0 -1
  260. package/styles/components/table/table.css +0 -1
  261. package/styles/components/table/table.min.css +1 -1
  262. package/styles/components/tabs/tabs.css +0 -1
  263. package/styles/components/tabs/tabs.min.css +1 -1
  264. package/styles/components/tabs/tabs.scss +0 -1
  265. package/styles/components/tag/tag.css +4 -4
  266. package/styles/components/tag/tag.min.css +1 -1
  267. package/styles/components/tag/tag.scss +4 -4
  268. package/styles/components/toast/toast.css +34 -9
  269. package/styles/components/toast/toast.min.css +1 -1
  270. package/styles/components/toast/toast.scss +44 -9
  271. package/styles/components/toggle-switch/toggle-switch.css +0 -1
  272. package/styles/components/toggle-switch/toggle-switch.min.css +1 -1
  273. package/styles/components/toggle-switch/toggle-switch.scss +0 -1
  274. package/styles/components/typography/text.css +2 -2
  275. package/styles/components/typography/text.min.css +1 -1
  276. package/styles/components/typography/text.scss +4 -4
  277. package/styles/components/typography/title.css +8 -30
  278. package/styles/components/typography/title.min.css +1 -1
  279. package/styles/components/typography/title.scss +8 -31
  280. package/styles/components.css +582 -189
  281. package/styles/components.min.css +1 -1
  282. package/styles/components.scss +2 -1
  283. package/styles/global/_base-class.scss +4 -0
  284. package/styles/jkl/_convert.scss +15 -6
  285. package/styles/jkl/_tokens.scss +4 -4
  286. package/styles/tailwind.css +97 -97
  287. package/styles/theme/_color-scheme.scss +95 -95
  288. package/styles/theme/_dynamic-spacing.scss +21 -15
  289. package/styles/theme/_fonts.scss +3 -12
  290. package/styles/theme/_index.scss +0 -4
  291. package/styles/theme/_size.scss +20 -20
  292. package/styles/theme/_tokens.scss +11 -11
  293. package/styles/core/utility/_paragraphs.scss +0 -39
  294. package/styles/theme/brands/dnb/_color-scheme.scss +0 -121
  295. package/styles/theme/brands/dnb/_fonts.scss +0 -46
  296. package/styles/theme/brands/dnb/_index.scss +0 -2
  297. package/styles/theme/brands/eika/_color-scheme.scss +0 -121
  298. package/styles/theme/brands/eika/_fonts.scss +0 -46
  299. package/styles/theme/brands/eika/_index.scss +0 -2
  300. package/styles/theme/brands/fremtind/_color-scheme.scss +0 -121
  301. package/styles/theme/brands/fremtind/_fonts.scss +0 -30
  302. package/styles/theme/brands/fremtind/_index.scss +0 -2
  303. package/styles/theme/brands/sparebank1/_color-scheme.scss +0 -121
  304. package/styles/theme/brands/sparebank1/_fonts.scss +0 -38
  305. package/styles/theme/brands/sparebank1/_index.scss +0 -2
@@ -9,8 +9,8 @@
9
9
  --jkl-autosuggest-controller-button-width: auto;
10
10
  --jkl-autosuggest-controller-button-padding: 0 var(--jkl-unit-15);
11
11
  --jkl-autosuggest-controller-button-icon-size: 1.25rem;
12
- --jkl-autosuggest-option-padding: var(--jkl-unit-10) 0.75em;
13
- --jkl-autosuggest-option-height: 3rem;
12
+ --jkl-autosuggest-option-padding: var(--jkl-unit-10);
13
+ --jkl-autosuggest-option-height: min(var(--jkl-unit-60), 3rem);
14
14
  display: flex;
15
15
  flex-direction: column;
16
16
  align-items: flex-start;
@@ -50,6 +50,7 @@
50
50
  color: unset;
51
51
  display: flex;
52
52
  align-items: center;
53
+ box-sizing: border-box;
53
54
  border: 0;
54
55
  background-color: transparent;
55
56
  min-height: var(--jkl-autosuggest-option-height);
@@ -63,7 +64,7 @@
63
64
  }
64
65
  .jkl-autosuggest__item:focus, .jkl-autosuggest__item--active, .jkl-autosuggest__item:hover {
65
66
  color: var(--jkl-color-text-default);
66
- background-color: color-mix(in srgb, currentColor 10%, transparent);
67
+ background-color: var(--jkl-color-background-container-accent);
67
68
  }
68
69
  }
69
70
  @layer jokul.components {
@@ -321,7 +322,6 @@
321
322
  @layer jokul.components {
322
323
  .jkl-icon-button {
323
324
  background-color: transparent;
324
- cursor: pointer;
325
325
  color: inherit;
326
326
  position: relative;
327
327
  transition-property: box-shadow;
@@ -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-uccvk73 forwards;
434
+ animation: var(--jkl-motion-timing-lazy) cubic-bezier(0, 0, 0.3, 1) var(--jkl-motion-timing-expressive) jkl-support-icon-entrance-uhpq1dc 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-uccvk73 {
488
+ @keyframes jkl-support-icon-entrance-uhpq1dc {
489
489
  0% {
490
490
  margin-right: 0;
491
491
  opacity: 0;
@@ -624,7 +624,6 @@
624
624
  .jkl-breadcrumb__item {
625
625
  margin-bottom: var(--jkl-unit-10);
626
626
  white-space: nowrap;
627
- cursor: pointer;
628
627
  }
629
628
  .jkl-breadcrumb__item-separator {
630
629
  padding-left: var(--jkl-unit-10);
@@ -647,15 +646,9 @@
647
646
  text-decoration-thickness: 0.05em;
648
647
  text-decoration-color: rgb(from currentColor r g b/70%);
649
648
  }
650
- .jkl-link__icon {
651
- margin-inline-start: 0.2em;
652
- margin-block-start: -0.1em;
653
- vertical-align: middle;
654
- }
655
- .jkl-link--external::after, .jkl-link[target=_blank]::after, .jkl-link[download]::after {
649
+ .jkl-link::after {
656
650
  --jkl-icon-fill: 0;
657
651
  --jkl-icon-size: 1em;
658
- content: "\e89e"/"(Åpnes i ny fane)";
659
652
  margin-block-start: -0.1em;
660
653
  padding-inline-start: 0.2em;
661
654
  vertical-align: middle;
@@ -673,6 +666,9 @@
673
666
  transition-property: font-variation-settings, transform;
674
667
  display: inline;
675
668
  }
669
+ .jkl-link--external::after, .jkl-link[target=_blank]::after {
670
+ content: "\e89e"/"(Åpnes i ny fane)";
671
+ }
676
672
  .jkl-link[download]::after {
677
673
  content: "\f090"/"(Last ned fil)";
678
674
  }
@@ -688,6 +684,16 @@
688
684
  --link-color: HighLight;
689
685
  }
690
686
  }
687
+ button.jkl-link {
688
+ appearance: none;
689
+ border: 0;
690
+ padding: 0;
691
+ margin: 0;
692
+ background: none;
693
+ line-height: inherit;
694
+ font: inherit;
695
+ text-align: inherit;
696
+ }
691
697
  }
692
698
  @layer jokul.components {
693
699
  .jkl-button {
@@ -699,6 +705,7 @@
699
705
  --jkl-button-padding-icon-button: var(--jkl-unit-10);
700
706
  --jkl-button-tertiary-padding-icon: var(--jkl-unit-05);
701
707
  --jkl-button-text-ink-offset: 0.1em;
708
+ --button-min-width: 9ch;
702
709
  --jkl-icon-weight: var(--jkl-icon-weight-bold);
703
710
  --text-color: var(--jkl-color-text-default);
704
711
  --background-color: transparent;
@@ -707,7 +714,6 @@
707
714
  display: inline-block;
708
715
  font: var(--jkl-text-style-text-medium);
709
716
  font-weight: var(--jkl-font-weight-bold);
710
- cursor: pointer;
711
717
  user-select: none;
712
718
  background: var(--background-color);
713
719
  color: var(--text-color);
@@ -726,7 +732,10 @@
726
732
  transition-property: background-color;
727
733
  }
728
734
  .jkl-button:has(.jkl-button__text) {
729
- min-width: 9.5ch;
735
+ min-width: var(--button-min-width);
736
+ }
737
+ .jkl-button:has(.jkl-button__text):has(.jkl-icon) {
738
+ min-width: initial;
730
739
  }
731
740
  .jkl-button:has(.jkl-icon:first-child) {
732
741
  padding-inline-start: var(--jkl-button-padding-icon);
@@ -745,6 +754,7 @@
745
754
  display: flex;
746
755
  flex-direction: row;
747
756
  align-items: center;
757
+ justify-content: center;
748
758
  gap: var(--jkl-unit-02);
749
759
  pointer-events: none;
750
760
  }
@@ -761,7 +771,7 @@
761
771
  }
762
772
  .jkl-button__text {
763
773
  display: block;
764
- width: 100%;
774
+ min-width: 0;
765
775
  max-width: 100%;
766
776
  padding-block-start: var(--jkl-button-text-ink-offset);
767
777
  margin-block-start: calc(var(--jkl-button-text-ink-offset) * -1);
@@ -770,7 +780,8 @@
770
780
  text-overflow: ellipsis;
771
781
  }
772
782
  .jkl-button[data-loading=true] .jkl-button__label {
773
- translate: 0 -120%;
783
+ --button-loading-offset: calc(-100% - var(--jkl-button-padding-block) * 2 - var(--jkl-button-text-ink-offset));
784
+ translate: 0 var(--button-loading-offset);
774
785
  }
775
786
  .jkl-button[data-loading=true] .jkl-button__loader {
776
787
  translate: -50% -50%;
@@ -833,22 +844,22 @@
833
844
  animation: 2500ms linear infinite;
834
845
  }
835
846
  .jkl-loader__dot--left {
836
- animation-name: jkl-loader-left-spin-uccvk7r;
847
+ animation-name: jkl-loader-left-spin-uhpq1di;
837
848
  margin-right: calc(var(--jkl-loader-spacing) * 0.9);
838
849
  }
839
850
  .jkl-loader__dot--middle {
840
- animation-name: jkl-loader-middle-spin-uccvk88;
851
+ animation-name: jkl-loader-middle-spin-uhpq1ds;
841
852
  margin-right: var(--jkl-loader-spacing);
842
853
  }
843
854
  .jkl-loader__dot--right {
844
- animation-name: jkl-loader-right-spin-uccvk96;
855
+ animation-name: jkl-loader-right-spin-uhpq1em;
845
856
  }
846
857
  @media screen and (forced-colors: active) {
847
858
  .jkl-loader__dot {
848
859
  background-color: CanvasText;
849
860
  }
850
861
  }
851
- @keyframes jkl-loader-left-spin-uccvk7r {
862
+ @keyframes jkl-loader-left-spin-uhpq1di {
852
863
  0% {
853
864
  transform: rotate(0) scale(0);
854
865
  }
@@ -862,7 +873,7 @@
862
873
  transform: rotate(180deg) scale(0);
863
874
  }
864
875
  }
865
- @keyframes jkl-loader-middle-spin-uccvk88 {
876
+ @keyframes jkl-loader-middle-spin-uhpq1ds {
866
877
  0% {
867
878
  transform: rotate(20deg) scale(0);
868
879
  }
@@ -879,7 +890,7 @@
879
890
  transform: rotate(200deg) scale(0);
880
891
  }
881
892
  }
882
- @keyframes jkl-loader-right-spin-uccvk96 {
893
+ @keyframes jkl-loader-right-spin-uhpq1em {
883
894
  0% {
884
895
  transform: rotate(40deg) scale(0);
885
896
  }
@@ -919,7 +930,7 @@
919
930
  @media screen and (forced-colors: active) {
920
931
  .jkl-skeleton-element {
921
932
  border: 1px solid CanvasText;
922
- animation: 2s ease infinite jkl-blink-uccvk9z;
933
+ animation: 2s ease infinite jkl-blink-uhpq1fc;
923
934
  }
924
935
  }
925
936
  .jkl-skeleton-input {
@@ -967,10 +978,10 @@
967
978
  }
968
979
  @media screen and (forced-colors: active) {
969
980
  .jkl-skeleton-table {
970
- animation: 2s ease-in-out infinite jkl-blink-uccvk9z;
981
+ animation: 2s ease-in-out infinite jkl-blink-uhpq1fc;
971
982
  }
972
983
  }
973
- @keyframes jkl-blink-uccvk9z {
984
+ @keyframes jkl-blink-uhpq1fc {
974
985
  0% {
975
986
  opacity: 1;
976
987
  }
@@ -1120,22 +1131,22 @@
1120
1131
  gap: var(--gap);
1121
1132
  }
1122
1133
  .jkl-tag--info {
1123
- --background-color: var(--jkl-color-info-background-container);
1134
+ --background-color: var(--jkl-color-info-background-container-accent);
1124
1135
  --text-color: var(--jkl-color-info-text-default);
1125
1136
  --border-color: var(--jkl-color-info-border-subdued);
1126
1137
  }
1127
1138
  .jkl-tag--warning {
1128
- --background-color: var(--jkl-color-warning-background-container);
1139
+ --background-color: var(--jkl-color-warning-background-container-accent);
1129
1140
  --text-color: var(--jkl-color-warning-text-default);
1130
1141
  --border-color: var(--jkl-color-warning-border-subdued);
1131
1142
  }
1132
1143
  .jkl-tag--error {
1133
- --background-color: var(--jkl-color-error-background-container);
1144
+ --background-color: var(--jkl-color-error-background-container-accent);
1134
1145
  --text-color: var(--jkl-color-error-text-default);
1135
1146
  --border-color: var(--jkl-color-error-border-subdued);
1136
1147
  }
1137
1148
  .jkl-tag--success {
1138
- --background-color: var(--jkl-color-success-background-container);
1149
+ --background-color: var(--jkl-color-success-background-container-accent);
1139
1150
  --text-color: var(--jkl-color-success-text-default);
1140
1151
  --border-color: var(--jkl-color-success-border-subdued);
1141
1152
  }
@@ -1161,7 +1172,7 @@
1161
1172
 
1162
1173
  @layer jokul.components {
1163
1174
  .jkl-checkbox {
1164
- --text-color: var(--jkl-color-text-default);
1175
+ --text-color: var(--jkl-color-background-contrast);
1165
1176
  --background-color: transparent;
1166
1177
  font: var(--jkl-text-style-text-medium);
1167
1178
  display: flex;
@@ -1350,7 +1361,6 @@
1350
1361
  --border-width: 0.0625rem;
1351
1362
  font: var(--jkl-text-style-text-small);
1352
1363
  font-weight: var(--jkl-font-weight-bold);
1353
- cursor: pointer;
1354
1364
  position: relative;
1355
1365
  background-color: var(--background-color);
1356
1366
  color: var(--text-color);
@@ -1414,8 +1424,8 @@
1414
1424
  --jkl-combobox-chips-gap: var(--jkl-unit-05);
1415
1425
  --jkl-combobox-search-input-padding: var(--jkl-combobox-button-padding);
1416
1426
  --jkl-combobox-native-padding: 0 var(--jkl-unit-50) 0 var(--jkl-unit-10);
1417
- --jkl-combobox-option-padding: var(--jkl-unit-10) var(--jkl-unit-15);
1418
- --jkl-combobox-option-line-height: 2rem;
1427
+ --jkl-combobox-option-padding: var(--jkl-unit-10);
1428
+ --jkl-combobox-option-height: min(var(--jkl-unit-60), 3rem);
1419
1429
  --jkl-combobox-search-input-height: 1.75rem;
1420
1430
  }
1421
1431
  @media (width >= 0) and (max-width: 679px) {
@@ -1651,14 +1661,13 @@
1651
1661
  color: var(--jkl-color-text-default);
1652
1662
  background-color: transparent;
1653
1663
  transition-property: color, background-color;
1654
- cursor: pointer;
1664
+ min-height: var(--jkl-combobox-option-height);
1655
1665
  padding: var(--jkl-combobox-option-padding);
1656
1666
  width: 100%;
1657
1667
  text-align: left;
1658
- line-height: var(--jkl-combobox-option-line-height);
1659
1668
  }
1660
1669
  .jkl-combobox__option:focus, .jkl-combobox__option:hover {
1661
- background-color: color-mix(in srgb, currentColor 10%, transparent);
1670
+ background-color: var(--jkl-color-background-container-accent);
1662
1671
  }
1663
1672
  .jkl-combobox__option-description {
1664
1673
  font: var(--jkl-text-style-text-small);
@@ -1738,12 +1747,6 @@
1738
1747
  }
1739
1748
  @layer jokul.components {
1740
1749
  .jkl-list {
1741
- /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
1742
- --jkl-list-marker-cross: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A");
1743
- --jkl-list-marker-cross: light-dark(url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23F6B3B3'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A"), url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23DE9E9E'/%3E%3Cpath fill='%231B1917' d='M5.54 12.68l7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231B1917' d='M12.67 13.47l-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E%0A"));
1744
- --jkl-list-marker-check: url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A");
1745
- --jkl-list-marker-check: light-dark(url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23ACD3B5'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A"), url("data:image/svg+xml,%3Csvg width='19' height='19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%2394B79B'/%3E%3Cpath d='M4.75 11l2.35 2.36 7.84-7.84' stroke='%231B1917' stroke-width='1.5'/%3E%3C/svg%3E%0A"));
1746
- /* stylelint-enable declaration-block-no-duplicate-custom-properties */
1747
1750
  --list-text-color: var(--jkl-color-text-default);
1748
1751
  list-style-type: "•";
1749
1752
  padding-left: var(--jkl-unit-20);
@@ -1779,32 +1782,138 @@
1779
1782
  padding-left: 0;
1780
1783
  }
1781
1784
  .jkl-list__item--iconed::before {
1782
- text-indent: -9999px;
1783
- background-size: contain;
1784
- width: 1em;
1785
- height: 1em;
1785
+ font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1786
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1787
+ font-feature-settings: "liga";
1788
+ -webkit-font-feature-settings: "liga";
1789
+ font-size: 1.3em;
1790
+ font-weight: 400;
1791
+ line-height: 1;
1792
+ display: inline-block;
1793
+ -webkit-font-smoothing: antialiased;
1794
+ transition-timing-function: var(--jkl-motion-easing-standard);
1795
+ transition-duration: var(--jkl-motion-timing-energetic);
1796
+ transition-property: font-variation-settings, transform;
1797
+ display: inline-grid;
1798
+ place-items: center;
1799
+ width: 1.1875em;
1800
+ height: 1.1875em;
1801
+ box-sizing: border-box;
1786
1802
  flex-shrink: 0;
1787
1803
  margin-right: 0.5em;
1788
1804
  margin-top: 0.2em;
1805
+ font-size: 1em;
1806
+ line-height: 1;
1807
+ border-radius: 999px;
1808
+ --jkl-icon-weight: var(--jkl-icon-weight-bold);
1789
1809
  }
1790
1810
  .jkl-list__item--check::before {
1791
- content: "";
1792
- content: ""/"";
1811
+ content: "\e5ca";
1812
+ content: "\e5ca"/"";
1793
1813
  alt: " ";
1794
- background-image: var(--jkl-list-marker-check);
1814
+ color: var(--jkl-color-success-text-on-contrast);
1815
+ background-color: var(--jkl-color-success-background-contrast);
1795
1816
  }
1796
1817
  .jkl-list__item--cross::before {
1797
- content: "";
1798
- content: ""/"";
1818
+ content: "\e5cd";
1819
+ content: "\e5cd"/"";
1799
1820
  alt: " ";
1800
- background-image: var(--jkl-list-marker-cross);
1821
+ color: var(--jkl-color-error-text-on-contrast);
1822
+ background-color: var(--jkl-color-error-background-contrast);
1823
+ }
1824
+ @media screen and (forced-colors: active) {
1825
+ .jkl-list .jkl-list__item--check::before, .jkl-list .jkl-list__item--cross::before {
1826
+ background-color: Canvas;
1827
+ color: CanvasText;
1828
+ border: 1px solid CanvasText;
1829
+ }
1830
+ }
1831
+ }
1832
+ @layer jokul.components {
1833
+ .jkl-modal-container,
1834
+ .jkl-modal-overlay {
1835
+ position: fixed;
1836
+ inset: 0;
1837
+ }
1838
+ .jkl-modal-container {
1839
+ z-index: 9000;
1840
+ display: flex;
1841
+ }
1842
+ .jkl-modal-container[aria-hidden=true] {
1843
+ display: none;
1844
+ }
1845
+ .jkl-modal-overlay {
1846
+ background-color: rgba(27, 25, 23, 0.8);
1847
+ }
1848
+ .jkl-modal {
1849
+ --jkl-modal-padding: var(--jkl-unit-50);
1850
+ --jkl-modal-min-width: 13.75rem;
1851
+ --jkl-modal-max-width: 41.25rem;
1852
+ margin: auto;
1853
+ z-index: 9000;
1854
+ position: relative;
1855
+ background-color: var(--jkl-color-background-container);
1856
+ border-radius: var(--jkl-border-radius-l);
1857
+ box-shadow: 0 0.25rem 0.75rem rgba(37, 42, 49, 0.03);
1858
+ width: 100%;
1859
+ min-width: var(--jkl-modal-min-width);
1860
+ max-width: var(--jkl-modal-max-width);
1861
+ max-height: 90vh;
1862
+ overflow: auto;
1863
+ padding: var(--jkl-modal-padding);
1864
+ display: flex;
1865
+ flex-direction: column;
1801
1866
  }
1802
1867
  @media screen and (forced-colors: active) {
1803
- .jkl-list .jkl-list__item--check::before {
1804
- background-image: _check(CanvasText, Canvas);
1868
+ .jkl-modal {
1869
+ border-color: CanvasText;
1870
+ }
1871
+ }
1872
+ @media (width >= 0) and (max-width: 679px) {
1873
+ .jkl-modal {
1874
+ margin: auto var(--jkl-unit-30);
1875
+ }
1876
+ }
1877
+ .jkl-modal-header {
1878
+ --jkl-modal-header-margin: 0 0 var(--jkl-unit-20);
1879
+ }
1880
+ @media (width >= 0) and (max-width: 679px) {
1881
+ .jkl-modal-header {
1882
+ --jkl-modal-header-margin: 0 0 var(--jkl-unit-15);
1883
+ }
1884
+ }
1885
+ .jkl-modal-header {
1886
+ display: flex;
1887
+ flex-direction: row;
1888
+ justify-content: space-between;
1889
+ align-items: center;
1890
+ margin: var(--jkl-modal-header-margin);
1891
+ gap: var(--jkl-modal-gap);
1892
+ }
1893
+ .jkl-modal-body {
1894
+ font: var(--jkl-text-style-paragraph-medium);
1895
+ }
1896
+ .jkl-modal-title {
1897
+ font: var(--jkl-text-style-heading-3);
1898
+ }
1899
+ .jkl-modal-actions {
1900
+ --jkl-modal-actions-margin: var(--jkl-unit-50) 0 0 0;
1901
+ }
1902
+ @media (width >= 0) and (max-width: 679px) {
1903
+ .jkl-modal-actions {
1904
+ --jkl-modal-actions-margin: var(--jkl-unit-40) 0 0 0;
1805
1905
  }
1806
- .jkl-list .jkl-list__item--cross::before {
1807
- background-image: _cross(CanvasText, Canvas);
1906
+ }
1907
+ .jkl-modal-actions {
1908
+ margin: var(--jkl-modal-actions-margin);
1909
+ display: flex;
1910
+ flex-direction: column;
1911
+ gap: var(--jkl-unit-20);
1912
+ }
1913
+ @media (min-width: 60ch) {
1914
+ .jkl-modal-actions {
1915
+ flex-direction: row-reverse;
1916
+ align-self: flex-end;
1808
1917
  }
1809
1918
  }
1810
1919
  }
@@ -1830,6 +1939,11 @@
1830
1939
  .jkl-modal-overlay {
1831
1940
  background-color: rgba(27, 25, 23, 0.8);
1832
1941
  opacity: 0;
1942
+ }
1943
+ .jkl-modal-overlay--transparent {
1944
+ background-color: transparent;
1945
+ }
1946
+ .jkl-modal-overlay {
1833
1947
  transition-timing-function: var(--jkl-motion-easing-entrance);
1834
1948
  transition-duration: var(--jkl-motion-timing-expressive);
1835
1949
  transition-property: opacity;
@@ -2005,10 +2119,10 @@
2005
2119
  }
2006
2120
  }
2007
2121
  .jkl-countdown__tracker {
2008
- animation: jkl-downcount-uccvkax var(--duration) linear forwards;
2122
+ animation: jkl-downcount-uhpq1gp var(--duration) linear forwards;
2009
2123
  animation-play-state: var(--play-state, running);
2010
2124
  }
2011
- @keyframes jkl-downcount-uccvkax {
2125
+ @keyframes jkl-downcount-uhpq1gp {
2012
2126
  from {
2013
2127
  width: 100%;
2014
2128
  }
@@ -2192,12 +2306,10 @@
2192
2306
  }
2193
2307
  .jkl-calendar-date-button:hover:not(:disabled) {
2194
2308
  background-color: color-mix(in srgb, currentColor 10%, transparent);
2195
- cursor: pointer;
2196
2309
  }
2197
2310
  .jkl-calendar-date-button[aria-pressed=true] {
2198
2311
  background-color: var(--jkl-color-background-contrast);
2199
2312
  color: var(--jkl-color-text-on-contrast);
2200
- cursor: pointer;
2201
2313
  }
2202
2314
  .jkl-calendar-date-button[aria-pressed=true]:hover {
2203
2315
  color: var(--jkl-color);
@@ -2347,81 +2459,84 @@
2347
2459
  }
2348
2460
  }
2349
2461
  @layer jokul.components {
2350
- .jkl-expandable {
2462
+ .jkl-expandable-panel {
2351
2463
  background-color: var(--jkl-color-background-container);
2352
2464
  border: 1px solid transparent;
2353
- border-radius: var(--border-radius);
2465
+ border-radius: var(--jkl-border-radius-s);
2354
2466
  box-sizing: border-box;
2355
2467
  width: 100%;
2356
2468
  overflow: hidden;
2357
2469
  }
2358
- .jkl-expandable__content[data-expanded=true] {
2470
+ @media screen and (forced-colors: active) {
2471
+ .jkl-expandable-panel {
2472
+ border: 1px solid CanvasText;
2473
+ }
2474
+ }
2475
+ .jkl-expandable-panel__content[data-expanded=true] {
2359
2476
  height: auto;
2360
2477
  }
2361
- .jkl-expandable__content[data-expanded=false] {
2478
+ .jkl-expandable-panel__content[data-expanded=false] {
2362
2479
  height: 0;
2363
2480
  }
2364
- .jkl-expandable[data-visible-content=true] .jkl-expander {
2481
+ .jkl-expandable-panel[data-visible-content=true] .jkl-expander {
2365
2482
  border-bottom: 1px solid transparent;
2366
2483
  }
2367
- .jkl-expandable__content-wrapper {
2484
+ .jkl-expandable-panel__content-wrapper {
2368
2485
  padding: var(--jkl-unit-20);
2369
2486
  }
2370
- .jkl-expandable--stroke {
2487
+ .jkl-expandable-panel--outlined {
2371
2488
  border-color: var(--jkl-color-border-subdued);
2372
2489
  background-color: transparent;
2373
- border-radius: 0;
2374
- border-radius: var(--border-top-left-radius) var(--border-top-right-radius) var(--border-bottom-right-radius) var(--border-bottom-left-radius);
2375
2490
  }
2376
- .jkl-expandable__wrapper {
2377
- --border-radius: 0.25rem;
2491
+ .jkl-expandable-panel__wrapper {
2492
+ --border-radius: var(--jkl-border-radius-m);
2378
2493
  --outline-offset: 3px;
2379
2494
  --stroke-outline-offset: 3px;
2380
- --border-top-left-radius: var(--border-radius);
2381
- --border-top-right-radius: var(--border-radius);
2382
- --border-bottom-left-radius: var(--border-radius);
2383
- --border-bottom-right-radius: var(--border-radius);
2384
2495
  position: relative;
2385
2496
  }
2386
- .jkl-expandable__wrapper + .jkl-expandable__wrapper {
2497
+ .jkl-expandable-panel__wrapper + .jkl-expandable-panel__wrapper {
2387
2498
  --border-top-left-radius: 0;
2388
2499
  --border-top-right-radius: 0;
2389
2500
  --stroke-outline-offset: -1px;
2390
2501
  }
2391
- .jkl-expandable__wrapper + .jkl-expandable__wrapper .jkl-expandable--stroke {
2392
- border-top: none;
2393
- }
2394
- .jkl-expandable__wrapper:has(+ .jkl-expandable__wrapper) {
2502
+ .jkl-expandable-panel__wrapper:has(+ .jkl-expandable-panel__wrapper) {
2395
2503
  --border-bottom-left-radius: 0;
2396
2504
  --border-bottom-right-radius: 0;
2397
2505
  --stroke-outline-offset: -1px;
2398
2506
  }
2399
- .jkl-expandable__wrapper:has(.jkl-expander:focus-visible):has(.jkl-expandable--stroke) {
2507
+ .jkl-expandable-panel__wrapper:has(.jkl-expander:focus-visible):has(.jkl-expandable-panel--outlined) {
2400
2508
  --outline-offset: var(--stroke-outline-offset);
2401
2509
  }
2402
- .jkl-expandable__wrapper:has(.jkl-expander:focus-visible) .jkl-expandable__focus-container {
2510
+ .jkl-expandable-panel__wrapper:has(.jkl-expander:focus-visible) .jkl-expandable-panel__focus-container {
2403
2511
  outline: 3px solid var(--jkl-color-border-strong);
2404
2512
  outline-offset: 3px;
2405
2513
  outline-offset: var(--outline-offset);
2406
2514
  }
2407
- .jkl-expandable__focus-container {
2408
- border-radius: var(--border-radius);
2515
+ .jkl-expandable-panel__wrapper .jkl-expander {
2516
+ padding: var(--jkl-unit-20);
2517
+ width: 100%;
2518
+ }
2519
+ .jkl-expandable-panel__wrapper .jkl-expander__label {
2520
+ flex-grow: 1;
2521
+ }
2522
+ @media (hover: hover) {
2523
+ .jkl-expandable-panel__wrapper .jkl-expander:hover {
2524
+ background-color: var(--jkl-color-background-container-accent);
2525
+ }
2526
+ }
2527
+ .jkl-expandable-panel__focus-container {
2409
2528
  position: absolute;
2410
2529
  inset: 0;
2411
2530
  }
2412
2531
  .jkl-expander {
2413
- --hover-background-color: color-mix(in srgb,
2414
- currentColor 15%,
2415
- transparent);
2416
2532
  box-sizing: border-box;
2417
2533
  background: none;
2418
2534
  appearance: none;
2419
2535
  border: none;
2420
2536
  text-align: left;
2421
- width: 100%;
2422
- padding: var(--jkl-unit-20);
2423
2537
  cursor: pointer;
2424
2538
  color: var(--jkl-color);
2539
+ -webkit-tap-highlight-color: transparent;
2425
2540
  display: flex;
2426
2541
  gap: 0.5rem;
2427
2542
  align-items: center;
@@ -2431,9 +2546,6 @@
2431
2546
  .jkl-expander::-webkit-details-marker {
2432
2547
  display: none;
2433
2548
  }
2434
- .jkl-expander__label {
2435
- flex-grow: 1;
2436
- }
2437
2549
  .jkl-expander__chevron {
2438
2550
  user-select: none;
2439
2551
  transition-property: transform;
@@ -2450,11 +2562,6 @@
2450
2562
  transition-timing-function: var(--jkl-motion-easing-standard);
2451
2563
  transition-duration: var(--jkl-motion-timing-snappy);
2452
2564
  }
2453
- @media (hover: hover) {
2454
- .jkl-expander:hover {
2455
- background-color: var(--hover-background-color);
2456
- }
2457
- }
2458
2565
  .jkl-expander {
2459
2566
  outline: 0;
2460
2567
  border-style: none;
@@ -2476,6 +2583,27 @@
2476
2583
  }
2477
2584
  }
2478
2585
  }
2586
+ @layer jokul.components {
2587
+ .jkl-accordion {
2588
+ background-color: var(--jkl-color-background-container);
2589
+ border-radius: var(--jkl-border-radius-s);
2590
+ padding-inline-start: unset;
2591
+ list-style-type: unset;
2592
+ overflow: clip;
2593
+ }
2594
+ .jkl-accordion .jkl-expandable-panel {
2595
+ border-radius: unset;
2596
+ border: unset;
2597
+ background-color: transparent;
2598
+ }
2599
+ .jkl-accordion .jkl-expandable-panel__wrapper:not(:last-of-type) {
2600
+ border-block-end: 1px solid var(--jkl-color-border-subdued);
2601
+ }
2602
+ .jkl-accordion[data-outlined=true] {
2603
+ border: 1px solid var(--jkl-color-border-subdued);
2604
+ background-color: transparent;
2605
+ }
2606
+ }
2479
2607
  @layer jokul.components {
2480
2608
  .jkl-feedback {
2481
2609
  max-width: 34.375rem;
@@ -2495,12 +2623,12 @@
2495
2623
  font: var(--jkl-text-style-paragraph-small);
2496
2624
  }
2497
2625
  .jkl-feedback__fade-in {
2498
- animation: jkl-show-uccvkbl 0.25s ease-out;
2626
+ animation: jkl-show-uhpq1hl 0.25s ease-out;
2499
2627
  }
2500
2628
  .jkl-feedback__buttons {
2501
2629
  display: flex;
2502
2630
  }
2503
- @keyframes jkl-show-uccvkbl {
2631
+ @keyframes jkl-show-uhpq1hl {
2504
2632
  from {
2505
2633
  transform: translate3d(0, 0.5rem, 0);
2506
2634
  opacity: 0;
@@ -2574,16 +2702,15 @@
2574
2702
  --jkl-message-dismiss-button-size: var(--jkl-unit-50);
2575
2703
  --jkl-message-gap: var(--jkl-unit-20);
2576
2704
  --jkl-message-padding: var(--jkl-unit-25) var(--jkl-unit-15);
2705
+ --icon-color: var(--jkl-color-background-contrast);
2577
2706
  --background-color: var(--jkl-color-background-container);
2578
2707
  --text-color: var(--jkl-color-text-default);
2579
- --border-color: var(--jkl-color-border-subdued);
2580
2708
  width: 100%;
2581
2709
  max-width: 35rem;
2582
2710
  padding: var(--jkl-message-padding);
2583
2711
  background-color: var(--background-color);
2584
2712
  color: var(--text-color);
2585
- border: 1px solid var(--border-color);
2586
- border-radius: 0.25rem;
2713
+ border-radius: var(--jkl-border-radius-s);
2587
2714
  box-sizing: border-box;
2588
2715
  display: grid;
2589
2716
  align-items: start;
@@ -2597,6 +2724,7 @@
2597
2724
  .jkl-message__icon {
2598
2725
  grid-area: icon;
2599
2726
  margin-right: var(--jkl-message-gap);
2727
+ color: var(--icon-color);
2600
2728
  }
2601
2729
  @media screen and (forced-colors: active) {
2602
2730
  .jkl-message__icon {
@@ -2626,7 +2754,6 @@
2626
2754
  position: relative;
2627
2755
  background-color: transparent;
2628
2756
  padding: 0;
2629
- cursor: pointer;
2630
2757
  color: inherit;
2631
2758
  display: grid;
2632
2759
  place-content: center;
@@ -2695,25 +2822,25 @@
2695
2822
  .jkl-message--info {
2696
2823
  --background-color: var(--jkl-color-info-background-container);
2697
2824
  --text-color: var(--jkl-color-info-text-default);
2698
- --border-color: var(--jkl-color-info-border-subdued);
2825
+ --icon-color: var(--jkl-color-info-background-contrast);
2699
2826
  }
2700
2827
  .jkl-message--warning {
2701
2828
  --background-color: var(--jkl-color-warning-background-container);
2702
2829
  --text-color: var(--jkl-color-warning-text-default);
2703
- --border-color: var(--jkl-color-warning-border-subdued);
2830
+ --icon-color: var(--jkl-color-warning-background-contrast);
2704
2831
  }
2705
2832
  .jkl-message--error {
2706
2833
  --background-color: var(--jkl-color-error-background-container);
2707
2834
  --text-color: var(--jkl-color-error-text-default);
2708
- --border-color: var(--jkl-color-error-border-subdued);
2835
+ --icon-color: var(--jkl-color-error-background-contrast);
2709
2836
  }
2710
2837
  .jkl-message--success {
2711
2838
  --background-color: var(--jkl-color-success-background-container);
2712
2839
  --text-color: var(--jkl-color-success-text-default);
2713
- --border-color: var(--jkl-color-success-border-subdued);
2840
+ --icon-color: var(--jkl-color-success-background-contrast);
2714
2841
  }
2715
2842
  .jkl-message--dismissed {
2716
- animation: jkl-dismiss-uccvkcf var(--jkl-motion-timing-lazy) ease-in-out forwards;
2843
+ animation: jkl-dismiss-uhpq1i8 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2717
2844
  transition: visibility 0ms var(--jkl-motion-timing-lazy);
2718
2845
  visibility: hidden;
2719
2846
  }
@@ -2735,7 +2862,7 @@
2735
2862
  .jkl-form-error-message {
2736
2863
  padding-bottom: var(--jkl-unit-50);
2737
2864
  }
2738
- @keyframes jkl-dismiss-uccvkcf {
2865
+ @keyframes jkl-dismiss-uhpq1i8 {
2739
2866
  from {
2740
2867
  opacity: 1;
2741
2868
  transform: translate3d(0, 0, 0);
@@ -2748,10 +2875,6 @@
2748
2875
  }
2749
2876
  @layer jokul.components {
2750
2877
  .jkl-radio-button {
2751
- /* stylelint-disable declaration-block-no-duplicate-custom-properties -- fallback for browsers without light-dark() support */
2752
- --jkl-radio-button-error-color: #ab2e43;
2753
- --jkl-radio-button-error-color: light-dark(#ab2e43, #d79ba5);
2754
- /* stylelint-enable declaration-block-no-duplicate-custom-properties */
2755
2878
  display: flex;
2756
2879
  position: relative;
2757
2880
  }
@@ -2845,7 +2968,7 @@
2845
2968
  content: "radio_button_checked";
2846
2969
  }
2847
2970
  .jkl-radio-button__input[aria-invalid=true] + .jkl-radio-button__label::before {
2848
- color: var(--jkl-color-error-text-default);
2971
+ color: var(--jkl-color-error-background-contrast);
2849
2972
  }
2850
2973
  .jkl-radio-button + .jkl-radio-button, .jkl-dormant-form-support-label + .jkl-radio-button, .jkl-form-support-label + .jkl-radio-button {
2851
2974
  margin-top: 0.75lh;
@@ -3146,7 +3269,7 @@
3146
3269
  transition-timing-function: var(--jkl-motion-easing-standard);
3147
3270
  transition-duration: var(--jkl-motion-timing-snappy);
3148
3271
  transition-property: background-color, border-color, color;
3149
- color: var(--jkl-color-text-default);
3272
+ color: var(--text-color);
3150
3273
  padding: var(--jkl-file-padding);
3151
3274
  border: var(--border);
3152
3275
  border-radius: var(--border-radius);
@@ -3251,6 +3374,9 @@
3251
3374
  --link-color: var(--text-color);
3252
3375
  --jkl-color-border-strong: currentColor;
3253
3376
  }
3377
+ .jkl-file[data-state=error] .jkl-file__content {
3378
+ border-color: var(--jkl-color-error-border-default);
3379
+ }
3254
3380
  @keyframes spin {
3255
3381
  from {
3256
3382
  transform: rotate(0turn);
@@ -3357,6 +3483,7 @@
3357
3483
  }
3358
3484
  @layer jokul.components {
3359
3485
  .jkl-link-list {
3486
+ --background: var(--jkl-color-background-container);
3360
3487
  --border: 1px solid var(--jkl-color-border-subdued);
3361
3488
  --text-color: var(--jkl-color-text-default);
3362
3489
  font: var(--jkl-text-style-paragraph-medium);
@@ -3374,7 +3501,7 @@
3374
3501
  height: min-content;
3375
3502
  border-radius: var(--jkl-unit-05);
3376
3503
  overflow: hidden;
3377
- background-color: var(--jkl-color-background-container);
3504
+ background-color: var(--background);
3378
3505
  }
3379
3506
  .jkl-link-list ul .jkl-link-list-link {
3380
3507
  display: flex;
@@ -3411,7 +3538,7 @@
3411
3538
  transition-property: translate;
3412
3539
  }
3413
3540
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible) {
3414
- background-color: color-mix(in srgb, var(--text-color) 15%);
3541
+ background-color: var(--jkl-color-background-container-accent);
3415
3542
  }
3416
3543
  .jkl-link-list ul .jkl-link-list-link:is(:hover, :focus-visible)::after {
3417
3544
  translate: 4px 0;
@@ -3420,6 +3547,10 @@
3420
3547
  outline: 3px solid var(--jkl-color-border-strong);
3421
3548
  outline-offset: 3px;
3422
3549
  }
3550
+ .jkl-link-list[data-outlined=true] ul {
3551
+ border: var(--border);
3552
+ --background: transparent;
3553
+ }
3423
3554
  .jkl-link-list .jkl-link-list-item {
3424
3555
  display: flex;
3425
3556
  }
@@ -3510,7 +3641,6 @@
3510
3641
  background-color: var(--background-color);
3511
3642
  color: var(--jkl-color-text-default);
3512
3643
  text-decoration: none;
3513
- cursor: pointer;
3514
3644
  box-sizing: border-box;
3515
3645
  user-select: none;
3516
3646
  font: var(--jkl-text-style-text-medium);
@@ -3565,7 +3695,7 @@
3565
3695
  flex-shrink: 0;
3566
3696
  }
3567
3697
  .jkl-menu-item:hover, .jkl-menu-item:focus-visible {
3568
- --background-color: color-mix(in srgb, currentColor 18%, transparent);
3698
+ --background-color: var(--jkl-color-background-container-accent);
3569
3699
  }
3570
3700
  }
3571
3701
  @layer jokul.components {
@@ -3668,6 +3798,217 @@
3668
3798
  transform: translateX(-0.3rem);
3669
3799
  }
3670
3800
  }
3801
+ @layer jokul.components {
3802
+ .jkl-number-input {
3803
+ display: flex;
3804
+ flex-direction: column;
3805
+ align-items: flex-start;
3806
+ }
3807
+ .jkl-number-input__wrapper {
3808
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
3809
+ --jkl-text-input-vertical-padding: var(--jkl-unit-15);
3810
+ --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
3811
+ --jkl-text-input-action-button-size: var(--jkl-unit-60);
3812
+ --jkl-text-input-action-button-icon-size: var(--jkl-unit-30);
3813
+ --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
3814
+ --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
3815
+ --text-color: var(--jkl-color-text-default);
3816
+ --background-color: transparent;
3817
+ --border-color: var(--jkl-color-border-default);
3818
+ --placeholder-color: var(--jkl-color-text-subdued);
3819
+ border-radius: var(--jkl-border-radius-s);
3820
+ box-sizing: border-box;
3821
+ max-width: 100%;
3822
+ position: relative;
3823
+ display: flex;
3824
+ align-items: center;
3825
+ font: var(--jkl-text-style-text-medium);
3826
+ transition-timing-function: var(--jkl-motion-easing-standard);
3827
+ transition-duration: var(--jkl-motion-timing-productive);
3828
+ transition-property: color, box-shadow, background-color;
3829
+ background-color: var(--background-color);
3830
+ color: var(--text-color);
3831
+ box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
3832
+ }
3833
+ .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
3834
+ --background-color: var(--jkl-color-background-container);
3835
+ }
3836
+ .jkl-number-input__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
3837
+ --background-color: var(--jkl-color-error-background-container);
3838
+ --text-color: var(--jkl-color-error-text-default);
3839
+ --border-color: var(--jkl-color-error-border-default);
3840
+ --placeholder-color: var(--jkl-color-error-text-subdued);
3841
+ }
3842
+ .jkl-number-input__wrapper:hover, .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
3843
+ --border-color: var(--jkl-color-border-strong);
3844
+ box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
3845
+ }
3846
+ @media screen and (forced-colors: active) {
3847
+ .jkl-number-input__wrapper:hover, .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
3848
+ border: 0.125rem solid ButtonText;
3849
+ }
3850
+ }
3851
+ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-text-input__input:focus-visible), html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-text-area__text-area:focus-visible) {
3852
+ outline: 3px solid var(--jkl-color-border-strong);
3853
+ outline-offset: 3px;
3854
+ }
3855
+ .jkl-number-input__wrapper > .jkl-icon-button:focus-visible {
3856
+ outline: 3px solid var(--jkl-color-border-strong);
3857
+ outline-offset: -8px;
3858
+ }
3859
+ @media screen and (forced-colors: active) {
3860
+ .jkl-number-input__wrapper > .jkl-icon-button:focus-visible {
3861
+ --border-color: ButtonText;
3862
+ }
3863
+ }
3864
+ .jkl-number-input__wrapper > .jkl-text-input-action-button {
3865
+ flex-shrink: 0;
3866
+ display: flex;
3867
+ box-sizing: border-box;
3868
+ align-items: center;
3869
+ justify-content: center;
3870
+ padding: var(--jkl-text-input-action-button-padding);
3871
+ height: var(--jkl-text-input-action-button-size);
3872
+ width: var(--jkl-text-input-action-button-size);
3873
+ margin-inline-start: calc(var(--jkl-text-input-horizontal-padding) * -1);
3874
+ }
3875
+ .jkl-number-input__wrapper > .jkl-text-input-action-button .jkl-icon-button__icon {
3876
+ height: var(--jkl-text-input-action-button-icon-size);
3877
+ width: var(--jkl-text-input-action-button-icon-size);
3878
+ }
3879
+ .jkl-number-input__wrapper > .jkl-text-input-action-button:hover {
3880
+ color: var(--jkl-color-text-subdued);
3881
+ }
3882
+ @media screen and (forced-colors: active) {
3883
+ .jkl-number-input__wrapper > .jkl-text-input-action-button:hover {
3884
+ border: 0.125rem inset ButtonText;
3885
+ }
3886
+ }
3887
+ @media screen and (forced-colors: active) {
3888
+ .jkl-number-input__wrapper {
3889
+ border: 0.125rem inset ButtonText;
3890
+ }
3891
+ }
3892
+ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-number-input__input:focus-visible) {
3893
+ outline: 3px solid var(--jkl-color-border-strong);
3894
+ outline-offset: 3px;
3895
+ }
3896
+ .jkl-number-input__wrapper:has(.jkl-number-input__input:invalid):not(:focus-within):not(:has([data-focused=true])) {
3897
+ --background-color: var(--jkl-color-background-alert-error);
3898
+ --text-color: var(--jkl-color-text-on-alert);
3899
+ --placeholder-color: color(from currentColor sRGB r g b / 75%);
3900
+ }
3901
+ .jkl-number-input__wrapper--stepper {
3902
+ --jkl-number-input-stepper-min-width: calc(3ch + (var(--jkl-text-input-horizontal-padding) * 2));
3903
+ --jkl-number-input-stepper-text-color: var(--text-color);
3904
+ display: grid;
3905
+ grid-template-columns: max-content minmax(var(--jkl-number-input-stepper-min-width), 1fr) max-content;
3906
+ overflow: hidden;
3907
+ }
3908
+ .jkl-number-input__wrapper--stepper:has(button[data-direction]:focus-visible) {
3909
+ overflow: visible;
3910
+ }
3911
+ .jkl-number-input__input {
3912
+ padding: var(--jkl-text-input-padding);
3913
+ width: 100%;
3914
+ appearance: textfield;
3915
+ -moz-appearance: textfield;
3916
+ background: none;
3917
+ -webkit-appearance: none;
3918
+ color: inherit;
3919
+ font: var(--jkl-text-style-text-medium);
3920
+ }
3921
+ .jkl-number-input__input {
3922
+ outline: 0;
3923
+ border-style: none;
3924
+ outline-style: none;
3925
+ }
3926
+ .jkl-number-input__input:active, .jkl-number-input__input:hover, .jkl-number-input__input:focus {
3927
+ outline: 0;
3928
+ outline-style: none;
3929
+ }
3930
+ @media screen and (forced-colors: active) {
3931
+ .jkl-number-input__input {
3932
+ outline: revert;
3933
+ border-style: revert;
3934
+ outline-style: revert;
3935
+ }
3936
+ .jkl-number-input__input:active, .jkl-number-input__input:hover, .jkl-number-input__input:focus {
3937
+ outline: revert;
3938
+ outline-style: revert;
3939
+ }
3940
+ }
3941
+ .jkl-number-input__input input[type=number]::-webkit-outer-spin-button,
3942
+ .jkl-number-input__input input[type=number]::-webkit-inner-spin-button {
3943
+ -webkit-appearance: none;
3944
+ }
3945
+ .jkl-number-input__input input[type=number] {
3946
+ -moz-appearance: textfield;
3947
+ }
3948
+ @media screen and (forced-colors: active) {
3949
+ .jkl-number-input__input {
3950
+ outline: none;
3951
+ border: none;
3952
+ }
3953
+ .jkl-number-input__input:focus-visible {
3954
+ outline: none;
3955
+ }
3956
+ }
3957
+ .jkl-number-input__input::placeholder {
3958
+ opacity: 1;
3959
+ color: var(--placeholder-color);
3960
+ }
3961
+ .jkl-number-input__input::-webkit-inner-spin-button, .jkl-number-input__input::-webkit-outer-spin-button {
3962
+ -webkit-appearance: none;
3963
+ margin: 0;
3964
+ }
3965
+ .jkl-number-input__input--align-right {
3966
+ text-align: right;
3967
+ }
3968
+ .jkl-number-input__input--stepper {
3969
+ box-sizing: border-box;
3970
+ min-inline-size: var(--jkl-number-input-stepper-min-width);
3971
+ text-align: center;
3972
+ }
3973
+ .jkl-number-input button[data-direction] {
3974
+ --text-color: var(--jkl-number-input-stepper-text-color);
3975
+ aspect-ratio: 1;
3976
+ padding: 0;
3977
+ display: inline-grid;
3978
+ place-items: center;
3979
+ text-align: center;
3980
+ height: 100%;
3981
+ }
3982
+ .jkl-number-input button[data-direction]::before {
3983
+ content: "";
3984
+ position: absolute;
3985
+ width: 1px;
3986
+ inset-block: 20%;
3987
+ background-color: var(--jkl-color-border-separator);
3988
+ transition-timing-function: var(--jkl-motion-easing-standard);
3989
+ transition-duration: var(--jkl-motion-timing-productive);
3990
+ transition-property: inset;
3991
+ }
3992
+ .jkl-number-input button[data-direction]:hover::before, .jkl-number-input button[data-direction]:focus-visible::before {
3993
+ inset-block: 0.0625rem;
3994
+ }
3995
+ .jkl-number-input button[data-direction]:disabled {
3996
+ opacity: 0.4;
3997
+ cursor: not-allowed;
3998
+ }
3999
+ .jkl-number-input button[data-direction=decrement]::before {
4000
+ inset-inline-end: 0;
4001
+ }
4002
+ .jkl-number-input button[data-direction=increment]::before {
4003
+ inset-inline-start: 0;
4004
+ }
4005
+ .jkl-number-input button[data-direction].jkl-button {
4006
+ border-radius: 0;
4007
+ }
4008
+ .jkl-number-input button[data-direction].jkl-button .jkl-icon {
4009
+ margin-block-start: 0.4ex;
4010
+ }
4011
+ }
3671
4012
  .jkl-navlink--beta {
3672
4013
  --border-radius: 4px;
3673
4014
  --separator: 1px solid var(--jkl-color-border-subdued);
@@ -3746,13 +4087,13 @@
3746
4087
  .jkl-pagination-button {
3747
4088
  --button-size: var(--jkl-unit-40);
3748
4089
  all: unset;
4090
+ cursor: pointer;
3749
4091
  display: flex;
3750
4092
  align-items: center;
3751
4093
  justify-content: center;
3752
4094
  height: var(--button-size);
3753
4095
  min-width: var(--button-size);
3754
4096
  text-align: center;
3755
- cursor: pointer;
3756
4097
  user-select: none;
3757
4098
  border-radius: 0.1875rem;
3758
4099
  color: var(--jkl-color-text-default);
@@ -3785,7 +4126,7 @@
3785
4126
  --min-option-height: min(var(--jkl-unit-60), 3rem);
3786
4127
  /* Vi må trekke fra bredden til rammen for å få riktig høyde */
3787
4128
  --button-padding: calc(var(--jkl-unit-15) - var(--border-width)) calc(0.75em - var(--border-width));
3788
- --option-padding: var(--jkl-unit-05) 0.75em;
4129
+ --option-padding: var(--jkl-unit-10);
3789
4130
  display: block;
3790
4131
  position: relative;
3791
4132
  }
@@ -3917,11 +4258,20 @@
3917
4258
  border-top: none;
3918
4259
  border-radius: 0 0 var(--border-radius) var(--border-radius);
3919
4260
  box-sizing: border-box;
4261
+ margin-inline: -0.0625rem;
4262
+ width: calc(100% + 0.125rem);
4263
+ --min-option-height: min(var(--jkl-unit-60), 3rem);
4264
+ --option-padding: var(--jkl-unit-05) 0.75em;
3920
4265
  overflow-y: auto;
3921
4266
  max-height: calc((var(--jkl-select-max-shown-options, 5) + 0.5) * var(--min-option-height));
3922
- transition-property: height;
3923
- transition-timing-function: var(--jkl-motion-easing-standard);
3924
- transition-duration: var(--jkl-motion-timing-productive);
4267
+ }
4268
+ .jkl-select__options-menu[data-popover-placement=bottom] {
4269
+ border-top: none;
4270
+ border-radius: 0 0 var(--jkl-border-radius-s) var(--jkl-border-radius-s);
4271
+ }
4272
+ .jkl-select__options-menu[data-popover-placement=top] {
4273
+ border-bottom: none;
4274
+ border-radius: var(--jkl-border-radius-s) var(--jkl-border-radius-s) 0 0;
3925
4275
  }
3926
4276
  .jkl-select__option-wrapper {
3927
4277
  margin: 0;
@@ -3949,7 +4299,7 @@
3949
4299
  }
3950
4300
  .jkl-select__option:focus, :not([data-focus=controlled]) > .jkl-select__option:hover {
3951
4301
  color: var(--jkl-color-text-default);
3952
- background-color: color-mix(in srgb, currentColor 10%, transparent);
4302
+ background-color: var(--jkl-color-background-container-accent);
3953
4303
  }
3954
4304
  .jkl-select__option-description {
3955
4305
  color: var(--jkl-color-text-subdued);
@@ -3978,6 +4328,16 @@
3978
4328
  .jkl-select--open .jkl-select__button:hover ~ .jkl-select__arrow {
3979
4329
  transform: translateY(calc(-50% + -0.1875rem));
3980
4330
  }
4331
+ .jkl-select--open .jkl-select__outer-wrapper[data-popover-placement=bottom] .jkl-select__search-input,
4332
+ .jkl-select--open .jkl-select__outer-wrapper[data-popover-placement=bottom] .jkl-select__button {
4333
+ border-bottom-left-radius: 0;
4334
+ border-bottom-right-radius: 0;
4335
+ }
4336
+ .jkl-select--open .jkl-select__outer-wrapper[data-popover-placement=top] .jkl-select__search-input,
4337
+ .jkl-select--open .jkl-select__outer-wrapper[data-popover-placement=top] .jkl-select__button {
4338
+ border-top-left-radius: 0;
4339
+ border-top-right-radius: 0;
4340
+ }
3981
4341
  .jkl-select--invalid .jkl-select__search-input,
3982
4342
  .jkl-select--invalid .jkl-select__button {
3983
4343
  background-color: var(--jkl-color-error-background-container);
@@ -3997,12 +4357,14 @@
3997
4357
  .jkl-select .jkl-select__button:hover, .jkl-select .jkl-select__search-input:hover {
3998
4358
  border-color: Highlight;
3999
4359
  }
4000
- .jkl-select .jkl-select__option {
4360
+ }
4361
+ @media screen and (forced-colors: active) {
4362
+ .jkl-select__option {
4001
4363
  color: CanvasText;
4002
4364
  border-top: 1px solid Canvas;
4003
4365
  border-bottom: 1px solid Canvas;
4004
4366
  }
4005
- .jkl-select .jkl-select__option:hover, .jkl-select .jkl-select__option:focus {
4367
+ .jkl-select__option:hover, .jkl-select__option:focus {
4006
4368
  border-top: 1px solid SelectedItem;
4007
4369
  border-bottom: 1px solid SelectedItem;
4008
4370
  --jkl-icon-weight: 400;
@@ -4010,6 +4372,43 @@
4010
4372
  letter-spacing: -0.014em;
4011
4373
  }
4012
4374
  }
4375
+ .jkl-popover.jkl-select__popover {
4376
+ background: none;
4377
+ box-shadow: none;
4378
+ border-radius: 0;
4379
+ z-index: 7000;
4380
+ }
4381
+ @media (prefers-reduced-motion: no-preference) {
4382
+ .jkl-select__options-menu {
4383
+ animation: jkl-select-options-menu-in var(--jkl-motion-timing-snappy) var(--jkl-motion-easing-standard);
4384
+ }
4385
+ .jkl-select__options-menu[data-popover-placement=top] {
4386
+ animation-name: jkl-select-options-menu-in-from-top;
4387
+ }
4388
+ }
4389
+ @keyframes jkl-select-options-menu-in {
4390
+ from {
4391
+ opacity: 0;
4392
+ transform: translateY(-0.25rem);
4393
+ }
4394
+ to {
4395
+ opacity: 1;
4396
+ transform: translateY(0);
4397
+ }
4398
+ }
4399
+ @keyframes jkl-select-options-menu-in-from-top {
4400
+ from {
4401
+ opacity: 0;
4402
+ transform: translateY(0.25rem);
4403
+ }
4404
+ to {
4405
+ opacity: 1;
4406
+ transform: translateY(0);
4407
+ }
4408
+ }
4409
+ .jkl-select__option:focus-visible {
4410
+ outline: none;
4411
+ }
4013
4412
  }
4014
4413
  @layer jokul.components {
4015
4414
  .jkl-progress-bar {
@@ -4064,7 +4463,7 @@
4064
4463
  transition-timing-function: var(--jkl-motion-easing-standard);
4065
4464
  transition-duration: var(--jkl-motion-timing-productive);
4066
4465
  }
4067
- @keyframes jkl-downcount-uccvkd9 {
4466
+ @keyframes jkl-downcount-uhpq1j6 {
4068
4467
  from {
4069
4468
  width: 100%;
4070
4469
  }
@@ -4256,7 +4655,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4256
4655
  border: 0;
4257
4656
  height: 100%;
4258
4657
  padding: 0;
4259
- cursor: pointer;
4260
4658
  color: var(--jkl-color-text-default);
4261
4659
  border-radius: 100%;
4262
4660
  }
@@ -4443,19 +4841,16 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4443
4841
  @layer jokul.components {
4444
4842
  .jkl-system-message {
4445
4843
  --jkl-system-message-icon-height: var(--jkl-unit-30);
4446
- --jkl-system-message-icon-padding: 0.1875rem 0 0 0;
4447
4844
  --jkl-system-message-content-padding: var(--jkl-unit-30);
4448
4845
  --jkl-system-message-dismiss-button-size: var(--jkl-unit-40);
4449
- --jkl-system-message-dismiss-button-margin: -0.40625rem
4450
- -1.125rem -0.40625rem auto;
4846
+ --jkl-system-message-dismiss-button-margin: -0.40625rem -1.125rem -0.40625rem auto;
4451
4847
  --jkl-system-message-message-margin: 0 var(--jkl-unit-20);
4848
+ --icon-color: var(--jkl-color-background-contrast);
4452
4849
  --background-color: var(--jkl-color-background-container);
4453
4850
  --text-color: var(--jkl-color-text-default);
4454
- --border-color: var(--jkl-color-border-subdued);
4455
4851
  width: 100%;
4456
4852
  background-color: var(--background-color);
4457
4853
  color: var(--text-color);
4458
- border: 1px solid var(--border-color);
4459
4854
  transition-behavior: allow-discrete;
4460
4855
  box-sizing: border-box;
4461
4856
  }
@@ -4470,7 +4865,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4470
4865
  }
4471
4866
  .jkl-system-message__icon {
4472
4867
  height: var(--jkl-system-message-icon-height);
4473
- margin: var(--jkl-system-message-icon-padding);
4868
+ color: var(--icon-color);
4474
4869
  flex-shrink: 0;
4475
4870
  }
4476
4871
  @media screen and (forced-colors: active) {
@@ -4488,12 +4883,10 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4488
4883
  .jkl-system-message__dismiss-button {
4489
4884
  background-color: transparent;
4490
4885
  padding: 0;
4491
- cursor: pointer;
4492
4886
  display: grid;
4493
4887
  place-content: center;
4494
4888
  position: relative;
4495
4889
  flex-shrink: 0;
4496
- margin-top: 0.1875rem;
4497
4890
  color: inherit;
4498
4891
  }
4499
4892
  .jkl-system-message__dismiss-button::after {
@@ -4564,28 +4957,28 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4564
4957
  margin-bottom: 0;
4565
4958
  }
4566
4959
  .jkl-system-message--dismissed {
4567
- animation: jkl-dismiss-uccvkdz var(--jkl-motion-timing-lazy) forwards;
4960
+ animation: jkl-dismiss-uhpq1kd var(--jkl-motion-timing-lazy) forwards;
4568
4961
  transition: block var(--jkl-motion-timing-lazy) var(--jkl-motion-timing-lazy);
4569
4962
  }
4570
4963
  .jkl-system-message--info {
4571
4964
  --background-color: var(--jkl-color-info-background-container);
4572
4965
  --text-color: var(--jkl-color-info-text-default);
4573
- --border-color: var(--jkl-color-info-border-subdued);
4966
+ --icon-color: var(--jkl-color-info-background-contrast);
4574
4967
  }
4575
4968
  .jkl-system-message--warning {
4576
4969
  --background-color: var(--jkl-color-warning-background-container);
4577
4970
  --text-color: var(--jkl-color-warning-text-default);
4578
- --border-color: var(--jkl-color-warning-border-subdued);
4971
+ --icon-color: var(--jkl-color-warning-background-contrast);
4579
4972
  }
4580
4973
  .jkl-system-message--error {
4581
4974
  --background-color: var(--jkl-color-error-background-container);
4582
4975
  --text-color: var(--jkl-color-error-text-default);
4583
- --border-color: var(--jkl-color-error-border-subdued);
4976
+ --icon-color: var(--jkl-color-error-background-contrast);
4584
4977
  }
4585
4978
  .jkl-system-message--success {
4586
4979
  --background-color: var(--jkl-color-success-background-container);
4587
4980
  --text-color: var(--jkl-color-success-text-default);
4588
- --border-color: var(--jkl-color-success-border-subdued);
4981
+ --icon-color: var(--jkl-color-success-background-contrast);
4589
4982
  }
4590
4983
  @media screen and (forced-colors: active) {
4591
4984
  .jkl-system-message {
@@ -4602,7 +4995,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4602
4995
  border-width: 4px;
4603
4996
  }
4604
4997
  }
4605
- @keyframes jkl-dismiss-uccvkdz {
4998
+ @keyframes jkl-dismiss-uhpq1kd {
4606
4999
  from {
4607
5000
  opacity: 1;
4608
5001
  transform: translateY(0);
@@ -4838,7 +5231,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4838
5231
  background: transparent;
4839
5232
  color: var(--jkl-link-color);
4840
5233
  border-radius: 0.1875rem;
4841
- cursor: pointer;
4842
5234
  user-select: none;
4843
5235
  padding: 0;
4844
5236
  height: 2rem;
@@ -5215,7 +5607,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5215
5607
  padding: var(--jkl-unit-10) var(--padding-inline-end) var(--jkl-unit-10) var(--jkl-unit-05);
5216
5608
  border: none;
5217
5609
  background-color: transparent;
5218
- cursor: pointer;
5219
5610
  position: relative;
5220
5611
  scroll-margin-inline-start: var(--jkl-unit-20);
5221
5612
  scroll-snap-align: start;
@@ -5305,7 +5696,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5305
5696
  color: var(--text-color);
5306
5697
  background-color: var(--background-color);
5307
5698
  border: 1px solid var(--border-color);
5308
- border-radius: 4px;
5699
+ border-radius: var(--jkl-border-radius-s);
5309
5700
  box-sizing: border-box;
5310
5701
  align-items: start;
5311
5702
  overflow: hidden;
@@ -5315,12 +5706,14 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5315
5706
  font: var(--jkl-text-style-paragraph-medium);
5316
5707
  }
5317
5708
  .jkl-toast__progress {
5318
- --bar-color: var(--jkl-color-background-contrast);
5319
- --track-color: transparent;
5320
- border-radius: 0;
5321
5709
  position: absolute;
5322
5710
  inset: 0 0 auto;
5323
5711
  }
5712
+ .jkl-toast .jkl-countdown {
5713
+ --track-color: transparent;
5714
+ --bar-color: var(--jkl-color-background-contrast);
5715
+ border-radius: 0;
5716
+ }
5324
5717
  @media screen and (forced-colors: active) {
5325
5718
  .jkl-toast__icon {
5326
5719
  stroke: CanvasText;
@@ -5348,7 +5741,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5348
5741
  .jkl-toast__dismiss-button {
5349
5742
  background-color: transparent;
5350
5743
  padding: 0;
5351
- cursor: pointer;
5352
5744
  color: inherit;
5353
5745
  }
5354
5746
  @media screen and (forced-colors: active) {
@@ -5375,21 +5767,45 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5375
5767
  --text-color: var(--jkl-color-info-text-default);
5376
5768
  --border-color: var(--jkl-color-info-border-subdued);
5377
5769
  }
5770
+ .jkl-toast--info .jkl-countdown {
5771
+ --bar-color: var(--jkl-color-info-background-contrast);
5772
+ }
5773
+ .jkl-toast--info .jkl-toast__icon {
5774
+ color: var(--jkl-color-info-background-contrast);
5775
+ }
5378
5776
  .jkl-toast--warning {
5379
5777
  --background-color: var(--jkl-color-warning-background-container);
5380
5778
  --text-color: var(--jkl-color-warning-text-default);
5381
5779
  --border-color: var(--jkl-color-warning-border-subdued);
5382
5780
  }
5781
+ .jkl-toast--warning .jkl-countdown {
5782
+ --bar-color: var(--jkl-color-warning-background-contrast);
5783
+ }
5784
+ .jkl-toast--warning .jkl-toast__icon {
5785
+ color: var(--jkl-color-warning-background-contrast);
5786
+ }
5383
5787
  .jkl-toast--error {
5384
5788
  --background-color: var(--jkl-color-error-background-container);
5385
5789
  --text-color: var(--jkl-color-error-text-default);
5386
5790
  --border-color: var(--jkl-color-error-border-subdued);
5387
5791
  }
5792
+ .jkl-toast--error .jkl-countdown {
5793
+ --bar-color: var(--jkl-color-error-background-contrast);
5794
+ }
5795
+ .jkl-toast--error .jkl-toast__icon {
5796
+ color: var(--jkl-color-error-background-contrast);
5797
+ }
5388
5798
  .jkl-toast--success {
5389
5799
  --background-color: var(--jkl-color-success-background-container);
5390
5800
  --text-color: var(--jkl-color-success-text-default);
5391
5801
  --border-color: var(--jkl-color-success-border-subdued);
5392
5802
  }
5803
+ .jkl-toast--success .jkl-countdown {
5804
+ --bar-color: var(--jkl-color-success-background-contrast);
5805
+ }
5806
+ .jkl-toast--success .jkl-toast__icon {
5807
+ color: var(--jkl-color-success-background-contrast);
5808
+ }
5393
5809
  @media screen and (forced-colors: active) {
5394
5810
  .jkl-toast {
5395
5811
  border: 2px solid CanvasText;
@@ -5407,12 +5823,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5407
5823
  }
5408
5824
  .jkl-toast[data-animation=entering],
5409
5825
  .jkl-toast[data-animation=queued] {
5410
- animation: jkl-entering-uccvkeo var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5826
+ animation: jkl-entering-uhpq1kj var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5411
5827
  }
5412
5828
  .jkl-toast[data-animation=exiting] {
5413
- animation: jkl-exiting-uccvkff var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5829
+ animation: jkl-exiting-uhpq1le var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5414
5830
  }
5415
- @keyframes jkl-entering-uccvkeo {
5831
+ @keyframes jkl-entering-uhpq1kj {
5416
5832
  from {
5417
5833
  opacity: 0;
5418
5834
  transform: translate3d(0, 50%, 0);
@@ -5422,7 +5838,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5422
5838
  transform: translate3d(0, 0, 0);
5423
5839
  }
5424
5840
  }
5425
- @keyframes jkl-exiting-uccvkff {
5841
+ @keyframes jkl-exiting-uhpq1le {
5426
5842
  from {
5427
5843
  opacity: 1;
5428
5844
  transform: translate3d(0, 0, 0);
@@ -6897,7 +7313,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
6897
7313
  background: transparent;
6898
7314
  color: var(--text-color);
6899
7315
  padding: 0;
6900
- cursor: pointer;
6901
7316
  -webkit-tap-highlight-color: transparent;
6902
7317
  display: flex;
6903
7318
  flex-direction: row-reverse;
@@ -7004,7 +7419,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7004
7419
 
7005
7420
  @layer jokul.components {
7006
7421
  :where(.jkl-text) {
7007
- font-weight: var(--jkl-typography-weight-normal);
7422
+ font-weight: var(--jkl-font-weight-normal);
7008
7423
  line-height: var(--jkl-line-height-relaxed);
7009
7424
  }
7010
7425
  .jkl-text[data-text-size] {
@@ -7024,7 +7439,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7024
7439
  }
7025
7440
  .jkl-text[data-bold],
7026
7441
  strong.jkl-text[data-text-size] {
7027
- font-weight: var(--jkl-typography-weight-bold);
7442
+ font-weight: var(--jkl-font-weight-bold);
7028
7443
  }
7029
7444
  .jkl-text[data-short] {
7030
7445
  line-height: var(--jkl-line-height-tight);
@@ -7038,53 +7453,31 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7038
7453
  }
7039
7454
  }
7040
7455
  @layer jokul.components {
7041
- :where(.jkl-title) {
7042
- font-weight: var(--jkl-typography-weight-normal);
7043
- line-height: var(--jkl-line-height-tight);
7044
- }
7045
- .jkl-title[data-text-size] {
7456
+ :is(h1, h2, h3, h4, h5, h6, label, legend)[data-text-size=xs] {
7046
7457
  margin-block: 0;
7047
- }
7048
- .jkl-title[data-text-size=xs],
7049
- .jkl-heading-xs {
7050
7458
  font: var(--jkl-text-style-heading-5);
7051
7459
  }
7052
- :where(.jkl-heading-xs) {
7460
+ :is(h1, h2, h3, h4, h5, h6, label, legend)[data-text-size=s] {
7053
7461
  margin-block: 0;
7054
- }
7055
- .jkl-title[data-text-size=s],
7056
- .jkl-heading-s {
7057
7462
  font: var(--jkl-text-style-heading-4);
7058
7463
  }
7059
- :where(.jkl-heading-s) {
7464
+ :is(h1, h2, h3, h4, h5, h6, label, legend)[data-text-size=m] {
7060
7465
  margin-block: 0;
7061
- }
7062
- .jkl-title[data-text-size=m],
7063
- .jkl-heading-m {
7064
7466
  font: var(--jkl-text-style-heading-3);
7065
7467
  }
7066
- :where(.jkl-heading-m) {
7468
+ :is(h1, h2, h3, h4, h5, h6, label, legend)[data-text-size=l] {
7067
7469
  margin-block: 0;
7068
- }
7069
- .jkl-title[data-text-size=l],
7070
- .jkl-heading-l {
7071
7470
  font: var(--jkl-text-style-heading-2);
7072
7471
  }
7073
- :where(.jkl-heading-l) {
7472
+ :is(h1, h2, h3, h4, h5, h6, label, legend)[data-text-size=xl] {
7074
7473
  margin-block: 0;
7075
- }
7076
- .jkl-title[data-text-size=xl],
7077
- .jkl-heading-xl {
7078
7474
  font: var(--jkl-text-style-heading-1);
7079
7475
  }
7080
- :where(.jkl-heading-xl) {
7081
- margin-block: 0;
7082
- }
7083
- :is(label, legend).jkl-title[data-text-size] {
7084
- font-weight: var(--jkl-typography-weight-normal);
7476
+ :is(label, legend)[data-text-size] {
7477
+ font-weight: var(--jkl-font-weight-normal);
7085
7478
  line-height: var(--jkl-line-height-relaxed);
7086
7479
  }
7087
- label.jkl-title[data-text-size] {
7480
+ :is(label)[data-text-size] {
7088
7481
  display: block;
7089
7482
  margin-block-end: var(--jkl-spacing-8);
7090
7483
  }