@fremtind/jokul 5.0.4 → 5.1.0

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 (146) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/combobox/Combobox.cjs +1 -1
  3. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  4. package/build/cjs/components/expander/types.d.cts +1 -1
  5. package/build/cjs/components/help/Help.cjs +1 -1
  6. package/build/cjs/components/help/Help.cjs.map +1 -1
  7. package/build/cjs/components/icon/icons/ErrorIcon.cjs +1 -1
  8. package/build/cjs/components/icon/icons/ErrorIcon.cjs.map +1 -1
  9. package/build/cjs/components/menu/Menu.cjs +1 -1
  10. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  11. package/build/cjs/components/popover/Popover.cjs +1 -1
  12. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  13. package/build/cjs/components/popover/types.d.cts +10 -0
  14. package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
  15. package/build/cjs/components/select/Select.cjs +1 -1
  16. package/build/cjs/components/select/Select.cjs.map +1 -1
  17. package/build/cjs/components/system-message/SystemMessage.cjs +1 -1
  18. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  19. package/build/cjs/components/typography/Text.cjs +1 -1
  20. package/build/cjs/components/typography/Text.cjs.map +1 -1
  21. package/build/cjs/components/typography/Title.cjs +1 -1
  22. package/build/cjs/components/typography/Title.cjs.map +1 -1
  23. package/build/cjs/components/typography/types.d.cts +17 -0
  24. package/build/cjs/tokens.cjs +1 -1
  25. package/build/cjs/tokens.cjs.map +1 -1
  26. package/build/cjs/tokens.d.cts +1 -0
  27. package/build/es/components/combobox/Combobox.js +1 -1
  28. package/build/es/components/combobox/Combobox.js.map +1 -1
  29. package/build/es/components/expander/types.d.ts +1 -1
  30. package/build/es/components/help/Help.js +1 -1
  31. package/build/es/components/help/Help.js.map +1 -1
  32. package/build/es/components/icon/icons/ErrorIcon.js +1 -1
  33. package/build/es/components/icon/icons/ErrorIcon.js.map +1 -1
  34. package/build/es/components/menu/Menu.js +1 -1
  35. package/build/es/components/menu/Menu.js.map +1 -1
  36. package/build/es/components/popover/Popover.js +1 -1
  37. package/build/es/components/popover/Popover.js.map +1 -1
  38. package/build/es/components/popover/types.d.ts +10 -0
  39. package/build/es/components/radio-button/RadioButton.js.map +1 -1
  40. package/build/es/components/select/Select.js +1 -1
  41. package/build/es/components/select/Select.js.map +1 -1
  42. package/build/es/components/system-message/SystemMessage.js +1 -1
  43. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  44. package/build/es/components/typography/Text.js +1 -1
  45. package/build/es/components/typography/Text.js.map +1 -1
  46. package/build/es/components/typography/Title.js +1 -1
  47. package/build/es/components/typography/Title.js.map +1 -1
  48. package/build/es/components/typography/types.d.ts +17 -0
  49. package/build/es/tokens.d.ts +1 -0
  50. package/build/es/tokens.js +1 -1
  51. package/build/es/tokens.js.map +1 -1
  52. package/package.json +4 -2
  53. package/src/tokens/metadata/color.metadata.dark.json +165 -0
  54. package/src/tokens/metadata/color.metadata.light.json +165 -0
  55. package/src/tokens/metadata/color.metadata.saturated.dark.json +165 -0
  56. package/src/tokens/metadata/color.metadata.saturated.light.json +165 -0
  57. package/styles/base.css +2 -8
  58. package/styles/base.min.css +1 -1
  59. package/styles/components/beta/nav-link/navlink.css +2 -1
  60. package/styles/components/beta/nav-link/navlink.min.css +1 -1
  61. package/styles/components/checkbox/checkbox.css +9 -5
  62. package/styles/components/checkbox/checkbox.min.css +1 -1
  63. package/styles/components/checkbox/checkbox.scss +7 -4
  64. package/styles/components/checkbox-panel/checkbox-panel.css +27 -5
  65. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  66. package/styles/components/combobox/combobox.css +4 -7
  67. package/styles/components/combobox/combobox.min.css +1 -1
  68. package/styles/components/combobox/combobox.scss +11 -10
  69. package/styles/components/countdown/countdown.css +2 -2
  70. package/styles/components/countdown/countdown.min.css +1 -1
  71. package/styles/components/feedback/feedback.css +2 -2
  72. package/styles/components/feedback/feedback.min.css +1 -1
  73. package/styles/components/file-input/file-input.css +13 -13
  74. package/styles/components/file-input/file-input.min.css +1 -1
  75. package/styles/components/help/help.css +2 -2
  76. package/styles/components/help/help.min.css +1 -1
  77. package/styles/components/help/help.scss +2 -2
  78. package/styles/components/icon/_base-styles.scss +2 -2
  79. package/styles/components/icon/icon.css +2 -1
  80. package/styles/components/icon/icon.min.css +1 -1
  81. package/styles/components/input-group/_labels.scss +22 -4
  82. package/styles/components/input-group/input-group.css +15 -3
  83. package/styles/components/input-group/input-group.min.css +1 -1
  84. package/styles/components/input-panel/input-panel.css +18 -0
  85. package/styles/components/input-panel/input-panel.min.css +1 -1
  86. package/styles/components/input-panel/input-panel.scss +24 -1
  87. package/styles/components/link/link.css +4 -4
  88. package/styles/components/link/link.min.css +1 -1
  89. package/styles/components/link/link.scss +2 -3
  90. package/styles/components/link-list/link-list.css +2 -1
  91. package/styles/components/link-list/link-list.min.css +1 -1
  92. package/styles/components/list/list.css +2 -1
  93. package/styles/components/list/list.min.css +1 -1
  94. package/styles/components/loader/loader.css +6 -6
  95. package/styles/components/loader/loader.min.css +1 -1
  96. package/styles/components/loader/skeleton-loader.css +3 -3
  97. package/styles/components/loader/skeleton-loader.min.css +1 -1
  98. package/styles/components/menu/_menu-item.scss +1 -1
  99. package/styles/components/menu/menu.css +3 -2
  100. package/styles/components/menu/menu.min.css +1 -1
  101. package/styles/components/menu/menu.scss +2 -1
  102. package/styles/components/message/message.css +2 -2
  103. package/styles/components/message/message.min.css +1 -1
  104. package/styles/components/number-input/number-input.css +2 -2
  105. package/styles/components/number-input/number-input.min.css +1 -1
  106. package/styles/components/progress-bar/progress-bar.css +1 -1
  107. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  108. package/styles/components/radio-button/radio-button.css +8 -3
  109. package/styles/components/radio-button/radio-button.min.css +1 -1
  110. package/styles/components/radio-button/radio-button.scss +7 -3
  111. package/styles/components/radio-panel/radio-panel.css +18 -0
  112. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  113. package/styles/components/search/search.css +3 -2
  114. package/styles/components/search/search.min.css +1 -1
  115. package/styles/components/segmented-control/segmented-control.css +26 -7
  116. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  117. package/styles/components/select/select.css +4 -11
  118. package/styles/components/select/select.min.css +1 -1
  119. package/styles/components/select/select.scss +19 -19
  120. package/styles/components/system-message/system-message.css +2 -2
  121. package/styles/components/system-message/system-message.min.css +1 -1
  122. package/styles/components/text-area/text-area.css +2 -2
  123. package/styles/components/text-area/text-area.min.css +1 -1
  124. package/styles/components/text-input/text-input.css +2 -2
  125. package/styles/components/text-input/text-input.min.css +1 -1
  126. package/styles/components/toast/toast.css +4 -4
  127. package/styles/components/toast/toast.min.css +1 -1
  128. package/styles/components/toggle-switch/toggle-switch.css +3 -0
  129. package/styles/components/toggle-switch/toggle-switch.min.css +1 -1
  130. package/styles/components/toggle-switch/toggle-switch.scss +3 -0
  131. package/styles/components/tooltip/tooltip.css +1 -0
  132. package/styles/components/tooltip/tooltip.min.css +1 -1
  133. package/styles/components/tooltip/tooltip.scss +1 -0
  134. package/styles/components/typography/text.css +6 -0
  135. package/styles/components/typography/text.min.css +1 -1
  136. package/styles/components/typography/text.scss +9 -1
  137. package/styles/components/typography/title.css +3 -0
  138. package/styles/components/typography/title.min.css +1 -1
  139. package/styles/components/typography/title.scss +5 -1
  140. package/styles/components.css +119 -71
  141. package/styles/components.min.css +1 -1
  142. package/styles/jkl/_tokens.scss +3 -1
  143. package/styles/jkl/_typography.scss +1 -3
  144. package/styles/shared/input/shared-input-styles.scss +5 -3
  145. package/styles/theme/_fonts.scss +1 -9
  146. package/styles/theme/_tokens.scss +2 -1
