@fremtind/jokul 5.0.5 → 5.2.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 (163) 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/Icon.cjs.map +1 -1
  8. package/build/cjs/components/icon/Icon.d.cts +2 -17
  9. package/build/cjs/components/icon/icons/ErrorIcon.cjs +1 -1
  10. package/build/cjs/components/icon/icons/ErrorIcon.cjs.map +1 -1
  11. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs +1 -1
  12. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  13. package/build/cjs/components/icon/icons/InfoIcon.cjs +1 -1
  14. package/build/cjs/components/icon/icons/InfoIcon.cjs.map +1 -1
  15. package/build/cjs/components/icon/icons/RedCrossIcon.cjs +1 -1
  16. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  17. package/build/cjs/components/icon/icons/SuccessIcon.cjs +1 -1
  18. package/build/cjs/components/icon/icons/SuccessIcon.cjs.map +1 -1
  19. package/build/cjs/components/icon/icons/WarningIcon.cjs +1 -1
  20. package/build/cjs/components/icon/icons/WarningIcon.cjs.map +1 -1
  21. package/build/cjs/components/icon/types.d.cts +1 -2
  22. package/build/cjs/components/input-group/InputGroup.cjs +1 -1
  23. package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
  24. package/build/cjs/components/radio-button/RadioButton.cjs.map +1 -1
  25. package/build/cjs/components/system-message/SystemMessage.cjs +1 -1
  26. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  27. package/build/cjs/components/typography/Text.cjs +1 -1
  28. package/build/cjs/components/typography/Text.cjs.map +1 -1
  29. package/build/cjs/components/typography/Title.cjs +1 -1
  30. package/build/cjs/components/typography/Title.cjs.map +1 -1
  31. package/build/cjs/components/typography/types.d.cts +17 -0
  32. package/build/cjs/tokens.cjs +1 -1
  33. package/build/cjs/tokens.cjs.map +1 -1
  34. package/build/cjs/tokens.d.cts +1 -0
  35. package/build/cjs/utilities/formatters/util/registerWithMask.cjs +1 -1
  36. package/build/cjs/utilities/formatters/util/registerWithMask.cjs.map +1 -1
  37. package/build/cjs/utilities/formatters/util/registerWithMask.d.cts +1 -3
  38. package/build/es/components/combobox/Combobox.js +1 -1
  39. package/build/es/components/combobox/Combobox.js.map +1 -1
  40. package/build/es/components/expander/types.d.ts +1 -1
  41. package/build/es/components/help/Help.js +1 -1
  42. package/build/es/components/help/Help.js.map +1 -1
  43. package/build/es/components/icon/Icon.d.ts +2 -17
  44. package/build/es/components/icon/Icon.js.map +1 -1
  45. package/build/es/components/icon/icons/ErrorIcon.js +1 -1
  46. package/build/es/components/icon/icons/ErrorIcon.js.map +1 -1
  47. package/build/es/components/icon/icons/GreenCheckIcon.js +1 -1
  48. package/build/es/components/icon/icons/GreenCheckIcon.js.map +1 -1
  49. package/build/es/components/icon/icons/InfoIcon.js +1 -1
  50. package/build/es/components/icon/icons/InfoIcon.js.map +1 -1
  51. package/build/es/components/icon/icons/RedCrossIcon.js +1 -1
  52. package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
  53. package/build/es/components/icon/icons/SuccessIcon.js +1 -1
  54. package/build/es/components/icon/icons/SuccessIcon.js.map +1 -1
  55. package/build/es/components/icon/icons/WarningIcon.js +1 -1
  56. package/build/es/components/icon/icons/WarningIcon.js.map +1 -1
  57. package/build/es/components/icon/types.d.ts +1 -2
  58. package/build/es/components/input-group/InputGroup.js +1 -1
  59. package/build/es/components/input-group/InputGroup.js.map +1 -1
  60. package/build/es/components/radio-button/RadioButton.js.map +1 -1
  61. package/build/es/components/system-message/SystemMessage.js +1 -1
  62. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  63. package/build/es/components/typography/Text.js +1 -1
  64. package/build/es/components/typography/Text.js.map +1 -1
  65. package/build/es/components/typography/Title.js +1 -1
  66. package/build/es/components/typography/Title.js.map +1 -1
  67. package/build/es/components/typography/types.d.ts +17 -0
  68. package/build/es/tokens.d.ts +1 -0
  69. package/build/es/tokens.js +1 -1
  70. package/build/es/tokens.js.map +1 -1
  71. package/build/es/utilities/formatters/util/registerWithMask.d.ts +1 -3
  72. package/build/es/utilities/formatters/util/registerWithMask.js +1 -1
  73. package/build/es/utilities/formatters/util/registerWithMask.js.map +1 -1
  74. package/package.json +2 -2
  75. package/styles/base.css +17 -11
  76. package/styles/base.min.css +1 -1
  77. package/styles/components/beta/nav-link/navlink.css +2 -1
  78. package/styles/components/beta/nav-link/navlink.min.css +1 -1
  79. package/styles/components/checkbox/checkbox.css +9 -5
  80. package/styles/components/checkbox/checkbox.min.css +1 -1
  81. package/styles/components/checkbox/checkbox.scss +7 -4
  82. package/styles/components/checkbox-panel/checkbox-panel.css +27 -5
  83. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  84. package/styles/components/combobox/combobox.css +3 -6
  85. package/styles/components/combobox/combobox.min.css +1 -1
  86. package/styles/components/combobox/combobox.scss +11 -10
  87. package/styles/components/countdown/countdown.css +2 -2
  88. package/styles/components/countdown/countdown.min.css +1 -1
  89. package/styles/components/feedback/feedback.css +2 -2
  90. package/styles/components/feedback/feedback.min.css +1 -1
  91. package/styles/components/file-input/file-input.css +13 -13
  92. package/styles/components/file-input/file-input.min.css +1 -1
  93. package/styles/components/help/help.css +0 -1
  94. package/styles/components/help/help.min.css +1 -1
  95. package/styles/components/help/help.scss +0 -1
  96. package/styles/components/icon/_base-styles.scss +2 -2
  97. package/styles/components/icon/icon.css +4 -23
  98. package/styles/components/icon/icon.min.css +1 -1
  99. package/styles/components/icon/icon.scss +2 -21
  100. package/styles/components/input-group/_labels.scss +22 -4
  101. package/styles/components/input-group/input-group.css +15 -3
  102. package/styles/components/input-group/input-group.min.css +1 -1
  103. package/styles/components/input-panel/input-panel.css +18 -0
  104. package/styles/components/input-panel/input-panel.min.css +1 -1
  105. package/styles/components/input-panel/input-panel.scss +24 -1
  106. package/styles/components/link/link.css +4 -4
  107. package/styles/components/link/link.min.css +1 -1
  108. package/styles/components/link/link.scss +2 -3
  109. package/styles/components/link-list/link-list.css +2 -1
  110. package/styles/components/link-list/link-list.min.css +1 -1
  111. package/styles/components/list/list.css +2 -1
  112. package/styles/components/list/list.min.css +1 -1
  113. package/styles/components/loader/loader.css +6 -6
  114. package/styles/components/loader/loader.min.css +1 -1
  115. package/styles/components/loader/skeleton-loader.css +3 -3
  116. package/styles/components/loader/skeleton-loader.min.css +1 -1
  117. package/styles/components/message/message.css +2 -2
  118. package/styles/components/message/message.min.css +1 -1
  119. package/styles/components/number-input/number-input.css +1 -1
  120. package/styles/components/number-input/number-input.min.css +1 -1
  121. package/styles/components/progress-bar/progress-bar.css +1 -1
  122. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  123. package/styles/components/radio-button/radio-button.css +8 -3
  124. package/styles/components/radio-button/radio-button.min.css +1 -1
  125. package/styles/components/radio-button/radio-button.scss +7 -3
  126. package/styles/components/radio-panel/radio-panel.css +18 -0
  127. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  128. package/styles/components/search/search-with-submit-button.css +13 -7
  129. package/styles/components/search/search-with-submit-button.min.css +1 -1
  130. package/styles/components/search/search-with-submit-button.scss +1 -15
  131. package/styles/components/search/search.css +3 -2
  132. package/styles/components/search/search.min.css +1 -1
  133. package/styles/components/segmented-control/segmented-control.css +27 -29
  134. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  135. package/styles/components/select/select.css +4 -3
  136. package/styles/components/select/select.min.css +1 -1
  137. package/styles/components/select/select.scss +19 -10
  138. package/styles/components/system-message/system-message.css +2 -2
  139. package/styles/components/system-message/system-message.min.css +1 -1
  140. package/styles/components/text-area/text-area.css +1 -1
  141. package/styles/components/text-area/text-area.min.css +1 -1
  142. package/styles/components/text-input/text-input.css +1 -1
  143. package/styles/components/text-input/text-input.min.css +1 -1
  144. package/styles/components/toast/toast.css +4 -4
  145. package/styles/components/toast/toast.min.css +1 -1
  146. package/styles/components/toggle-switch/toggle-switch.css +3 -0
  147. package/styles/components/toggle-switch/toggle-switch.min.css +1 -1
  148. package/styles/components/toggle-switch/toggle-switch.scss +3 -0
  149. package/styles/components/typography/text.css +10 -1
  150. package/styles/components/typography/text.min.css +1 -1
  151. package/styles/components/typography/text.scss +11 -2
  152. package/styles/components/typography/title.css +3 -0
  153. package/styles/components/typography/title.min.css +1 -1
  154. package/styles/components/typography/title.scss +5 -1
  155. package/styles/components.css +128 -86
  156. package/styles/components.min.css +1 -1
  157. package/styles/global/_base-class.scss +2 -1
  158. package/styles/global/_top-layer.scss +19 -3
  159. package/styles/jkl/_tokens.scss +3 -1
  160. package/styles/jkl/_typography.scss +1 -3
  161. package/styles/shared/input/shared-input-styles.scss +32 -8
  162. package/styles/theme/_fonts.scss +1 -9
  163. package/styles/theme/_tokens.scss +2 -1
