@fremtind/jokul 0.14.1 → 0.16.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 (59) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/button/Button.js +1 -1
  3. package/build/cjs/components/button/Button.js.map +1 -1
  4. package/build/cjs/components/button/types.js.map +1 -1
  5. package/build/cjs/components/datepicker/DatePicker.js +1 -1
  6. package/build/cjs/components/datepicker/DatePicker.js.map +1 -1
  7. package/build/cjs/components/datepicker/internal/Calendar.js +1 -1
  8. package/build/cjs/components/datepicker/internal/Calendar.js.map +1 -1
  9. package/build/cjs/components/popover/Popover.js +1 -1
  10. package/build/cjs/components/popover/Popover.js.map +1 -1
  11. package/build/cjs/components/popover/utils.js.map +1 -1
  12. package/build/cjs/components/text-input/BaseTextInput.js +1 -1
  13. package/build/cjs/components/text-input/BaseTextInput.js.map +1 -1
  14. package/build/es/components/button/Button.js +1 -1
  15. package/build/es/components/button/Button.js.map +1 -1
  16. package/build/es/components/button/types.js.map +1 -1
  17. package/build/es/components/datepicker/DatePicker.js +1 -1
  18. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  19. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  20. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  21. package/build/es/components/popover/Popover.js +1 -1
  22. package/build/es/components/popover/Popover.js.map +1 -1
  23. package/build/es/components/popover/utils.js.map +1 -1
  24. package/build/es/components/text-input/BaseTextInput.js +1 -1
  25. package/build/es/components/text-input/BaseTextInput.js.map +1 -1
  26. package/build/packages/jokul/src/components/button/types.d.ts +26 -2
  27. package/build/packages/jokul/src/components/datepicker/internal/Calendar.d.ts +0 -1
  28. package/build/packages/jokul/src/components/popover/Popover.d.ts +61 -21
  29. package/build/packages/jokul/src/components/popover/utils.d.ts +1 -1
  30. package/build/packages/jokul/src/components/text-input/BaseTextInput.d.ts +8 -0
  31. package/build/style.css +1 -1
  32. package/package.json +2 -2
  33. package/src/components/button/styles/button.css +126 -193
  34. package/src/components/button/styles/button.min.css +1 -1
  35. package/src/components/button/styles/button.scss +129 -220
  36. package/src/components/checkbox/styles/checkbox.css +4 -4
  37. package/src/components/checkbox/styles/checkbox.min.css +1 -1
  38. package/src/components/datepicker/styles/_calendar.scss +11 -32
  39. package/src/components/datepicker/styles/datepicker.css +8 -33
  40. package/src/components/datepicker/styles/datepicker.min.css +1 -1
  41. package/src/components/feedback/styles/feedback.css +2 -2
  42. package/src/components/feedback/styles/feedback.min.css +1 -1
  43. package/src/components/input-group/styles/input-group.css +2 -2
  44. package/src/components/input-group/styles/input-group.min.css +1 -1
  45. package/src/components/loader/styles/loader.css +6 -6
  46. package/src/components/loader/styles/loader.min.css +1 -1
  47. package/src/components/loader/styles/skeleton-loader.css +5 -5
  48. package/src/components/loader/styles/skeleton-loader.min.css +1 -1
  49. package/src/components/message/styles/message.css +2 -2
  50. package/src/components/message/styles/message.min.css +1 -1
  51. package/src/components/progress-bar/styles/progress-bar.css +2 -2
  52. package/src/components/progress-bar/styles/progress-bar.min.css +1 -1
  53. package/src/components/radio-button/styles/radio-button.css +2 -2
  54. package/src/components/radio-button/styles/radio-button.min.css +1 -1
  55. package/src/components/system-message/styles/system-message.css +2 -2
  56. package/src/components/system-message/styles/system-message.min.css +1 -1
  57. package/src/components/toast/styles/toast.css +4 -4
  58. package/src/components/toast/styles/toast.min.css +1 -1
  59. package/src/core/jkl/_theme.scss +32 -13
@@ -2,250 +2,183 @@
2
2
  * Do not edit directly
3
3
  * Generated on Mon, 23 Sep 2024 08:51:40 GMT
4
4
  */