@@ -69,7 +69,8 @@
69
69
  }
70
70
  @layer jokul.components {
71
71
  .jkl-text-input-wrapper {
72
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
72
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
73
+ var(--jkl-text-input-horizontal-padding);
73
74
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
74
75
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
75
76
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -98,7 +99,6 @@
98
99
  --background-color: var(--jkl-color-background-container);
99
100
  }
100
101
  .jkl-text-input-wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
101
- --background-color: var(--jkl-color-error-background-container);
102
102
  --text-color: var(--jkl-color-error-text-default);
103
103
  --border-color: var(--jkl-color-error-border-default);
104
104
  --placeholder-color: var(--jkl-color-error-text-subdued);
@@ -225,7 +225,7 @@
225
225
  @layer jokul.components {
226
226
  .jkl-icon {
227
227
  --jkl-icon-fill: 0;
228
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
228
+ font-family: var(--jkl-font-family-icons);
229
229
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
230
230
  font-feature-settings: "liga";
231
231
  -webkit-font-feature-settings: "liga";
@@ -233,6 +233,7 @@
233
233
  font-weight: 400;
234
234
  line-height: 1;
235
235
  display: inline-block;
236
+ flex-shrink: 0;
236
237
  -webkit-font-smoothing: antialiased;
237
238
  transition-timing-function: var(--jkl-motion-easing-standard);
238
239
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -403,7 +404,8 @@
403
404
  .jkl-form-support-label {
404
405
  --jkl-form-support-label-margin: var(--jkl-unit-10) 0 0;
405
406
  --jkl-form-support-label-icon-size: 1.25rem;
406
- --jkl-form-support-label-icon-margin: 0 -1.25rem -0.375rem 0;
407
+ --jkl-form-support-label-icon-margin: 0 -1.25rem -0.375rem
408
+ 0;
407
409
  --color: var(--jkl-color-text-subdued);
408
410
  font: var(--jkl-text-style-text-small);
409
411
  transition-timing-function: var(--jkl-motion-easing-standard);
@@ -429,11 +431,22 @@
429
431
  fill: Canvas;
430
432
  }
431
433
  }
434
+ .jkl-form-support-label--error {
435
+ background-color: var(--jkl-color-error-background-container);
436
+ padding-block: var(--jkl-unit-05);
437
+ padding-inline: var(--jkl-unit-05) var(--jkl-unit-10);
438
+ border-radius: var(--jkl-border-radius-xs);
439
+ color: var(--jkl-color-error-text-default);
440
+ }
441
+ .jkl-form-support-label--error .jkl-form-support-label__icon {
442
+ color: var(--jkl-color-error-background-contrast);
443
+ }
432
444
  .jkl-form-support-label--error, .jkl-form-support-label--warning, .jkl-form-support-label--success {
433
445
  --color: var(--jkl-color-text-default);
446
+ display: inline-flex;
434
447
  }
435
448
  .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 {
436
- animation: var(--jkl-motion-timing-lazy) cubic-bezier(0, 0, 0.3, 1) var(--jkl-motion-timing-expressive) jkl-support-icon-entrance-ugips9c forwards;
449
+ animation: var(--jkl-motion-timing-lazy) cubic-bezier(0, 0, 0.3, 1) var(--jkl-motion-timing-expressive) jkl-support-icon-entrance-uq1yop7 forwards;
437
450
  }
438
451
  .jkl-form-support-label--sr-only {
439
452
  border: 0 !important;
@@ -487,7 +500,7 @@
487
500
  .jkl-label:has(+ .jkl-input-group-description) {
488
501
  margin-block-end: var(--jkl-spacing-4);
489
502
  }
490
- @keyframes jkl-support-icon-entrance-ugips9c {
503
+ @keyframes jkl-support-icon-entrance-uq1yop7 {
491
504
  0% {
492
505
  margin-right: 0;
493
506
  opacity: 0;
@@ -540,6 +553,7 @@
540
553
  background-color: var(--background-color);
541
554
  color: var(--jkl-color-text-on-contrast);
542
555
  display: inline-block;
556
+ border-radius: var(--jkl-border-radius-s);
543
557
  min-width: min-content;
544
558
  max-width: min(19.375rem, 100%);
545
559
  padding: var(--content-padding);
@@ -634,8 +648,8 @@
634
648
  }
635
649
  @layer jokul.components {
636
650
  .jkl-link {
637
- --link-color: var(--jkl-color-text-default);
638
- color: inherit;
651
+ --link-color: var(--jkl-color-text-accent);
652
+ color: var(--link-color);
639
653
  outline: none;
640
654
  text-decoration: none;
641
655
  transition-timing-function: var(--jkl-motion-easing-standard);
@@ -654,7 +668,7 @@
654
668
  margin-block-start: -0.1em;
655
669
  padding-inline-start: 0.2em;
656
670
  vertical-align: middle;
657
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
671
+ font-family: var(--jkl-font-family-icons);
658
672
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
659
673
  font-feature-settings: "liga";
660
674
  -webkit-font-feature-settings: "liga";
@@ -662,6 +676,7 @@
662
676
  font-weight: 400;
663
677
  line-height: 1;
664
678
  display: inline-block;
679
+ flex-shrink: 0;
665
680
  -webkit-font-smoothing: antialiased;
666
681
  transition-timing-function: var(--jkl-motion-easing-standard);
667
682
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -692,7 +707,6 @@
692
707
  padding: 0;
693
708
  margin: 0;
694
709
  background: none;
695
- line-height: inherit;
696
710
  font: inherit;
697
711
  text-align: inherit;
698
712
  }
@@ -846,22 +860,22 @@
846
860
  animation: 2500ms linear infinite;
847
861
  }
848
862
  .jkl-loader__dot--left {
849
- animation-name: jkl-loader-left-spin-ugipsac;
863
+ animation-name: jkl-loader-left-spin-uq1yoq6;
850
864
  margin-right: calc(var(--jkl-loader-spacing) * 0.9);
851
865
  }
852
866
  .jkl-loader__dot--middle {
853
- animation-name: jkl-loader-middle-spin-ugipsbb;
867
+ animation-name: jkl-loader-middle-spin-uq1yoqp;
854
868
  margin-right: var(--jkl-loader-spacing);
855
869
  }
856
870
  .jkl-loader__dot--right {
857
- animation-name: jkl-loader-right-spin-ugipsbd;
871
+ animation-name: jkl-loader-right-spin-uq1yori;
858
872
  }
859
873
  @media screen and (forced-colors: active) {
860
874
  .jkl-loader__dot {
861
875
  background-color: CanvasText;
862
876
  }
863
877
  }
864
- @keyframes jkl-loader-left-spin-ugipsac {
878
+ @keyframes jkl-loader-left-spin-uq1yoq6 {
865
879
  0% {
866
880
  transform: rotate(0) scale(0);
867
881
  }
@@ -875,7 +889,7 @@
875
889
  transform: rotate(180deg) scale(0);
876
890
  }
877
891
  }
878
- @keyframes jkl-loader-middle-spin-ugipsbb {
892
+ @keyframes jkl-loader-middle-spin-uq1yoqp {
879
893
  0% {
880
894
  transform: rotate(20deg) scale(0);
881
895
  }
@@ -892,7 +906,7 @@
892
906
  transform: rotate(200deg) scale(0);
893
907
  }
894
908
  }
895
- @keyframes jkl-loader-right-spin-ugipsbd {
909
+ @keyframes jkl-loader-right-spin-uq1yori {
896
910
  0% {
897
911
  transform: rotate(40deg) scale(0);
898
912
  }
@@ -932,7 +946,7 @@
932
946
  @media screen and (forced-colors: active) {
933
947
  .jkl-skeleton-element {
934
948
  border: 1px solid CanvasText;
935
- animation: 2s ease infinite jkl-blink-ugipsc0;
949
+ animation: 2s ease infinite jkl-blink-uq1yorn;
936
950
  }
937
951
  }
938
952
  .jkl-skeleton-input {
@@ -980,10 +994,10 @@
980
994
  }
981
995
  @media screen and (forced-colors: active) {
982
996
  .jkl-skeleton-table {
983
- animation: 2s ease-in-out infinite jkl-blink-ugipsc0;
997
+ animation: 2s ease-in-out infinite jkl-blink-uq1yorn;
984
998
  }
985
999
  }
986
- @keyframes jkl-blink-ugipsc0 {
1000
+ @keyframes jkl-blink-uq1yorn {
987
1001
  0% {
988
1002
  opacity: 1;
989
1003
  }
@@ -1174,7 +1188,8 @@
1174
1188
 
1175
1189
  @layer jokul.components {
1176
1190
  .jkl-checkbox {
1177
- --text-color: var(--jkl-color-background-contrast);
1191
+ --text-color: var(--jkl-color-text-default);
1192
+ --icon-color: var(--jkl-color-background-contrast);
1178
1193
  --background-color: transparent;
1179
1194
  font: var(--jkl-text-style-text-medium);
1180
1195
  display: flex;
@@ -1217,6 +1232,7 @@
1217
1232
  }
1218
1233
  }
1219
1234
  .jkl-checkbox__label {
1235
+ color: var(--text-color);
1220
1236
  cursor: pointer;
1221
1237
  display: flex;
1222
1238
  transition-timing-function: var(--jkl-motion-easing-standard);
@@ -1224,9 +1240,10 @@
1224
1240
  transition-property: color;
1225
1241
  }
1226
1242
  .jkl-checkbox__label::before {
1227
- content: "check_box_outline_blank";
1243
+ color: var(--icon-color);
1244
+ content: "check_box_outline_blank"/"";
1228
1245
  margin-inline-end: 0.25em;
1229
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1246
+ font-family: var(--jkl-font-family-icons);
1230
1247
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1231
1248
  font-feature-settings: "liga";
1232
1249
  -webkit-font-feature-settings: "liga";
@@ -1234,6 +1251,7 @@
1234
1251
  font-weight: 400;
1235
1252
  line-height: 1;
1236
1253
  display: inline-block;
1254
+ flex-shrink: 0;
1237
1255
  -webkit-font-smoothing: antialiased;
1238
1256
  transition-timing-function: var(--jkl-motion-easing-standard);
1239
1257
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -1247,11 +1265,11 @@
1247
1265
  --jkl-icon-weight: var(--jkl-font-weight-bold);
1248
1266
  }
1249
1267
  .jkl-checkbox__input:checked + .jkl-checkbox__label::before {
1250
- content: "check_box";
1268
+ content: "check_box"/"";
1251
1269
  --jkl-icon-fill: 1;
1252
1270
  }
1253
1271
  .jkl-checkbox__input:indeterminate:not(:checked) + .jkl-checkbox__label::before {
1254
- content: "indeterminate_check_box";
1272
+ content: "indeterminate_check_box"/"";
1255
1273
  --jkl-icon-fill: 1;
1256
1274
  }
1257
1275
  .jkl-checkbox__input[aria-invalid=true] + .jkl-checkbox__label::before {
@@ -1300,6 +1318,21 @@
1300
1318
  .jkl-input-panel__header label {
1301
1319
  inline-size: 100%;
1302
1320
  }
1321
+ .jkl-input-panel__header label::after {
1322
+ content: "";
1323
+ position: absolute;
1324
+ inset: 0;
1325
+ }
1326
+ .jkl-input-panel__header label,
1327
+ .jkl-input-panel__header .jkl-radio-button,
1328
+ .jkl-input-panel__header .jkl-checkbox {
1329
+ position: unset;
1330
+ }
1331
+ .jkl-input-panel__header input[type=checkbox],
1332
+ .jkl-input-panel__header input[type=radio] {
1333
+ inset-block-start: var(--jkl-unit-20);
1334
+ inset-inline-start: var(--padding-inline);
1335
+ }
1303
1336
  .jkl-input-panel__header__amount {
1304
1337
  display: flex;
1305
1338
  height: 100%;
@@ -1335,6 +1368,9 @@
1335
1368
  height: auto;
1336
1369
  padding-block-end: var(--jkl-unit-20);
1337
1370
  }
1371
+ .jkl-input-panel:has(input[aria-invalid=true]) {
1372
+ --outer-border-color: var(--jkl-color-error-border-default);
1373
+ }
1338
1374
  .jkl-input-panel:has(input:hover) {
1339
1375
  --outer-border-color: var(--jkl-color-border-strong);
1340
1376
  --outer-border-thickness: 0.125rem;
@@ -1417,7 +1453,8 @@
1417
1453
  @layer jokul.components {
1418
1454
  .jkl-combobox {
1419
1455
  --jkl-combobox-button-padding: var(--jkl-unit-10);
1420
- --jkl-combobox-button-active-value-padding: var(--jkl-unit-10) var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1456
+ --jkl-combobox-button-active-value-padding: var(--jkl-unit-10)
1457
+ var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1421
1458
  --jkl-combobox-input-height: 3rem;
1422
1459
  --jkl-combobox-actions-right: var(--jkl-unit-10);
1423
1460
  --jkl-combobox-actions-top: var(--jkl-unit-05);
@@ -1465,7 +1502,8 @@
1465
1502
  display: flex;
1466
1503
  gap: 1ch;
1467
1504
  cursor: pointer;
1468
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
1505
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
1506
+ var(--jkl-text-input-horizontal-padding);
1469
1507
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
1470
1508
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
1471
1509
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -1494,7 +1532,6 @@
1494
1532
  --background-color: var(--jkl-color-background-container);
1495
1533
  }
1496
1534
  .jkl-combobox__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
1497
- --background-color: var(--jkl-color-error-background-container);
1498
1535
  --text-color: var(--jkl-color-error-text-default);
1499
1536
  --border-color: var(--jkl-color-error-border-default);
1500
1537
  --placeholder-color: var(--jkl-color-error-text-subdued);
@@ -1698,10 +1735,6 @@
1698
1735
  font-weight: 700;
1699
1736
  }
1700
1737
  .jkl-combobox--invalid .jkl-combobox__search-input,
1701
- .jkl-combobox--invalid .jkl-combobox__wrapper {
1702
- background-color: var(--jkl-color-error-background-container);
1703
- }
1704
- .jkl-combobox--invalid .jkl-combobox__search-input,
1705
1738
  .jkl-combobox--invalid .jkl-combobox__button,
1706
1739
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1707
1740
  color: var(--jkl-color-error-text-default);
@@ -1782,7 +1815,7 @@
1782
1815
  padding-left: 0;
1783
1816
  }
1784
1817
  .jkl-list__item--iconed::before {
1785
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1818
+ font-family: var(--jkl-font-family-icons);
1786
1819
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1787
1820
  font-feature-settings: "liga";
1788
1821
  -webkit-font-feature-settings: "liga";
@@ -1790,6 +1823,7 @@
1790
1823
  font-weight: 400;
1791
1824
  line-height: 1;
1792
1825
  display: inline-block;
1826
+ flex-shrink: 0;
1793
1827
  -webkit-font-smoothing: antialiased;
1794
1828
  transition-timing-function: var(--jkl-motion-easing-standard);
1795
1829
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -2121,10 +2155,10 @@
2121
2155
  }
2122
2156
  }
2123
2157
  .jkl-countdown__tracker {
2124
- animation: jkl-downcount-ugipsd8 var(--duration) linear forwards;
2158
+ animation: jkl-downcount-uq1yot2 var(--duration) linear forwards;
2125
2159
  animation-play-state: var(--play-state, running);
2126
2160
  }
2127
- @keyframes jkl-downcount-ugipsd8 {
2161
+ @keyframes jkl-downcount-uq1yot2 {
2128
2162
  from {
2129
2163
  width: 100%;
2130
2164
  }
@@ -2625,12 +2659,12 @@
2625
2659
  font: var(--jkl-text-style-paragraph-small);
2626
2660
  }
2627
2661
  .jkl-feedback__fade-in {
2628
- animation: jkl-show-ugipsdr 0.25s ease-out;
2662
+ animation: jkl-show-uq1yotg 0.25s ease-out;
2629
2663
  }
2630
2664
  .jkl-feedback__buttons {
2631
2665
  display: flex;
2632
2666
  }
2633
- @keyframes jkl-show-ugipsdr {
2667
+ @keyframes jkl-show-uq1yotg {
2634
2668
  from {
2635
2669
  transform: translate3d(0, 0.5rem, 0);
2636
2670
  opacity: 0;
@@ -2842,7 +2876,7 @@
2842
2876
  --icon-color: var(--jkl-color-success-background-contrast);
2843
2877
  }
2844
2878
  .jkl-message--dismissed {
2845
- animation: jkl-dismiss-ugipsdt var(--jkl-motion-timing-lazy) ease-in-out forwards;
2879
+ animation: jkl-dismiss-uq1you8 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2846
2880
  transition: visibility 0ms var(--jkl-motion-timing-lazy);
2847
2881
  visibility: hidden;
2848
2882
  }
@@ -2864,7 +2898,7 @@
2864
2898
  .jkl-form-error-message {
2865
2899
  padding-bottom: var(--jkl-unit-50);
2866
2900
  }
2867
- @keyframes jkl-dismiss-ugipsdt {
2901
+ @keyframes jkl-dismiss-uq1you8 {
2868
2902
  from {
2869
2903
  opacity: 1;
2870
2904
  transform: translate3d(0, 0, 0);
@@ -2879,6 +2913,8 @@
2879
2913
  .jkl-radio-button {
2880
2914
  display: flex;
2881
2915
  position: relative;
2916
+ --text-color: var(--jkl-color-text-default);
2917
+ --icon-color: var(--jkl-color-background-contrast);
2882
2918
  font: var(--jkl-text-style-text-medium);
2883
2919
  }
2884
2920
  .jkl-radio-button {
@@ -2938,14 +2974,16 @@
2938
2974
  .jkl-radio-button__label {
2939
2975
  cursor: pointer;
2940
2976
  display: flex;
2977
+ color: var(--text-color);
2941
2978
  transition-timing-function: var(--jkl-motion-easing-standard);
2942
2979
  transition-duration: var(--jkl-motion-timing-productive);
2943
2980
  transition-property: color;
2944
2981
  }
2945
2982
  .jkl-radio-button__label::before {
2946
- content: "radio_button_unchecked";
2983
+ color: var(--icon-color);
2984
+ content: "radio_button_unchecked"/"";
2947
2985
  margin-inline-end: 0.25em;
2948
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
2986
+ font-family: var(--jkl-font-family-icons);
2949
2987
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
2950
2988
  font-feature-settings: "liga";
2951
2989
  -webkit-font-feature-settings: "liga";
@@ -2953,6 +2991,7 @@
2953
2991
  font-weight: 400;
2954
2992
  line-height: 1;
2955
2993
  display: inline-block;
2994
+ flex-shrink: 0;
2956
2995
  -webkit-font-smoothing: antialiased;
2957
2996
  transition-timing-function: var(--jkl-motion-easing-standard);
2958
2997
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -2967,7 +3006,7 @@
2967
3006
  --jkl-icon-weight: var(--jkl-font-weight-bold);
2968
3007
  }
2969
3008
  .jkl-radio-button__input:checked + .jkl-radio-button__label::before {
2970
- content: "radio_button_checked";
3009
+ content: "radio_button_checked"/"";
2971
3010
  }
2972
3011
  .jkl-radio-button__input[aria-invalid=true] + .jkl-radio-button__label::before {
2973
3012
  color: var(--jkl-color-error-background-contrast);
@@ -2991,7 +3030,8 @@
2991
3030
  @layer jokul.components {
2992
3031
  .jkl-text-area-wrapper {
2993
3032
  overflow: hidden;
2994
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
3033
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
3034
+ var(--jkl-text-input-horizontal-padding);
2995
3035
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
2996
3036
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
2997
3037
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -3020,7 +3060,6 @@
3020
3060
  --background-color: var(--jkl-color-background-container);
3021
3061
  }
3022
3062
  .jkl-text-area-wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
3023
- --background-color: var(--jkl-color-error-background-container);
3024
3063
  --text-color: var(--jkl-color-error-text-default);
3025
3064
  --border-color: var(--jkl-color-error-border-default);
3026
3065
  --placeholder-color: var(--jkl-color-error-text-subdued);
@@ -3523,7 +3562,7 @@
3523
3562
  }
3524
3563
  .jkl-link-list ul .jkl-link-list-link::after {
3525
3564
  content: "arrow_forward"/"";
3526
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
3565
+ font-family: var(--jkl-font-family-icons);
3527
3566
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3528
3567
  font-feature-settings: "liga";
3529
3568
  -webkit-font-feature-settings: "liga";
@@ -3531,6 +3570,7 @@
3531
3570
  font-weight: 400;
3532
3571
  line-height: 1;
3533
3572
  display: inline-block;
3573
+ flex-shrink: 0;
3534
3574
  -webkit-font-smoothing: antialiased;
3535
3575
  transition-timing-function: var(--jkl-motion-easing-standard);
3536
3576
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -3638,7 +3678,7 @@
3638
3678
  @layer jokul.components {
3639
3679
  .jkl-menu-item {
3640
3680
  --jkl-menu-item-height: var(--jkl-unit-60);
3641
- --jkl-menu-item-padding: var(--jkl-unit-15) var(--jkl-unit-30);
3681
+ --jkl-menu-item-padding: var(--jkl-unit-15) var(--jkl-unit-20);
3642
3682
  --background-color: transparent;
3643
3683
  background-color: var(--background-color);
3644
3684
  color: var(--jkl-color-text-default);
@@ -3722,9 +3762,10 @@
3722
3762
  align-items: flex-start;
3723
3763
  flex-wrap: nowrap;
3724
3764
  box-shadow: 0 0.25rem 1.25rem rgba(49, 48, 48, 0.2);
3725
- border-radius: 0.125rem;
3765
+ border-radius: var(--jkl-border-radius-s);
3726
3766
  border: 2px solid var(--border-color);
3727
3767
  z-index: 7000;
3768
+ padding-block: var(--jkl-unit-15);
3728
3769
  }
3729
3770
  .jkl-menu:focus-visible {
3730
3771
  outline: none;
@@ -3807,7 +3848,8 @@
3807
3848
  align-items: flex-start;
3808
3849
  }
3809
3850
  .jkl-number-input__wrapper {
3810
- --jkl-text-input-padding: var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);
3851
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
3852
+ var(--jkl-text-input-horizontal-padding);
3811
3853
  --jkl-text-input-vertical-padding: var(--jkl-unit-15);
3812
3854
  --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
3813
3855
  --jkl-text-input-action-button-size: var(--jkl-unit-60);
@@ -3836,7 +3878,6 @@
3836
3878
  --background-color: var(--jkl-color-background-container);
3837
3879
  }
3838
3880
  .jkl-number-input__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
3839
- --background-color: var(--jkl-color-error-background-container);
3840
3881
  --text-color: var(--jkl-color-error-text-default);
3841
3882
  --border-color: var(--jkl-color-error-border-default);
3842
3883
  --placeholder-color: var(--jkl-color-error-text-subdued);
@@ -4040,7 +4081,7 @@
4040
4081
  grid-column: 2;
4041
4082
  grid-row: 1/span 999;
4042
4083
  translate: 0;
4043
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
4084
+ font-family: var(--jkl-font-family-icons);
4044
4085
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
4045
4086
  font-feature-settings: "liga";
4046
4087
  -webkit-font-feature-settings: "liga";
@@ -4048,6 +4089,7 @@
4048
4089
  font-weight: 400;
4049
4090
  line-height: 1;
4050
4091
  display: inline-block;
4092
+ flex-shrink: 0;
4051
4093
  -webkit-font-smoothing: antialiased;
4052
4094
  transition-timing-function: var(--jkl-motion-easing-standard);
4053
4095
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -4127,7 +4169,8 @@
4127
4169
  --border-radius: var(--jkl-border-radius-s);
4128
4170
  --min-option-height: min(var(--jkl-unit-60), 3rem);
4129
4171
  /* Vi må trekke fra bredden til rammen for å få riktig høyde */
4130
- --button-padding: calc(var(--jkl-unit-15) - var(--border-width)) calc(0.75em - var(--border-width));
4172
+ --button-padding: calc(var(--jkl-unit-15) - var(--border-width))
4173
+ calc(0.75em - var(--border-width));
4131
4174
  --option-padding: var(--jkl-unit-10);
4132
4175
  display: block;
4133
4176
  position: relative;
@@ -4250,14 +4293,8 @@
4250
4293
  color: var(--jkl-color-error-text-default);
4251
4294
  }
4252
4295
  .jkl-select__options-menu {
4253
- position: absolute;
4254
- left: -0.0625rem;
4255
- right: -0.0625rem;
4256
- top: 100%;
4257
- z-index: 7000;
4258
4296
  background-color: var(--jkl-color-background-container);
4259
4297
  border: 0.125rem solid var(--jkl-color-border-strong);
4260
- border-top: none;
4261
4298
  border-radius: 0 0 var(--border-radius) var(--border-radius);
4262
4299
  box-sizing: border-box;
4263
4300
  margin-inline: -0.0625rem;
@@ -4320,8 +4357,6 @@
4320
4357
  }
4321
4358
  .jkl-select--open .jkl-select__search-input,
4322
4359
  .jkl-select--open .jkl-select__button {
4323
- border-bottom-left-radius: 0;
4324
- border-bottom-right-radius: 0;
4325
4360
  border-color: var(--jkl-color-border-strong);
4326
4361
  background-color: var(--jkl-color-background-container);
4327
4362
  box-shadow: 0 0 0 0.0625rem var(--jkl-color-border-strong);
@@ -4342,8 +4377,8 @@
4342
4377
  }
4343
4378
  .jkl-select--invalid .jkl-select__search-input,
4344
4379
  .jkl-select--invalid .jkl-select__button {
4345
- background-color: var(--jkl-color-error-background-container);
4346
- color: var(--jkl-color-error-text-subdued);
4380
+ color: var(--jkl-color-error-text-default);
4381
+ border-color: var(--jkl-color-error-border-default);
4347
4382
  }
4348
4383
  .jkl-select--invalid .jkl-select__search-input--active-value,
4349
4384
  .jkl-select--invalid .jkl-select__button--active-value {
@@ -4465,7 +4500,7 @@
4465
4500
  transition-timing-function: var(--jkl-motion-easing-standard);
4466
4501
  transition-duration: var(--jkl-motion-timing-productive);
4467
4502
  }
4468
- @keyframes jkl-downcount-ugipse6 {
4503
+ @keyframes jkl-downcount-uq1youi {
4469
4504
  from {
4470
4505
  width: 100%;
4471
4506
  }
@@ -4641,7 +4676,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4641
4676
  justify-content: center;
4642
4677
  height: 100%;
4643
4678
  grid-column: 1;
4644
- font-family: "Jokul Icons", "Jokul Icons Fallback", monospace;
4679
+ font-family: var(--jkl-font-family-icons);
4645
4680
  }
4646
4681
  .jkl-search .input-wrapper:has(.clear-button) {
4647
4682
  grid-template-columns: 1.3em 1fr 1.3em;
@@ -4670,7 +4705,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4670
4705
  grid-row: 1;
4671
4706
  grid-column: 1;
4672
4707
  z-index: 1;
4673
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
4708
+ font-family: var(--jkl-font-family-icons);
4674
4709
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
4675
4710
  font-feature-settings: "liga";
4676
4711
  -webkit-font-feature-settings: "liga";
@@ -4678,6 +4713,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4678
4713
  font-weight: 400;
4679
4714
  line-height: 1;
4680
4715
  display: inline-block;
4716
+ flex-shrink: 0;
4681
4717
  -webkit-font-smoothing: antialiased;
4682
4718
  transition-timing-function: var(--jkl-motion-easing-standard);
4683
4719
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -4959,7 +4995,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4959
4995
  margin-bottom: 0;
4960
4996
  }
4961
4997
  .jkl-system-message--dismissed {
4962
- animation: jkl-dismiss-ugipsen var(--jkl-motion-timing-lazy) forwards;
4998
+ animation: jkl-dismiss-uq1yovm var(--jkl-motion-timing-lazy) forwards;
4963
4999
  transition: block var(--jkl-motion-timing-lazy) var(--jkl-motion-timing-lazy);
4964
5000
  }
4965
5001
  .jkl-system-message--info {
@@ -4997,7 +5033,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4997
5033
  border-width: 4px;
4998
5034
  }
4999
5035
  }
5000
- @keyframes jkl-dismiss-ugipsen {
5036
+ @keyframes jkl-dismiss-uq1yovm {
5001
5037
  from {
5002
5038
  opacity: 1;
5003
5039
  transform: translateY(0);
@@ -5825,12 +5861,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5825
5861
  }
5826
5862
  .jkl-toast[data-animation=entering],
5827
5863
  .jkl-toast[data-animation=queued] {
5828
- animation: jkl-entering-ugipsfm var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5864
+ animation: jkl-entering-uq1yow1 var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5829
5865
  }
5830
5866
  .jkl-toast[data-animation=exiting] {
5831
- animation: jkl-exiting-ugipsg9 var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5867
+ animation: jkl-exiting-uq1yow6 var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5832
5868
  }
5833
- @keyframes jkl-entering-ugipsfm {
5869
+ @keyframes jkl-entering-uq1yow1 {
5834
5870
  from {
5835
5871
  opacity: 0;
5836
5872
  transform: translate3d(0, 50%, 0);
@@ -5840,7 +5876,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5840
5876
  transform: translate3d(0, 0, 0);
5841
5877
  }
5842
5878
  }
5843
- @keyframes jkl-exiting-ugipsg9 {
5879
+ @keyframes jkl-exiting-uq1yow6 {
5844
5880
  from {
5845
5881
  opacity: 1;
5846
5882
  transform: translate3d(0, 0, 0);
@@ -7352,6 +7388,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7352
7388
  .jkl-toggle-switch[aria-pressed=true], [aria-checked=true] > .jkl-toggle-switch {
7353
7389
  --indicator-color: var(--jkl-color-background-contrast);
7354
7390
  --knob-color: var(--jkl-color-text-on-contrast);
7391
+ --switch-border-color: var(--indicator-color);
7392
+ --knob-border-color: var(--knob-color);
7355
7393
  --knob-position: calc(var(--jkl-toggle-switch-width) - var(--jkl-toggle-switch-knob-size) - var(--switch-padding) * 2);
7356
7394
  }
7357
7395
  .jkl-toggle-switch[disabled] {
@@ -7362,6 +7400,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7362
7400
  }
7363
7401
  .jkl-toggle-switch[disabled][aria-pressed=true], [aria-checked=true] > .jkl-toggle-switch[disabled] {
7364
7402
  --indicator-color: var(--jkl-color-border-subdued);
7403
+ --switch-border-color: var(--indicator-color);
7365
7404
  }
7366
7405
 
7367
7406
  .jkl-toggle-switch-widget {
@@ -7446,6 +7485,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7446
7485
  .jkl-text[data-short] {
7447
7486
  line-height: var(--jkl-line-height-tight);
7448
7487
  }
7488
+ .jkl-text[data-center] {
7489
+ text-align: center;
7490
+ }
7491
+ .jkl-text[data-subdued] {
7492
+ color: var(--jkl-color-text-subdued);
7493
+ }
7449
7494
  :is(code, kbd, samp, var).jkl-text {
7450
7495
  font-family: var(--jkl-font-family-mono);
7451
7496
  }
@@ -7483,6 +7528,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7483
7528
  display: block;
7484
7529
  margin-block-end: var(--jkl-spacing-8);
7485
7530
  }
7531
+ :is(h1, h2, h3, h4, h5, h6, label, legend)[data-text-size][data-center] {
7532
+ text-align: center;
7533
+ }
7486
7534
  }
7487
7535
  @layer jokul.components {
7488
7536
  .jkl-help {
@@ -7508,12 +7556,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7508
7556
  .jkl-help-popover {
7509
7557
  width: max-content;
7510
7558
  max-width: min(40ch, 80vw);
7511
- padding: var(--jkl-unit-30);
7559
+ padding: var(--jkl-unit-15);
7512
7560
  margin: var(--jkl-unit-05);
7513
7561
  position-anchor: --trigger;
7514
7562
  background-color: var(--jkl-color-background-contrast);
7515
7563
  color: var(--jkl-color-text-on-contrast);
7516
- anchor-name: --help-box;
7564
+ border-radius: var(--jkl-border-radius-s);
7517
7565
  }
7518
7566
  .jkl-help-popover[data-position=top] {
7519
7567
  position-area: top center;