@fremtind/jokul 4.5.1 → 4.6.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 (92) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/icon/Icon.cjs +1 -1
  3. package/build/cjs/components/icon/Icon.cjs.map +1 -1
  4. package/build/cjs/components/icon/Icon.d.cts +2 -2
  5. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs +1 -1
  6. package/build/cjs/components/icon/icons/GreenCheckIcon.cjs.map +1 -1
  7. package/build/cjs/components/icon/icons/GreenCheckIcon.d.cts +2 -3
  8. package/build/cjs/components/icon/icons/RedCrossIcon.cjs +1 -1
  9. package/build/cjs/components/icon/icons/RedCrossIcon.cjs.map +1 -1
  10. package/build/cjs/components/icon/icons/RedCrossIcon.d.cts +2 -3
  11. package/build/cjs/components/number-input/NumberInput.cjs +2 -0
  12. package/build/cjs/components/number-input/NumberInput.cjs.map +1 -0
  13. package/build/cjs/components/number-input/NumberInput.d.cts +7 -0
  14. package/build/cjs/components/number-input/index.cjs +2 -0
  15. package/build/cjs/components/number-input/index.cjs.map +1 -0
  16. package/build/cjs/components/number-input/index.d.cts +2 -0
  17. package/build/cjs/components/number-input/types.cjs +2 -0
  18. package/build/cjs/components/number-input/types.cjs.map +1 -0
  19. package/build/cjs/components/number-input/types.d.cts +20 -0
  20. package/build/cjs/components/text-area/BaseTextArea.cjs +1 -1
  21. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  22. package/build/cjs/components/text-area/counter.cjs +2 -0
  23. package/build/cjs/components/text-area/counter.cjs.map +1 -0
  24. package/build/cjs/components/text-area/counter.d.cts +2 -0
  25. package/build/cjs/components/text-area/types.d.cts +21 -1
  26. package/build/es/components/icon/Icon.d.ts +2 -2
  27. package/build/es/components/icon/Icon.js +1 -1
  28. package/build/es/components/icon/Icon.js.map +1 -1
  29. package/build/es/components/icon/icons/GreenCheckIcon.d.ts +2 -3
  30. package/build/es/components/icon/icons/GreenCheckIcon.js +1 -1
  31. package/build/es/components/icon/icons/GreenCheckIcon.js.map +1 -1
  32. package/build/es/components/icon/icons/RedCrossIcon.d.ts +2 -3
  33. package/build/es/components/icon/icons/RedCrossIcon.js +1 -1
  34. package/build/es/components/icon/icons/RedCrossIcon.js.map +1 -1
  35. package/build/es/components/number-input/NumberInput.d.ts +7 -0
  36. package/build/es/components/number-input/NumberInput.js +2 -0
  37. package/build/es/components/number-input/NumberInput.js.map +1 -0
  38. package/build/es/components/number-input/index.d.ts +2 -0
  39. package/build/es/components/number-input/index.js +2 -0
  40. package/build/es/components/number-input/index.js.map +1 -0
  41. package/build/es/components/number-input/types.d.ts +20 -0
  42. package/build/es/components/number-input/types.js +2 -0
  43. package/build/es/components/number-input/types.js.map +1 -0
  44. package/build/es/components/text-area/BaseTextArea.js +1 -1
  45. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  46. package/build/es/components/text-area/counter.d.ts +2 -0
  47. package/build/es/components/text-area/counter.js +2 -0
  48. package/build/es/components/text-area/counter.js.map +1 -0
  49. package/build/es/components/text-area/types.d.ts +21 -1
  50. package/package.json +13 -1
  51. package/styles/components/button/button.css +2 -1
  52. package/styles/components/button/button.min.css +1 -1
  53. package/styles/components/button/button.scss +3 -2
  54. package/styles/components/countdown/countdown.css +2 -2
  55. package/styles/components/countdown/countdown.min.css +1 -1
  56. package/styles/components/feedback/feedback.css +2 -2
  57. package/styles/components/feedback/feedback.min.css +1 -1
  58. package/styles/components/file/file.css +1 -1
  59. package/styles/components/file/file.min.css +1 -1
  60. package/styles/components/file/file.scss +2 -1
  61. package/styles/components/file-input/file-input.css +12 -11
  62. package/styles/components/file-input/file-input.min.css +1 -1
  63. package/styles/components/icon/icon.css +28 -14
  64. package/styles/components/icon/icon.min.css +1 -1
  65. package/styles/components/icon/icon.scss +26 -20
  66. package/styles/components/input-group/input-group.css +2 -2
  67. package/styles/components/input-group/input-group.min.css +1 -1
  68. package/styles/components/list/list.css +34 -40
  69. package/styles/components/list/list.min.css +1 -1
  70. package/styles/components/list/list.scss +23 -25
  71. package/styles/components/loader/loader.css +6 -6
  72. package/styles/components/loader/loader.min.css +1 -1
  73. package/styles/components/loader/skeleton-loader.css +3 -3
  74. package/styles/components/loader/skeleton-loader.min.css +1 -1
  75. package/styles/components/message/message.css +2 -2
  76. package/styles/components/message/message.min.css +1 -1
  77. package/styles/components/number-input/_index.scss +2 -0
  78. package/styles/components/number-input/number-input.css +222 -0
  79. package/styles/components/number-input/number-input.min.css +1 -0
  80. package/styles/components/number-input/number-input.scss +121 -0
  81. package/styles/components/progress-bar/progress-bar.css +1 -1
  82. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  83. package/styles/components/segmented-control/segmented-control.css +30 -16
  84. package/styles/components/segmented-control/segmented-control.min.css +1 -1
  85. package/styles/components/system-message/system-message.css +2 -2
  86. package/styles/components/system-message/system-message.min.css +1 -1
  87. package/styles/components/toast/toast.css +4 -4
  88. package/styles/components/toast/toast.min.css +1 -1
  89. package/styles/core/jkl/_convert.scss +15 -6
  90. package/styles/styles.css +308 -80
  91. package/styles/styles.min.css +1 -1
  92. package/styles/styles.scss +1 -0