5
- :root,
6
- [data-layout-density=comfortable],
7
- [data-density=comfortable] {
8
- --jkl-button-font-size: var(--jkl-body-font-size);
9
- --jkl-button-line-height: 3rem;
10
- --jkl-button-font-weight: 700;
11
- --jkl-button-min-width: 6.5rem;
12
- --jkl-button-padding: 0 1.5rem;
13
- --jkl-button-tertiary-padding: 0 0.125rem;
14
- --jkl-button-children-padding-with-icon: 0.125rem;
15
- --jkl-button-tertiary-padding-with-icon: 0;
16
- --jkl-button-focus-ring-placement: -0.3125rem;
17
- }
18
- @media (width >= 0) and (max-width: 679px) {
19
- :root,
20
- [data-layout-density=comfortable],
21
- [data-density=comfortable] {
22
- --jkl-button-line-height: 2.75rem;
23
- }
5
+ .jkl .jkl-button,
6
+ .jkl-button[data-layout-density=comfortable],
7
+ .jkl-button[data-density=comfortable],
8
+ [data-layout-density=comfortable] .jkl-button,
9
+ [data-density=comfortable] .jkl-button {
10
+ --padding-block: 0.5rem;
11
+ --padding-text: 1.5rem;
12
+ --padding-icon: 1rem;
13
+ --padding-icon-button: 0.5rem;
14
+ --padding-tertiary-inline: 0.25rem;
15
+ --padding-ghost-inline: 0.5rem;
24
16
  }
25
17
 
26
- [data-layout-density=compact],
27
- [data-density=compact] {
28
- --jkl-button-font-size: var(--jkl-small-font-size);
29
- --jkl-button-line-height: 2rem;
30
- --jkl-button-font-weight: 700;
31
- --jkl-button-min-width: 4.75rem;
32
- --jkl-button-padding: 0 0.75rem;
33
- --jkl-button-tertiary-padding: 0 0.125rem;
34
- --jkl-button-children-padding-with-icon: 0.125rem;
35
- --jkl-button-tertiary-padding-with-icon: 0.125rem;
36
- --jkl-button-focus-ring-placement: -0.1875rem;
37
- }
38
-
39
- a.jkl-button {
40
- text-decoration: none;
18
+ .jkl-button[data-layout-density=compact],
19
+ .jkl-button[data-density=compact],
20
+ [data-layout-density=compact] .jkl-button,
21
+ [data-density=compact] .jkl-button {
22
+ --padding-block: 0.25rem;
23
+ --padding-text: 0.75rem;
24
+ --padding-icon: 0.5rem;
25
+ --padding-icon-button: 0.25rem;
26
+ --padding-tertiary-inline: 0.125rem;
27
+ --padding-ghost-inline: 0.25rem;
41
28
  }
42
29
 
43
30
  .jkl-button {
44
- --border-color: var(--jkl-color-background-action);
45
- --text-color: var(--jkl-color-background-action);
46
- --focus-color: var(--jkl-color-background-action);
31
+ --text-color: var(--jkl-color-text-default);
47
32
  --background-color: transparent;
48
- display: inline-flex;
49
- box-sizing: border-box;
50
- justify-content: center;
51
- background-color: var(--background-color);
52
- color: var(--text-color);
53
- font-size: var(--jkl-button-font-size);
54
- line-height: var(--jkl-button-line-height);
55
- font-weight: var(--jkl-button-font-weight);
56
- height: var(--jkl-button-line-height);
57
- min-width: var(--jkl-button-min-width);
33
+ --border-radius: 0;
34
+ --border-width: 0.0625rem;
58
35
  cursor: pointer;
59
36
  user-select: none;
60
- overflow: visible;
37
+ background-color: var(--background-color);
38
+ color: var(--text-color);
39
+ border: unset;
40
+ text-decoration: none;
41
+ -webkit-tap-highlight-color: transparent;
42
+ border-radius: var(--border-radius);
43
+ padding-inline: var(--padding-text);
44
+ padding-block: var(--padding-block);
61
45
  position: relative;
46
+ overflow: hidden;
47
+ max-width: 100%;
62
48
  transition-timing-function: ease;
63
49
  transition-duration: 150ms;
64
- transform-origin: 50% 90%;
65
- transition-property: transform, background-color;
66
- outline: 0;
67
- border-style: none;
68
- outline-style: none;
69
- }
70
- .jkl-button:active, .jkl-button:hover, .jkl-button:focus {
71
- outline: 0;
72
- outline-style: none;
73
- }
74
- @media screen and (forced-colors: active) {
50
+ transition-property: scale;
51
+ font-size: 1.125rem;
52
+ line-height: 1.75rem;
53
+ font-weight: 400;
54
+ --jkl-icon-weight: 300;
55
+ --jkl-icon-weight: 500;
56
+ font-weight: 700;
57
+ }
58
+ @media (min-width: 680px) {
75
59
  .jkl-button {
76
- outline: revert;
77
- border-style: revert;
78
- outline-style: revert;
79
- }
80
- .jkl-button:active, .jkl-button:hover, .jkl-button:focus {
81
- outline: revert;
82
- outline-style: revert;
60
+ font-size: 1.25rem;
61
+ line-height: 2rem;
62
+ font-weight: 400;
63
+ --jkl-icon-weight: 300;
64
+ --jkl-icon-weight: 500;
65
+ font-weight: 700;
83
66
  }
84
67
  }
85
- .jkl-button:focus-visible, html:not([data-touchnavigation]) .jkl-button:hover {
86
- transform: scale(1.05);
68
+ .jkl-button:has(.jkl-icon:first-child) {
69
+ padding-inline-start: var(--padding-icon);
87
70
  }
88
- html:not([data-mousenavigation]) .jkl-button:active, html:not([data-touchnavigation]) .jkl-button:active, .jkl-button:active {
89
- transform: scale(1);
71
+ .jkl-button:has(.jkl-icon:last-child) {
72
+ padding-inline-end: var(--padding-icon);
90
73
  }
91
- .jkl-button:focus-visible {
92
- outline: 2px solid var(--jkl-color-border-action);
93
- outline-offset: 2px;
74
+ .jkl-button:has(.jkl-icon:first-child):has(.jkl-icon:last-child) {
75
+ padding-inline: var(--padding-icon-button);
94
76
  }
95
- html[data-touchnavigation] .jkl-button--pressed {
96
- transform: scale(0.95);
97
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
98
- }
99
- .jkl-button__content {
100
- height: var(--jkl-button-line-height);
101
- overflow: hidden;
102
- }
103
- .jkl-button__slider {
77
+ .jkl-button__label {
104
78
  transition-timing-function: ease;
105
- transition-duration: 150ms;
106
- transition-property: transform;
107
- }
108
- .jkl-button__slider--show-loader {
109
- transform: translateY(-51%);
110
- }
111
- .jkl-button__loader {
79
+ transition-duration: 250ms;
80
+ transition-property: translate;
112
81
  display: flex;
113
- padding: 0;
82
+ flex-direction: row;
114
83
  align-items: center;
115
- justify-content: center;
116
- height: var(--jkl-button-line-height);
117
- }
118
- .jkl-button--primary, .jkl-button--secondary, .jkl-button--ghost {
119
- border: solid 0.0625rem var(--border-color);
120
- border-radius: 999px;
121
- padding: var(--jkl-button-padding);
84
+ gap: 0.125rem;
85
+ pointer-events: none;
122
86
  }
123
- .jkl-button--primary::before, .jkl-button--secondary::before, .jkl-button--ghost::before {
124
- content: "";
87
+ .jkl-button__loader {
88
+ transition-timing-function: ease;
89
+ transition-duration: 250ms;
90
+ transition-property: opacity, translate;
125
91
  position: absolute;
126
- border-radius: 999px;
127
- inset: 0;
128
- }
129
- html[data-touchnavigation] .jkl-button--primary.jkl-button--pressed::before, html[data-touchnavigation] .jkl-button--secondary.jkl-button--pressed::before, html[data-touchnavigation] .jkl-button--ghost.jkl-button--pressed::before {
130
- animation: cubic-bezier(0, 0, 0.375, 1.17) 400ms jkl-flash-u09taxm;
131
- }
132
- .jkl-button--ghost {
133
- --border-color: transparent;
134
- border-radius: 0.25rem;
135
- padding: 0 0.25rem;
136
- }
137
- .jkl-button--ghost:focus-visible, html:not([data-touchnavigation]) .jkl-button--ghost:hover {
138
- --background-color: var(--jkl-color-background-interactive-hover);
139
- transform: scale(1);
140
- }
141
- .jkl-button--ghost.jkl-button--icon-left .jkl-button__children {
142
- padding-left: var(--jkl-button-children-padding-with-icon);
143
- }
144
- .jkl-button--ghost.jkl-button--icon-right .jkl-button__children {
145
- padding-right: var(--jkl-button-children-padding-with-icon);
92
+ top: 50%;
93
+ left: 50%;
94
+ translate: -50% 350%;
95
+ opacity: 0;
96
+ pointer-events: none;
146
97
  }
147
- .jkl-button--primary {
148
- --background-color: var(--jkl-color-background-action);
149
- --text-color: var(--jkl-color-text-on-action);
98
+ .jkl-button__text {
99
+ max-width: 100%;
100
+ overflow: hidden;
101
+ white-space: nowrap;
102
+ text-overflow: ellipsis;
150
103
  }
151
- .jkl-button--secondary {
152
- transition-property: box-shadow, transform, background-color;
104
+ .jkl-button[data-loading=true] .jkl-button__label {
105
+ translate: 0 -120%;
153
106
  }
154
- .jkl-button--secondary:hover, .jkl-button--secondary:focus-visible, html[data-touchnavigation] .jkl-button--secondary.jkl-button--pressed {
155
- box-shadow: inset 0 0 0 1px var(--border-color), inset 0 0 0 1px var(--border-color);
107
+ .jkl-button[data-loading=true] .jkl-button__loader {
108
+ translate: -50% -50%;
109
+ opacity: 1;
156
110
  }
157
- .jkl-button--tertiary {
158
- border-bottom: solid 0.0625rem var(--border-color);
159
- border-top: solid 0.0625rem transparent;
160
- padding: var(--jkl-button-tertiary-padding);
161
- transition: transform 100ms cubic-bezier(0.6, 0.2, 0.35, 1), border 100ms cubic-bezier(0.6, 0.2, 0.35, 1);
162
- min-width: unset;
111
+ .jkl-button:focus-visible {
112
+ outline: 2px solid var(--jkl-color-border-action);
113
+ outline-offset: 2px;
163
114
  }
164
- .jkl-button--tertiary::before {
115
+ .jkl-button::before {
165
116
  content: "";
166
117
  pointer-events: none;
167
118
  display: block;
168
119
  position: absolute;
169
120
  left: var(--jkl-touch-xcoord, 50%);
170
121
  top: var(--jkl-touch-ycoord, 50%);
171
- transform: translate3d(-50%, -50%, 0);
172
- border-radius: 100%;
122
+ translate: -100%, -100%;
123
+ transform-origin: center;
124
+ border-radius: 9999px;
125
+ background-color: var(--text-color);
126
+ opacity: 0;
173
127
  width: 1rem;
174
128
  height: 1rem;
175
- background-color: transparent;
176
129
  }
177
- html[data-touchnavigation] .jkl-button--tertiary.jkl-button--pressed::before {
178
- animation: cubic-bezier(0, 0, 0.375, 1.17) 400ms jkl-tertiary-flash-u09tayf;
130
+ html[data-touchnavigation] .jkl-button.jkl-button--pressed::before {
131
+ animation: cubic-bezier(0.6, 0.2, 0.35, 1) 250ms jkl-tertiary-flash-uwjdlai;
179
132
  }
180
- .jkl-button--tertiary:focus-visible {
181
- border: none;
133
+ :not([data-touchnavigation]) .jkl-button--primary:hover, :not([data-touchnavigation]) .jkl-button--secondary:hover, :not([data-touchnavigation]) .jkl-button--tertiary:hover {
134
+ scale: 1.05;
135
+ transform-origin: center;
182
136
  }
183
- @media screen and (forced-colors: active) {
184
- .jkl-button--tertiary:focus-visible {
185
- border: revert;
186
- }
187
- }
188
- .jkl-button--tertiary:hover, .jkl-button--tertiary:focus-visible, html[data-touchnavigation] .jkl-button--tertiary.jkl-button--pressed {
189
- border-bottom-color: var(--focus-color);
190
- border-bottom-width: 0.125rem;
191
- color: var(--focus-color);
192
- }
193
- .jkl-button--icon-left .jkl-button__icon, .jkl-button--icon-right .jkl-button__icon {
194
- display: inline-block;
195
- vertical-align: sub;
137
+ .jkl-button--primary, .jkl-button--secondary {
138
+ --border-radius: 999px;
196
139
  }
197
- .jkl-button--icon-left {
198
- padding-left: 0.5rem;
140
+ .jkl-button--primary {
141
+ --background-color: var(--jkl-color-background-action);
142
+ --text-color: var(--jkl-color-text-on-action);
199
143
  }
200
- .jkl-button--icon-left .jkl-button__children {
201
- padding-left: var(--jkl-button-children-padding-with-icon);
144
+ .jkl-button--secondary::after {
145
+ content: "";
146
+ position: absolute;
147
+ inset: 0;
148
+ border-radius: var(--border-radius);
149
+ border: var(--border-width) solid var(--text-color);
202
150
  }
203
- .jkl-button--icon-left.jkl-button--tertiary {
204
- padding-left: var(--jkl-button-tertiary-padding-with-icon);
151
+ .jkl-button--tertiary, .jkl-button--tertiary:has(.jkl-icon:first-child), .jkl-button--tertiary:has(.jkl-icon:last-child) {
152
+ padding-inline: var(--padding-tertiary-inline);
205
153
  }
206
- .jkl-button--icon-right {
207
- padding-right: 0.5rem;
154
+ .jkl-button--tertiary::after, .jkl-button--tertiary:has(.jkl-icon:first-child)::after, .jkl-button--tertiary:has(.jkl-icon:last-child)::after {
155
+ content: "";
156
+ position: absolute;
157
+ inset: 0;
158
+ border-radius: var(--border-radius);
159
+ border-bottom: var(--border-width) solid var(--text-color);
208
160
  }
209
- .jkl-button--icon-right .jkl-button__children {
210
- padding-right: var(--jkl-button-children-padding-with-icon);
161
+ .jkl-button--tertiary:hover, .jkl-button--tertiary:focus-visible, .jkl-button--tertiary:has(.jkl-icon:first-child):hover, .jkl-button--tertiary:has(.jkl-icon:first-child):focus-visible, .jkl-button--tertiary:has(.jkl-icon:last-child):hover, .jkl-button--tertiary:has(.jkl-icon:last-child):focus-visible {
162
+ --border-width: 0.125rem;
211
163
  }
212
- .jkl-button--icon-right.jkl-button--tertiary {
213
- padding-right: var(--jkl-button-tertiary-padding-with-icon);
164
+ .jkl-button--ghost, .jkl-button--ghost:has(.jkl-icon:first-child), .jkl-button--ghost:has(.jkl-icon:last-child) {
165
+ padding-inline: var(--padding-ghost-inline);
166
+ border-radius: 0.25rem;
167
+ transition-timing-function: ease;
168
+ transition-duration: 150ms;
169
+ transition-property: background-color;
214
170
  }
215
- @media screen and (forced-colors: active) {
216
- .jkl-button.jkl-button--primary:not(a), .jkl-button.jkl-button--secondary:not(a), .jkl-button.jkl-button--primary:hover:not(a), .jkl-button.jkl-button--secondary:hover:not(a), .jkl-button.jkl-button--primary:focus:not(a), .jkl-button.jkl-button--secondary:focus:not(a) {
217
- border-color: ButtonText;
218
- }
219
- .jkl-button .jkl-loader__dot {
220
- background-color: ButtonText;
221
- }
222
- .jkl-button.jkl-button--tertiary {
223
- outline-offset: 0.125rem;
224
- border-top-style: none;
225
- border-right-style: none;
226
- border-left-style: none;
227
- }
171
+ .jkl-button--ghost:hover, .jkl-button--ghost:has(.jkl-icon:first-child):hover, .jkl-button--ghost:has(.jkl-icon:last-child):hover {
172
+ --background-color: var(--jkl-color-background-interactive-hover);
228
173
  }
229
174
 
230
- @keyframes jkl-flash-u09taxm {
231
- 0% {
232
- box-shadow: 0 0 0 0 var(--focus-color);
233
- opacity: 0.5;
234
- }
235
- 100% {
236
- box-shadow: 0 0 0 1rem var(--focus-color);
237
- opacity: 0;
238
- }
239
- }
240
- @keyframes jkl-tertiary-flash-u09tayf {
175
+ @keyframes jkl-tertiary-flash-uwjdlai {
241
176
  0% {
242
- box-shadow: 0 0 0 0 var(--focus-color);
243
- background-color: var(--focus-color);
244
177
  opacity: 0.5;
178
+ scale: 1;
245
179
  }
246
180
  100% {
247
- box-shadow: 0 0 0 2.5rem var(--focus-color);
248
- background-color: var(--focus-color);
249
181
  opacity: 0;
182
+ scale: 8;
250
183
  }
251
184
  }
@@ -1 +1 @@
1
- :root,[data-density=comfortable],[data-layout-density=comfortable]{--jkl-button-font-size:var(--jkl-body-font-size);--jkl-button-line-height:3rem;--jkl-button-font-weight:700;--jkl-button-min-width:6.5rem;--jkl-button-padding:0 1.5rem;--jkl-button-tertiary-padding:0 0.125rem;--jkl-button-children-padding-with-icon:0.125rem;--jkl-button-tertiary-padding-with-icon:0;--jkl-button-focus-ring-placement:-0.3125rem}@media (width >= 0) and (max-width:679px){:root,[data-density=comfortable],[data-layout-density=comfortable]{--jkl-button-line-height:2.75rem}}[data-density=compact],[data-layout-density=compact]{--jkl-button-font-size:var(--jkl-small-font-size);--jkl-button-line-height:2rem;--jkl-button-font-weight:700;--jkl-button-min-width:4.75rem;--jkl-button-padding:0 0.75rem;--jkl-button-tertiary-padding:0 0.125rem;--jkl-button-children-padding-with-icon:0.125rem;--jkl-button-tertiary-padding-with-icon:0.125rem;--jkl-button-focus-ring-placement:-0.1875rem}a.jkl-button{text-decoration:none}.jkl-button{--border-color:var(--jkl-color-background-action);--text-color:var(--jkl-color-background-action);--focus-color:var(--jkl-color-background-action);--background-color:#0000;background-color:var(--background-color);border-style:none;box-sizing:border-box;color:var(--text-color);cursor:pointer;display:inline-flex;font-size:var(--jkl-button-font-size);font-weight:var(--jkl-button-font-weight);height:var(--jkl-button-line-height);justify-content:center;line-height:var(--jkl-button-line-height);min-width:var(--jkl-button-min-width);overflow:visible;position:relative;transform-origin:50% 90%;transition-duration:.15s;transition-property:transform,background-color;transition-timing-function:ease;-webkit-user-select:none;user-select:none}.jkl-button,.jkl-button:active,.jkl-button:focus,.jkl-button:hover{outline:0;outline-style:none}@media screen and (forced-colors:active){.jkl-button{border-style:revert}.jkl-button,.jkl-button:active,.jkl-button:focus,.jkl-button:hover{outline:revert;outline-style:revert}}.jkl-button:focus-visible,html:not([data-touchnavigation]) .jkl-button:hover{transform:scale(1.05)}.jkl-button:active,html:not([data-mousenavigation]) .jkl-button:active,html:not([data-touchnavigation]) .jkl-button:active{transform:scale(1)}.jkl-button:focus-visible{outline:2px solid var(--jkl-color-border-action);outline-offset:2px}html[data-touchnavigation] .jkl-button--pressed{transform:scale(.95);-webkit-tap-highlight-color:rgba(0,0,0,0)}.jkl-button__content{height:var(--jkl-button-line-height);overflow:hidden}.jkl-button__slider{transition-duration:.15s;transition-property:transform;transition-timing-function:ease}.jkl-button__slider--show-loader{transform:translateY(-51%)}.jkl-button__loader{align-items:center;display:flex;height:var(--jkl-button-line-height);justify-content:center;padding:0}.jkl-button--ghost,.jkl-button--primary,.jkl-button--secondary{border:.0625rem solid var(--border-color);border-radius:999px;padding:var(--jkl-button-padding)}.jkl-button--ghost:before,.jkl-button--primary:before,.jkl-button--secondary:before{border-radius:999px;content:"";inset:0;position:absolute}html[data-touchnavigation] .jkl-button--ghost.jkl-button--pressed:before,html[data-touchnavigation] .jkl-button--primary.jkl-button--pressed:before,html[data-touchnavigation] .jkl-button--secondary.jkl-button--pressed:before{animation:jkl-flash-u09taxm .4s cubic-bezier(0,0,.375,1.17)}.jkl-button--ghost{--border-color:#0000;border-radius:.25rem;padding:0 .25rem}.jkl-button--ghost:focus-visible,html:not([data-touchnavigation]) .jkl-button--ghost:hover{--background-color:var(--jkl-color-background-interactive-hover);transform:scale(1)}.jkl-button--ghost.jkl-button--icon-left .jkl-button__children{padding-left:var(--jkl-button-children-padding-with-icon)}.jkl-button--ghost.jkl-button--icon-right .jkl-button__children{padding-right:var(--jkl-button-children-padding-with-icon)}.jkl-button--primary{--background-color:var(--jkl-color-background-action);--text-color:var(--jkl-color-text-on-action)}.jkl-button--secondary{transition-property:box-shadow,transform,background-color}.jkl-button--secondary:focus-visible,.jkl-button--secondary:hover,html[data-touchnavigation] .jkl-button--secondary.jkl-button--pressed{box-shadow:inset 0 0 0 1px var(--border-color),inset 0 0 0 1px var(--border-color)}.jkl-button--tertiary{border-bottom:.0625rem solid var(--border-color);border-top:.0625rem solid #0000;min-width:unset;padding:var(--jkl-button-tertiary-padding);transition:transform .1s cubic-bezier(.6,.2,.35,1),border .1s cubic-bezier(.6,.2,.35,1)}.jkl-button--tertiary:before{background-color:initial;border-radius:100%;content:"";display:block;height:1rem;left:var(--jkl-touch-xcoord,50%);pointer-events:none;position:absolute;top:var(--jkl-touch-ycoord,50%);transform:translate3d(-50%,-50%,0);width:1rem}html[data-touchnavigation] .jkl-button--tertiary.jkl-button--pressed:before{animation:jkl-tertiary-flash-u09tayf .4s cubic-bezier(0,0,.375,1.17)}.jkl-button--tertiary:focus-visible{border:none}@media screen and (forced-colors:active){.jkl-button--tertiary:focus-visible{border:revert}}.jkl-button--tertiary:focus-visible,.jkl-button--tertiary:hover,html[data-touchnavigation] .jkl-button--tertiary.jkl-button--pressed{border-bottom-color:var(--focus-color);border-bottom-width:.125rem;color:var(--focus-color)}.jkl-button--icon-left .jkl-button__icon,.jkl-button--icon-right .jkl-button__icon{display:inline-block;vertical-align:sub}.jkl-button--icon-left{padding-left:.5rem}.jkl-button--icon-left .jkl-button__children{padding-left:var(--jkl-button-children-padding-with-icon)}.jkl-button--icon-left.jkl-button--tertiary{padding-left:var(--jkl-button-tertiary-padding-with-icon)}.jkl-button--icon-right{padding-right:.5rem}.jkl-button--icon-right .jkl-button__children{padding-right:var(--jkl-button-children-padding-with-icon)}.jkl-button--icon-right.jkl-button--tertiary{padding-right:var(--jkl-button-tertiary-padding-with-icon)}@media screen and (forced-colors:active){.jkl-button.jkl-button--primary:focus:not(a),.jkl-button.jkl-button--primary:hover:not(a),.jkl-button.jkl-button--primary:not(a),.jkl-button.jkl-button--secondary:focus:not(a),.jkl-button.jkl-button--secondary:hover:not(a),.jkl-button.jkl-button--secondary:not(a){border-color:ButtonText}.jkl-button .jkl-loader__dot{background-color:ButtonText}.jkl-button.jkl-button--tertiary{border-left-style:none;border-right-style:none;border-top-style:none;outline-offset:.125rem}}@keyframes jkl-flash-u09taxm{0%{box-shadow:0 0 0 0 var(--focus-color);opacity:.5}to{box-shadow:0 0 0 1rem var(--focus-color);opacity:0}}@keyframes jkl-tertiary-flash-u09tayf{0%{background-color:var(--focus-color);box-shadow:0 0 0 0 var(--focus-color);opacity:.5}to{background-color:var(--focus-color);box-shadow:0 0 0 2.5rem var(--focus-color);opacity:0}}
1
+ .jkl .jkl-button,.jkl-button[data-density=comfortable],.jkl-button[data-layout-density=comfortable],[data-density=comfortable] .jkl-button,[data-layout-density=comfortable] .jkl-button{--padding-block:0.5rem;--padding-text:1.5rem;--padding-icon:1rem;--padding-icon-button:0.5rem;--padding-tertiary-inline:0.25rem;--padding-ghost-inline:0.5rem}.jkl-button[data-density=compact],.jkl-button[data-layout-density=compact],[data-density=compact] .jkl-button,[data-layout-density=compact] .jkl-button{--padding-block:0.25rem;--padding-text:0.75rem;--padding-icon:0.5rem;--padding-icon-button:0.25rem;--padding-tertiary-inline:0.125rem;--padding-ghost-inline:0.25rem}.jkl-button{--text-color:var(--jkl-color-text-default);--background-color:#0000;--border-radius:0;--border-width:0.0625rem;background-color:var(--background-color);border:unset;color:var(--text-color);cursor:pointer;text-decoration:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:var(--border-radius);font-size:1.125rem;font-weight:400;line-height:1.75rem;max-width:100%;overflow:hidden;padding-block:var(--padding-block);padding-inline:var(--padding-text);position:relative;transition-duration:.15s;transition-property:scale;transition-timing-function:ease;--jkl-icon-weight:300;--jkl-icon-weight:500;font-weight:700}@media (min-width:680px){.jkl-button{font-size:1.25rem;font-weight:400;line-height:2rem;--jkl-icon-weight:300;--jkl-icon-weight:500;font-weight:700}}.jkl-button:has(.jkl-icon:first-child){padding-inline-start:var(--padding-icon)}.jkl-button:has(.jkl-icon:last-child){padding-inline-end:var(--padding-icon)}.jkl-button:has(.jkl-icon:first-child):has(.jkl-icon:last-child){padding-inline:var(--padding-icon-button)}.jkl-button__label{align-items:center;display:flex;flex-direction:row;gap:.125rem;pointer-events:none;transition-duration:.25s;transition-property:translate;transition-timing-function:ease}.jkl-button__loader{left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transition-duration:.25s;transition-property:opacity,translate;transition-timing-function:ease;translate:-50% 350%}.jkl-button__text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jkl-button[data-loading=true] .jkl-button__label{translate:0 -120%}.jkl-button[data-loading=true] .jkl-button__loader{opacity:1;translate:-50% -50%}.jkl-button:focus-visible{outline:2px solid var(--jkl-color-border-action);outline-offset:2px}.jkl-button:before{background-color:var(--text-color);border-radius:9999px;content:"";display:block;height:1rem;left:var(--jkl-touch-xcoord,50%);opacity:0;pointer-events:none;position:absolute;top:var(--jkl-touch-ycoord,50%);transform-origin:center;translate:-100%,-100%;width:1rem}html[data-touchnavigation] .jkl-button.jkl-button--pressed:before{animation:jkl-tertiary-flash-uwjdlai .25s cubic-bezier(.6,.2,.35,1)}:not([data-touchnavigation]) .jkl-button--primary:hover,:not([data-touchnavigation]) .jkl-button--secondary:hover,:not([data-touchnavigation]) .jkl-button--tertiary:hover{scale:1.05;transform-origin:center}.jkl-button--primary,.jkl-button--secondary{--border-radius:999px}.jkl-button--primary{--background-color:var(--jkl-color-background-action);--text-color:var(--jkl-color-text-on-action)}.jkl-button--secondary:after{border:var(--border-width) solid var(--text-color);border-radius:var(--border-radius);content:"";inset:0;position:absolute}.jkl-button--tertiary,.jkl-button--tertiary:has(.jkl-icon:first-child),.jkl-button--tertiary:has(.jkl-icon:last-child){padding-inline:var(--padding-tertiary-inline)}.jkl-button--tertiary:after,.jkl-button--tertiary:has(.jkl-icon:first-child):after,.jkl-button--tertiary:has(.jkl-icon:last-child):after{border-bottom:var(--border-width) solid var(--text-color);border-radius:var(--border-radius);content:"";inset:0;position:absolute}.jkl-button--tertiary:focus-visible,.jkl-button--tertiary:has(.jkl-icon:first-child):focus-visible,.jkl-button--tertiary:has(.jkl-icon:first-child):hover,.jkl-button--tertiary:has(.jkl-icon:last-child):focus-visible,.jkl-button--tertiary:has(.jkl-icon:last-child):hover,.jkl-button--tertiary:hover{--border-width:0.125rem}.jkl-button--ghost,.jkl-button--ghost:has(.jkl-icon:first-child),.jkl-button--ghost:has(.jkl-icon:last-child){border-radius:.25rem;padding-inline:var(--padding-ghost-inline);transition-duration:.15s;transition-property:background-color;transition-timing-function:ease}.jkl-button--ghost:has(.jkl-icon:first-child):hover,.jkl-button--ghost:has(.jkl-icon:last-child):hover,.jkl-button--ghost:hover{--background-color:var(--jkl-color-background-interactive-hover)}@keyframes jkl-tertiary-flash-uwjdlai{0%{opacity:.5;scale:1}to{opacity:0;scale:8}}