@@ -83,6 +83,7 @@
83
83
  border-radius: var(--jkl-border-radius-s);
84
84
  box-sizing: border-box;
85
85
  max-width: 100%;
86
+ overflow: hidden;
86
87
  position: relative;
87
88
  display: flex;
88
89
  align-items: center;
@@ -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);
@@ -244,31 +245,11 @@
244
245
  .jkl-icon--animated {
245
246
  display: block;
246
247
  }
247
- .jkl-icon-red-cross,
248
- .jkl-icon-green-check {
249
- width: 1.3em;
250
- height: 1.3em;
251
- box-sizing: border-box;
252
- border-radius: 999px;
253
- display: inline-grid;
254
- place-items: center;
255
- font-size: 1em;
256
- }
257
- @media screen and (forced-colors: active) {
258
- .jkl-icon-red-cross,
259
- .jkl-icon-green-check {
260
- background-color: Canvas;
261
- color: CanvasText;
262
- border: 1px solid CanvasText;
263
- }
264
- }
265
248
  .jkl-icon-red-cross {
266
- background-color: var(--jkl-color-error-background-contrast);
267
- color: var(--jkl-color-error-text-on-contrast);
249
+ color: var(--jkl-color-error-background-contrast);
268
250
  }
269
251
  .jkl-icon-green-check {
270
- background-color: var(--jkl-color-success-background-contrast);
271
- color: var(--jkl-color-success-text-on-contrast);
252
+ color: var(--jkl-color-success-background-contrast);
272
253
  }
