@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
@@ -3,32 +3,9 @@
3
3
  * Do not edit directly, this file was auto-generated.
4
4
  */
5
5
  /*
6
- * NOTE: These icon also exists as a copy in the jkl-icons-react package.
7
- * If you're here to change them, consider changing them there as well, or
8
- * finding a technical solution to sharing the SVG markup
6
+ * NOTE: These markers should stay visually aligned with GreenCheckIcon and
7
+ * RedCrossIcon in the icon package.
9
8
  */
10
- @media screen and (prefers-color-scheme: light) {
11
- :root {
12
- --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");
13
- --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");
14
- }
15
- }
16
- [data-theme=light] {
17
- --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");
18
- --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");
19
- }
20
-
21
- @media screen and (prefers-color-scheme: dark) {
22
- :root {
23
- --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");
24
- --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");
25
- }
26
- }
27
- [data-theme=dark] {
28
- --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");
29
- --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");
30
- }
31
-
32
9
  @layer jokul.components {
33
10
  .jkl-list {
34
11
  --list-text-color: var(--jkl-color-text-default);
@@ -66,32 +43,49 @@
66
43
  padding-left: 0;
67
44
  }
68
45
  .jkl-list__item--iconed::before {
69
- text-indent: -9999px;
70
- background-size: contain;
71
- width: 1em;
72
- height: 1em;
46
+ font-family: "Fremtind Material Symbols", "Fremtind Material Symbols Fallback", sans-serif;
47
+ font-variation-settings: "FILL" var(--jkl-icon-fill, 0), "GRAD" var(--jkl-icon-grade, 0), "opsz" var(--jkl-icon-opsz, 24);
48
+ font-feature-settings: "liga";
49
+ -webkit-font-feature-settings: "liga";
50
+ font-size: 1.3em;
51
+ font-weight: var(--jkl-icon-weight, 300);
52
+ line-height: 1;
53
+ display: inline-block;
54
+ -webkit-font-smoothing: antialiased;
55
+ transition-timing-function: ease;
56
+ transition-duration: 75ms;
57
+ transition-property: font-variation-settings, transform;
58
+ display: inline-grid;
59
+ place-items: center;
60
+ width: 1.1875em;
61
+ height: 1.1875em;
62
+ box-sizing: border-box;
73
63
  flex-shrink: 0;
74
64
  margin-right: 0.5em;
75
65
  margin-top: 0.2em;
66
+ font-size: 1em;
67
+ line-height: 1;
68
+ border-radius: 999px;
69
+ color: var(--jkl-color-text-on-alert);
70
+ --jkl-icon-weight: var(--jkl-icon-weight-bold);
76
71
  }
77
72
  .jkl-list__item--check::before {
78
- content: "";
79
- content: ""/"";
73
+ content: "\e5ca";
74
+ content: "\e5ca"/"";
80
75
  alt: " ";
81
- background-image: var(--jkl-list-marker-check);
76
+ background-color: var(--jkl-color-background-alert-success);
82
77
  }
83
78
  .jkl-list__item--cross::before {
84
- content: "";
85
- content: ""/"";
79
+ content: "\e5cd";
80
+ content: "\e5cd"/"";
86
81
  alt: " ";
87
- background-image: var(--jkl-list-marker-cross);
82
+ background-color: var(--jkl-color-background-alert-error);
88
83
  }
89
84
  @media screen and (forced-colors: active) {
90
- .jkl-list .jkl-list__item--check::before {
91
- background-image: _check(CanvasText, Canvas);
92
- }
93
- .jkl-list .jkl-list__item--cross::before {
94
- background-image: _cross(CanvasText, Canvas);
85
+ .jkl-list .jkl-list__item--check::before, .jkl-list .jkl-list__item--cross::before {
86
+ background-color: Canvas;
87
+ color: CanvasText;
88
+ border: 1px solid CanvasText;
95
89
  }
96
90
  }
97
91
  }
@@ -1 +1 @@
1
- @charset "UTF-8";@media screen and (prefers-color-scheme:light){:root{--jkl-list-marker-cross:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23f6b3b3'/%3E%3Cpath fill='%231b1917' d='m5.54 12.68 7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231b1917' d='m12.67 13.47-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E");--jkl-list-marker-check:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23acd3b5'/%3E%3Cpath stroke='%231b1917' stroke-width='1.5' d='m4.75 11 2.35 2.36 7.84-7.84'/%3E%3C/svg%3E")}}[data-theme=light]{--jkl-list-marker-cross:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23f6b3b3'/%3E%3Cpath fill='%231b1917' d='m5.54 12.68 7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231b1917' d='m12.67 13.47-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E");--jkl-list-marker-check:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%23acd3b5'/%3E%3Cpath stroke='%231b1917' stroke-width='1.5' d='m4.75 11 2.35 2.36 7.84-7.84'/%3E%3C/svg%3E")}@media screen and (prefers-color-scheme:dark){:root{--jkl-list-marker-cross:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23de9e9e'/%3E%3Cpath fill='%231b1917' d='m5.54 12.68 7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231b1917' d='m12.67 13.47-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E");--jkl-list-marker-check:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%2394b79b'/%3E%3Cpath stroke='%231b1917' stroke-width='1.5' d='m4.75 11 2.35 2.36 7.84-7.84'/%3E%3C/svg%3E")}}[data-theme=dark]{--jkl-list-marker-cross:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='8.75' fill='%23de9e9e'/%3E%3Cpath fill='%231b1917' d='m5.54 12.68 7.14-7.1.84.85-7.13 7.09z'/%3E%3Cpath fill='%231b1917' d='m12.67 13.47-7.13-7.1.85-.83 7.13 7.1z'/%3E%3C/svg%3E");--jkl-list-marker-check:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' fill='none'%3E%3Ccircle cx='9.5' cy='9.5' r='9.5' fill='%2394b79b'/%3E%3Cpath stroke='%231b1917' stroke-width='1.5' d='m4.75 11 2.35 2.36 7.84-7.84'/%3E%3C/svg%3E")}@layer jokul.components{.jkl-list{--list-text-color:var(--jkl-color-text-default);list-style-type:"•";margin:0;padding-left:var(--jkl-unit-20)}.jkl-list>.jkl-list__item>.jkl-list{margin:var(--jkl-unit-10) 0}.jkl-list:has(.jkl-list__item--iconed){padding:0}.jkl-list--ordered{padding-left:revert}.jkl-list--ordered>.jkl-list__item{list-style:decimal;padding-left:revert}.jkl-list--ordered .jkl-list--ordered>.jkl-list__item{list-style:lower-alpha}.jkl-list__item{color:var(--jkl-list-text-color);padding-left:var(--jkl-unit-15)}.jkl-list__item::marker{color:var(--jkl-list-text-color)}.jkl-list__item--iconed{display:flex;list-style:none;padding-left:0;position:relative}.jkl-list__item--iconed:before{background-size:contain;flex-shrink:0;height:1em;margin-right:.5em;margin-top:.2em;text-indent:-9999px;width:1em}.jkl-list__item--check:before{content:"";content:""/"";alt:" ";background-image:var(--jkl-list-marker-check)}.jkl-list__item--cross:before{content:"";content:""/"";alt:" ";background-image:var(--jkl-list-marker-cross)}@media screen and (forced-colors:active){.jkl-list .jkl-list__item--check:before{background-image:_check(CanvasText,Canvas)}.jkl-list .jkl-list__item--cross:before{background-image:_cross(CanvasText,Canvas)}}}
1
+ @charset "UTF-8";@layer jokul.components{.jkl-list{--list-text-color:var(--jkl-color-text-default);list-style-type:"•";margin:0;padding-left:var(--jkl-unit-20)}.jkl-list>.jkl-list__item>.jkl-list{margin:var(--jkl-unit-10) 0}.jkl-list:has(.jkl-list__item--iconed){padding:0}.jkl-list--ordered{padding-left:revert}.jkl-list--ordered>.jkl-list__item{list-style:decimal;padding-left:revert}.jkl-list--ordered .jkl-list--ordered>.jkl-list__item{list-style:lower-alpha}.jkl-list__item{color:var(--jkl-list-text-color);padding-left:var(--jkl-unit-15)}.jkl-list__item::marker{color:var(--jkl-list-text-color)}.jkl-list__item--iconed{display:flex;list-style:none;padding-left:0;position:relative}.jkl-list__item--iconed:before{display:inline-block;font-family:Fremtind Material Symbols,Fremtind Material Symbols Fallback,sans-serif;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";font-size:1.3em;font-variation-settings:"FILL" var(--jkl-icon-fill,0),"GRAD" var(--jkl-icon-grade,0),"opsz" var(--jkl-icon-opsz,24);font-weight:var(--jkl-icon-weight,300);-webkit-font-smoothing:antialiased;border-radius:999px;box-sizing:border-box;color:var(--jkl-color-text-on-alert);display:inline-grid;flex-shrink:0;font-size:1em;height:1.1875em;line-height:1;margin-right:.5em;margin-top:.2em;place-items:center;transition-duration:75ms;transition-property:font-variation-settings,transform;transition-timing-function:ease;width:1.1875em;--jkl-icon-weight:var(--jkl-icon-weight-bold)}.jkl-list__item--check:before{content:"\e5ca";content:"\e5ca"/"";alt:" ";background-color:var(--jkl-color-background-alert-success)}.jkl-list__item--cross:before{content:"\e5cd";content:"\e5cd"/"";alt:" ";background-color:var(--jkl-color-background-alert-error)}@media screen and (forced-colors:active){.jkl-list .jkl-list__item--check:before,.jkl-list .jkl-list__item--cross:before{background-color:Canvas;border:1px solid CanvasText;color:CanvasText}}}
@@ -1,20 +1,11 @@
1
1
  @charset "UTF-8";
2
2
  @use "../../core/jkl";
3
+ @use "../icon/base-styles" as icon;
3
4
 
4
5
  /*
5
- * NOTE: These icon also exists as a copy in the jkl-icons-react package.
6
- * If you're here to change them, consider changing them there as well, or
7
- * finding a technical solution to sharing the SVG markup
6
+ * NOTE: These markers should stay visually aligned with GreenCheckIcon and
7
+ * RedCrossIcon in the icon package.
8
8
  */
9
- @include jkl.light-mode-variables {
10
- --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");
11
- --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");
12
- }
13
-
14
- @include jkl.dark-mode-variables {
15
- --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");
16
- --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");
17
- }
18
9
 
19
10
  @layer jokul.components {
20
11
  .jkl-list {
@@ -62,35 +53,42 @@
62
53
  padding-left: 0;
63
54
 
64
55
  &::before {
65
- text-indent: -9999px;
66
- background-size: contain;
67
- width: 1em;
68
- height: 1em;
56
+ @include icon.base-styles;
57
+
58
+ display: inline-grid;
59
+ place-items: center;
60
+ width: 1.1875em;
61
+ height: 1.1875em;
62
+ box-sizing: border-box;
69
63
  flex-shrink: 0;
70
64
  margin-right: 0.5em;
71
65
  margin-top: 0.2em; // Vertical offset (using em for font-size scaling) to align icon properly with the first line.
66
+ font-size: 1em;
67
+ line-height: 1;
68
+ border-radius: 999px;
69
+ color: var(--jkl-color-text-on-alert);
70
+ --jkl-icon-weight: var(--jkl-icon-weight-bold);
72
71
  }
73
72
  }
74
73
 
75
74
  &--check::before {
76
- @include jkl.decorative($content: "\2713");
77
- background-image: var(--jkl-list-marker-check);
75
+ @include jkl.decorative($content: "\e5ca");
76
+ background-color: var(--jkl-color-background-alert-success);
78
77
  }
79
78
 
80
79
  &--cross::before {
81
- @include jkl.decorative($content: "\274C");
82
- background-image: var(--jkl-list-marker-cross);
80
+ @include jkl.decorative($content: "\e5cd");
81
+ background-color: var(--jkl-color-background-alert-error);
83
82
  }
84
83
  }
85
84
 
86
85
  @include jkl.forced-colors-mode {
87
86
  & .jkl-list__item {
88
- &--check::before {
89
- background-image: _check(CanvasText, Canvas);
90
- }
91
-
87
+ &--check::before,
92
88
  &--cross::before {
93
- background-image: _cross(CanvasText, Canvas);
89
+ background-color: Canvas;
90
+ color: CanvasText;
91
+ border: 1px solid CanvasText;
94
92
  }
95
93
  }
96
94
  }
@@ -19,22 +19,22 @@
19
19
  animation: 2500ms linear infinite;
20
20
  }
21
21
  .jkl-loader__dot--left {
22
- animation-name: jkl-loader-left-spin-umo38ow;
22
+ animation-name: jkl-loader-left-spin-u2xusjh;
23
23
  margin-right: calc(var(--jkl-loader-spacing) * 0.9);
24
24
  }
25
25
  .jkl-loader__dot--middle {
26
- animation-name: jkl-loader-middle-spin-umo38pu;
26
+ animation-name: jkl-loader-middle-spin-u2xuskf;
27
27
  margin-right: var(--jkl-loader-spacing);
28
28
  }
29
29
  .jkl-loader__dot--right {
30
- animation-name: jkl-loader-right-spin-umo38qa;
30
+ animation-name: jkl-loader-right-spin-u2xusl6;
31
31
  }
32
32
  @media screen and (forced-colors: active) {
33
33
  .jkl-loader__dot {
34
34
  background-color: CanvasText;
35
35
  }
36
36
  }
37
- @keyframes jkl-loader-left-spin-umo38ow {
37
+ @keyframes jkl-loader-left-spin-u2xusjh {
38
38
  0% {
39
39
  transform: rotate(0) scale(0);
40
40
  }
@@ -48,7 +48,7 @@
48
48
  transform: rotate(180deg) scale(0);
49
49
  }
50
50
  }
51
- @keyframes jkl-loader-middle-spin-umo38pu {
51
+ @keyframes jkl-loader-middle-spin-u2xuskf {
52
52
  0% {
53
53
  transform: rotate(20deg) scale(0);
54
54
  }
@@ -65,7 +65,7 @@
65
65
  transform: rotate(200deg) scale(0);
66
66
  }
67
67
  }
68
- @keyframes jkl-loader-right-spin-umo38qa {
68
+ @keyframes jkl-loader-right-spin-u2xusl6 {
69
69
  0% {
70
70
  transform: rotate(40deg) scale(0);
71
71
  }
@@ -1 +1 @@
1
- @layer jokul.components{.jkl-loader{--jkl-loader-dot-size:var(--jkl-unit-10);--jkl-loader-spacing:var(--jkl-unit-20);display:flex}.jkl-loader--inline{display:inline-flex}.jkl-loader__dot{animation:2.5s linear infinite;background-color:currentColor;display:block;height:var(--jkl-loader-dot-size);transform-origin:center;width:var(--jkl-loader-dot-size)}.jkl-loader__dot--left{animation-name:jkl-loader-left-spin-umo38ow;margin-right:calc(var(--jkl-loader-spacing)*.9)}.jkl-loader__dot--middle{animation-name:jkl-loader-middle-spin-umo38pu;margin-right:var(--jkl-loader-spacing)}.jkl-loader__dot--right{animation-name:jkl-loader-right-spin-umo38qa}@media screen and (forced-colors:active){.jkl-loader__dot{background-color:CanvasText}}@keyframes jkl-loader-left-spin-umo38ow{0%{transform:rotate(0) scale(0)}30%{transform:rotate(90deg) scale(1)}70%{transform:rotate(180deg) scale(0)}to{transform:rotate(180deg) scale(0)}}@keyframes jkl-loader-middle-spin-umo38pu{0%{transform:rotate(20deg) scale(0)}10%{transform:rotate(20deg) scale(0)}40%{transform:rotate(110deg) scale(1.4)}85%{transform:rotate(200deg) scale(0)}to{transform:rotate(200deg) scale(0)}}@keyframes jkl-loader-right-spin-umo38qa{0%{transform:rotate(40deg) scale(0)}20%{transform:rotate(40deg) scale(0)}50%{transform:rotate(130deg) scale(1)}to{transform:rotate(220deg) scale(0)}}}
1
+ @layer jokul.components{.jkl-loader{--jkl-loader-dot-size:var(--jkl-unit-10);--jkl-loader-spacing:var(--jkl-unit-20);display:flex}.jkl-loader--inline{display:inline-flex}.jkl-loader__dot{animation:2.5s linear infinite;background-color:currentColor;display:block;height:var(--jkl-loader-dot-size);transform-origin:center;width:var(--jkl-loader-dot-size)}.jkl-loader__dot--left{animation-name:jkl-loader-left-spin-u2xusjh;margin-right:calc(var(--jkl-loader-spacing)*.9)}.jkl-loader__dot--middle{animation-name:jkl-loader-middle-spin-u2xuskf;margin-right:var(--jkl-loader-spacing)}.jkl-loader__dot--right{animation-name:jkl-loader-right-spin-u2xusl6}@media screen and (forced-colors:active){.jkl-loader__dot{background-color:CanvasText}}@keyframes jkl-loader-left-spin-u2xusjh{0%{transform:rotate(0) scale(0)}30%{transform:rotate(90deg) scale(1)}70%{transform:rotate(180deg) scale(0)}to{transform:rotate(180deg) scale(0)}}@keyframes jkl-loader-middle-spin-u2xuskf{0%{transform:rotate(20deg) scale(0)}10%{transform:rotate(20deg) scale(0)}40%{transform:rotate(110deg) scale(1.4)}85%{transform:rotate(200deg) scale(0)}to{transform:rotate(200deg) scale(0)}}@keyframes jkl-loader-right-spin-u2xusl6{0%{transform:rotate(40deg) scale(0)}20%{transform:rotate(40deg) scale(0)}50%{transform:rotate(130deg) scale(1)}to{transform:rotate(220deg) scale(0)}}}
@@ -26,7 +26,7 @@
26
26
  @media screen and (forced-colors: active) {
27
27
  .jkl-skeleton-element {
28
28
  border: 1px solid CanvasText;
29
- animation: 2s ease infinite jkl-blink-uge74vi;
29
+ animation: 2s ease infinite jkl-blink-uyrod5o;
30
30
  }
31
31
  }
32
32
  .jkl-skeleton-input {
@@ -74,10 +74,10 @@
74
74
  }
75
75
  @media screen and (forced-colors: active) {
76
76
  .jkl-skeleton-table {
77
- animation: 2s ease-in-out infinite jkl-blink-uge74vi;
77
+ animation: 2s ease-in-out infinite jkl-blink-uyrod5o;
78
78
  }
79
79
  }
80
- @keyframes jkl-blink-uge74vi {
80
+ @keyframes jkl-blink-uyrod5o {
81
81
  0% {
82
82
  opacity: 1;
83
83
  }
@@ -1 +1 @@
1
- @layer jokul.components{@property --jkl-skeleton-sweeper-position{syntax:"<percentage>";initial-value:0%;inherits:true}.jkl-skeleton-animation{--jkl-skeleton-element-color:var(--jkl-color-background-container-low);--jkl-skeleton-sweep-duration:4500ms;--jkl-skeleton-sweeper-width:40%;animation:var(--jkl-skeleton-sweep-duration) ease-in-out infinite --jkl-skeleton-sweep;-webkit-mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),transparent calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),transparent calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100dvi 100dvb;mask-size:100dvi 100dvb}.jkl-skeleton-element{background-color:var(--jkl-skeleton-element-color);border-radius:.125rem}.jkl-skeleton-element--circle{border-radius:50%}@media screen and (forced-colors:active){.jkl-skeleton-element{animation:jkl-blink-uge74vi 2s ease infinite;border:1px solid CanvasText}}.jkl-skeleton-input{display:flex;flex-direction:column;gap:var(--jkl-spacing-12)}.jkl-skeleton-input__checkbox{display:flex;flex-direction:row;flex-wrap:nowrap;gap:var(--jkl-spacing-8)}@media (width >= 0) and (max-width:679px){.jkl-skeleton-input{gap:var(--jkl-spacing-8)}}.jkl-skeleton-input--compact:after{gap:var(--jkl-spacing-8)}.jkl-skeleton-table{display:flex;flex-direction:column}.jkl-skeleton-table__header,.jkl-skeleton-table__row{border-bottom:1px solid var(--jkl-skeleton-element-color);display:flex;flex-direction:row;justify-content:space-between}.jkl-skeleton-table__header,.jkl-skeleton-table__row{padding:var(--jkl-unit-20) var(--jkl-unit-10)}@media (width >= 0) and (max-width:679px){.jkl-skeleton-table__header{padding:var(--jkl-unit-10) var(--jkl-unit-05)}.jkl-skeleton-table__row{padding:var(--jkl-unit-20) var(--jkl-unit-05)}}@media screen and (forced-colors:active){.jkl-skeleton-table{animation:jkl-blink-uge74vi 2s ease-in-out infinite}}@keyframes jkl-blink-uge74vi{0%{opacity:1}40%,50%{opacity:.3}70%,to{opacity:1}}@keyframes --jkl-skeleton-sweep{0%,67%{--jkl-skeleton-sweeper-position:0%}to{--jkl-skeleton-sweeper-position:calc(100% + var(--jkl-skeleton-sweeper-width))}}}
1
+ @layer jokul.components{@property --jkl-skeleton-sweeper-position{syntax:"<percentage>";initial-value:0%;inherits:true}.jkl-skeleton-animation{--jkl-skeleton-element-color:var(--jkl-color-background-container-low);--jkl-skeleton-sweep-duration:4500ms;--jkl-skeleton-sweeper-width:40%;animation:var(--jkl-skeleton-sweep-duration) ease-in-out infinite --jkl-skeleton-sweep;-webkit-mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),transparent calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));mask-image:linear-gradient(to right,#000 calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)),transparent calc(var(--jkl-skeleton-sweeper-position) - var(--jkl-skeleton-sweeper-width)/2),#000 var(--jkl-skeleton-sweeper-position));-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100dvi 100dvb;mask-size:100dvi 100dvb}.jkl-skeleton-element{background-color:var(--jkl-skeleton-element-color);border-radius:.125rem}.jkl-skeleton-element--circle{border-radius:50%}@media screen and (forced-colors:active){.jkl-skeleton-element{animation:jkl-blink-uyrod5o 2s ease infinite;border:1px solid CanvasText}}.jkl-skeleton-input{display:flex;flex-direction:column;gap:var(--jkl-spacing-12)}.jkl-skeleton-input__checkbox{display:flex;flex-direction:row;flex-wrap:nowrap;gap:var(--jkl-spacing-8)}@media (width >= 0) and (max-width:679px){.jkl-skeleton-input{gap:var(--jkl-spacing-8)}}.jkl-skeleton-input--compact:after{gap:var(--jkl-spacing-8)}.jkl-skeleton-table{display:flex;flex-direction:column}.jkl-skeleton-table__header,.jkl-skeleton-table__row{border-bottom:1px solid var(--jkl-skeleton-element-color);display:flex;flex-direction:row;justify-content:space-between}.jkl-skeleton-table__header,.jkl-skeleton-table__row{padding:var(--jkl-unit-20) var(--jkl-unit-10)}@media (width >= 0) and (max-width:679px){.jkl-skeleton-table__header{padding:var(--jkl-unit-10) var(--jkl-unit-05)}.jkl-skeleton-table__row{padding:var(--jkl-unit-20) var(--jkl-unit-05)}}@media screen and (forced-colors:active){.jkl-skeleton-table{animation:jkl-blink-uyrod5o 2s ease-in-out infinite}}@keyframes jkl-blink-uyrod5o{0%{opacity:1}40%,50%{opacity:.3}70%,to{opacity:1}}@keyframes --jkl-skeleton-sweep{0%,67%{--jkl-skeleton-sweeper-position:0%}to{--jkl-skeleton-sweeper-position:calc(100% + var(--jkl-skeleton-sweeper-width))}}}
@@ -150,7 +150,7 @@
150
150
  --background-color: var(--jkl-color-background-alert-success);
151
151
  }
152
152
  .jkl-message--dismissed {
153
- animation: jkl-dismiss-u7fok65 400ms ease-in-out forwards;
153
+ animation: jkl-dismiss-u0xie4s 400ms ease-in-out forwards;
154
154
  transition: visibility 0ms 400ms;
155
155
  visibility: hidden;
156
156
  }
@@ -172,7 +172,7 @@
172
172
  .jkl-form-error-message {
173
173
  padding-bottom: calc(var(--jkl-unit-base) * 5);
174
174
  }
175
- @keyframes jkl-dismiss-u7fok65 {
175
+ @keyframes jkl-dismiss-u0xie4s {
176
176
  from {
177
177
  opacity: 1;
178
178
  transform: translate3d(0, 0, 0);
@@ -1 +1 @@
1
- @layer jokul.components{.jkl-message{--jkl-message-icon-left:var(--jkl-unit-20);--jkl-message-icon-top:var(--jkl-unit-30);--jkl-message-title-margin:0 0 var(--jkl-unit-05) 0;--jkl-message-dismiss-button-size:var(--jkl-unit-50);--jkl-message-gap:var(--jkl-unit-20);--jkl-message-padding:var(--jkl-unit-25) var(--jkl-unit-15);--background-color:var(--jkl-color-background-alert-neutral);--text-color:var(--jkl-color-text-on-alert);align-items:start;background-color:var(--background-color);border-radius:.25rem;box-sizing:border-box;color:var(--text-color);display:grid;font-size:var(--jkl-font-size-3);font-weight:400;grid-template-areas:"icon content dismiss";grid-template-columns:auto 1fr auto;line-height:var(--jkl-line-height-relaxed);max-width:35rem;padding:var(--jkl-message-padding);width:100%;--jkl-icon-weight:300}.jkl-message:has(.jkl-message__title){font-size:var(--jkl-font-size-4);font-weight:700;line-height:var(--jkl-line-height-tight);--jkl-icon-weight:400}.jkl-message__icon{grid-area:icon;margin-right:var(--jkl-message-gap)}@media screen and (forced-colors:active){.jkl-message__icon,.jkl-message__icon path,.jkl-message__icon svg{stroke:CanvasText}}.jkl-message__content{grid-area:content}.jkl-message__message{font-size:var(--jkl-font-size-3);font-weight:400;line-height:var(--jkl-line-height-relaxed);--jkl-icon-weight:300;margin-top:-.125rem}.jkl-message__title{font-size:var(--jkl-font-size-4);font-weight:700;line-height:var(--jkl-line-height-tight);--jkl-icon-weight:400;margin:var(--jkl-message-title-margin)}.jkl-message__title~.jkl-message__message{margin-top:0}.jkl-message__dismiss-button{background-color:transparent;border-style:none;color:inherit;cursor:pointer;display:grid;grid-area:dismiss;justify-self:end;outline:0;outline-style:none;padding:0;place-content:center;position:relative}.jkl-message__dismiss-button:active,.jkl-message__dismiss-button:focus,.jkl-message__dismiss-button:hover{outline:0;outline-style:none}@media screen and (forced-colors:active){.jkl-message__dismiss-button{border-style:revert;outline:revert;outline-style:revert}.jkl-message__dismiss-button:active,.jkl-message__dismiss-button:focus,.jkl-message__dismiss-button:hover{outline:revert;outline-style:revert}}@media screen and (forced-colors:active){.jkl-message__dismiss-button,.jkl-message__dismiss-button path,.jkl-message__dismiss-button svg{stroke:ButtonText}.jkl-message__dismiss-button{background-color:ButtonFace}}.jkl-message__dismiss-button:after{content:"";display:block;height:var(--jkl-message-dismiss-button-size);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--jkl-message-dismiss-button-size)}.jkl-message__dismiss-button:hover{color:var(--jkl-color-text-interactive-hover)}@media screen and (forced-colors:active){.jkl-message__dismiss-button:hover{stroke:ButtonText}.jkl-message__dismiss-button:hover path,.jkl-message__dismiss-button:hover svg{stroke:ButtonText}}.jkl-message__dismiss-button:focus-visible{outline:3px solid var(--jkl-color-border-action);outline-offset:3px}.jkl-message--full{max-width:100%}.jkl-message--info{--background-color:var(--jkl-color-background-alert-info)}.jkl-message--warning{--background-color:var(--jkl-color-background-alert-warning)}.jkl-message--error{--background-color:var(--jkl-color-background-alert-error)}.jkl-message--success{--background-color:var(--jkl-color-background-alert-success)}.jkl-message--dismissed{animation:jkl-dismiss-u7fok65 .4s ease-in-out forwards;transition:visibility 0s .4s;visibility:hidden}@media screen and (forced-colors:active){.jkl-message{border:2px solid CanvasText}.jkl-message--info{border-style:dotted}.jkl-message--warning{border-style:dashed}.jkl-message--error{border-style:double;border-width:4px}}.jkl-form-error-message{padding-bottom:calc(var(--jkl-unit-base)*5)}@keyframes jkl-dismiss-u7fok65{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-50%,0)}}}
1
+ @layer jokul.components{.jkl-message{--jkl-message-icon-left:var(--jkl-unit-20);--jkl-message-icon-top:var(--jkl-unit-30);--jkl-message-title-margin:0 0 var(--jkl-unit-05) 0;--jkl-message-dismiss-button-size:var(--jkl-unit-50);--jkl-message-gap:var(--jkl-unit-20);--jkl-message-padding:var(--jkl-unit-25) var(--jkl-unit-15);--background-color:var(--jkl-color-background-alert-neutral);--text-color:var(--jkl-color-text-on-alert);align-items:start;background-color:var(--background-color);border-radius:.25rem;box-sizing:border-box;color:var(--text-color);display:grid;font-size:var(--jkl-font-size-3);font-weight:400;grid-template-areas:"icon content dismiss";grid-template-columns:auto 1fr auto;line-height:var(--jkl-line-height-relaxed);max-width:35rem;padding:var(--jkl-message-padding);width:100%;--jkl-icon-weight:300}.jkl-message:has(.jkl-message__title){font-size:var(--jkl-font-size-4);font-weight:700;line-height:var(--jkl-line-height-tight);--jkl-icon-weight:400}.jkl-message__icon{grid-area:icon;margin-right:var(--jkl-message-gap)}@media screen and (forced-colors:active){.jkl-message__icon,.jkl-message__icon path,.jkl-message__icon svg{stroke:CanvasText}}.jkl-message__content{grid-area:content}.jkl-message__message{font-size:var(--jkl-font-size-3);font-weight:400;line-height:var(--jkl-line-height-relaxed);--jkl-icon-weight:300;margin-top:-.125rem}.jkl-message__title{font-size:var(--jkl-font-size-4);font-weight:700;line-height:var(--jkl-line-height-tight);--jkl-icon-weight:400;margin:var(--jkl-message-title-margin)}.jkl-message__title~.jkl-message__message{margin-top:0}.jkl-message__dismiss-button{background-color:transparent;border-style:none;color:inherit;cursor:pointer;display:grid;grid-area:dismiss;justify-self:end;outline:0;outline-style:none;padding:0;place-content:center;position:relative}.jkl-message__dismiss-button:active,.jkl-message__dismiss-button:focus,.jkl-message__dismiss-button:hover{outline:0;outline-style:none}@media screen and (forced-colors:active){.jkl-message__dismiss-button{border-style:revert;outline:revert;outline-style:revert}.jkl-message__dismiss-button:active,.jkl-message__dismiss-button:focus,.jkl-message__dismiss-button:hover{outline:revert;outline-style:revert}}@media screen and (forced-colors:active){.jkl-message__dismiss-button,.jkl-message__dismiss-button path,.jkl-message__dismiss-button svg{stroke:ButtonText}.jkl-message__dismiss-button{background-color:ButtonFace}}.jkl-message__dismiss-button:after{content:"";display:block;height:var(--jkl-message-dismiss-button-size);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--jkl-message-dismiss-button-size)}.jkl-message__dismiss-button:hover{color:var(--jkl-color-text-interactive-hover)}@media screen and (forced-colors:active){.jkl-message__dismiss-button:hover{stroke:ButtonText}.jkl-message__dismiss-button:hover path,.jkl-message__dismiss-button:hover svg{stroke:ButtonText}}.jkl-message__dismiss-button:focus-visible{outline:3px solid var(--jkl-color-border-action);outline-offset:3px}.jkl-message--full{max-width:100%}.jkl-message--info{--background-color:var(--jkl-color-background-alert-info)}.jkl-message--warning{--background-color:var(--jkl-color-background-alert-warning)}.jkl-message--error{--background-color:var(--jkl-color-background-alert-error)}.jkl-message--success{--background-color:var(--jkl-color-background-alert-success)}.jkl-message--dismissed{animation:jkl-dismiss-u0xie4s .4s ease-in-out forwards;transition:visibility 0s .4s;visibility:hidden}@media screen and (forced-colors:active){.jkl-message{border:2px solid CanvasText}.jkl-message--info{border-style:dotted}.jkl-message--warning{border-style:dashed}.jkl-message--error{border-style:double;border-width:4px}}.jkl-form-error-message{padding-bottom:calc(var(--jkl-unit-base)*5)}@keyframes jkl-dismiss-u0xie4s{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-50%,0)}}}
@@ -0,0 +1,2 @@
1
+ @forward "number-input";
2
+ @use "../button" as button;
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+ @layer jokul.components {
5
+ .jkl-number-input {
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: flex-start;
9
+ }
10
+ .jkl-number-input__wrapper {
11
+ --jkl-text-input-padding: var(--jkl-text-input-vertical-padding)
12
+ var(--jkl-text-input-horizontal-padding);
13
+ --jkl-text-input-vertical-padding: var(--jkl-unit-15);
14
+ --jkl-text-input-horizontal-padding: var(--jkl-unit-15);
15
+ --jkl-text-input-action-button-size: var(--jkl-unit-60);
16
+ --jkl-text-input-action-button-icon-size: var(--jkl-unit-30);
17
+ --jkl-text-input-action-button-padding: var(--jkl-unit-10) 0;
18
+ --jkl-text-input-action-button-focus-position: var(--jkl-unit-05);
19
+ --text-color: var(--jkl-color-text-default);
20
+ --background-color: var(--jkl-color-background-input-base);
21
+ --border-color: var(--jkl-color-border-input);
22
+ --placeholder-color: var(--jkl-color-text-subdued);
23
+ border-radius: var(--jkl-border-radius-s);
24
+ box-sizing: border-box;
25
+ max-width: 100%;
26
+ position: relative;
27
+ display: flex;
28
+ align-items: center;
29
+ font-size: var(--jkl-font-size-3);
30
+ line-height: var(--jkl-line-height-tight);
31
+ font-weight: 400;
32
+ --jkl-icon-weight: 300;
33
+ transition-timing-function: ease;
34
+ transition-duration: 150ms;
35
+ transition-property: color, box-shadow, background-color;
36
+ background-color: var(--background-color);
37
+ color: var(--text-color);
38
+ box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem transparent;
39
+ }
40
+ .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
41
+ --background-color: var(--jkl-color-background-input-focus);
42
+ }
43
+ .jkl-number-input__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])) {
44
+ --background-color: var(--jkl-color-background-alert-error);
45
+ --text-color: var(--jkl-color-text-on-alert);
46
+ --placeholder-color: color(from currentColor sRGB r g b / 75%);
47
+ }
48
+ .jkl-number-input__wrapper:hover, .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
49
+ --border-color: var(--jkl-color-border-input-focus);
50
+ box-shadow: inset 0 0 0 0.0625rem var(--border-color), 0 0 0 0.0625rem var(--border-color);
51
+ }
52
+ @media screen and (forced-colors: active) {
53
+ .jkl-number-input__wrapper:hover, .jkl-number-input__wrapper:focus-within, .jkl-number-input__wrapper:has([data-focused=true]) {
54
+ border: 0.125rem solid ButtonText;
55
+ }
56
+ }
57
+ 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) {
58
+ outline: 3px solid var(--jkl-color-border-action);
59
+ outline-offset: 3px;
60
+ }
61
+ .jkl-number-input__wrapper > .jkl-icon-button:focus-visible {
62
+ outline: 3px solid var(--jkl-color-border-action);
63
+ outline-offset: -8px;
64
+ }
65
+ @media screen and (forced-colors: active) {
66
+ .jkl-number-input__wrapper > .jkl-icon-button:focus-visible {
67
+ --border-color: ButtonText;
68
+ }
69
+ }
70
+ .jkl-number-input__wrapper > .jkl-text-input-action-button {
71
+ flex-shrink: 0;
72
+ display: flex;
73
+ box-sizing: border-box;
74
+ align-items: center;
75
+ justify-content: center;
76
+ padding: var(--jkl-text-input-action-button-padding);
77
+ height: var(--jkl-text-input-action-button-size);
78
+ width: var(--jkl-text-input-action-button-size);
79
+ margin-inline-start: calc(var(--jkl-text-input-horizontal-padding) * -1);
80
+ }
81
+ .jkl-number-input__wrapper > .jkl-text-input-action-button .jkl-icon-button__icon {
82
+ height: var(--jkl-text-input-action-button-icon-size);
83
+ width: var(--jkl-text-input-action-button-icon-size);
84
+ }
85
+ .jkl-number-input__wrapper > .jkl-text-input-action-button:hover {
86
+ color: var(--jkl-color-text-interactive-hover);
87
+ }
88
+ @media screen and (forced-colors: active) {
89
+ .jkl-number-input__wrapper > .jkl-text-input-action-button:hover {
90
+ border: 0.125rem inset ButtonText;
91
+ }
92
+ }
93
+ @media screen and (forced-colors: active) {
94
+ .jkl-number-input__wrapper {
95
+ border: 0.125rem inset ButtonText;
96
+ }
97
+ }
98
+ html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-number-input__input:focus-visible) {
99
+ outline: 3px solid var(--jkl-color-border-action);
100
+ outline-offset: 3px;
101
+ }
102
+ .jkl-number-input__wrapper:has(.jkl-number-input__input:invalid):not(:focus-within):not(:has([data-focused=true])) {
103
+ --background-color: var(--jkl-color-background-alert-error);
104
+ --text-color: var(--jkl-color-text-on-alert);
105
+ --placeholder-color: color(from currentColor sRGB r g b / 75%);
106
+ }
107
+ .jkl-number-input__wrapper--stepper {
108
+ --jkl-number-input-stepper-min-width: calc(
109
+ 3ch + (var(--jkl-text-input-horizontal-padding) * 2)
110
+ );
111
+ --jkl-number-input-stepper-text-color: var(--text-color);
112
+ display: grid;
113
+ grid-template-columns: max-content minmax(var(--jkl-number-input-stepper-min-width), 1fr) max-content;
114
+ overflow: hidden;
115
+ }
116
+ .jkl-number-input__wrapper--stepper:has(button[data-direction]:focus-visible) {
117
+ overflow: visible;
118
+ }
119
+ .jkl-number-input__input {
120
+ padding: var(--jkl-text-input-padding);
121
+ width: 100%;
122
+ appearance: textfield;
123
+ -moz-appearance: textfield;
124
+ background: none;
125
+ -webkit-appearance: none;
126
+ color: inherit;
127
+ font-size: var(--jkl-font-size-3);
128
+ line-height: var(--jkl-line-height-tight);
129
+ font-weight: 400;
130
+ --jkl-icon-weight: 300;
131
+ }
132
+ .jkl-number-input__input {
133
+ outline: 0;
134
+ border-style: none;
135
+ outline-style: none;
136
+ }
137
+ .jkl-number-input__input:active, .jkl-number-input__input:hover, .jkl-number-input__input:focus {
138
+ outline: 0;
139
+ outline-style: none;
140
+ }
141
+ @media screen and (forced-colors: active) {
142
+ .jkl-number-input__input {
143
+ outline: revert;
144
+ border-style: revert;
145
+ outline-style: revert;
146
+ }
147
+ .jkl-number-input__input:active, .jkl-number-input__input:hover, .jkl-number-input__input:focus {
148
+ outline: revert;
149
+ outline-style: revert;
150
+ }
151
+ }
152
+ .jkl-number-input__input input[type=number]::-webkit-outer-spin-button,
153
+ .jkl-number-input__input input[type=number]::-webkit-inner-spin-button {
154
+ -webkit-appearance: none;
155
+ }
156
+ .jkl-number-input__input input[type=number] {
157
+ -moz-appearance: textfield;
158
+ }
159
+ @media screen and (forced-colors: active) {
160
+ .jkl-number-input__input {
161
+ outline: none;
162
+ border: none;
163
+ }
164
+ .jkl-number-input__input:focus-visible {
165
+ outline: none;
166
+ }
167
+ }
168
+ .jkl-number-input__input::placeholder {
169
+ opacity: 1;
170
+ color: var(--placeholder-color);
171
+ }
172
+ .jkl-number-input__input::-webkit-inner-spin-button, .jkl-number-input__input::-webkit-outer-spin-button {
173
+ -webkit-appearance: none;
174
+ margin: 0;
175
+ }
176
+ .jkl-number-input__input--align-right {
177
+ text-align: right;
178
+ }
179
+ .jkl-number-input__input--stepper {
180
+ box-sizing: border-box;
181
+ min-inline-size: var(--jkl-number-input-stepper-min-width);
182
+ text-align: center;
183
+ }
184
+ .jkl-number-input button[data-direction] {
185
+ --text-color: var(--jkl-number-input-stepper-text-color);
186
+ aspect-ratio: 1;
187
+ padding: 0;
188
+ display: inline-grid;
189
+ place-items: center;
190
+ text-align: center;
191
+ height: 100%;
192
+ }
193
+ .jkl-number-input button[data-direction]::before {
194
+ content: "";
195
+ position: absolute;
196
+ width: 1px;
197
+ inset-block: 20%;
198
+ background-color: var(--jkl-color-border-separator);
199
+ transition-timing-function: ease;
200
+ transition-duration: 150ms;
201
+ transition-property: inset;
202
+ }
203
+ .jkl-number-input button[data-direction]:hover::before, .jkl-number-input button[data-direction]:focus-visible::before {
204
+ inset-block: 0.0625rem;
205
+ }
206
+ .jkl-number-input button[data-direction]:disabled {
207
+ opacity: 0.4;
208
+ cursor: not-allowed;
209
+ }
210
+ .jkl-number-input button[data-direction=decrement]::before {
211
+ inset-inline-end: 0;
212
+ }
213
+ .jkl-number-input button[data-direction=increment]::before {
214
+ inset-inline-start: 0;
215
+ }
216
+ .jkl-number-input button[data-direction].jkl-button {
217
+ border-radius: 0;
218
+ }
219
+ .jkl-number-input button[data-direction].jkl-button .jkl-icon {
220
+ margin-block-start: 0.4ex;
221
+ }
222
+ }
@@ -0,0 +1 @@
1
+ @layer jokul.components{.jkl-number-input{align-items:flex-start;display:flex;flex-direction:column}.jkl-number-input__wrapper{--jkl-text-input-padding:var(--jkl-text-input-vertical-padding) var(--jkl-text-input-horizontal-padding);--jkl-text-input-vertical-padding:var(--jkl-unit-15);--jkl-text-input-horizontal-padding:var(--jkl-unit-15);--jkl-text-input-action-button-size:var(--jkl-unit-60);--jkl-text-input-action-button-icon-size:var(--jkl-unit-30);--jkl-text-input-action-button-padding:var(--jkl-unit-10) 0;--jkl-text-input-action-button-focus-position:var(--jkl-unit-05);--text-color:var(--jkl-color-text-default);--background-color:var(--jkl-color-background-input-base);--border-color:var(--jkl-color-border-input);--placeholder-color:var(--jkl-color-text-subdued);align-items:center;border-radius:var(--jkl-border-radius-s);box-sizing:border-box;display:flex;font-size:var(--jkl-font-size-3);font-weight:400;line-height:var(--jkl-line-height-tight);max-width:100%;position:relative;--jkl-icon-weight:300;background-color:var(--background-color);box-shadow:inset 0 0 0 .0625rem var(--border-color),0 0 0 .0625rem transparent;color:var(--text-color);transition-duration:.15s;transition-property:color,box-shadow,background-color;transition-timing-function:ease}.jkl-number-input__wrapper:focus-within,.jkl-number-input__wrapper:has([data-focused=true]){--background-color:var(--jkl-color-background-input-focus)}.jkl-number-input__wrapper[data-invalid=true]:not(:focus-within):not(:has([data-focused=true])){--background-color:var(--jkl-color-background-alert-error);--text-color:var(--jkl-color-text-on-alert);--placeholder-color:color(from currentColor sRGB r g b/75%)}.jkl-number-input__wrapper:focus-within,.jkl-number-input__wrapper:has([data-focused=true]),.jkl-number-input__wrapper:hover{--border-color:var(--jkl-color-border-input-focus);box-shadow:inset 0 0 0 .0625rem var(--border-color),0 0 0 .0625rem var(--border-color)}@media screen and (forced-colors:active){.jkl-number-input__wrapper:focus-within,.jkl-number-input__wrapper:has([data-focused=true]),.jkl-number-input__wrapper:hover{border:.125rem solid ButtonText}}html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-text-area__text-area:focus-visible),html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-text-input__input:focus-visible){outline:3px solid var(--jkl-color-border-action);outline-offset:3px}.jkl-number-input__wrapper>.jkl-icon-button:focus-visible{outline:3px solid var(--jkl-color-border-action);outline-offset:-8px}@media screen and (forced-colors:active){.jkl-number-input__wrapper>.jkl-icon-button:focus-visible{--border-color:ButtonText}}.jkl-number-input__wrapper>.jkl-text-input-action-button{align-items:center;box-sizing:border-box;display:flex;flex-shrink:0;height:var(--jkl-text-input-action-button-size);justify-content:center;padding:var(--jkl-text-input-action-button-padding);width:var(--jkl-text-input-action-button-size);-webkit-margin-start:calc(var(--jkl-text-input-horizontal-padding)*-1);margin-inline-start:calc(var(--jkl-text-input-horizontal-padding)*-1)}.jkl-number-input__wrapper>.jkl-text-input-action-button .jkl-icon-button__icon{height:var(--jkl-text-input-action-button-icon-size);width:var(--jkl-text-input-action-button-icon-size)}.jkl-number-input__wrapper>.jkl-text-input-action-button:hover{color:var(--jkl-color-text-interactive-hover)}@media screen and (forced-colors:active){.jkl-number-input__wrapper>.jkl-text-input-action-button:hover{border:.125rem inset ButtonText}}@media screen and (forced-colors:active){.jkl-number-input__wrapper{border:.125rem inset ButtonText}}html:not([data-mousenavigation]):not([data-touchnavigation]) .jkl-number-input__wrapper:has(.jkl-number-input__input:focus-visible){outline:3px solid var(--jkl-color-border-action);outline-offset:3px}.jkl-number-input__wrapper:has(.jkl-number-input__input:invalid):not(:focus-within):not(:has([data-focused=true])){--background-color:var(--jkl-color-background-alert-error);--text-color:var(--jkl-color-text-on-alert);--placeholder-color:color(from currentColor sRGB r g b/75%)}.jkl-number-input__wrapper--stepper{--jkl-number-input-stepper-min-width:calc(3ch + var(--jkl-text-input-horizontal-padding)*2);--jkl-number-input-stepper-text-color:var(--text-color);display:grid;grid-template-columns:-webkit-max-content minmax(var(--jkl-number-input-stepper-min-width),1fr) -webkit-max-content;grid-template-columns:max-content minmax(var(--jkl-number-input-stepper-min-width),1fr) max-content;overflow:hidden}.jkl-number-input__wrapper--stepper:has(button[data-direction]:focus-visible){overflow:visible}.jkl-number-input__input{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield;-webkit-appearance:none;background:none;color:inherit;font-size:var(--jkl-font-size-3);font-weight:400;line-height:var(--jkl-line-height-tight);padding:var(--jkl-text-input-padding);width:100%;--jkl-icon-weight:300;border-style:none;outline:0;outline-style:none}.jkl-number-input__input:active,.jkl-number-input__input:focus,.jkl-number-input__input:hover{outline:0;outline-style:none}@media screen and (forced-colors:active){.jkl-number-input__input{border-style:revert;outline:revert;outline-style:revert}.jkl-number-input__input:active,.jkl-number-input__input:focus,.jkl-number-input__input:hover{outline:revert;outline-style:revert}}.jkl-number-input__input input[type=number]::-webkit-inner-spin-button,.jkl-number-input__input input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}.jkl-number-input__input input[type=number]{-moz-appearance:textfield}@media screen and (forced-colors:active){.jkl-number-input__input{border:none;outline:none}.jkl-number-input__input:focus-visible{outline:none}}.jkl-number-input__input::placeholder{color:var(--placeholder-color);opacity:1}.jkl-number-input__input::-webkit-inner-spin-button,.jkl-number-input__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.jkl-number-input__input--align-right{text-align:right}.jkl-number-input__input--stepper{box-sizing:border-box;min-inline-size:var(--jkl-number-input-stepper-min-width);text-align:center}.jkl-number-input button[data-direction]{--text-color:var(--jkl-number-input-stepper-text-color);aspect-ratio:1;display:inline-grid;height:100%;padding:0;place-items:center;text-align:center}.jkl-number-input button[data-direction]:before{background-color:var(--jkl-color-border-separator);content:"";inset-block:20%;position:absolute;transition-duration:.15s;transition-property:inset;transition-timing-function:ease;width:1px}.jkl-number-input button[data-direction]:focus-visible:before,.jkl-number-input button[data-direction]:hover:before{inset-block:.0625rem}.jkl-number-input button[data-direction]:disabled{cursor:not-allowed;opacity:.4}.jkl-number-input button[data-direction=decrement]:before{inset-inline-end:0}.jkl-number-input button[data-direction=increment]:before{inset-inline-start:0}.jkl-number-input button[data-direction].jkl-button{border-radius:0}.jkl-number-input button[data-direction].jkl-button .jkl-icon{-webkit-margin-before:.4ex;margin-block-start:.4ex}}