package/styles/styles.css CHANGED
@@ -277,28 +277,42 @@
277
277
  display: block;
278
278
  }
279
279
  .jkl-icon-red-cross {
280
- --red-cross-circle: var(--jkl-color-background-alert-error);
281
- --red-cross-path: var(--jkl-color-text-on-alert);
282
280
  width: 1.3em;
283
281
  height: 1.3em;
282
+ box-sizing: border-box;
283
+ border-radius: 999px;
284
+ background-color: var(--jkl-color-background-alert-error);
285
+ color: var(--jkl-color-text-on-alert);
286
+ display: inline-grid;
287
+ place-items: center;
288
+ font-size: 1em;
289
+ --jkl-icon-weight: var(--jkl-icon-weight-bold);
284
290
  }
285
- .jkl-icon-red-cross path {
286
- fill: var(--red-cross-path);
287
- }
288
- .jkl-icon-red-cross circle {
289
- fill: var(--red-cross-circle);
291
+ @media screen and (forced-colors: active) {
292
+ .jkl-icon-red-cross {
293
+ background-color: Canvas;
294
+ color: CanvasText;
295
+ border: 1px solid CanvasText;
296
+ }
290
297
  }
291
298
  .jkl-icon-green-check {
292
- --green-check-circle: var(--jkl-color-background-alert-success);
293
- --green-check-path: var(--jkl-color-text-on-alert);
294
299
  width: 1.3em;
295
300
  height: 1.3em;
301
+ box-sizing: border-box;
302
+ border-radius: 999px;
303
+ background-color: var(--jkl-color-background-alert-success);
304
+ color: var(--jkl-color-text-on-alert);
305
+ display: inline-grid;
306
+ place-items: center;
307
+ font-size: 1em;
308
+ --jkl-icon-weight: var(--jkl-icon-weight-bold);
296
309
  }
297
- .jkl-icon-green-check path {
298
- fill: var(--green-check-path);
299
- }
300
- .jkl-icon-green-check circle {
301
- fill: var(--green-check-circle);
310
+ @media screen and (forced-colors: active) {
311
+ .jkl-icon-green-check {
312
+ background-color: Canvas;
313
+ color: CanvasText;
314
+ border: 1px solid CanvasText;
315
+ }
302
316
  }
303
317
  .jkl-animated-horizontal-arrows,
304
318
  .jkl-animated-vertical-arrows {
@@ -467,7 +481,7 @@
467
481
  --color: var(--jkl-color-text-default);
468
482
  }
469
483
  .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 {
470
- animation: 400ms cubic-bezier(0, 0, 0.3, 1) 250ms jkl-support-icon-entrance-uuk6hei forwards;
484
+ animation: 400ms cubic-bezier(0, 0, 0.3, 1) 250ms jkl-support-icon-entrance-u12odmy forwards;
471
485
  }
472
486
  .jkl-form-support-label--sr-only {
473
487
  border: 0 !important;
@@ -533,7 +547,7 @@
533
547
  .jkl-label:has(+ .jkl-input-group-description) {
534
548
  margin-block-end: var(--jkl-spacing-4);
535
549
  }
536
- @keyframes jkl-support-icon-entrance-uuk6hei {
550
+ @keyframes jkl-support-icon-entrance-u12odmy {
537
551
  0% {
538
552
  margin-right: 0;
539
553
  opacity: 0;
@@ -826,7 +840,8 @@
826
840
  text-overflow: ellipsis;
827
841
  }
828
842
  .jkl-button[data-loading=true] .jkl-button__label {
829
- translate: 0 -120%;
843
+ --button-loading-offset: calc(-100% - var(--jkl-button-padding-block) * 2 - var(--jkl-button-text-ink-offset));
844
+ translate: 0 var(--button-loading-offset);
830
845
  }
831
846
  .jkl-button[data-loading=true] .jkl-button__loader {
832
847
  translate: -50% -50%;
@@ -889,22 +904,22 @@
889
904
  animation: 2500ms linear infinite;
890
905
  }
891
906
  .jkl-loader__dot--left {
892
- animation-name: jkl-loader-left-spin-uuk6hep;
907
+ animation-name: jkl-loader-left-spin-u12odnj;
893
908
  margin-right: calc(var(--jkl-loader-spacing) * 0.9);
894
909
  }
895
910
  .jkl-loader__dot--middle {
896
- animation-name: jkl-loader-middle-spin-uuk6hf8;
911
+ animation-name: jkl-loader-middle-spin-u12odoj;
897
912
  margin-right: var(--jkl-loader-spacing);
898
913
  }
899
914
  .jkl-loader__dot--right {
900
- animation-name: jkl-loader-right-spin-uuk6hfe;
915
+ animation-name: jkl-loader-right-spin-u12odok;
901
916
  }
902
917
  @media screen and (forced-colors: active) {
903
918
  .jkl-loader__dot {
904
919
  background-color: CanvasText;
905
920
  }
906
921
  }
907
- @keyframes jkl-loader-left-spin-uuk6hep {
922
+ @keyframes jkl-loader-left-spin-u12odnj {
908
923
  0% {
909
924
  transform: rotate(0) scale(0);
910
925
  }
@@ -918,7 +933,7 @@
918
933
  transform: rotate(180deg) scale(0);
919
934
  }
920
935
  }
921
- @keyframes jkl-loader-middle-spin-uuk6hf8 {
936
+ @keyframes jkl-loader-middle-spin-u12odoj {
922
937
  0% {
923
938
  transform: rotate(20deg) scale(0);
924
939
  }
@@ -935,7 +950,7 @@
935
950
  transform: rotate(200deg) scale(0);
936
951
  }
937
952
  }
938
- @keyframes jkl-loader-right-spin-uuk6hfe {
953
+ @keyframes jkl-loader-right-spin-u12odok {
939
954
  0% {
940
955
  transform: rotate(40deg) scale(0);
941
956
  }
@@ -975,7 +990,7 @@
975
990
  @media screen and (forced-colors: active) {
976
991
  .jkl-skeleton-element {
977
992
  border: 1px solid CanvasText;
978
- animation: 2s ease infinite jkl-blink-uuk6hg8;
993
+ animation: 2s ease infinite jkl-blink-u12odox;
979
994
  }
980
995
  }
981
996
  .jkl-skeleton-input {
@@ -1023,10 +1038,10 @@
1023
1038
  }
1024
1039
  @media screen and (forced-colors: active) {
1025
1040
  .jkl-skeleton-table {
1026
- animation: 2s ease-in-out infinite jkl-blink-uuk6hg8;
1041
+ animation: 2s ease-in-out infinite jkl-blink-u12odox;
1027
1042
  }
1028
1043
  }
1029
- @keyframes jkl-blink-uuk6hg8 {
1044
+ @keyframes jkl-blink-u12odox {
1030
1045
  0% {
1031
1046
  opacity: 1;
1032
1047
  }
@@ -1841,32 +1856,9 @@
1841
1856
  }
1842
1857
  }
1843
1858
  /*
1844
- * NOTE: These icon also exists as a copy in the jkl-icons-react package.
1845
- * If you're here to change them, consider changing them there as well, or
1846
- * finding a technical solution to sharing the SVG markup
1859
+ * NOTE: These markers should stay visually aligned with GreenCheckIcon and
1860
+ * RedCrossIcon in the icon package.
1847
1861
  */
1848
- @media screen and (prefers-color-scheme: light) {
1849
- :root {
1850
- --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");
1851
- --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");
1852
- }
1853
- }
1854
- [data-theme=light] {
1855
- --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");
1856
- --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");
1857
- }
1858
-
1859
- @media screen and (prefers-color-scheme: dark) {
1860
- :root {
1861
- --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='%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");
1862
- --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='%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");
1863
- }
1864
- }
1865
- [data-theme=dark] {
1866
- --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='%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");
1867
- --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='%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");
1868
- }
1869
-
1870
1862
  @layer jokul.components {
1871
1863
  .jkl-list {
1872
1864
  --list-text-color: var(--jkl-color-text-default);
@@ -1904,32 +1896,49 @@
1904
1896
  padding-left: 0;
1905
1897
  }
1906
1898
  .jkl-list__item--iconed::before {
1907
- text-indent: -9999px;
1908
- background-size: contain;
1909
- width: 1em;
1910
- height: 1em;
1899
+ font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
1900
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
1901
+ font-feature-settings: "liga";
1902
+ -webkit-font-feature-settings: "liga";
1903
+ font-size: 1.3em;
1904
+ font-weight: var(--jkl-icon-weight, 300);
1905
+ line-height: 1;
1906
+ display: inline-block;
1907
+ -webkit-font-smoothing: antialiased;
1908
+ transition-timing-function: ease;
1909
+ transition-duration: 75ms;
1910
+ transition-property: font-variation-settings, transform;
1911
+ display: inline-grid;
1912
+ place-items: center;
1913
+ width: 1.1875em;
1914
+ height: 1.1875em;
1915
+ box-sizing: border-box;
1911
1916
  flex-shrink: 0;
1912
1917
  margin-right: 0.5em;
1913
1918
  margin-top: 0.2em;
1919
+ font-size: 1em;
1920
+ line-height: 1;
1921
+ border-radius: 999px;
1922
+ color: var(--jkl-color-text-on-alert);
1923
+ --jkl-icon-weight: var(--jkl-icon-weight-bold);
1914
1924
  }
1915
1925
  .jkl-list__item--check::before {
1916
- content: "";
1917
- content: ""/"";
1926
+ content: "\e5ca";
1927
+ content: "\e5ca"/"";
1918
1928
  alt: " ";
1919
- background-image: var(--jkl-list-marker-check);
1929
+ background-color: var(--jkl-color-background-alert-success);
1920
1930
  }
1921
1931
  .jkl-list__item--cross::before {
1922
- content: "";
1923
- content: ""/"";
1932
+ content: "\e5cd";
1933
+ content: "\e5cd"/"";
1924
1934
  alt: " ";
1925
- background-image: var(--jkl-list-marker-cross);
1935
+ background-color: var(--jkl-color-background-alert-error);
1926
1936
  }
1927
1937
  @media screen and (forced-colors: active) {
1928
- .jkl-list .jkl-list__item--check::before {
1929
- background-image: _check(CanvasText, Canvas);
1930
- }
1931
- .jkl-list .jkl-list__item--cross::before {
1932
- background-image: _cross(CanvasText, Canvas);
1938
+ .jkl-list .jkl-list__item--check::before, .jkl-list .jkl-list__item--cross::before {
1939
+ background-color: Canvas;
1940
+ color: CanvasText;
1941
+ border: 1px solid CanvasText;
1933
1942
  }
1934
1943
  }
1935
1944
  }
@@ -2136,10 +2145,10 @@
2136
2145
  }
2137
2146
  }
2138
2147
  .jkl-countdown__tracker {
2139
- animation: jkl-downcount-uuk6hho var(--duration) linear forwards;
2148
+ animation: jkl-downcount-u12odqd var(--duration) linear forwards;
2140
2149
  animation-play-state: var(--play-state, running);
2141
2150
  }
2142
- @keyframes jkl-downcount-uuk6hho {
2151
+ @keyframes jkl-downcount-u12odqd {
2143
2152
  from {
2144
2153
  width: 100%;
2145
2154
  }
@@ -2651,12 +2660,12 @@
2651
2660
  --jkl-icon-size: 1.2em;
2652
2661
  }
2653
2662
  .jkl-feedback__fade-in {
2654
- animation: jkl-show-uuk6hhz 0.25s ease-out;
2663
+ animation: jkl-show-u12odqm 0.25s ease-out;
2655
2664
  }
2656
2665
  .jkl-feedback__buttons {
2657
2666
  display: flex;
2658
2667
  }
2659
- @keyframes jkl-show-uuk6hhz {
2668
+ @keyframes jkl-show-u12odqm {
2660
2669
  from {
2661
2670
  transform: translate3d(0, 0.5rem, 0);
2662
2671
  opacity: 0;
@@ -2871,7 +2880,7 @@
2871
2880
  --background-color: var(--jkl-color-background-alert-success);
2872
2881
  }
2873
2882
  .jkl-message--dismissed {
2874
- animation: jkl-dismiss-uuk6hiy 400ms ease-in-out forwards;
2883
+ animation: jkl-dismiss-u12odqu 400ms ease-in-out forwards;
2875
2884
  transition: visibility 0ms 400ms;
2876
2885
  visibility: hidden;
2877
2886
  }
@@ -2893,7 +2902,7 @@
2893
2902
  .jkl-form-error-message {
2894
2903
  padding-bottom: calc(var(--jkl-unit-base) * 5);
2895
2904
  }
2896
- @keyframes jkl-dismiss-uuk6hiy {
2905
+ @keyframes jkl-dismiss-u12odqu {
2897
2906
  from {
2898
2907
  opacity: 1;
2899
2908
  transform: translate3d(0, 0, 0);
@@ -3328,7 +3337,7 @@
3328
3337
  transition-timing-function: ease;
3329
3338
  transition-duration: 100ms;
3330
3339
  transition-property: background-color, border-color, color;
3331
- color: var(--jkl-color-text-default);
3340
+ color: var(--text-color);
3332
3341
  padding: var(--jkl-file-padding);
3333
3342
  border: var(--border);
3334
3343
  border-radius: var(--border-radius);
@@ -3958,6 +3967,225 @@
3958
3967
  border-block-end: var(--separator);
3959
3968
  }
3960
3969
 
3970
+ @layer jokul.components {
3971
+ .jkl-number-input {
3972
+ display: flex;
3973
+ flex-direction: column;
3974
+ align-items: flex-start;
3975
+ }
3976
+ .jkl-number-input__wrapper {
3977
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
3978
+ var(--jkl-text-input-horizontal-padding);
3979
+ --jkl-text-input-vertical-padding: var(--jkl-unit-15);
3980
+ --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
3981
+ --jkl-text-input-action-button-size: var(--jkl-unit-60);
3982
+ --jkl-text-input-action-button-icon-size: var(--jkl-unit-30);
3983
+ --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
3984
+ --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
3985
+ --text-color: var(--jkl-color-text-default);
3986
+ --background-color: var(--jkl-color-background-input-base);
3987
+ --border-color: var(--jkl-color-border-input);
3988
+ --placeholder-color: var(--jkl-color-text-subdued);
3989
+ border-radius: var(--jkl-border-radius-s);
3990
+ box-sizing: border-box;
3991
+ max-width: 100%;
3992
+ position: relative;
3993
+ display: flex;
3994
+ align-items: center;
3995
+ font-size: var(--jkl-font-size-3);
3996
+ line-height: var(--jkl-line-height-tight);
3997
+ font-weight: 400;
3998
+ --jkl-icon-weight: 300;
3999
+ transition-timing-function: ease;
4000
+ transition-duration: 150ms;
4001
+ transition-property: color, box-shadow, background-color;
4002
+ background-color: var(--background-color);
4003
+ color: var(--text-color);
4004
+ box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
4005
+ }
4006
+ .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
4007
+ --background-color: var(--jkl-color-background-input-focus);
4008
+ }
4009
+ .jkl-number-input__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
4010
+ --background-color: var(--jkl-color-background-alert-error);
4011
+ --text-color: var(--jkl-color-text-on-alert);
4012
+ --placeholder-color: color(from currentColor sRGB r g b / 75%);
4013
+ }
4014
+ .jkl-number-input__wrapper:hover, .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
4015
+ --border-color: var(--jkl-color-border-input-focus);
4016
+ box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
4017
+ }
4018
+ @media screen and (forced-colors: active) {
4019
+ .jkl-number-input__wrapper:hover, .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
4020
+ border: 0.125rem solid ButtonText;
4021
+ }
4022
+ }
4023
+ 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) {
4024
+ outline: 3px solid var(--jkl-color-border-action);
4025
+ outline-offset: 3px;
4026
+ }
4027
+ .jkl-number-input__wrapper > .jkl-icon-button:focus-visible {
4028
+ outline: 3px solid var(--jkl-color-border-action);
4029
+ outline-offset: -8px;
4030
+ }
4031
+ @media screen and (forced-colors: active) {
4032
+ .jkl-number-input__wrapper > .jkl-icon-button:focus-visible {
4033
+ --border-color: ButtonText;
4034
+ }
4035
+ }
4036
+ .jkl-number-input__wrapper > .jkl-text-input-action-button {
4037
+ flex-shrink: 0;
4038
+ display: flex;
4039
+ box-sizing: border-box;
4040
+ align-items: center;
4041
+ justify-content: center;
4042
+ padding: var(--jkl-text-input-action-button-padding);
4043
+ height: var(--jkl-text-input-action-button-size);
4044
+ width: var(--jkl-text-input-action-button-size);
4045
+ margin-inline-start: calc(var(--jkl-text-input-horizontal-padding) * -1);
4046
+ }
4047
+ .jkl-number-input__wrapper > .jkl-text-input-action-button .jkl-icon-button__icon {
4048
+ height: var(--jkl-text-input-action-button-icon-size);
4049
+ width: var(--jkl-text-input-action-button-icon-size);
4050
+ }
4051
+ .jkl-number-input__wrapper > .jkl-text-input-action-button:hover {
4052
+ color: var(--jkl-color-text-interactive-hover);
4053
+ }
4054
+ @media screen and (forced-colors: active) {
4055
+ .jkl-number-input__wrapper > .jkl-text-input-action-button:hover {
4056
+ border: 0.125rem inset ButtonText;
4057
+ }
4058
+ }
4059
+ @media screen and (forced-colors: active) {
4060
+ .jkl-number-input__wrapper {
4061
+ border: 0.125rem inset ButtonText;
4062
+ }
4063
+ }
4064
+ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-number-input__input:focus-visible) {
4065
+ outline: 3px solid var(--jkl-color-border-action);
4066
+ outline-offset: 3px;
4067
+ }
4068
+ .jkl-number-input__wrapper:has(.jkl-number-input__input:invalid):not(:focus-within):not(:has([data-focused=true])) {
4069
+ --background-color: var(--jkl-color-background-alert-error);
4070
+ --text-color: var(--jkl-color-text-on-alert);
4071
+ --placeholder-color: color(from currentColor sRGB r g b / 75%);
4072
+ }
4073
+ .jkl-number-input__wrapper--stepper {
4074
+ --jkl-number-input-stepper-min-width: calc(
4075
+ 3ch + (var(--jkl-text-input-horizontal-padding) * 2)
4076
+ );
4077
+ --jkl-number-input-stepper-text-color: var(--text-color);
4078
+ display: grid;
4079
+ grid-template-columns: max-content minmax(var(--jkl-number-input-stepper-min-width), 1fr) max-content;
4080
+ overflow: hidden;
4081
+ }
4082
+ .jkl-number-input__wrapper--stepper:has(button[data-direction]:focus-visible) {
4083
+ overflow: visible;
4084
+ }
4085
+ .jkl-number-input__input {
4086
+ padding: var(--jkl-text-input-padding);
4087
+ width: 100%;
4088
+ appearance: textfield;
4089
+ -moz-appearance: textfield;
4090
+ background: none;
4091
+ -webkit-appearance: none;
4092
+ color: inherit;
4093
+ font-size: var(--jkl-font-size-3);
4094
+ line-height: var(--jkl-line-height-tight);
4095
+ font-weight: 400;
4096
+ --jkl-icon-weight: 300;
4097
+ }
4098
+ .jkl-number-input__input {
4099
+ outline: 0;
4100
+ border-style: none;
4101
+ outline-style: none;
4102
+ }
4103
+ .jkl-number-input__input:active, .jkl-number-input__input:hover, .jkl-number-input__input:focus {
4104
+ outline: 0;
4105
+ outline-style: none;
4106
+ }
4107
+ @media screen and (forced-colors: active) {
4108
+ .jkl-number-input__input {
4109
+ outline: revert;
4110
+ border-style: revert;
4111
+ outline-style: revert;
4112
+ }
4113
+ .jkl-number-input__input:active, .jkl-number-input__input:hover, .jkl-number-input__input:focus {
4114
+ outline: revert;
4115
+ outline-style: revert;
4116
+ }
4117
+ }
4118
+ .jkl-number-input__input input[type=number]::-webkit-outer-spin-button,
4119
+ .jkl-number-input__input input[type=number]::-webkit-inner-spin-button {
4120
+ -webkit-appearance: none;
4121
+ }
4122
+ .jkl-number-input__input input[type=number] {
4123
+ -moz-appearance: textfield;
4124
+ }
4125
+ @media screen and (forced-colors: active) {
4126
+ .jkl-number-input__input {
4127
+ outline: none;
4128
+ border: none;
4129
+ }
4130
+ .jkl-number-input__input:focus-visible {
4131
+ outline: none;
4132
+ }
4133
+ }
4134
+ .jkl-number-input__input::placeholder {
4135
+ opacity: 1;
4136
+ color: var(--placeholder-color);
4137
+ }
4138
+ .jkl-number-input__input::-webkit-inner-spin-button, .jkl-number-input__input::-webkit-outer-spin-button {
4139
+ -webkit-appearance: none;
4140
+ margin: 0;
4141
+ }
4142
+ .jkl-number-input__input--align-right {
4143
+ text-align: right;
4144
+ }
4145
+ .jkl-number-input__input--stepper {
4146
+ box-sizing: border-box;
4147
+ min-inline-size: var(--jkl-number-input-stepper-min-width);
4148
+ text-align: center;
4149
+ }
4150
+ .jkl-number-input button[data-direction] {
4151
+ --text-color: var(--jkl-number-input-stepper-text-color);
4152
+ aspect-ratio: 1;
4153
+ padding: 0;
4154
+ display: inline-grid;
4155
+ place-items: center;
4156
+ text-align: center;
4157
+ height: 100%;
4158
+ }
4159
+ .jkl-number-input button[data-direction]::before {
4160
+ content: "";
4161
+ position: absolute;
4162
+ width: 1px;
4163
+ inset-block: 20%;
4164
+ background-color: var(--jkl-color-border-separator);
4165
+ transition-timing-function: ease;
4166
+ transition-duration: 150ms;
4167
+ transition-property: inset;
4168
+ }
4169
+ .jkl-number-input button[data-direction]:hover::before, .jkl-number-input button[data-direction]:focus-visible::before {
4170
+ inset-block: 0.0625rem;
4171
+ }
4172
+ .jkl-number-input button[data-direction]:disabled {
4173
+ opacity: 0.4;
4174
+ cursor: not-allowed;
4175
+ }
4176
+ .jkl-number-input button[data-direction=decrement]::before {
4177
+ inset-inline-end: 0;
4178
+ }
4179
+ .jkl-number-input button[data-direction=increment]::before {
4180
+ inset-inline-start: 0;
4181
+ }
4182
+ .jkl-number-input button[data-direction].jkl-button {
4183
+ border-radius: 0;
4184
+ }
4185
+ .jkl-number-input button[data-direction].jkl-button .jkl-icon {
4186
+ margin-block-start: 0.4ex;
4187
+ }
4188
+ }
3961
4189
  @layer jokul.components {
3962
4190
  .jkl-pagination {
3963
4191
  display: flex;
@@ -4301,7 +4529,7 @@
4301
4529
  transition-timing-function: ease;
4302
4530
  transition-duration: 150ms;
4303
4531
  }
4304
- @keyframes jkl-downcount-uuk6hj4 {
4532
+ @keyframes jkl-downcount-u12odr4 {
4305
4533
  from {
4306
4534
  width: 100%;
4307
4535
  }
@@ -4814,7 +5042,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4814
5042
  margin-bottom: 0;
4815
5043
  }
4816
5044
  .jkl-system-message--dismissed {
4817
- animation: jkl-dismiss-uuk6hjy 400ms forwards;
5045
+ animation: jkl-dismiss-u12ods5 400ms forwards;
4818
5046
  transition: block 400ms 400ms;
4819
5047
  }
4820
5048
  .jkl-system-message--info {
@@ -4844,7 +5072,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
4844
5072
  border-width: 4px;
4845
5073
  }
4846
5074
  }
4847
- @keyframes jkl-dismiss-uuk6hjy {
5075
+ @keyframes jkl-dismiss-u12ods5 {
4848
5076
  from {
4849
5077
  opacity: 1;
4850
5078
  transform: translateY(0);
@@ -5681,12 +5909,12 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5681
5909
  }
5682
5910
  .jkl-toast[data-animation=entering],
5683
5911
  .jkl-toast[data-animation=queued] {
5684
- animation: jkl-entering-uuk6hk0 200ms ease-out forwards;
5912
+ animation: jkl-entering-u12odsd 200ms ease-out forwards;
5685
5913
  }
5686
5914
  .jkl-toast[data-animation=exiting] {
5687
- animation: jkl-exiting-uuk6hkt 150ms ease-in forwards;
5915
+ animation: jkl-exiting-u12odsx 150ms ease-in forwards;
5688
5916
  }
5689
- @keyframes jkl-entering-uuk6hk0 {
5917
+ @keyframes jkl-entering-u12odsd {
5690
5918
  from {
5691
5919
  opacity: 0;
5692
5920
  transform: translate3d(0, 50%, 0);
@@ -5696,7 +5924,7 @@ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-select--beta s
5696
5924
  transform: translate3d(0, 0, 0);
5697
5925
  }
5698
5926
  }
5699
- @keyframes jkl-exiting-uuk6hkt {
5927
+ @keyframes jkl-exiting-u12odsx {
5700
5928
  from {
5701
5929
  opacity: 1;
5702
5930
  transform: translate3d(0, 0, 0);