273
254
  .jkl-animated-horizontal-arrows,
274
255
  .jkl-animated-vertical-arrows {
@@ -403,7 +384,8 @@
403
384
  .jkl-form-support-label {
404
385
  --jkl-form-support-label-margin: var(--jkl-unit-10) 0 0;
405
386
  --jkl-form-support-label-icon-size: 1.25rem;
406
- --jkl-form-support-label-icon-margin: 0 -1.25rem -0.375rem 0;
387
+ --jkl-form-support-label-icon-margin: 0 -1.25rem -0.375rem
388
+ 0;
407
389
  --color: var(--jkl-color-text-subdued);
408
390
  font: var(--jkl-text-style-text-small);
409
391
  transition-timing-function: var(--jkl-motion-easing-standard);
@@ -429,11 +411,22 @@
429
411
  fill: Canvas;
430
412
  }
431
413
  }
414
+ .jkl-form-support-label--error {
415
+ background-color: var(--jkl-color-error-background-container);
416
+ padding-block: var(--jkl-unit-05);
417
+ padding-inline: var(--jkl-unit-05) var(--jkl-unit-10);
418
+ border-radius: var(--jkl-border-radius-xs);
419
+ color: var(--jkl-color-error-text-default);
420
+ }
421
+ .jkl-form-support-label--error .jkl-form-support-label__icon {
422
+ color: var(--jkl-color-error-background-contrast);
423
+ }
432
424
  .jkl-form-support-label--error, .jkl-form-support-label--warning, .jkl-form-support-label--success {
433
425
  --color: var(--jkl-color-text-default);
426
+ display: inline-flex;
434
427
  }
435
428
  .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-uumgn13 forwards;
429
+ animation: var(--jkl-motion-timing-lazy) cubic-bezier(0, 0, 0.3, 1) var(--jkl-motion-timing-expressive) jkl-support-icon-entrance-u52kgej forwards;
437
430
  }
438
431
  .jkl-form-support-label--sr-only {
439
432
  border: 0 !important;
@@ -487,7 +480,7 @@
487
480
  .jkl-label:has(+ .jkl-input-group-description) {
488
481
  margin-block-end: var(--jkl-spacing-4);
489
482
  }
490
- @keyframes jkl-support-icon-entrance-uumgn13 {
483
+ @keyframes jkl-support-icon-entrance-u52kgej {
491
484
  0% {
492
485
  margin-right: 0;
493
486
  opacity: 0;
@@ -635,8 +628,8 @@
635
628
  }
636
629
  @layer jokul.components {
637
630
  .jkl-link {
638
- --link-color: var(--jkl-color-text-default);
639
- color: inherit;
631
+ --link-color: var(--jkl-color-text-accent);
632
+ color: var(--link-color);
640
633
  outline: none;
641
634
  text-decoration: none;
642
635
  transition-timing-function: var(--jkl-motion-easing-standard);
@@ -655,7 +648,7 @@
655
648
  margin-block-start: -0.1em;
656
649
  padding-inline-start: 0.2em;
657
650
  vertical-align: middle;
658
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
651
+ font-family: var(--jkl-font-family-icons);
659
652
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
660
653
  font-feature-settings: "liga";
661
654
  -webkit-font-feature-settings: "liga";
@@ -663,6 +656,7 @@
663
656
  font-weight: 400;
664
657
  line-height: 1;
665
658
  display: inline-block;
659
+ flex-shrink: 0;
666
660
  -webkit-font-smoothing: antialiased;
667
661
  transition-timing-function: var(--jkl-motion-easing-standard);
668
662
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -693,7 +687,6 @@
693
687
  padding: 0;
694
688
  margin: 0;
695
689
  background: none;
696
- line-height: inherit;
697
690
  font: inherit;
698
691
  text-align: inherit;
699
692
  }
@@ -847,22 +840,22 @@
847
840
  animation: 2500ms linear infinite;
848
841
  }
849
842
  .jkl-loader__dot--left {
850
- animation-name: jkl-loader-left-spin-uumgn1i;
843
+ animation-name: jkl-loader-left-spin-u52kgfe;
851
844
  margin-right: calc(var(--jkl-loader-spacing) * 0.9);
852
845
  }
853
846
  .jkl-loader__dot--middle {
854
- animation-name: jkl-loader-middle-spin-uumgn1z;
847
+ animation-name: jkl-loader-middle-spin-u52kgg7;
855
848
  margin-right: var(--jkl-loader-spacing);
856
849
  }
857
850
  .jkl-loader__dot--right {
858
- animation-name: jkl-loader-right-spin-uumgn2n;
851
+ animation-name: jkl-loader-right-spin-u52kggo;
859
852
  }
860
853
  @media screen and (forced-colors: active) {
861
854
  .jkl-loader__dot {
862
855
  background-color: CanvasText;
863
856
  }
864
857
  }
865
- @keyframes jkl-loader-left-spin-uumgn1i {
858
+ @keyframes jkl-loader-left-spin-u52kgfe {
866
859
  0% {
867
860
  transform: rotate(0) scale(0);
868
861
  }
@@ -876,7 +869,7 @@
876
869
  transform: rotate(180deg) scale(0);
877
870
  }
878
871
  }
879
- @keyframes jkl-loader-middle-spin-uumgn1z {
872
+ @keyframes jkl-loader-middle-spin-u52kgg7 {
880
873
  0% {
881
874
  transform: rotate(20deg) scale(0);
882
875
  }
@@ -893,7 +886,7 @@
893
886
  transform: rotate(200deg) scale(0);
894
887
  }
895
888
  }
896
- @keyframes jkl-loader-right-spin-uumgn2n {
889
+ @keyframes jkl-loader-right-spin-u52kggo {
897
890
  0% {
898
891
  transform: rotate(40deg) scale(0);
899
892
  }
@@ -933,7 +926,7 @@
933
926
  @media screen and (forced-colors: active) {
934
927
  .jkl-skeleton-element {
935
928
  border: 1px solid CanvasText;
936
- animation: 2s ease infinite jkl-blink-uumgn2s;
929
+ animation: 2s ease infinite jkl-blink-u52kghh;
937
930
  }
938
931
  }
939
932
  .jkl-skeleton-input {
@@ -981,10 +974,10 @@
981
974
  }
982
975
  @media screen and (forced-colors: active) {
983
976
  .jkl-skeleton-table {
984
- animation: 2s ease-in-out infinite jkl-blink-uumgn2s;
977
+ animation: 2s ease-in-out infinite jkl-blink-u52kghh;
985
978
  }
986
979
  }
987
- @keyframes jkl-blink-uumgn2s {
980
+ @keyframes jkl-blink-u52kghh {
988
981
  0% {
989
982
  opacity: 1;
990
983
  }
@@ -1175,7 +1168,8 @@
1175
1168
 
1176
1169
  @layer jokul.components {
1177
1170
  .jkl-checkbox {
1178
- --text-color: var(--jkl-color-background-contrast);
1171
+ --text-color: var(--jkl-color-text-default);
1172
+ --icon-color: var(--jkl-color-background-contrast);
1179
1173
  --background-color: transparent;
1180
1174
  font: var(--jkl-text-style-text-medium);
1181
1175
  display: flex;
@@ -1218,6 +1212,7 @@
1218
1212
  }
1219
1213
  }
1220
1214
  .jkl-checkbox__label {
1215
+ color: var(--text-color);
1221
1216
  cursor: pointer;
1222
1217
  display: flex;
1223
1218
  transition-timing-function: var(--jkl-motion-easing-standard);
@@ -1225,9 +1220,10 @@
1225
1220
  transition-property: color;
1226
1221
  }
1227
1222
  .jkl-checkbox__label::before {
1228
- content: "check_box_outline_blank";
1223
+ color: var(--icon-color);
1224
+ content: "check_box_outline_blank"/"";
1229
1225
  margin-inline-end: 0.25em;
1230
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1226
+ font-family: var(--jkl-font-family-icons);
1231
1227
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1232
1228
  font-feature-settings: "liga";
1233
1229
  -webkit-font-feature-settings: "liga";
@@ -1235,6 +1231,7 @@
1235
1231
  font-weight: 400;
1236
1232
  line-height: 1;
1237
1233
  display: inline-block;
1234
+ flex-shrink: 0;
1238
1235
  -webkit-font-smoothing: antialiased;
1239
1236
  transition-timing-function: var(--jkl-motion-easing-standard);
1240
1237
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -1248,11 +1245,11 @@
1248
1245
  --jkl-icon-weight: var(--jkl-font-weight-bold);
1249
1246
  }
1250
1247
  .jkl-checkbox__input:checked + .jkl-checkbox__label::before {
1251
- content: "check_box";
1248
+ content: "check_box"/"";
1252
1249
  --jkl-icon-fill: 1;
1253
1250
  }
1254
1251
  .jkl-checkbox__input:indeterminate:not(:checked) + .jkl-checkbox__label::before {
1255
- content: "indeterminate_check_box";
1252
+ content: "indeterminate_check_box"/"";
1256
1253
  --jkl-icon-fill: 1;
1257
1254
  }
1258
1255
  .jkl-checkbox__input[aria-invalid=true] + .jkl-checkbox__label::before {
@@ -1301,6 +1298,21 @@
1301
1298
  .jkl-input-panel__header label {
1302
1299
  inline-size: 100%;
1303
1300
  }
1301
+ .jkl-input-panel__header label::after {
1302
+ content: "";
1303
+ position: absolute;
1304
+ inset: 0;
1305
+ }
1306
+ .jkl-input-panel__header label,
1307
+ .jkl-input-panel__header .jkl-radio-button,
1308
+ .jkl-input-panel__header .jkl-checkbox {
1309
+ position: unset;
1310
+ }
1311
+ .jkl-input-panel__header input[type=checkbox],
1312
+ .jkl-input-panel__header input[type=radio] {
1313
+ inset-block-start: var(--jkl-unit-20);
1314
+ inset-inline-start: var(--padding-inline);
1315
+ }
1304
1316
  .jkl-input-panel__header__amount {
1305
1317
  display: flex;
1306
1318
  height: 100%;
@@ -1336,6 +1348,9 @@
1336
1348
  height: auto;
1337
1349
  padding-block-end: var(--jkl-unit-20);
1338
1350
  }
1351
+ .jkl-input-panel:has(input[aria-invalid=true]) {
1352
+ --outer-border-color: var(--jkl-color-error-border-default);
1353
+ }
1339
1354
  .jkl-input-panel:has(input:hover) {
1340
1355
  --outer-border-color: var(--jkl-color-border-strong);
1341
1356
  --outer-border-thickness: 0.125rem;
@@ -1418,7 +1433,8 @@
1418
1433
  @layer jokul.components {
1419
1434
  .jkl-combobox {
1420
1435
  --jkl-combobox-button-padding: var(--jkl-unit-10);
1421
- --jkl-combobox-button-active-value-padding: var(--jkl-unit-10) var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1436
+ --jkl-combobox-button-active-value-padding: var(--jkl-unit-10)
1437
+ var(--jkl-unit-05) var(--jkl-unit-5) var(--jkl-unit-10);
1422
1438
  --jkl-combobox-input-height: 3rem;
1423
1439
  --jkl-combobox-actions-right: var(--jkl-unit-10);
1424
1440
  --jkl-combobox-actions-top: var(--jkl-unit-05);
@@ -1480,6 +1496,7 @@
1480
1496
  border-radius: var(--jkl-border-radius-s);
1481
1497
  box-sizing: border-box;
1482
1498
  max-width: 100%;
1499
+ overflow: hidden;
1483
1500
  position: relative;
1484
1501
  display: flex;
1485
1502
  align-items: center;
@@ -1495,7 +1512,6 @@
1495
1512
  --background-color: var(--jkl-color-background-container);
1496
1513
  }
1497
1514
  .jkl-combobox__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
1498
- --background-color: var(--jkl-color-error-background-container);
1499
1515
  --text-color: var(--jkl-color-error-text-default);
1500
1516
  --border-color: var(--jkl-color-error-border-default);
1501
1517
  --placeholder-color: var(--jkl-color-error-text-subdued);
@@ -1699,10 +1715,6 @@
1699
1715
  font-weight: 700;
1700
1716
  }
1701
1717
  .jkl-combobox--invalid .jkl-combobox__search-input,
1702
- .jkl-combobox--invalid .jkl-combobox__wrapper {
1703
- background-color: var(--jkl-color-error-background-container);
1704
- }
1705
- .jkl-combobox--invalid .jkl-combobox__search-input,
1706
1718
  .jkl-combobox--invalid .jkl-combobox__button,
1707
1719
  .jkl-combobox--invalid .jkl-combobox__wrapper {
1708
1720
  color: var(--jkl-color-error-text-default);
@@ -1783,7 +1795,7 @@
1783
1795
  padding-left: 0;
1784
1796
  }
1785
1797
  .jkl-list__item--iconed::before {
1786
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
1798
+ font-family: var(--jkl-font-family-icons);
1787
1799
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
1788
1800
  font-feature-settings: "liga";
1789
1801
  -webkit-font-feature-settings: "liga";
@@ -1791,6 +1803,7 @@
1791
1803
  font-weight: 400;
1792
1804
  line-height: 1;
1793
1805
  display: inline-block;
1806
+ flex-shrink: 0;
1794
1807
  -webkit-font-smoothing: antialiased;
1795
1808
  transition-timing-function: var(--jkl-motion-easing-standard);
1796
1809
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -2122,10 +2135,10 @@
2122
2135
  }
2123
2136
  }
2124
2137
  .jkl-countdown__tracker {
2125
- animation: jkl-downcount-uumgn3u var(--duration) linear forwards;
2138
+ animation: jkl-downcount-u52kgid var(--duration) linear forwards;
2126
2139
  animation-play-state: var(--play-state, running);
2127
2140
  }
2128
- @keyframes jkl-downcount-uumgn3u {
2141
+ @keyframes jkl-downcount-u52kgid {
2129
2142
  from {
2130
2143
  width: 100%;
2131
2144
  }
@@ -2626,12 +2639,12 @@
2626
2639
  font: var(--jkl-text-style-paragraph-small);
2627
2640
  }
2628
2641
  .jkl-feedback__fade-in {
2629
- animation: jkl-show-uumgn4b 0.25s ease-out;
2642
+ animation: jkl-show-u52kgiu 0.25s ease-out;
2630
2643
  }
2631
2644
  .jkl-feedback__buttons {
2632
2645
  display: flex;
2633
2646
  }
2634
- @keyframes jkl-show-uumgn4b {
2647
+ @keyframes jkl-show-u52kgiu {
2635
2648
  from {
2636
2649
  transform: translate3d(0, 0.5rem, 0);
2637
2650
  opacity: 0;
@@ -2843,7 +2856,7 @@
2843
2856
  --icon-color: var(--jkl-color-success-background-contrast);
2844
2857
  }
2845
2858
  .jkl-message--dismissed {
2846
- animation: jkl-dismiss-uumgn4l var(--jkl-motion-timing-lazy) ease-in-out forwards;
2859
+ animation: jkl-dismiss-u52kgj9 var(--jkl-motion-timing-lazy) ease-in-out forwards;
2847
2860
  transition: visibility 0ms var(--jkl-motion-timing-lazy);
2848
2861
  visibility: hidden;
2849
2862
  }
@@ -2865,7 +2878,7 @@
2865
2878
  .jkl-form-error-message {
2866
2879
  padding-bottom: var(--jkl-unit-50);
2867
2880
  }
2868
- @keyframes jkl-dismiss-uumgn4l {
2881
+ @keyframes jkl-dismiss-u52kgj9 {
2869
2882
  from {
2870
2883
  opacity: 1;
2871
2884
  transform: translate3d(0, 0, 0);
@@ -2880,6 +2893,8 @@
2880
2893
  .jkl-radio-button {
2881
2894
  display: flex;
2882
2895
  position: relative;
2896
+ --text-color: var(--jkl-color-text-default);
2897
+ --icon-color: var(--jkl-color-background-contrast);
2883
2898
  font: var(--jkl-text-style-text-medium);
2884
2899
  }
2885
2900
  .jkl-radio-button {
@@ -2939,14 +2954,16 @@
2939
2954
  .jkl-radio-button__label {
2940
2955
  cursor: pointer;
2941
2956
  display: flex;
2957
+ color: var(--text-color);
2942
2958
  transition-timing-function: var(--jkl-motion-easing-standard);
2943
2959
  transition-duration: var(--jkl-motion-timing-productive);
2944
2960
  transition-property: color;
2945
2961
  }
2946
2962
  .jkl-radio-button__label::before {
2947
- content: "radio_button_unchecked";
2963
+ color: var(--icon-color);
2964
+ content: "radio_button_unchecked"/"";
2948
2965
  margin-inline-end: 0.25em;
2949
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
2966
+ font-family: var(--jkl-font-family-icons);
2950
2967
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
2951
2968
  font-feature-settings: "liga";
2952
2969
  -webkit-font-feature-settings: "liga";
@@ -2954,6 +2971,7 @@
2954
2971
  font-weight: 400;
2955
2972
  line-height: 1;
2956
2973
  display: inline-block;
2974
+ flex-shrink: 0;
2957
2975
  -webkit-font-smoothing: antialiased;
2958
2976
  transition-timing-function: var(--jkl-motion-easing-standard);
2959
2977
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -2968,7 +2986,7 @@
2968
2986
  --jkl-icon-weight: var(--jkl-font-weight-bold);
2969
2987
  }
2970
2988
  .jkl-radio-button__input:checked + .jkl-radio-button__label::before {
2971
- content: "radio_button_checked";
2989
+ content: "radio_button_checked"/"";
2972
2990
  }
2973
2991
  .jkl-radio-button__input[aria-invalid=true] + .jkl-radio-button__label::before {
2974
2992
  color: var(--jkl-color-error-background-contrast);
@@ -3006,6 +3024,7 @@
3006
3024
  border-radius: var(--jkl-border-radius-s);
3007
3025
  box-sizing: border-box;
3008
3026
  max-width: 100%;
3027
+ overflow: hidden;
3009
3028
  position: relative;
3010
3029
  display: flex;
3011
3030
  align-items: center;
@@ -3021,7 +3040,6 @@
3021
3040
  --background-color: var(--jkl-color-background-container);
3022
3041
  }
3023
3042
  .jkl-text-area-wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
3024
- --background-color: var(--jkl-color-error-background-container);
3025
3043
  --text-color: var(--jkl-color-error-text-default);
3026
3044
  --border-color: var(--jkl-color-error-border-default);
3027
3045
  --placeholder-color: var(--jkl-color-error-text-subdued);
@@ -3524,7 +3542,7 @@
3524
3542
  }
3525
3543
  .jkl-link-list ul .jkl-link-list-link::after {
3526
3544
  content: "arrow_forward"/"";
3527
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
3545
+ font-family: var(--jkl-font-family-icons);
3528
3546
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
3529
3547
  font-feature-settings: "liga";
3530
3548
  -webkit-font-feature-settings: "liga";
@@ -3532,6 +3550,7 @@
3532
3550
  font-weight: 400;
3533
3551
  line-height: 1;
3534
3552
  display: inline-block;
3553
+ flex-shrink: 0;
3535
3554
  -webkit-font-smoothing: antialiased;
3536
3555
  transition-timing-function: var(--jkl-motion-easing-standard);
3537
3556
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -3823,6 +3842,7 @@
3823
3842
  border-radius: var(--jkl-border-radius-s);
3824
3843
  box-sizing: border-box;
3825
3844
  max-width: 100%;
3845
+ overflow: hidden;
3826
3846
  position: relative;
3827
3847
  display: flex;
3828
3848
  align-items: center;
@@ -3838,7 +3858,6 @@
3838
3858
  --background-color: var(--jkl-color-background-container);
3839
3859
  }
3840
3860
  .jkl-number-input__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
3841
- --background-color: var(--jkl-color-error-background-container);
3842
3861
  --text-color: var(--jkl-color-error-text-default);
3843
3862
  --border-color: var(--jkl-color-error-border-default);
3844
3863
  --placeholder-color: var(--jkl-color-error-text-subdued);
@@ -4042,7 +4061,7 @@
4042
4061
  grid-column: 2;
4043
4062
  grid-row: 1/span 999;
4044
4063
  translate: 0;
4045
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
4064
+ font-family: var(--jkl-font-family-icons);
4046
4065
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
4047
4066
  font-feature-settings: "liga";
4048
4067
  -webkit-font-feature-settings: "liga";
@@ -4050,6 +4069,7 @@
4050
4069
  font-weight: 400;
4051
4070
  line-height: 1;
4052
4071
  display: inline-block;
4072
+ flex-shrink: 0;
4053
4073
  -webkit-font-smoothing: antialiased;
4054
4074
  transition-timing-function: var(--jkl-motion-easing-standard);
4055
4075
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -4129,7 +4149,8 @@
4129
4149
  --border-radius: var(--jkl-border-radius-s);
4130
4150
  --min-option-height: min(var(--jkl-unit-60), 3rem);
4131
4151
  /* Vi må trekke fra bredden til rammen for å få riktig høyde */
4132
- --button-padding: calc(var(--jkl-unit-15) - var(--border-width)) calc(0.75em - var(--border-width));
4152
+ --button-padding: calc(var(--jkl-unit-15) - var(--border-width))
4153
+ calc(0.75em - var(--border-width));
4133
4154
  --option-padding: var(--jkl-unit-10);
4134
4155
  display: block;
4135
4156
  position: relative;
@@ -4336,8 +4357,8 @@
4336
4357
  }
4337
4358
  .jkl-select--invalid .jkl-select__search-input,
4338
4359
  .jkl-select--invalid .jkl-select__button {
4339
- background-color: var(--jkl-color-error-background-container);
4340
- color: var(--jkl-color-error-text-subdued);
4360
+ color: var(--jkl-color-error-text-default);
4361
+ border-color: var(--jkl-color-error-border-default);
4341
4362
  }
4342
4363
  .jkl-select--invalid .jkl-select__search-input--active-value,
4343
4364
  .jkl-select--invalid .jkl-select__button--active-value {
@@ -4459,7 +4480,7 @@
4459
4480
  transition-timing-function: var(--jkl-motion-easing-standard);
4460
4481
  transition-duration: var(--jkl-motion-timing-productive);
4461
4482
  }
4462
- @keyframes jkl-downcount-uumgn5e {
4483
+ @keyframes jkl-downcount-u52kgk8 {
4463
4484
  from {
4464
4485
  width: 100%;
4465
4486
  }
@@ -4635,7 +4656,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4635
4656
  justify-content: center;
4636
4657
  height: 100%;
4637
4658
  grid-column: 1;
4638
- font-family: "Jokul Icons", "Jokul Icons Fallback", monospace;
4659
+ font-family: var(--jkl-font-family-icons);
4639
4660
  }
4640
4661
  .jkl-search .input-wrapper:has(.clear-button) {
4641
4662
  grid-template-columns: 1.3em 1fr 1.3em;
@@ -4664,7 +4685,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4664
4685
  grid-row: 1;
4665
4686
  grid-column: 1;
4666
4687
  z-index: 1;
4667
- font-family: "Jokul Icons", "Jokul Icons Fallback", sans-serif;
4688
+ font-family: var(--jkl-font-family-icons);
4668
4689
  font-variation-settings: "FILL" var(--jkl-icon-fill, 0);
4669
4690
  font-feature-settings: "liga";
4670
4691
  -webkit-font-feature-settings: "liga";
@@ -4672,6 +4693,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4672
4693
  font-weight: 400;
4673
4694
  line-height: 1;
4674
4695
  display: inline-block;
4696
+ flex-shrink: 0;
4675
4697
  -webkit-font-smoothing: antialiased;
4676
4698
  transition-timing-function: var(--jkl-motion-easing-standard);
4677
4699
  transition-duration: var(--jkl-motion-timing-energetic);
@@ -4715,20 +4737,26 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4715
4737
  border-top-left-radius: 0;
4716
4738
  border-bottom-left-radius: 0;
4717
4739
  min-width: unset;
4740
+ --inset-size: 1ex;
4741
+ --separator-color: var(--jkl-color-border-subdued);
4742
+ position: relative;
4718
4743
  }
4719
4744
  .jkl-search:has(button.jkl-search-submit) button.jkl-search-submit::before {
4720
4745
  content: "";
4721
4746
  position: absolute;
4722
- width: 1px;
4723
- inset: 0;
4724
- inset-block: 20%;
4725
- background-color: var(--jkl-color-border-subdued);
4747
+ block-size: calc(100% * var(--inset-size));
4748
+ top: 0;
4749
+ left: 0;
4750
+ inset-block: var(--inset-size);
4751
+ border-inline-end: 1px solid var(--separator-color);
4752
+ z-index: 1;
4726
4753
  transition-timing-function: var(--jkl-motion-easing-standard);
4727
4754
  transition-duration: var(--jkl-motion-timing-productive);
4728
- transition-property: inset;
4755
+ transition-property: inset, border-color;
4729
4756
  }
4730
- .jkl-search:has(button.jkl-search-submit) button.jkl-search-submit:hover::before {
4731
- inset-block: 0;
4757
+ .jkl-search:has(button.jkl-search-submit) button.jkl-search-submit:hover, .jkl-search:has(button.jkl-search-submit) button.jkl-search-submit:focus-within {
4758
+ --inset-size: 1px;
4759
+ --separator-color: var(--jkl-color-border-subdued);
4732
4760
  }
4733
4761
 
4734
4762
  @layer jokul.components {
@@ -4953,7 +4981,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4953
4981
  margin-bottom: 0;
4954
4982
  }
4955
4983
  .jkl-system-message--dismissed {
4956
- animation: jkl-dismiss-uumgn6x var(--jkl-motion-timing-lazy) forwards;
4984
+ animation: jkl-dismiss-u52kgkq var(--jkl-motion-timing-lazy) forwards;
4957
4985
  transition: block var(--jkl-motion-timing-lazy) var(--jkl-motion-timing-lazy);
4958
4986
  }
4959
4987
  .jkl-system-message--info {
@@ -4991,7 +5019,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4991
5019
  border-width: 4px;
4992
5020
  }
4993
5021
  }
4994
- @keyframes jkl-dismiss-uumgn6x {
5022
+ @keyframes jkl-dismiss-u52kgkq {
4995
5023
  from {
4996
5024
  opacity: 1;
4997
5025
  transform: translateY(0);
@@ -5819,12 +5847,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5819
5847
  }
5820
5848
  .jkl-toast[data-animation=entering],
5821
5849
  .jkl-toast[data-animation=queued] {
5822
- animation: jkl-entering-uumgn7v var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5850
+ animation: jkl-entering-u52kgle var(--jkl-motion-timing-polite) var(--jkl-motion-easing-entrance) forwards;
5823
5851
  }
5824
5852
  .jkl-toast[data-animation=exiting] {
5825
- animation: jkl-exiting-uumgn84 var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5853
+ animation: jkl-exiting-u52kgls var(--jkl-motion-timing-productive) var(--jkl-motion-easing-exit) forwards;
5826
5854
  }
5827
- @keyframes jkl-entering-uumgn7v {
5855
+ @keyframes jkl-entering-u52kgle {
5828
5856
  from {
5829
5857
  opacity: 0;
5830
5858
  transform: translate3d(0, 50%, 0);
@@ -5834,7 +5862,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5834
5862
  transform: translate3d(0, 0, 0);
5835
5863
  }
5836
5864
  }
5837
- @keyframes jkl-exiting-uumgn84 {
5865
+ @keyframes jkl-exiting-u52kgls {
5838
5866
  from {
5839
5867
  opacity: 1;
5840
5868
  transform: translate3d(0, 0, 0);
@@ -7346,6 +7374,8 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7346
7374
  .jkl-toggle-switch[aria-pressed=true], [aria-checked=true] > .jkl-toggle-switch {
7347
7375
  --indicator-color: var(--jkl-color-background-contrast);
7348
7376
  --knob-color: var(--jkl-color-text-on-contrast);
7377
+ --switch-border-color: var(--indicator-color);
7378
+ --knob-border-color: var(--knob-color);
7349
7379
  --knob-position: calc(var(--jkl-toggle-switch-width) - var(--jkl-toggle-switch-knob-size) - var(--switch-padding) * 2);
7350
7380
  }
7351
7381
  .jkl-toggle-switch[disabled] {
@@ -7356,6 +7386,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7356
7386
  }
7357
7387
  .jkl-toggle-switch[disabled][aria-pressed=true], [aria-checked=true] > .jkl-toggle-switch[disabled] {
7358
7388
  --indicator-color: var(--jkl-color-border-subdued);
7389
+ --switch-border-color: var(--indicator-color);
7359
7390
  }
7360
7391
 
7361
7392
  .jkl-toggle-switch-widget {
@@ -7415,7 +7446,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7415
7446
 
7416
7447
  @layer jokul.components {
7417
7448
  :where(.jkl-text) {
7418
- font-weight: var(--jkl-font-weight-normal);
7419
7449
  line-height: var(--jkl-line-height-relaxed);
7420
7450
  }
7421
7451
  .jkl-text[data-text-size] {
@@ -7423,15 +7453,19 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7423
7453
  }
7424
7454
  .jkl-text[data-text-size=xs] {
7425
7455
  font: var(--jkl-text-style-text-micro);
7456
+ font-weight: inherit;
7426
7457
  }
7427
7458
  .jkl-text[data-text-size=s] {
7428
7459
  font: var(--jkl-text-style-paragraph-small);
7460
+ font-weight: inherit;
7429
7461
  }
7430
7462
  .jkl-text[data-text-size=m] {
7431
7463
  font: var(--jkl-text-style-paragraph-medium);
7464
+ font-weight: inherit;
7432
7465
  }
7433
7466
  .jkl-text[data-text-size=l] {
7434
7467
  font: var(--jkl-text-style-paragraph-large);
7468
+ font-weight: inherit;
7435
7469
  }
7436
7470
  .jkl-text[data-bold],
7437
7471
  strong.jkl-text[data-text-size] {
@@ -7440,6 +7474,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7440
7474
  .jkl-text[data-short] {
7441
7475
  line-height: var(--jkl-line-height-tight);
7442
7476
  }
7477
+ .jkl-text[data-center] {
7478
+ text-align: center;
7479
+ }
7480
+ .jkl-text[data-subdued] {
7481
+ color: var(--jkl-color-text-subdued);
7482
+ }
7443
7483
  :is(code, kbd, samp, var).jkl-text {
7444
7484
  font-family: var(--jkl-font-family-mono);
7445
7485
  }
@@ -7477,6 +7517,9 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7477
7517
  display: block;
7478
7518
  margin-block-end: var(--jkl-spacing-8);
7479
7519
  }
7520
+ :is(h1, h2, h3, h4, h5, h6, label, legend)[data-text-size][data-center] {
7521
+ text-align: center;
7522
+ }
7480
7523
  }
7481
7524
  @layer jokul.components {
7482
7525
  .jkl-help {
@@ -7508,7 +7551,6 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-toggle-slider:
7508
7551
  background-color: var(--jkl-color-background-contrast);
7509
7552
  color: var(--jkl-color-text-on-contrast);
7510
7553
  border-radius: var(--jkl-border-radius-s);
7511
- anchor-name: --help-box;
7512
7554
  }
7513
7555
  .jkl-help-popover[data-position=top] {
7514
7556
  position-area: top center;