@geckoui/geckoui 1.6.4 → 2.0.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.
package/dist/styles.css CHANGED
@@ -1,3 +1,5 @@
1
+ @charset "UTF-8";
2
+
1
3
  /* src/styles.scss */
2
4
  @layer properties;
3
5
  .GeckoUI-icon__check {
@@ -120,6 +122,199 @@
120
122
  mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none"><path d="M11 4.26025L4 11.2603M4 4.26025L11 11.2603" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
121
123
  -webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none"><path d="M11 4.26025L4 11.2603M4 4.26025L11 11.2603" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
122
124
  }
125
+ .GeckoUITabs {
126
+ box-sizing: border-box;
127
+ border-width: 0;
128
+ border-style: solid;
129
+ border-color: #e5e7eb;
130
+ --gecko-tabs-accent: var(--color-primary-600);
131
+ --gecko-tabs-muted: var(--color-text-secondary);
132
+ --gecko-tabs-indicator: 2px;
133
+ --gecko-tabs-radius: 0.375rem;
134
+ --gecko-tabs-gap: 0.25rem;
135
+ --gecko-tabs-padding-x: 0.75rem;
136
+ --gecko-tabs-padding-y: 0.5rem;
137
+ --gecko-tabs-font-size: 0.875rem;
138
+ display: flex;
139
+ flex-direction: column;
140
+ }
141
+ .GeckoUITabs[data-size=sm] {
142
+ --gecko-tabs-padding-x: 0.625rem;
143
+ --gecko-tabs-padding-y: 0.375rem;
144
+ --gecko-tabs-font-size: 0.8125rem;
145
+ }
146
+ .GeckoUITabs[data-size=lg] {
147
+ --gecko-tabs-padding-x: 1rem;
148
+ --gecko-tabs-padding-y: 0.625rem;
149
+ --gecko-tabs-font-size: 1rem;
150
+ }
151
+ .GeckoUITabs[data-orientation=vertical] {
152
+ flex-direction: row;
153
+ align-items: center;
154
+ gap: calc(var(--spacing, 0.25rem) * 4);
155
+ }
156
+ .GeckoUITabs__list {
157
+ display: flex;
158
+ align-items: stretch;
159
+ overflow-x: auto;
160
+ overflow-y: hidden;
161
+ gap: var(--gecko-tabs-gap);
162
+ scrollbar-width: none;
163
+ -ms-overflow-style: none;
164
+ }
165
+ .GeckoUITabs__list::-webkit-scrollbar {
166
+ display: none;
167
+ }
168
+ .GeckoUITabs[data-orientation=vertical] .GeckoUITabs__list {
169
+ flex-direction: column;
170
+ align-items: stretch;
171
+ overflow-x: hidden;
172
+ overflow-y: auto;
173
+ }
174
+ .GeckoUITabs[data-full-width] .GeckoUITabs__list {
175
+ width: 100%;
176
+ }
177
+ .GeckoUITabs[data-full-width] .GeckoUITabs__tab {
178
+ flex: 1;
179
+ }
180
+ .GeckoUITabs__tab {
181
+ box-sizing: border-box;
182
+ border-width: 0;
183
+ border-style: solid;
184
+ border-color: #e5e7eb;
185
+ font-family: inherit;
186
+ font-feature-settings: inherit;
187
+ font-variation-settings: inherit;
188
+ font-size: 100%;
189
+ font-weight: inherit;
190
+ line-height: inherit;
191
+ letter-spacing: inherit;
192
+ color: inherit;
193
+ margin: 0;
194
+ padding: 0;
195
+ text-transform: none;
196
+ -webkit-appearance: button;
197
+ background-color: transparent;
198
+ background-image: none;
199
+ position: relative;
200
+ display: inline-flex;
201
+ cursor: pointer;
202
+ align-items: center;
203
+ justify-content: center;
204
+ gap: calc(var(--spacing, 0.25rem) * 2);
205
+ --tw-font-weight: var(--font-weight-medium, 500);
206
+ font-weight: var(--font-weight-medium, 500);
207
+ white-space: nowrap;
208
+ transition-property:
209
+ color,
210
+ background-color,
211
+ border-color,
212
+ outline-color,
213
+ text-decoration-color,
214
+ fill,
215
+ stroke,
216
+ --tw-gradient-from,
217
+ --tw-gradient-via,
218
+ --tw-gradient-to;
219
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
220
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
221
+ --tw-duration: 150ms;
222
+ transition-duration: 150ms;
223
+ flex-shrink: 0;
224
+ padding: var(--gecko-tabs-padding-y) var(--gecko-tabs-padding-x);
225
+ font-size: var(--gecko-tabs-font-size);
226
+ color: var(--gecko-tabs-muted);
227
+ }
228
+ .GeckoUITabs__tab:hover:not([data-disabled]):not([data-state=selected]) {
229
+ color: var(--color-text-primary);
230
+ }
231
+ .GeckoUITabs__tab:focus-visible {
232
+ outline: 2px solid var(--color-primary-300);
233
+ outline-offset: -2px;
234
+ border-radius: var(--gecko-tabs-radius);
235
+ }
236
+ .GeckoUITabs__tab[data-state=selected] {
237
+ color: var(--gecko-tabs-accent);
238
+ }
239
+ .GeckoUITabs__tab[data-disabled] {
240
+ cursor: not-allowed;
241
+ opacity: 50%;
242
+ }
243
+ .GeckoUITabs__panel {
244
+ flex: 1;
245
+ padding-top: calc(var(--spacing, 0.25rem) * 4);
246
+ }
247
+ .GeckoUITabs__panel:focus-visible {
248
+ outline: 2px solid var(--color-primary-300);
249
+ outline-offset: 2px;
250
+ }
251
+ .GeckoUITabs[data-orientation=vertical] .GeckoUITabs__panel {
252
+ padding-top: calc(var(--spacing, 0.25rem) * 0);
253
+ }
254
+ .GeckoUITabs[data-variant=underline] {
255
+ --gecko-tabs-gap: 0;
256
+ }
257
+ .GeckoUITabs[data-variant=underline] .GeckoUITabs__list {
258
+ border-bottom-style: var(--tw-border-style);
259
+ border-bottom-width: 1px;
260
+ border-color: var(--color-border-primary);
261
+ }
262
+ .GeckoUITabs[data-variant=underline] .GeckoUITabs__tab[data-state=selected] {
263
+ box-shadow: inset 0 calc(var(--gecko-tabs-indicator) * -1) 0 0 var(--gecko-tabs-accent);
264
+ }
265
+ .GeckoUITabs[data-variant=underline][data-orientation=vertical] .GeckoUITabs__list {
266
+ border-right-style: var(--tw-border-style);
267
+ border-right-width: 1px;
268
+ border-bottom-style: var(--tw-border-style);
269
+ border-bottom-width: 0px;
270
+ }
271
+ .GeckoUITabs[data-variant=underline][data-orientation=vertical] .GeckoUITabs__tab {
272
+ justify-content: flex-start;
273
+ box-shadow: none;
274
+ }
275
+ .GeckoUITabs[data-variant=underline][data-orientation=vertical] .GeckoUITabs__tab[data-state=selected] {
276
+ box-shadow: inset calc(var(--gecko-tabs-indicator) * -1) 0 0 0 var(--gecko-tabs-accent);
277
+ }
278
+ .GeckoUITabs[data-variant=segmented] .GeckoUITabs__list {
279
+ width: fit-content;
280
+ max-width: 100%;
281
+ background-color: var(--color-surface-tertiary);
282
+ padding: calc(var(--spacing, 0.25rem) * 1);
283
+ border-radius: calc(var(--gecko-tabs-radius) + 0.25rem);
284
+ }
285
+ .GeckoUITabs[data-variant=segmented][data-full-width] .GeckoUITabs__list {
286
+ width: 100%;
287
+ }
288
+ .GeckoUITabs[data-variant=segmented] .GeckoUITabs__tab {
289
+ border-radius: var(--gecko-tabs-radius);
290
+ }
291
+ .GeckoUITabs[data-variant=segmented] .GeckoUITabs__tab[data-state=selected] {
292
+ background-color: var(--color-surface-primary);
293
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
294
+ box-shadow:
295
+ var(--tw-inset-shadow),
296
+ var(--tw-inset-ring-shadow),
297
+ var(--tw-ring-offset-shadow),
298
+ var(--tw-ring-shadow),
299
+ var(--tw-shadow);
300
+ color: var(--color-text-primary);
301
+ }
302
+ .GeckoUITabs[data-variant=soft] .GeckoUITabs__tab {
303
+ border-radius: var(--gecko-tabs-radius);
304
+ }
305
+ .GeckoUITabs[data-variant=soft] .GeckoUITabs__tab[data-state=selected] {
306
+ background: var(--gecko-tabs-accent);
307
+ @supports (color: color-mix(in lab, red, red)) {
308
+ background: color-mix(in oklch, var(--gecko-tabs-accent) 12%, transparent);
309
+ }
310
+ color: var(--gecko-tabs-accent);
311
+ }
312
+ .GeckoUITabs[data-variant=soft] .GeckoUITabs__tab:hover:not([data-disabled]):not([data-state=selected]) {
313
+ background-color: var(--color-surface-hover);
314
+ }
315
+ .GeckoUITabs[data-variant=segmented] .GeckoUITabs__tab:hover:not([data-disabled]):not([data-state=selected]) {
316
+ background-color: var(--color-surface-hover);
317
+ }
123
318
  .GeckoUIMenu {
124
319
  position: relative;
125
320
  display: inline-block;
@@ -192,7 +387,6 @@
192
387
  background: var(--gecko-ui-scrollbar-thumb-hover);
193
388
  }
194
389
  .GeckoUIMenu__items {
195
- z-index: 50;
196
390
  display: flex;
197
391
  max-height: 240px;
198
392
  width: fit-content;
@@ -214,6 +408,7 @@
214
408
  var(--tw-shadow);
215
409
  --tw-outline-style: none;
216
410
  outline-style: none;
411
+ z-index: var(--gecko-menu-z, 50);
217
412
  }
218
413
  .GeckoUIMenu__item {
219
414
  box-sizing: border-box;
@@ -258,125 +453,378 @@
258
453
  .GeckoUIMenu__item[data-disabled]:focus {
259
454
  background-color: transparent;
260
455
  }
261
- .GeckoUIRadio {
262
- outline: none;
456
+ .GeckoUIToaster {
457
+ box-sizing: border-box;
458
+ border-width: 0;
459
+ border-style: solid;
460
+ border-color: #e5e7eb;
461
+ --gecko-toast-width: min(400px, calc(100vw - 2rem));
462
+ --gecko-toast-offset: 24px;
463
+ --gecko-toast-z: 3000;
464
+ pointer-events: none;
465
+ position: fixed;
466
+ margin: calc(var(--spacing, 0.25rem) * 0);
467
+ display: flex;
468
+ list-style-type: none;
469
+ flex-direction: column;
470
+ padding: calc(var(--spacing, 0.25rem) * 0);
471
+ width: var(--gecko-toast-width);
472
+ z-index: var(--gecko-toast-z);
263
473
  }
264
- .GeckoUIRadio:focus-visible {
265
- outline: 2px solid var(--color-primary-300);
266
- outline-offset: 2px;
474
+ .GeckoUIToaster[data-position^=top] {
475
+ top: var(--gecko-toast-offset);
267
476
  }
268
- .GeckoUIRadio {
269
- position: relative;
270
- display: inline-flex;
271
- align-items: center;
272
- justify-content: center;
273
- height: calc(var(--spacing, 0.25rem) * 4);
274
- width: calc(var(--spacing, 0.25rem) * 4);
275
- cursor: pointer;
276
- appearance: none;
277
- border-radius: calc(infinity * 1px);
278
- background-color: transparent;
279
- border-style: var(--tw-border-style);
280
- border-width: 0.1em;
281
- border-color: var(--color-border-secondary);
282
- transition-property:
283
- color,
284
- background-color,
285
- border-color,
286
- outline-color,
287
- text-decoration-color,
288
- fill,
289
- stroke,
290
- --tw-gradient-from,
291
- --tw-gradient-via,
292
- --tw-gradient-to;
293
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
294
- transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
295
- --tw-duration: 120ms;
296
- transition-duration: 120ms;
297
- --tw-ease: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
298
- transition-timing-function: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
477
+ .GeckoUIToaster[data-position^=bottom] {
478
+ bottom: var(--gecko-toast-offset);
479
+ flex-direction: column-reverse;
299
480
  }
300
- .GeckoUIRadio:disabled {
301
- cursor: not-allowed;
302
- border-color: var(--color-border-disabled);
481
+ .GeckoUIToaster[data-position$=left] {
482
+ left: var(--gecko-toast-offset);
303
483
  }
304
- .GeckoUIRadio:enabled:hover {
305
- border-color: var(--color-primary-400);
484
+ .GeckoUIToaster[data-position$=right] {
485
+ right: calc(var(--gecko-toast-offset) + var(--gecko-scrollbar-width, 0px));
306
486
  }
307
- .GeckoUIRadio:checked {
308
- border-color: var(--color-primary-600);
309
- background-color: transparent;
310
- border-width: 0.1em;
487
+ .GeckoUIToaster[data-position$=center] {
488
+ left: calc(1/2 * 100%);
489
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
490
+ translate: var(--tw-translate-x) var(--tw-translate-y);
311
491
  }
312
- .GeckoUIRadio:disabled:checked {
313
- border-color: color-mix(in srgb, oklch(0.5461 0.2152 262.88) 50%, transparent);
314
- @supports (color: color-mix(in lab, red, red)) {
315
- border-color: color-mix(in oklab, var(--color-primary-600) 50%, transparent);
316
- }
492
+ .GeckoUIToaster__item {
493
+ pointer-events: auto;
317
494
  }
318
- .GeckoUIRadio:disabled:checked:after {
319
- box-shadow: inset 1em 1em color-mix(in srgb, oklch(0.5461 0.2152 262.88) 50%, transparent);
320
- @supports (color: color-mix(in lab, red, red)) {
321
- box-shadow: inset 1em 1em color-mix(in oklch, var(--color-primary-600) 50%, transparent);
322
- }
495
+ .GeckoUIToast {
496
+ box-sizing: border-box;
497
+ border-width: 0;
498
+ border-style: solid;
499
+ border-color: #e5e7eb;
500
+ --gecko-toast-bg: var(--color-surface-primary);
501
+ --gecko-toast-fg: var(--color-text-primary);
502
+ --gecko-toast-muted: var(--color-text-muted);
503
+ --gecko-toast-border: var(--color-border-primary);
504
+ --gecko-toast-accent: var(--color-text-muted);
505
+ --gecko-toast-radius: 0.5rem;
506
+ --gecko-toast-padding: 1rem;
507
+ --gecko-toast-gap: 0.75rem;
508
+ --gecko-toast-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
509
+ --gecko-toast-duration: 200ms;
510
+ display: flex;
511
+ width: 100%;
512
+ align-items: flex-start;
513
+ border-style: var(--tw-border-style);
514
+ border-width: 1px;
515
+ background: var(--gecko-toast-bg);
516
+ border-color: var(--gecko-toast-border);
517
+ border-radius: var(--gecko-toast-radius);
518
+ box-shadow: var(--gecko-toast-shadow);
519
+ color: var(--gecko-toast-fg);
520
+ gap: var(--gecko-toast-gap);
521
+ padding: var(--gecko-toast-padding);
522
+ transition: all var(--gecko-toast-duration) ease-out;
323
523
  }
324
- .GeckoUIRadio:after {
325
- content: "";
326
- position: absolute;
327
- height: 0.5em;
328
- width: 0.5em;
329
- border-radius: calc(infinity * 1px);
330
- --tw-scale-x: 0%;
331
- --tw-scale-y: 0%;
332
- --tw-scale-z: 0%;
524
+ .GeckoUIToast[data-variant=success] {
525
+ --gecko-toast-accent: var(--color-success);
526
+ }
527
+ .GeckoUIToast[data-variant=error] {
528
+ --gecko-toast-accent: var(--color-error);
529
+ }
530
+ .GeckoUIToast[data-variant=warning] {
531
+ --gecko-toast-accent: var(--color-warning);
532
+ }
533
+ .GeckoUIToast[data-variant=info] {
534
+ --gecko-toast-accent: var(--color-info);
535
+ }
536
+ .GeckoUIToast[data-state=entering],
537
+ .GeckoUIToast[data-state=closing] {
538
+ --tw-scale-x: 95%;
539
+ --tw-scale-y: 95%;
540
+ --tw-scale-z: 95%;
333
541
  scale: var(--tw-scale-x) var(--tw-scale-y);
334
- transition-property:
335
- transform,
336
- translate,
337
- scale,
338
- rotate;
339
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
340
- transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
341
- --tw-duration: 120ms;
342
- transition-duration: 120ms;
343
- --tw-ease: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
344
- transition-timing-function: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
345
- box-shadow: inset 1em 1em var(--color-primary-600);
542
+ opacity: 0%;
346
543
  }
347
- .GeckoUIRadio:checked:after {
544
+ .GeckoUIToast[data-state=open] {
348
545
  --tw-scale-x: 100%;
349
546
  --tw-scale-y: 100%;
350
547
  --tw-scale-z: 100%;
351
548
  scale: var(--tw-scale-x) var(--tw-scale-y);
352
- box-shadow: inset 1em 1em var(--color-primary-600);
549
+ opacity: 100%;
353
550
  }
354
- .GeckoUILabel {
355
- box-sizing: border-box;
356
- border-width: 0;
357
- border-style: solid;
358
- border-color: #e5e7eb;
551
+ .GeckoUIToast__icon {
552
+ margin-top: 1px;
359
553
  display: flex;
360
- min-height: 24px;
361
- width: auto;
554
+ width: 18px;
555
+ height: 18px;
556
+ flex-shrink: 0;
362
557
  align-items: center;
558
+ justify-content: center;
559
+ color: var(--gecko-toast-accent);
560
+ }
561
+ .GeckoUIToast__body {
562
+ display: flex;
563
+ min-width: calc(var(--spacing, 0.25rem) * 0);
564
+ flex: 1;
565
+ flex-direction: column;
363
566
  gap: calc(var(--spacing, 0.25rem) * 1);
567
+ }
568
+ .GeckoUIToast__message {
569
+ margin: calc(var(--spacing, 0.25rem) * 0);
364
570
  font-size: var(--text-sm, 0.875rem);
365
571
  line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
572
+ --tw-leading: calc(var(--spacing, 0.25rem) * 5);
573
+ line-height: calc(var(--spacing, 0.25rem) * 5);
366
574
  --tw-font-weight: var(--font-weight-medium, 500);
367
575
  font-weight: var(--font-weight-medium, 500);
368
- color: var(--color-text-muted);
576
+ overflow-wrap: break-word;
369
577
  }
370
- .GeckoUILabel__required-indicator {
371
- color: var(--color-red-400, oklch(70.4% 0.191 22.216));
578
+ .GeckoUIToast__description {
579
+ margin: calc(var(--spacing, 0.25rem) * 0);
580
+ font-size: var(--text-sm, 0.875rem);
581
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
582
+ --tw-leading: calc(var(--spacing, 0.25rem) * 5);
583
+ line-height: calc(var(--spacing, 0.25rem) * 5);
584
+ overflow-wrap: break-word;
585
+ color: var(--gecko-toast-muted);
372
586
  }
373
- .GeckoUILabel__tooltip-icon {
374
- box-sizing: border-box;
375
- border-width: 0;
376
- border-style: solid;
377
- border-color: #e5e7eb;
378
- display: inline-block;
379
- height: calc(var(--spacing, 0.25rem) * 4);
587
+ .GeckoUIToast__actions {
588
+ margin-top: calc(var(--spacing, 0.25rem) * 2);
589
+ display: flex;
590
+ align-items: center;
591
+ gap: calc(var(--spacing, 0.25rem) * 2);
592
+ }
593
+ .GeckoUIToast__action,
594
+ .GeckoUIToast__cancel {
595
+ cursor: pointer;
596
+ border-radius: var(--radius-md, 0.375rem);
597
+ padding-inline: calc(var(--spacing, 0.25rem) * 2.5);
598
+ padding-block: calc(var(--spacing, 0.25rem) * 1);
599
+ font-size: var(--text-xs, 0.75rem);
600
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
601
+ --tw-font-weight: var(--font-weight-medium, 500);
602
+ font-weight: var(--font-weight-medium, 500);
603
+ transition-property:
604
+ color,
605
+ background-color,
606
+ border-color,
607
+ outline-color,
608
+ text-decoration-color,
609
+ fill,
610
+ stroke,
611
+ --tw-gradient-from,
612
+ --tw-gradient-via,
613
+ --tw-gradient-to;
614
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
615
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
616
+ }
617
+ .GeckoUIToast__action {
618
+ color: var(--color-text-on-primary);
619
+ background: var(--gecko-toast-accent);
620
+ }
621
+ .GeckoUIToast__cancel {
622
+ border-style: var(--tw-border-style);
623
+ border-width: 1px;
624
+ border-color: var(--gecko-toast-border);
625
+ color: var(--gecko-toast-fg);
626
+ }
627
+ .GeckoUIToast__cancel:hover {
628
+ background-color: var(--color-surface-hover);
629
+ }
630
+ .GeckoUIToast__close {
631
+ margin-top: calc(var(--spacing, 0.25rem) * -1);
632
+ margin-right: calc(var(--spacing, 0.25rem) * -1);
633
+ cursor: pointer;
634
+ border-radius: 0.25rem;
635
+ padding: calc(var(--spacing, 0.25rem) * 1);
636
+ transition-property:
637
+ color,
638
+ background-color,
639
+ border-color,
640
+ outline-color,
641
+ text-decoration-color,
642
+ fill,
643
+ stroke,
644
+ --tw-gradient-from,
645
+ --tw-gradient-via,
646
+ --tw-gradient-to;
647
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
648
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
649
+ color: var(--gecko-toast-muted);
650
+ }
651
+ .GeckoUIToast__close:hover {
652
+ background-color: var(--color-surface-hover);
653
+ color: var(--gecko-toast-fg);
654
+ }
655
+ .GeckoUIToast__spinner {
656
+ width: 18px;
657
+ height: 18px;
658
+ color: var(--gecko-toast-accent);
659
+ }
660
+ .GeckoUIToast__custom {
661
+ width: 100%;
662
+ transition: all var(--gecko-toast-duration, 200ms) ease-out;
663
+ }
664
+ .GeckoUIToast__custom[data-state=entering],
665
+ .GeckoUIToast__custom[data-state=closing] {
666
+ --tw-scale-x: 95%;
667
+ --tw-scale-y: 95%;
668
+ --tw-scale-z: 95%;
669
+ scale: var(--tw-scale-x) var(--tw-scale-y);
670
+ opacity: 0%;
671
+ }
672
+ .GeckoUIToast__custom[data-state=open] {
673
+ --tw-scale-x: 100%;
674
+ --tw-scale-y: 100%;
675
+ --tw-scale-z: 100%;
676
+ scale: var(--tw-scale-x) var(--tw-scale-y);
677
+ opacity: 100%;
678
+ }
679
+ @media (prefers-reduced-motion: reduce) {
680
+ .GeckoUIToast,
681
+ .GeckoUIToast__custom {
682
+ transition-property: opacity;
683
+ }
684
+ }
685
+ .GeckoUIToast[data-dismissible],
686
+ .GeckoUIToast__custom[data-dismissible] {
687
+ cursor: grab;
688
+ }
689
+ .GeckoUIToast[data-swipe=y],
690
+ .GeckoUIToast__custom[data-swipe=y] {
691
+ touch-action: pan-x;
692
+ }
693
+ .GeckoUIToast[data-swipe=both],
694
+ .GeckoUIToast__custom[data-swipe=both] {
695
+ touch-action: none;
696
+ }
697
+ .GeckoUIToast[data-dragging],
698
+ .GeckoUIToast__custom[data-dragging] {
699
+ cursor: grabbing;
700
+ transition: none;
701
+ user-select: none;
702
+ }
703
+ .GeckoUIRadio {
704
+ outline: none;
705
+ }
706
+ .GeckoUIRadio:focus-visible {
707
+ outline: 2px solid var(--color-primary-300);
708
+ outline-offset: 2px;
709
+ }
710
+ .GeckoUIRadio {
711
+ position: relative;
712
+ display: inline-flex;
713
+ align-items: center;
714
+ justify-content: center;
715
+ height: calc(var(--spacing, 0.25rem) * 4);
716
+ width: calc(var(--spacing, 0.25rem) * 4);
717
+ cursor: pointer;
718
+ appearance: none;
719
+ border-radius: calc(infinity * 1px);
720
+ background-color: transparent;
721
+ border-style: var(--tw-border-style);
722
+ border-width: 0.1em;
723
+ border-color: var(--color-border-secondary);
724
+ transition-property:
725
+ color,
726
+ background-color,
727
+ border-color,
728
+ outline-color,
729
+ text-decoration-color,
730
+ fill,
731
+ stroke,
732
+ --tw-gradient-from,
733
+ --tw-gradient-via,
734
+ --tw-gradient-to;
735
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
736
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
737
+ --tw-duration: 120ms;
738
+ transition-duration: 120ms;
739
+ --tw-ease: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
740
+ transition-timing-function: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
741
+ }
742
+ .GeckoUIRadio:disabled {
743
+ cursor: not-allowed;
744
+ border-color: var(--color-border-disabled);
745
+ }
746
+ .GeckoUIRadio:enabled:hover {
747
+ border-color: var(--color-primary-400);
748
+ }
749
+ .GeckoUIRadio:checked {
750
+ border-color: var(--color-primary-600);
751
+ background-color: transparent;
752
+ border-width: 0.1em;
753
+ }
754
+ .GeckoUIRadio:disabled:checked {
755
+ border-color: color-mix(in srgb, oklch(0.5461 0.2152 262.88) 50%, transparent);
756
+ @supports (color: color-mix(in lab, red, red)) {
757
+ border-color: color-mix(in oklab, var(--color-primary-600) 50%, transparent);
758
+ }
759
+ }
760
+ .GeckoUIRadio:disabled:checked:after {
761
+ box-shadow: inset 1em 1em color-mix(in srgb, oklch(0.5461 0.2152 262.88) 50%, transparent);
762
+ @supports (color: color-mix(in lab, red, red)) {
763
+ box-shadow: inset 1em 1em color-mix(in oklch, var(--color-primary-600) 50%, transparent);
764
+ }
765
+ }
766
+ .GeckoUIRadio:after {
767
+ content: "";
768
+ position: absolute;
769
+ height: 0.5em;
770
+ width: 0.5em;
771
+ border-radius: calc(infinity * 1px);
772
+ --tw-scale-x: 0%;
773
+ --tw-scale-y: 0%;
774
+ --tw-scale-z: 0%;
775
+ scale: var(--tw-scale-x) var(--tw-scale-y);
776
+ transition-property:
777
+ transform,
778
+ translate,
779
+ scale,
780
+ rotate;
781
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
782
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
783
+ --tw-duration: 120ms;
784
+ transition-duration: 120ms;
785
+ --tw-ease: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
786
+ transition-timing-function: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
787
+ box-shadow: inset 1em 1em var(--color-primary-600);
788
+ }
789
+ .GeckoUIRadio:checked:after {
790
+ --tw-scale-x: 100%;
791
+ --tw-scale-y: 100%;
792
+ --tw-scale-z: 100%;
793
+ scale: var(--tw-scale-x) var(--tw-scale-y);
794
+ box-shadow: inset 1em 1em var(--color-primary-600);
795
+ }
796
+ .GeckoUIRadio[aria-invalid=true] {
797
+ border-color: var(--color-border-invalid);
798
+ }
799
+ .GeckoUIRadio[aria-invalid=true]:hover:enabled {
800
+ border-color: var(--color-border-invalid-hover);
801
+ }
802
+ .GeckoUILabel {
803
+ box-sizing: border-box;
804
+ border-width: 0;
805
+ border-style: solid;
806
+ border-color: #e5e7eb;
807
+ display: flex;
808
+ min-height: 24px;
809
+ width: auto;
810
+ align-items: center;
811
+ gap: calc(var(--spacing, 0.25rem) * 1);
812
+ font-size: var(--text-sm, 0.875rem);
813
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
814
+ --tw-font-weight: var(--font-weight-medium, 500);
815
+ font-weight: var(--font-weight-medium, 500);
816
+ color: var(--color-text-muted);
817
+ }
818
+ .GeckoUILabel__required-indicator {
819
+ color: var(--color-error);
820
+ }
821
+ .GeckoUILabel__tooltip-icon {
822
+ box-sizing: border-box;
823
+ border-width: 0;
824
+ border-style: solid;
825
+ border-color: #e5e7eb;
826
+ display: inline-block;
827
+ height: calc(var(--spacing, 0.25rem) * 4);
380
828
  width: calc(var(--spacing, 0.25rem) * 4);
381
829
  background-color: var(--color-text-primary);
382
830
  mask-position: center;
@@ -419,6 +867,13 @@
419
867
  .GeckoUIInput[data-state=enabled]:hover {
420
868
  border-color: var(--color-primary-400);
421
869
  }
870
+ .GeckoUIInput:has(.GeckoUIInput__input[aria-invalid=true]),
871
+ .GeckoUIInput:has(.GeckoUIInput__input[aria-invalid=true]):focus-within {
872
+ border-color: var(--color-border-invalid);
873
+ }
874
+ .GeckoUIInput:has(.GeckoUIInput__input[aria-invalid=true]:enabled):hover {
875
+ border-color: var(--color-border-invalid-hover);
876
+ }
422
877
  .GeckoUIInput__input {
423
878
  box-sizing: border-box;
424
879
  border-width: 0;
@@ -454,36 +909,144 @@
454
909
  cursor: not-allowed;
455
910
  }
456
911
  }
912
+ .GeckoUIBadge {
913
+ box-sizing: border-box;
914
+ border-width: 0;
915
+ border-style: solid;
916
+ border-color: #e5e7eb;
917
+ --gecko-badge-accent: var(--color-text-secondary);
918
+ --gecko-badge-on-accent: var(--color-surface-primary);
919
+ --gecko-badge-radius: 0.25rem;
920
+ --gecko-badge-soft-mix: 12%;
921
+ --gecko-badge-outline-mix: 40%;
922
+ display: inline-flex;
923
+ width: fit-content;
924
+ flex-shrink: 0;
925
+ align-items: center;
926
+ gap: calc(var(--spacing, 0.25rem) * 1.5);
927
+ border-style: var(--tw-border-style);
928
+ border-width: 1px;
929
+ border-color: transparent;
930
+ --tw-font-weight: var(--font-weight-medium, 500);
931
+ font-weight: var(--font-weight-medium, 500);
932
+ white-space: nowrap;
933
+ border-radius: var(--gecko-badge-radius);
934
+ }
935
+ .GeckoUIBadge[data-color=default] {
936
+ --gecko-badge-accent: var(--color-text-secondary);
937
+ }
938
+ .GeckoUIBadge[data-color=primary] {
939
+ --gecko-badge-accent: var(--color-primary-600);
940
+ --gecko-badge-on-accent: var(--color-text-on-primary);
941
+ }
942
+ .GeckoUIBadge[data-color=success] {
943
+ --gecko-badge-accent: var(--color-success);
944
+ }
945
+ .GeckoUIBadge[data-color=error] {
946
+ --gecko-badge-accent: var(--color-error);
947
+ }
948
+ .GeckoUIBadge[data-color=warning] {
949
+ --gecko-badge-accent: var(--color-warning);
950
+ }
951
+ .GeckoUIBadge[data-color=info] {
952
+ --gecko-badge-accent: var(--color-info);
953
+ }
954
+ .GeckoUIBadge[data-variant=filled] {
955
+ background: var(--gecko-badge-accent);
956
+ color: var(--gecko-badge-on-accent);
957
+ }
958
+ .GeckoUIBadge[data-variant=soft] {
959
+ background: var(--gecko-badge-accent);
960
+ @supports (color: color-mix(in lab, red, red)) {
961
+ background: color-mix(in oklab, var(--gecko-badge-accent) var(--gecko-badge-soft-mix), transparent);
962
+ }
963
+ color: var(--gecko-badge-accent);
964
+ }
965
+ .GeckoUIBadge[data-variant=outlined] {
966
+ background: transparent;
967
+ border-color: var(--gecko-badge-accent);
968
+ @supports (color: color-mix(in lab, red, red)) {
969
+ border-color: color-mix(in oklab, var(--gecko-badge-accent) var(--gecko-badge-outline-mix), transparent);
970
+ }
971
+ color: var(--gecko-badge-accent);
972
+ }
973
+ .GeckoUIBadge[data-size=sm] {
974
+ height: calc(var(--spacing, 0.25rem) * 5);
975
+ gap: calc(var(--spacing, 0.25rem) * 1);
976
+ padding-inline: calc(var(--spacing, 0.25rem) * 1.5);
977
+ font-size: 11px;
978
+ }
979
+ .GeckoUIBadge[data-size=md] {
980
+ height: calc(var(--spacing, 0.25rem) * 6);
981
+ padding-inline: calc(var(--spacing, 0.25rem) * 2);
982
+ font-size: var(--text-xs, 0.75rem);
983
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
984
+ }
985
+ .GeckoUIBadge[data-size=lg] {
986
+ height: calc(var(--spacing, 0.25rem) * 7);
987
+ gap: calc(var(--spacing, 0.25rem) * 2);
988
+ padding-inline: calc(var(--spacing, 0.25rem) * 2.5);
989
+ font-size: var(--text-sm, 0.875rem);
990
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
991
+ }
992
+ .GeckoUIBadge[data-shape=rounded] {
993
+ --gecko-badge-radius: 0.25rem;
994
+ }
995
+ .GeckoUIBadge[data-shape=pill] {
996
+ --gecko-badge-radius: 9999px;
997
+ }
998
+ .GeckoUIBadge[data-shape=square] {
999
+ --gecko-badge-radius: 0;
1000
+ }
1001
+ .GeckoUIBadge__dot {
1002
+ width: calc(var(--spacing, 0.25rem) * 1.5);
1003
+ height: calc(var(--spacing, 0.25rem) * 1.5);
1004
+ flex-shrink: 0;
1005
+ border-radius: calc(infinity * 1px);
1006
+ background: currentColor;
1007
+ }
1008
+ .GeckoUIBadge[data-size=lg] .GeckoUIBadge__dot {
1009
+ width: calc(var(--spacing, 0.25rem) * 2);
1010
+ height: calc(var(--spacing, 0.25rem) * 2);
1011
+ }
1012
+ .GeckoUIBadge > svg {
1013
+ flex-shrink: 0;
1014
+ }
457
1015
  .GeckoUIAlert {
458
1016
  box-sizing: border-box;
459
1017
  border-width: 0;
460
1018
  border-style: solid;
461
1019
  border-color: #e5e7eb;
1020
+ --gecko-alert-bg: var(--color-surface-primary);
1021
+ --gecko-alert-border: var(--color-border-primary);
1022
+ --gecko-alert-accent: var(--color-text-primary);
1023
+ --gecko-alert-radius: 0.5rem;
462
1024
  display: flex;
463
1025
  flex-direction: column;
464
1026
  gap: calc(var(--spacing, 0.25rem) * 0.5);
465
- border-radius: var(--radius-lg, 0.5rem);
466
1027
  border-style: var(--tw-border-style);
467
1028
  border-width: 1px;
468
- border-color: var(--color-border-primary);
469
- background-color: var(--color-surface-primary);
470
1029
  padding-inline: calc(var(--spacing, 0.25rem) * 4);
471
1030
  padding-block: calc(var(--spacing, 0.25rem) * 3);
1031
+ background: var(--gecko-alert-bg);
1032
+ border-color: var(--gecko-alert-border);
1033
+ border-radius: var(--gecko-alert-radius);
1034
+ color: var(--gecko-alert-accent);
472
1035
  }
473
- .GeckoUIAlert[data-variant=error] {
474
- color: var(--color-red-500, oklch(63.7% 0.237 25.331));
1036
+ .GeckoUIAlert[data-color=error] {
1037
+ --gecko-alert-accent: var(--color-error);
475
1038
  }
476
- .GeckoUIAlert[data-variant=warning] {
477
- color: var(--color-orange-500, oklch(70.5% 0.213 47.604));
1039
+ .GeckoUIAlert[data-color=warning] {
1040
+ --gecko-alert-accent: var(--color-warning);
478
1041
  }
479
- .GeckoUIAlert[data-variant=info] {
480
- color: var(--color-blue-500, oklch(62.3% 0.214 259.815));
1042
+ .GeckoUIAlert[data-color=info] {
1043
+ --gecko-alert-accent: var(--color-info);
481
1044
  }
482
- .GeckoUIAlert[data-variant=success] {
483
- color: var(--color-green-500, oklch(72.3% 0.219 149.579));
1045
+ .GeckoUIAlert[data-color=success] {
1046
+ --gecko-alert-accent: var(--color-success);
484
1047
  }
485
- .GeckoUIAlert[data-variant=default] {
486
- color: var(--color-text-primary);
1048
+ .GeckoUIAlert[data-color=default] {
1049
+ --gecko-alert-accent: var(--color-text-primary);
487
1050
  }
488
1051
  .GeckoUIAlert[data-condensed] {
489
1052
  padding-inline: calc(var(--spacing, 0.25rem) * 4);
@@ -502,28 +1065,28 @@
502
1065
  height: calc(var(--spacing, 0.25rem) * 4);
503
1066
  width: calc(var(--spacing, 0.25rem) * 4);
504
1067
  }
505
- .GeckoUIAlert__icon[data-variant=error] {
506
- background-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
1068
+ .GeckoUIAlert__icon[data-color=error] {
1069
+ background: var(--gecko-alert-accent);
507
1070
  mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM6.28033 5.21967C5.98744 4.92678 5.51256 4.92678 5.21967 5.21967C4.92678 5.51256 4.92678 5.98744 5.21967 6.28033L6.93934 8L5.21967 9.71967C4.92678 10.0126 4.92678 10.4874 5.21967 10.7803C5.51256 11.0732 5.98744 11.0732 6.28033 10.7803L8 9.06066L9.71967 10.7803C10.0126 11.0732 10.4874 11.0732 10.7803 10.7803C11.0732 10.4874 11.0732 10.0126 10.7803 9.71967L9.06066 8L10.7803 6.28033C11.0732 5.98744 11.0732 5.51256 10.7803 5.21967C10.4874 4.92678 10.0126 4.92678 9.71967 5.21967L8 6.93934L6.28033 5.21967Z" fill="%23F87171"/></svg>');
508
1071
  -webkit-mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM6.28033 5.21967C5.98744 4.92678 5.51256 4.92678 5.21967 5.21967C4.92678 5.51256 4.92678 5.98744 5.21967 6.28033L6.93934 8L5.21967 9.71967C4.92678 10.0126 4.92678 10.4874 5.21967 10.7803C5.51256 11.0732 5.98744 11.0732 6.28033 10.7803L8 9.06066L9.71967 10.7803C10.0126 11.0732 10.4874 11.0732 10.7803 10.7803C11.0732 10.4874 11.0732 10.0126 10.7803 9.71967L9.06066 8L10.7803 6.28033C11.0732 5.98744 11.0732 5.51256 10.7803 5.21967C10.4874 4.92678 10.0126 4.92678 9.71967 5.21967L8 6.93934L6.28033 5.21967Z" fill="%23F87171"/></svg>');
509
1072
  }
510
- .GeckoUIAlert__icon[data-variant=warning] {
511
- background-color: var(--color-orange-500, oklch(70.5% 0.213 47.604));
1073
+ .GeckoUIAlert__icon[data-color=warning] {
1074
+ background: var(--gecko-alert-accent);
512
1075
  mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM8 3C8.41421 3 8.75 3.33579 8.75 3.75V8.25C8.75 8.66421 8.41421 9 8 9C7.58579 9 7.25 8.66421 7.25 8.25V3.75C7.25 3.33579 7.58579 3 8 3ZM8 13C8.55228 13 9 12.5523 9 12C9 11.4477 8.55228 11 8 11C7.44771 11 7 11.4477 7 12C7 12.5523 7.44771 13 8 13Z" fill="%23FACC15"/></svg>');
513
1076
  -webkit-mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM8 3C8.41421 3 8.75 3.33579 8.75 3.75V8.25C8.75 8.66421 8.41421 9 8 9C7.58579 9 7.25 8.66421 7.25 8.25V3.75C7.25 3.33579 7.58579 3 8 3ZM8 13C8.55228 13 9 12.5523 9 12C9 11.4477 8.55228 11 8 11C7.44771 11 7 11.4477 7 12C7 12.5523 7.44771 13 8 13Z" fill="%23FACC15"/></svg>');
514
1077
  }
515
- .GeckoUIAlert__icon[data-variant=info] {
516
- background-color: var(--color-blue-500, oklch(62.3% 0.214 259.815));
1078
+ .GeckoUIAlert__icon[data-color=info] {
1079
+ background: var(--gecko-alert-accent);
517
1080
  mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9 4C9 4.55228 8.55228 5 8 5C7.44771 5 7 4.55228 7 4C7 3.44772 7.44771 3 8 3C8.55228 3 9 3.44772 9 4ZM7 7C6.58579 7 6.25 7.33579 6.25 7.75C6.25 8.16421 6.58579 8.5 7 8.5H7.25338C7.41332 8.5 7.53213 8.6481 7.49743 8.80423L7.03829 10.8704C6.79542 11.9633 7.62706 13 8.74662 13H9C9.41421 13 9.75 12.6642 9.75 12.25C9.75 11.8358 9.41421 11.5 9 11.5H8.74662C8.58668 11.5 8.46787 11.3519 8.50257 11.1958L8.96171 9.12963C9.20458 8.03673 8.37294 7 7.25338 7H7Z" fill="%2355B1F2"/></svg>');
518
1081
  -webkit-mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM9 4C9 4.55228 8.55228 5 8 5C7.44771 5 7 4.55228 7 4C7 3.44772 7.44771 3 8 3C8.55228 3 9 3.44772 9 4ZM7 7C6.58579 7 6.25 7.33579 6.25 7.75C6.25 8.16421 6.58579 8.5 7 8.5H7.25338C7.41332 8.5 7.53213 8.6481 7.49743 8.80423L7.03829 10.8704C6.79542 11.9633 7.62706 13 8.74662 13H9C9.41421 13 9.75 12.6642 9.75 12.25C9.75 11.8358 9.41421 11.5 9 11.5H8.74662C8.58668 11.5 8.46787 11.3519 8.50257 11.1958L8.96171 9.12963C9.20458 8.03673 8.37294 7 7.25338 7H7Z" fill="%2355B1F2"/></svg>');
519
1082
  }
520
- .GeckoUIAlert__icon[data-variant=success] {
521
- background-color: var(--color-green-500, oklch(72.3% 0.219 149.579));
1083
+ .GeckoUIAlert__icon[data-color=success] {
1084
+ background: var(--gecko-alert-accent);
522
1085
  mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM11.8566 6.19113C12.1002 5.85614 12.0261 5.38708 11.6911 5.14345C11.3561 4.89982 10.8871 4.97388 10.6434 5.30887L7.15969 10.099L5.28033 8.21967C4.98744 7.92678 4.51256 7.92678 4.21967 8.21967C3.92678 8.51256 3.92678 8.98744 4.21967 9.28033L6.71967 11.7803C6.87477 11.9354 7.08999 12.0149 7.30867 11.9977C7.52734 11.9805 7.72754 11.8685 7.85655 11.6911L11.8566 6.19113Z" fill="%2322C55E"/></svg>');
523
1086
  -webkit-mask-image: url('data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM11.8566 6.19113C12.1002 5.85614 12.0261 5.38708 11.6911 5.14345C11.3561 4.89982 10.8871 4.97388 10.6434 5.30887L7.15969 10.099L5.28033 8.21967C4.98744 7.92678 4.51256 7.92678 4.21967 8.21967C3.92678 8.51256 3.92678 8.98744 4.21967 9.28033L6.71967 11.7803C6.87477 11.9354 7.08999 12.0149 7.30867 11.9977C7.52734 11.9805 7.72754 11.8685 7.85655 11.6911L11.8566 6.19113Z" fill="%2322C55E"/></svg>');
524
1087
  }
525
- .GeckoUIAlert__icon[data-variant=default] {
526
- background-color: var(--color-text-primary);
1088
+ .GeckoUIAlert__icon[data-color=default] {
1089
+ background: var(--gecko-alert-accent);
527
1090
  mask-image: url('data:image/svg+xml,<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3996 6.99961C13.3996 10.5342 10.5342 13.3996 6.99961 13.3996C3.46499 13.3996 0.599609 10.5342 0.599609 6.99961C0.599609 3.46499 3.46499 0.599609 6.99961 0.599609C10.5342 0.599609 13.3996 3.46499 13.3996 6.99961ZM6.99961 2.99961C7.33098 2.99961 7.59961 3.26824 7.59961 3.59961V7.19961C7.59961 7.53098 7.33098 7.79961 6.99961 7.79961C6.66824 7.79961 6.39961 7.53098 6.39961 7.19961V3.59961C6.39961 3.26824 6.66824 2.99961 6.99961 2.99961ZM6.99961 10.9996C7.44144 10.9996 7.79961 10.6414 7.79961 10.1996C7.79961 9.75778 7.44144 9.39961 6.99961 9.39961C6.55778 9.39961 6.19961 9.75778 6.19961 10.1996C6.19961 10.6414 6.55778 10.9996 6.99961 10.9996Z" fill="%23DC2626"/></svg>');
528
1091
  -webkit-mask-image: url('data:image/svg+xml,<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3996 6.99961C13.3996 10.5342 10.5342 13.3996 6.99961 13.3996C3.46499 13.3996 0.599609 10.5342 0.599609 6.99961C0.599609 3.46499 3.46499 0.599609 6.99961 0.599609C10.5342 0.599609 13.3996 3.46499 13.3996 6.99961ZM6.99961 2.99961C7.33098 2.99961 7.59961 3.26824 7.59961 3.59961V7.19961C7.59961 7.53098 7.33098 7.79961 6.99961 7.79961C6.66824 7.79961 6.39961 7.53098 6.39961 7.19961V3.59961C6.39961 3.26824 6.66824 2.99961 6.99961 2.99961ZM6.99961 10.9996C7.44144 10.9996 7.79961 10.6414 7.79961 10.1996C7.79961 9.75778 7.44144 9.39961 6.99961 9.39961C6.55778 9.39961 6.19961 9.75778 6.19961 10.1996C6.19961 10.6414 6.55778 10.9996 6.99961 10.9996Z" fill="%23DC2626"/></svg>');
529
1092
  }
@@ -668,6 +1231,12 @@
668
1231
  var(--tw-ring-shadow),
669
1232
  var(--tw-shadow);
670
1233
  }
1234
+ .GeckoUISwitch:has(.GeckoUISwitch__input[aria-invalid=true]) {
1235
+ border-color: var(--color-border-invalid);
1236
+ }
1237
+ .GeckoUISwitch:has(.GeckoUISwitch__input[aria-invalid=true]:enabled):hover {
1238
+ border-color: var(--color-border-invalid-hover);
1239
+ }
671
1240
  .GeckoUISwitch__input {
672
1241
  position: absolute;
673
1242
  width: 1px;
@@ -743,9 +1312,267 @@
743
1312
  --tw-translate-x: calc(var(--spacing, 0.25rem) * 5);
744
1313
  translate: var(--tw-translate-x) var(--tw-translate-y);
745
1314
  }
746
- .GeckoUIDrawer {
1315
+ .GeckoUISlider {
1316
+ --gecko-slider-accent: var(--color-primary-600);
1317
+ --gecko-slider-track: var(--color-surface-hover-strong);
1318
+ --gecko-slider-track-height: 0.375rem;
1319
+ --gecko-slider-thumb-size: 1.125rem;
1320
+ --gecko-slider-thumb-bg: var(--color-surface-primary);
1321
+ --gecko-slider-radius: 9999px;
1322
+ --gecko-slider-mark-size: 0.25rem;
1323
+ box-sizing: border-box;
1324
+ border-width: 0;
1325
+ border-style: solid;
1326
+ border-color: #e5e7eb;
1327
+ position: relative;
1328
+ width: 100%;
1329
+ padding-inline: calc(var(--gecko-slider-thumb-size) / 2);
1330
+ }
1331
+ .GeckoUISlider[data-color=default] {
1332
+ --gecko-slider-accent: var(--color-text-secondary);
1333
+ }
1334
+ .GeckoUISlider[data-color=primary] {
1335
+ --gecko-slider-accent: var(--color-primary-600);
1336
+ }
1337
+ .GeckoUISlider[data-color=success] {
1338
+ --gecko-slider-accent: var(--color-success);
1339
+ }
1340
+ .GeckoUISlider[data-color=error] {
1341
+ --gecko-slider-accent: var(--color-error);
1342
+ }
1343
+ .GeckoUISlider[data-color=warning] {
1344
+ --gecko-slider-accent: var(--color-warning);
1345
+ }
1346
+ .GeckoUISlider[data-color=info] {
1347
+ --gecko-slider-accent: var(--color-info);
1348
+ }
1349
+ .GeckoUISlider[data-size=sm] {
1350
+ --gecko-slider-track-height: 0.25rem;
1351
+ --gecko-slider-thumb-size: 0.875rem;
1352
+ }
1353
+ .GeckoUISlider[data-size=lg] {
1354
+ --gecko-slider-track-height: 0.5rem;
1355
+ --gecko-slider-thumb-size: 1.375rem;
1356
+ }
1357
+ .GeckoUISlider[data-disabled] {
1358
+ cursor: not-allowed;
1359
+ opacity: 50%;
1360
+ }
1361
+ .GeckoUISlider[data-disabled] .GeckoUISlider__track {
1362
+ cursor: not-allowed;
1363
+ }
1364
+ .GeckoUISlider__track {
1365
+ position: relative;
1366
+ width: 100%;
1367
+ cursor: pointer;
1368
+ touch-action: none;
1369
+ height: var(--gecko-slider-track-height);
1370
+ border-radius: var(--gecko-slider-radius);
1371
+ background: var(--gecko-slider-track);
1372
+ }
1373
+ .GeckoUISlider__fill {
1374
+ position: absolute;
1375
+ top: calc(var(--spacing, 0.25rem) * 0);
1376
+ height: 100%;
1377
+ border-radius: inherit;
1378
+ background: var(--gecko-slider-accent);
1379
+ }
1380
+ .GeckoUISlider__mark {
1381
+ position: absolute;
1382
+ top: calc(1/2 * 100%);
1383
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
1384
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
1385
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1386
+ border-radius: calc(infinity * 1px);
1387
+ width: var(--gecko-slider-mark-size);
1388
+ height: var(--gecko-slider-mark-size);
1389
+ background: var(--color-surface-primary);
1390
+ opacity: 0.7;
1391
+ }
1392
+ .GeckoUISlider__mark[data-filled] {
1393
+ background: var(--gecko-slider-track);
1394
+ }
1395
+ .GeckoUISlider__thumb {
1396
+ position: absolute;
1397
+ top: calc(1/2 * 100%);
1398
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
1399
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
1400
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1401
+ cursor: grab;
1402
+ touch-action: none;
1403
+ border-style: var(--tw-border-style);
1404
+ border-width: 2px;
1405
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1406
+ box-shadow:
1407
+ var(--tw-inset-shadow),
1408
+ var(--tw-inset-ring-shadow),
1409
+ var(--tw-ring-offset-shadow),
1410
+ var(--tw-ring-shadow),
1411
+ var(--tw-shadow);
1412
+ --tw-outline-style: none;
1413
+ outline-style: none;
1414
+ width: var(--gecko-slider-thumb-size);
1415
+ height: var(--gecko-slider-thumb-size);
1416
+ border-radius: var(--gecko-slider-radius);
1417
+ border-color: var(--gecko-slider-accent);
1418
+ background: var(--gecko-slider-thumb-bg);
1419
+ }
1420
+ .GeckoUISlider__thumb:focus-visible {
1421
+ outline: 2px solid var(--color-primary-300);
1422
+ outline-offset: 2px;
1423
+ }
1424
+ .GeckoUISlider__thumb[data-dragging] {
1425
+ cursor: grabbing;
1426
+ }
1427
+ .GeckoUISlider__thumb[data-custom] {
1428
+ height: auto;
1429
+ width: auto;
1430
+ border-style: var(--tw-border-style);
1431
+ border-width: 0px;
1432
+ background-color: transparent;
1433
+ --tw-shadow: 0 0 #0000;
1434
+ box-shadow:
1435
+ var(--tw-inset-shadow),
1436
+ var(--tw-inset-ring-shadow),
1437
+ var(--tw-ring-offset-shadow),
1438
+ var(--tw-ring-shadow),
1439
+ var(--tw-shadow);
1440
+ }
1441
+ .GeckoUISlider[data-disabled] .GeckoUISlider__thumb {
1442
+ cursor: not-allowed;
1443
+ }
1444
+ .GeckoUISlider__label {
1445
+ pointer-events: none;
1446
+ position: absolute;
1447
+ bottom: 100%;
1448
+ left: calc(1/2 * 100%);
1449
+ margin-bottom: calc(var(--spacing, 0.25rem) * 2);
1450
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
1451
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1452
+ border-radius: var(--radius-md, 0.375rem);
1453
+ padding-inline: calc(var(--spacing, 0.25rem) * 2);
1454
+ padding-block: calc(var(--spacing, 0.25rem) * 1);
1455
+ font-size: var(--text-xs, 0.75rem);
1456
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
1457
+ white-space: nowrap;
1458
+ background: var(--color-surface-emphasis);
1459
+ color: var(--color-surface-primary);
1460
+ }
1461
+ .GeckoUISlider__mark-labels {
1462
+ position: relative;
1463
+ margin-top: calc(var(--spacing, 0.25rem) * 2);
1464
+ height: calc(var(--spacing, 0.25rem) * 4);
1465
+ }
1466
+ .GeckoUISlider__mark-label {
1467
+ position: absolute;
1468
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
1469
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1470
+ font-size: var(--text-xs, 0.75rem);
1471
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
1472
+ white-space: nowrap;
1473
+ color: var(--color-text-secondary);
1474
+ }
1475
+ .GeckoUIRating {
1476
+ --gecko-rating-accent: var(--gecko-rating-gold);
1477
+ --gecko-rating-empty: var(--color-surface-active);
1478
+ --gecko-rating-gold: oklch(0.7845 0.1633 68.5);
1479
+ --gecko-rating-size: 1.5rem;
1480
+ --gecko-rating-gap: 0.125rem;
1481
+ box-sizing: border-box;
1482
+ border-width: 0;
1483
+ border-style: solid;
1484
+ border-color: #e5e7eb;
1485
+ position: relative;
1486
+ display: inline-flex;
1487
+ align-items: center;
1488
+ gap: var(--gecko-rating-gap);
1489
+ }
1490
+ .GeckoUIRating[data-color=gold] {
1491
+ --gecko-rating-accent: var(--gecko-rating-gold);
1492
+ }
1493
+ .GeckoUIRating[data-color=default] {
1494
+ --gecko-rating-accent: var(--color-text-secondary);
1495
+ }
1496
+ .GeckoUIRating[data-color=primary] {
1497
+ --gecko-rating-accent: var(--color-primary-600);
1498
+ }
1499
+ .GeckoUIRating[data-color=success] {
1500
+ --gecko-rating-accent: var(--color-success);
1501
+ }
1502
+ .GeckoUIRating[data-color=error] {
1503
+ --gecko-rating-accent: var(--color-error);
1504
+ }
1505
+ .GeckoUIRating[data-color=warning] {
1506
+ --gecko-rating-accent: var(--color-warning);
1507
+ }
1508
+ .GeckoUIRating[data-color=info] {
1509
+ --gecko-rating-accent: var(--color-info);
1510
+ }
1511
+ .GeckoUIRating[data-size=sm] {
1512
+ --gecko-rating-size: 1.125rem;
1513
+ }
1514
+ .GeckoUIRating[data-size=lg] {
1515
+ --gecko-rating-size: 2rem;
1516
+ }
1517
+ .GeckoUIRating[data-disabled] {
1518
+ cursor: not-allowed;
1519
+ opacity: 50%;
1520
+ }
1521
+ .GeckoUIRating__icon {
1522
+ position: relative;
1523
+ display: inline-flex;
1524
+ cursor: pointer;
1525
+ width: var(--gecko-rating-size);
1526
+ height: var(--gecko-rating-size);
1527
+ }
1528
+ .GeckoUIRating__icon svg {
1529
+ height: 100%;
1530
+ width: 100%;
1531
+ }
1532
+ .GeckoUIRating[data-readonly] .GeckoUIRating__icon,
1533
+ .GeckoUIRating[data-disabled] .GeckoUIRating__icon {
1534
+ cursor: default;
1535
+ }
1536
+ .GeckoUIRating__icon__empty {
1537
+ display: inline-flex;
1538
+ height: 100%;
1539
+ width: 100%;
1540
+ color: var(--gecko-rating-empty);
1541
+ }
1542
+ .GeckoUIRating__icon__fill {
1543
+ pointer-events: none;
1544
+ position: absolute;
1545
+ inset-block: calc(var(--spacing, 0.25rem) * 0);
1546
+ left: calc(var(--spacing, 0.25rem) * 0);
1547
+ display: inline-flex;
1548
+ overflow: hidden;
1549
+ color: var(--gecko-rating-accent);
1550
+ }
1551
+ .GeckoUIRating__icon__fill svg {
1552
+ flex-shrink: 0;
1553
+ width: var(--gecko-rating-size);
1554
+ height: var(--gecko-rating-size);
1555
+ max-width: none;
1556
+ }
1557
+ .GeckoUIRating__inputs {
1558
+ position: absolute;
1559
+ height: 1px;
1560
+ width: 1px;
1561
+ overflow: hidden;
1562
+ clip-path: inset(50%);
1563
+ }
1564
+ .GeckoUIRating:focus-within {
1565
+ border-radius: 0.25rem;
1566
+ outline: 2px solid var(--color-primary-300);
1567
+ outline-offset: 3px;
1568
+ }
1569
+ .GeckoUIRating[data-readonly]:focus-within,
1570
+ .GeckoUIRating[data-disabled]:focus-within {
1571
+ outline: none;
1572
+ }
1573
+ .GeckoUIDrawer {
747
1574
  position: relative;
748
- z-index: 50;
1575
+ z-index: var(--gecko-drawer-z, 1000);
749
1576
  }
750
1577
  .GeckoUIDrawer__backdrop {
751
1578
  position: fixed;
@@ -865,6 +1692,10 @@
865
1692
  .GeckoUIDrawer__drawer[data-state=closed] {
866
1693
  transition-delay: 100ms;
867
1694
  }
1695
+ .GeckoUIDrawer__drawer[data-instant] {
1696
+ transition-property: none;
1697
+ transition-delay: 0ms;
1698
+ }
868
1699
  .GeckoUIDrawer__drawer[data-state=open][data-placement=top],
869
1700
  .GeckoUIDrawer__drawer[data-state=open][data-placement=bottom] {
870
1701
  --tw-translate-y: calc(var(--spacing, 0.25rem) * 0);
@@ -894,9 +1725,9 @@
894
1725
  .GeckoUIDialog {
895
1726
  position: fixed;
896
1727
  inset: calc(var(--spacing, 0.25rem) * 0);
897
- z-index: 1000;
898
1728
  width: 100vw;
899
1729
  overflow-y: auto;
1730
+ z-index: var(--gecko-dialog-z, 2000);
900
1731
  }
901
1732
  .GeckoUIDialog__backdrop {
902
1733
  display: flex;
@@ -921,7 +1752,7 @@
921
1752
  position: relative;
922
1753
  width: 100%;
923
1754
  max-width: 400px;
924
- overflow: hidden;
1755
+ overflow: visible;
925
1756
  border-radius: var(--radius-md, 0.375rem);
926
1757
  background-color: var(--color-surface-primary);
927
1758
  padding: calc(var(--spacing, 0.25rem) * 6);
@@ -1144,6 +1975,175 @@
1144
1975
  color: var(--color-text-disabled);
1145
1976
  }
1146
1977
  }
1978
+ .GeckoUIAvatar {
1979
+ box-sizing: border-box;
1980
+ border-width: 0;
1981
+ border-style: solid;
1982
+ border-color: #e5e7eb;
1983
+ --gecko-avatar-accent: var(--color-text-secondary);
1984
+ --gecko-avatar-size: 2.5rem;
1985
+ --gecko-avatar-radius: 0.375rem;
1986
+ --gecko-avatar-font-size: 0.875rem;
1987
+ --gecko-avatar-bg-mix: 14%;
1988
+ --gecko-avatar-bg-base: var(--color-surface-hover-strong);
1989
+ position: relative;
1990
+ display: inline-flex;
1991
+ flex-shrink: 0;
1992
+ align-items: center;
1993
+ justify-content: center;
1994
+ overflow: hidden;
1995
+ --tw-font-weight: var(--font-weight-medium, 500);
1996
+ font-weight: var(--font-weight-medium, 500);
1997
+ -webkit-user-select: none;
1998
+ user-select: none;
1999
+ width: var(--gecko-avatar-size);
2000
+ height: var(--gecko-avatar-size);
2001
+ border-radius: var(--gecko-avatar-radius);
2002
+ font-size: var(--gecko-avatar-font-size);
2003
+ background: var(--gecko-avatar-accent);
2004
+ @supports (color: color-mix(in lab, red, red)) {
2005
+ background: color-mix(in oklab, var(--gecko-avatar-accent) var(--gecko-avatar-bg-mix), var(--gecko-avatar-bg-base));
2006
+ }
2007
+ color: var(--gecko-avatar-accent);
2008
+ }
2009
+ .GeckoUIAvatar[data-color=default] {
2010
+ --gecko-avatar-accent: var(--color-text-secondary);
2011
+ }
2012
+ .GeckoUIAvatar[data-color=primary] {
2013
+ --gecko-avatar-accent: var(--color-primary-600);
2014
+ }
2015
+ .GeckoUIAvatar[data-color=success] {
2016
+ --gecko-avatar-accent: var(--color-success);
2017
+ }
2018
+ .GeckoUIAvatar[data-color=error] {
2019
+ --gecko-avatar-accent: var(--color-error);
2020
+ }
2021
+ .GeckoUIAvatar[data-color=warning] {
2022
+ --gecko-avatar-accent: var(--color-warning);
2023
+ }
2024
+ .GeckoUIAvatar[data-color=info] {
2025
+ --gecko-avatar-accent: var(--color-info);
2026
+ }
2027
+ .GeckoUIAvatar[data-shape=circle] {
2028
+ --gecko-avatar-radius: 9999px;
2029
+ }
2030
+ .GeckoUIAvatar[data-shape=square] {
2031
+ --gecko-avatar-radius: 0;
2032
+ }
2033
+ .GeckoUIAvatar[data-size=xs] {
2034
+ --gecko-avatar-size: 1.5rem;
2035
+ --gecko-avatar-font-size: 0.625rem;
2036
+ }
2037
+ .GeckoUIAvatar[data-size=sm] {
2038
+ --gecko-avatar-size: 2rem;
2039
+ --gecko-avatar-font-size: 0.75rem;
2040
+ }
2041
+ .GeckoUIAvatar[data-size=lg] {
2042
+ --gecko-avatar-size: 3rem;
2043
+ --gecko-avatar-font-size: 1rem;
2044
+ }
2045
+ .GeckoUIAvatar[data-size=xl] {
2046
+ --gecko-avatar-size: 4rem;
2047
+ --gecko-avatar-font-size: 1.25rem;
2048
+ }
2049
+ .GeckoUIAvatar[data-clickable] {
2050
+ cursor: pointer;
2051
+ }
2052
+ .GeckoUIAvatar[data-clickable]:focus-visible {
2053
+ outline: 2px solid var(--color-primary-300);
2054
+ outline-offset: 2px;
2055
+ }
2056
+ .GeckoUIAvatar__image {
2057
+ height: 100%;
2058
+ width: 100%;
2059
+ object-fit: cover;
2060
+ }
2061
+ .GeckoUIAvatar__fallback {
2062
+ display: flex;
2063
+ height: 100%;
2064
+ width: 100%;
2065
+ align-items: center;
2066
+ justify-content: center;
2067
+ --tw-leading: 1;
2068
+ line-height: 1;
2069
+ }
2070
+ .GeckoUIAvatar__fallback > svg {
2071
+ width: 60%;
2072
+ height: 60%;
2073
+ }
2074
+ .GeckoUIAvatarGroup {
2075
+ --gecko-avatar-group-overlap: 0.625rem;
2076
+ --gecko-avatar-group-ring: var(--color-surface-primary);
2077
+ --gecko-avatar-group-ring-width: 2px;
2078
+ --gecko-avatar-group-lift: 0.375rem;
2079
+ display: flex;
2080
+ width: fit-content;
2081
+ flex-direction: row-reverse;
2082
+ align-items: center;
2083
+ justify-content: flex-end;
2084
+ }
2085
+ .GeckoUIAvatarGroup[data-size=xs] {
2086
+ --gecko-avatar-group-overlap: 0.375rem;
2087
+ }
2088
+ .GeckoUIAvatarGroup[data-size=sm] {
2089
+ --gecko-avatar-group-overlap: 0.5rem;
2090
+ }
2091
+ .GeckoUIAvatarGroup[data-size=lg] {
2092
+ --gecko-avatar-group-overlap: 0.75rem;
2093
+ }
2094
+ .GeckoUIAvatarGroup[data-size=xl] {
2095
+ --gecko-avatar-group-overlap: 1rem;
2096
+ }
2097
+ .GeckoUIAvatarGroup > * {
2098
+ position: relative;
2099
+ }
2100
+ .GeckoUIAvatarGroup > *:not(:last-child) {
2101
+ margin-left: calc(-1 * var(--gecko-avatar-group-overlap));
2102
+ }
2103
+ .GeckoUIAvatarGroup__slot {
2104
+ display: inline-flex;
2105
+ }
2106
+ .GeckoUIAvatarGroup > * > .GeckoUIAvatar,
2107
+ .GeckoUIAvatarGroup > .GeckoUIAvatar {
2108
+ box-shadow: 0 0 0 var(--gecko-avatar-group-ring-width) var(--gecko-avatar-group-ring);
2109
+ transition-property:
2110
+ transform,
2111
+ translate,
2112
+ scale,
2113
+ rotate;
2114
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
2115
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
2116
+ --tw-duration: 150ms;
2117
+ transition-duration: 150ms;
2118
+ --tw-ease: var(--ease-out, cubic-bezier(0, 0, 0.2, 1));
2119
+ transition-timing-function: var(--ease-out, cubic-bezier(0, 0, 0.2, 1));
2120
+ }
2121
+ .GeckoUIAvatarGroup[data-interactive] > *:hover {
2122
+ z-index: 1;
2123
+ }
2124
+ .GeckoUIAvatarGroup[data-interactive] > *:hover > .GeckoUIAvatar {
2125
+ transform: translateY(calc(-1 * var(--gecko-avatar-group-lift)));
2126
+ }
2127
+ .GeckoUIAvatarGroup__list {
2128
+ display: flex;
2129
+ flex-direction: column;
2130
+ gap: calc(var(--spacing, 0.25rem) * 1.5);
2131
+ }
2132
+ .GeckoUIAvatarGroup__list__item {
2133
+ display: flex;
2134
+ align-items: center;
2135
+ gap: calc(var(--spacing, 0.25rem) * 2);
2136
+ white-space: nowrap;
2137
+ }
2138
+ @media (prefers-reduced-motion: reduce) {
2139
+ .GeckoUIAvatarGroup > * > .GeckoUIAvatar,
2140
+ .GeckoUIAvatarGroup > .GeckoUIAvatar {
2141
+ transition: none;
2142
+ }
2143
+ .GeckoUIAvatarGroup[data-interactive] > *:hover > .GeckoUIAvatar {
2144
+ transform: none;
2145
+ }
2146
+ }
1147
2147
  .GeckoUITooltip__trigger {
1148
2148
  display: inline-flex;
1149
2149
  height: fit-content;
@@ -1151,47 +2151,300 @@
1151
2151
  cursor: pointer;
1152
2152
  }
1153
2153
  .GeckoUITooltip {
1154
- z-index: 50;
2154
+ --gecko-tooltip-bg: var(--color-surface-emphasis);
2155
+ --gecko-tooltip-text: var(--color-surface-primary);
2156
+ --gecko-tooltip-radius: 0.5rem;
1155
2157
  max-width: 320px;
1156
2158
  min-width: 0px;
1157
- border-radius: var(--radius-lg, 0.5rem);
1158
- background-color: var(--color-surface-emphasis);
1159
2159
  padding: calc(var(--spacing, 0.25rem) * 2);
1160
2160
  font-size: var(--text-xs, 0.75rem);
1161
2161
  line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
1162
2162
  --tw-font-weight: var(--font-weight-normal, 400);
1163
2163
  font-weight: var(--font-weight-normal, 400);
1164
- color: var(--color-surface-primary);
2164
+ z-index: var(--gecko-tooltip-z, 50);
2165
+ border-radius: var(--gecko-tooltip-radius);
2166
+ background: var(--gecko-tooltip-bg);
2167
+ color: var(--gecko-tooltip-text);
1165
2168
  box-shadow: hsla(206, 22%, 7%, 0.35) 0px 10px 38px -10px, hsla(206, 22%, 7%, 0.2) 0px 10px 20px -15px;
1166
2169
  user-select: none;
1167
2170
  }
1168
2171
  .GeckoUITooltip__arrow {
1169
- fill: var(--color-surface-emphasis);
1170
- }
1171
- .GeckoUISpinnerIcon {
2172
+ fill: var(--gecko-tooltip-bg);
2173
+ }
2174
+ .GeckoUIStepper {
2175
+ --gecko-stepper-marker-size: 2rem;
2176
+ --gecko-stepper-gap: 0.75rem;
2177
+ --gecko-stepper-line: var(--color-border-secondary);
2178
+ --gecko-stepper-line-done: var(--color-primary-600);
2179
+ --gecko-stepper-line-width: 2px;
2180
+ --gecko-stepper-marker-bg: transparent;
2181
+ --gecko-stepper-marker-text: currentcolor;
2182
+ --gecko-stepper-marker-border: currentcolor;
2183
+ --gecko-stepper-upcoming: var(--color-text-tertiary);
2184
+ --gecko-stepper-current: var(--color-primary-600);
2185
+ --gecko-stepper-complete: var(--color-primary-600);
2186
+ --gecko-stepper-error: var(--color-error);
1172
2187
  box-sizing: border-box;
1173
2188
  border-width: 0;
1174
2189
  border-style: solid;
1175
2190
  border-color: #e5e7eb;
1176
- aspect-ratio: 1 / 1;
1177
- width: calc(var(--spacing, 0.25rem) * 5);
1178
- height: calc(var(--spacing, 0.25rem) * 5);
1179
- flex-shrink: 0;
1180
- animation: var(--animate-spin, spin 1s linear infinite);
1181
- color: inherit;
1182
2191
  }
1183
- .GeckoUITextarea {
2192
+ .GeckoUIStepper[data-size=sm] {
2193
+ --gecko-stepper-marker-size: 1.5rem;
2194
+ --gecko-stepper-gap: 0.5rem;
2195
+ font-size: var(--text-xs, 0.75rem);
2196
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
2197
+ }
2198
+ .GeckoUIStepper[data-size=md] {
2199
+ font-size: var(--text-sm, 0.875rem);
2200
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
2201
+ }
2202
+ .GeckoUIStepper[data-size=lg] {
2203
+ --gecko-stepper-marker-size: 2.5rem;
2204
+ font-size: var(--text-base, 1rem);
2205
+ line-height: var(--tw-leading, var(--text-base--line-height, calc(1.5 / 1)));
2206
+ }
2207
+ .GeckoUIStepper__list {
1184
2208
  box-sizing: border-box;
1185
2209
  border-width: 0;
1186
2210
  border-style: solid;
1187
2211
  border-color: #e5e7eb;
1188
- font-family: inherit;
1189
- font-feature-settings: inherit;
1190
- font-variation-settings: inherit;
1191
- font-size: 100%;
1192
- font-weight: inherit;
1193
- line-height: inherit;
1194
- letter-spacing: inherit;
2212
+ display: flex;
2213
+ list-style-type: none;
2214
+ padding: calc(var(--spacing, 0.25rem) * 0);
2215
+ }
2216
+ .GeckoUIStepper__step {
2217
+ position: relative;
2218
+ display: flex;
2219
+ min-width: calc(var(--spacing, 0.25rem) * 0);
2220
+ }
2221
+ .GeckoUIStepper__step:last-child .GeckoUIStepper__line,
2222
+ .GeckoUIStepper__step:last-child .GeckoUIStepper__separator {
2223
+ display: none;
2224
+ }
2225
+ .GeckoUIStepper__button {
2226
+ box-sizing: border-box;
2227
+ border-width: 0;
2228
+ border-style: solid;
2229
+ border-color: #e5e7eb;
2230
+ font-family: inherit;
2231
+ font-feature-settings: inherit;
2232
+ font-variation-settings: inherit;
2233
+ font-size: 100%;
2234
+ font-weight: inherit;
2235
+ line-height: inherit;
2236
+ letter-spacing: inherit;
2237
+ color: inherit;
2238
+ margin: 0;
2239
+ padding: 0;
2240
+ text-transform: none;
2241
+ -webkit-appearance: button;
2242
+ cursor: pointer;
2243
+ background-color: transparent;
2244
+ background-image: none;
2245
+ display: flex;
2246
+ min-width: calc(var(--spacing, 0.25rem) * 0);
2247
+ align-items: center;
2248
+ text-align: left;
2249
+ gap: var(--gecko-stepper-gap);
2250
+ color: var(--gecko-stepper-upcoming);
2251
+ }
2252
+ .GeckoUIStepper__button:enabled {
2253
+ cursor: pointer;
2254
+ }
2255
+ .GeckoUIStepper__button:enabled:hover .GeckoUIStepper__label {
2256
+ text-decoration-line: underline;
2257
+ }
2258
+ .GeckoUIStepper__button:focus-visible {
2259
+ border-radius: 0.25rem;
2260
+ outline: 2px solid var(--color-primary-300);
2261
+ outline-offset: 2px;
2262
+ }
2263
+ .GeckoUIStepper__button[data-status=current],
2264
+ .GeckoUIStepper__button[data-status=complete] {
2265
+ color: var(--gecko-stepper-current);
2266
+ }
2267
+ .GeckoUIStepper__button[data-status=error] {
2268
+ color: var(--gecko-stepper-error);
2269
+ }
2270
+ .GeckoUIStepper__marker {
2271
+ display: flex;
2272
+ flex-shrink: 0;
2273
+ align-items: center;
2274
+ justify-content: center;
2275
+ border-radius: calc(infinity * 1px);
2276
+ border-style: var(--tw-border-style);
2277
+ border-width: 2px;
2278
+ --tw-font-weight: var(--font-weight-medium, 500);
2279
+ font-weight: var(--font-weight-medium, 500);
2280
+ width: var(--gecko-stepper-marker-size);
2281
+ height: var(--gecko-stepper-marker-size);
2282
+ border-color: var(--gecko-stepper-marker-border);
2283
+ background: var(--gecko-stepper-marker-bg);
2284
+ color: var(--gecko-stepper-marker-text);
2285
+ font-size: 0.8em;
2286
+ }
2287
+ .GeckoUIStepper__marker svg {
2288
+ height: 55%;
2289
+ width: 55%;
2290
+ }
2291
+ .GeckoUIStepper__button[data-status=complete],
2292
+ .GeckoUIStepper__button[data-status=current] {
2293
+ --gecko-stepper-marker-bg: var(--gecko-stepper-current);
2294
+ --gecko-stepper-marker-border: var(--gecko-stepper-current);
2295
+ --gecko-stepper-marker-text: var(--color-text-on-primary);
2296
+ }
2297
+ .GeckoUIStepper__button[data-status=error] {
2298
+ --gecko-stepper-marker-bg: var(--gecko-stepper-error);
2299
+ --gecko-stepper-marker-border: var(--gecko-stepper-error);
2300
+ --gecko-stepper-marker-text: var(--color-text-on-primary);
2301
+ }
2302
+ .GeckoUIStepper__body {
2303
+ display: flex;
2304
+ min-width: calc(var(--spacing, 0.25rem) * 0);
2305
+ flex-direction: column;
2306
+ }
2307
+ .GeckoUIStepper__label {
2308
+ overflow: hidden;
2309
+ text-overflow: ellipsis;
2310
+ white-space: nowrap;
2311
+ --tw-font-weight: var(--font-weight-medium, 500);
2312
+ font-weight: var(--font-weight-medium, 500);
2313
+ }
2314
+ .GeckoUIStepper__description {
2315
+ overflow: hidden;
2316
+ text-overflow: ellipsis;
2317
+ white-space: nowrap;
2318
+ font-size: 0.85em;
2319
+ --tw-font-weight: var(--font-weight-normal, 400);
2320
+ font-weight: var(--font-weight-normal, 400);
2321
+ color: var(--color-text-tertiary);
2322
+ }
2323
+ .GeckoUIStepper__line {
2324
+ background: var(--gecko-stepper-line);
2325
+ }
2326
+ .GeckoUIStepper__separator {
2327
+ display: flex;
2328
+ flex-shrink: 0;
2329
+ align-items: center;
2330
+ justify-content: center;
2331
+ -webkit-user-select: none;
2332
+ user-select: none;
2333
+ color: var(--gecko-stepper-line);
2334
+ }
2335
+ .GeckoUIStepper__step[data-status=complete] .GeckoUIStepper__line {
2336
+ background: var(--gecko-stepper-line-done);
2337
+ }
2338
+ .GeckoUIStepper[data-orientation=horizontal] .GeckoUIStepper__list {
2339
+ flex-direction: row;
2340
+ align-items: center;
2341
+ }
2342
+ .GeckoUIStepper[data-orientation=horizontal] .GeckoUIStepper__step {
2343
+ flex: 1;
2344
+ align-items: center;
2345
+ gap: var(--gecko-stepper-gap);
2346
+ }
2347
+ .GeckoUIStepper[data-orientation=horizontal] .GeckoUIStepper__line {
2348
+ height: calc(var(--spacing, 0.25rem) * 0);
2349
+ min-width: calc(var(--spacing, 0.25rem) * 4);
2350
+ flex: 1;
2351
+ height: var(--gecko-stepper-line-width);
2352
+ }
2353
+ .GeckoUIStepper[data-orientation=horizontal] .GeckoUIStepper__step:has(> .GeckoUIStepper__separator) {
2354
+ flex: none;
2355
+ }
2356
+ .GeckoUIStepper[data-orientation=vertical] .GeckoUIStepper__list {
2357
+ flex-direction: column;
2358
+ }
2359
+ .GeckoUIStepper[data-orientation=vertical] .GeckoUIStepper__step {
2360
+ flex-direction: column;
2361
+ align-items: stretch;
2362
+ padding-bottom: var(--gecko-stepper-gap);
2363
+ }
2364
+ .GeckoUIStepper[data-orientation=vertical] .GeckoUIStepper__step:last-child {
2365
+ padding-bottom: calc(var(--spacing, 0.25rem) * 0);
2366
+ }
2367
+ .GeckoUIStepper[data-orientation=vertical] .GeckoUIStepper__line {
2368
+ position: absolute;
2369
+ left: calc(var(--spacing, 0.25rem) * 0);
2370
+ width: calc(var(--spacing, 0.25rem) * 0);
2371
+ width: var(--gecko-stepper-line-width);
2372
+ top: var(--gecko-stepper-marker-size);
2373
+ bottom: 0;
2374
+ left: calc(var(--gecko-stepper-marker-size) / 2 - var(--gecko-stepper-line-width) / 2);
2375
+ }
2376
+ .GeckoUISpinnerIcon {
2377
+ box-sizing: border-box;
2378
+ border-width: 0;
2379
+ border-style: solid;
2380
+ border-color: #e5e7eb;
2381
+ aspect-ratio: 1 / 1;
2382
+ width: calc(var(--spacing, 0.25rem) * 5);
2383
+ height: calc(var(--spacing, 0.25rem) * 5);
2384
+ flex-shrink: 0;
2385
+ animation: var(--animate-spin, spin 1s linear infinite);
2386
+ color: inherit;
2387
+ }
2388
+ .GeckoUIPopover {
2389
+ --gecko-popover-bg: var(--color-surface-primary);
2390
+ --gecko-popover-border: var(--color-border-secondary);
2391
+ --gecko-popover-radius: 0.375rem;
2392
+ --gecko-popover-padding: 0.75rem;
2393
+ --gecko-popover-width: max-content;
2394
+ --gecko-popover-max-width: 20rem;
2395
+ --gecko-popover-z: 50;
2396
+ position: relative;
2397
+ width: fit-content;
2398
+ }
2399
+ .GeckoUIPopover__content {
2400
+ box-sizing: border-box;
2401
+ border-width: 0;
2402
+ border-style: solid;
2403
+ border-color: #e5e7eb;
2404
+ border-style: var(--tw-border-style);
2405
+ border-width: 1px;
2406
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
2407
+ box-shadow:
2408
+ var(--tw-inset-shadow),
2409
+ var(--tw-inset-ring-shadow),
2410
+ var(--tw-ring-offset-shadow),
2411
+ var(--tw-ring-shadow),
2412
+ var(--tw-shadow);
2413
+ --tw-outline-style: none;
2414
+ outline-style: none;
2415
+ z-index: var(--gecko-popover-z);
2416
+ width: var(--gecko-popover-width);
2417
+ max-width: var(--gecko-popover-max-width);
2418
+ padding: var(--gecko-popover-padding);
2419
+ border-radius: var(--gecko-popover-radius);
2420
+ border-color: var(--gecko-popover-border);
2421
+ background: var(--gecko-popover-bg);
2422
+ color: var(--color-text-primary);
2423
+ }
2424
+ .GeckoUIPopover__content:focus-visible {
2425
+ outline: 2px solid var(--color-primary-300);
2426
+ outline-offset: 2px;
2427
+ }
2428
+ .GeckoUIPopover__arrow path:nth-of-type(1) {
2429
+ fill: none;
2430
+ stroke: var(--gecko-popover-border);
2431
+ }
2432
+ .GeckoUIPopover__arrow path:nth-of-type(2) {
2433
+ fill: var(--gecko-popover-bg);
2434
+ stroke: var(--gecko-popover-bg);
2435
+ }
2436
+ .GeckoUITextarea {
2437
+ box-sizing: border-box;
2438
+ border-width: 0;
2439
+ border-style: solid;
2440
+ border-color: #e5e7eb;
2441
+ font-family: inherit;
2442
+ font-feature-settings: inherit;
2443
+ font-variation-settings: inherit;
2444
+ font-size: 100%;
2445
+ font-weight: inherit;
2446
+ line-height: inherit;
2447
+ letter-spacing: inherit;
1195
2448
  color: inherit;
1196
2449
  margin: 0;
1197
2450
  padding: 0;
@@ -1266,57 +2519,88 @@
1266
2519
  color: var(--color-text-disabled);
1267
2520
  }
1268
2521
  }
1269
- .GeckoUIOTPInput {
1270
- display: flex;
2522
+ .GeckoUITextarea[aria-invalid=true],
2523
+ .GeckoUITextarea[aria-invalid=true]:enabled:focus {
2524
+ border-color: var(--color-border-invalid);
2525
+ }
2526
+ .GeckoUITextarea[aria-invalid=true]:enabled:hover {
2527
+ border-color: var(--color-border-invalid-hover);
2528
+ }
2529
+ .GeckoUITextarea[data-auto-resize] {
2530
+ resize: none;
2531
+ }
2532
+ .GeckoUITagInputWrapper {
2533
+ --gecko-tag-input-menu-max-height: 15rem;
2534
+ --gecko-tag-input-z: 10;
2535
+ position: relative;
1271
2536
  width: 100%;
1272
- max-width: 100%;
1273
- flex-direction: row;
1274
- justify-content: center;
1275
- gap: calc(var(--spacing, 0.25rem) * 2);
1276
2537
  }
1277
- .GeckoUIOTPInput__input {
2538
+ .GeckoUITagInput {
1278
2539
  box-sizing: border-box;
1279
2540
  border-width: 0;
1280
2541
  border-style: solid;
1281
2542
  border-color: #e5e7eb;
1282
- font-family: inherit;
1283
- font-feature-settings: inherit;
1284
- font-variation-settings: inherit;
1285
- font-size: 100%;
1286
- font-weight: inherit;
1287
- line-height: inherit;
1288
- letter-spacing: inherit;
1289
- color: inherit;
1290
- margin: 0;
1291
- padding: 0;
1292
- text-transform: none;
1293
- display: block;
1294
- height: 100%;
2543
+ position: relative;
2544
+ display: flex;
2545
+ min-height: calc(var(--spacing, 0.25rem) * 10);
1295
2546
  width: 100%;
1296
- border-radius: var(--radius-lg, 0.5rem);
2547
+ align-items: flex-start;
2548
+ gap: calc(var(--spacing, 0.25rem) * 2);
2549
+ border-radius: var(--radius-md, 0.375rem);
1297
2550
  border-style: var(--tw-border-style);
1298
2551
  border-width: 1px;
1299
2552
  border-color: var(--color-border-secondary);
1300
- text-align: center;
1301
- --tw-outline-style: none;
1302
- outline-style: none;
1303
- &:enabled {
1304
- &:focus-within {
1305
- border-color: var(--color-primary-300);
1306
- }
1307
- }
1308
- &:disabled {
1309
- cursor: not-allowed;
1310
- }
2553
+ padding-inline: calc(var(--spacing, 0.25rem) * 3);
2554
+ padding-block: calc(var(--spacing, 0.25rem) * 1.5);
2555
+ color: var(--color-text-primary);
1311
2556
  }
1312
- .GeckoUIOTPInput[data-state=disabled] .GeckoUIOTPInput__input {
2557
+ .GeckoUITagInput[data-state=enabled] {
2558
+ cursor: text;
2559
+ }
2560
+ .GeckoUITagInput[data-state=enabled]:hover,
2561
+ .GeckoUITagInput[data-state=enabled]:focus-within {
2562
+ border-color: var(--color-primary-400);
2563
+ }
2564
+ .GeckoUITagInput[data-state=disabled] {
2565
+ cursor: not-allowed;
1313
2566
  background-color: var(--color-surface-disabled);
1314
2567
  color: var(--color-text-disabled);
1315
2568
  }
1316
- .GeckoUIOTPInput:hover .GeckoUIOTPInput__input:enabled {
1317
- border-color: var(--color-primary-400);
2569
+ .GeckoUITagInput:has(.GeckoUITagInput__input[aria-invalid=true]),
2570
+ .GeckoUITagInput:has(.GeckoUITagInput__input[aria-invalid=true]):focus-within {
2571
+ border-color: var(--color-border-invalid);
1318
2572
  }
1319
- .GeckoUIOTPInput__overlay-button {
2573
+ .GeckoUITagInput:has(.GeckoUITagInput__input[aria-invalid=true]):hover {
2574
+ border-color: var(--color-border-invalid-hover);
2575
+ }
2576
+ .GeckoUITagInput__tags {
2577
+ display: flex;
2578
+ min-width: calc(var(--spacing, 0.25rem) * 0);
2579
+ flex: 1;
2580
+ flex-wrap: wrap;
2581
+ align-items: center;
2582
+ gap: calc(var(--spacing, 0.25rem) * 1);
2583
+ }
2584
+ .GeckoUITagInput__tag {
2585
+ display: inline-flex;
2586
+ align-items: center;
2587
+ gap: calc(var(--spacing, 0.25rem) * 1);
2588
+ border-radius: 0.25rem;
2589
+ border-style: var(--tw-border-style);
2590
+ border-width: 1px;
2591
+ border-color: color-mix(in srgb, oklch(0.8699 0 none) 70%, transparent);
2592
+ @supports (color: color-mix(in lab, red, red)) {
2593
+ border-color: color-mix(in oklab, var(--color-border-secondary) 70%, transparent);
2594
+ }
2595
+ background-color: var(--color-surface-tertiary);
2596
+ padding-inline: calc(var(--spacing, 0.25rem) * 2);
2597
+ padding-block: calc(var(--spacing, 0.25rem) * 1);
2598
+ text-align: left;
2599
+ font-size: var(--text-xs, 0.75rem);
2600
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
2601
+ color: var(--color-text-primary);
2602
+ }
2603
+ .GeckoUITagInput__tag__remove {
1320
2604
  box-sizing: border-box;
1321
2605
  border-width: 0;
1322
2606
  border-style: solid;
@@ -1333,122 +2617,125 @@
1333
2617
  padding: 0;
1334
2618
  text-transform: none;
1335
2619
  -webkit-appearance: button;
1336
- cursor: pointer;
1337
- background-image: none;
1338
- position: absolute;
1339
- inset: calc(var(--spacing, 0.25rem) * 0);
1340
- z-index: 10;
1341
- cursor: text;
1342
2620
  background-color: transparent;
1343
- }
1344
- .GeckoUIOTPInput[data-state=disabled] .GeckoUIOTPInput__overlay-button {
1345
- cursor: not-allowed;
1346
- }
1347
- .GeckoUICheckbox {
1348
- box-sizing: border-box;
1349
- border-width: 0;
1350
- border-style: solid;
1351
- border-color: #e5e7eb;
1352
- position: relative;
1353
- display: inline-flex;
2621
+ background-image: none;
2622
+ display: flex;
2623
+ height: calc(var(--spacing, 0.25rem) * 4);
2624
+ width: calc(var(--spacing, 0.25rem) * 4);
2625
+ cursor: pointer;
1354
2626
  align-items: center;
1355
2627
  justify-content: center;
2628
+ border-radius: var(--radius-sm, 0.25rem);
1356
2629
  }
1357
- .GeckoUICheckbox__input {
1358
- box-sizing: border-box;
1359
- border-width: 0;
1360
- border-style: solid;
1361
- border-color: #e5e7eb;
1362
- outline: none;
2630
+ .GeckoUITagInput__tag__remove:hover .GeckoUI-icon__clear {
2631
+ background-color: var(--color-text-secondary);
1363
2632
  }
1364
- .GeckoUICheckbox__input:focus-visible {
1365
- outline: 2px solid var(--color-primary-300);
1366
- outline-offset: 2px;
1367
- }
1368
- .GeckoUICheckbox__input {
1369
- margin: calc(var(--spacing, 0.25rem) * 0);
1370
- height: calc(var(--spacing, 0.25rem) * 4);
1371
- width: calc(var(--spacing, 0.25rem) * 4);
1372
- cursor: pointer;
1373
- appearance: none;
1374
- border-radius: 0.25rem;
1375
- border-style: var(--tw-border-style);
1376
- border-width: 1px;
1377
- border-color: var(--color-border-primary);
1378
- }
1379
- .GeckoUICheckbox__input:hover {
1380
- border-color: var(--color-primary-400);
1381
- }
1382
- .GeckoUICheckbox__input:checked {
1383
- border-color: var(--color-primary-600);
1384
- background-color: var(--color-primary-600);
1385
- }
1386
- .GeckoUICheckbox__input:disabled {
1387
- cursor: not-allowed;
1388
- border-color: var(--color-border-disabled);
1389
- background-color: var(--color-surface-disabled);
1390
- }
1391
- .GeckoUICheckbox__input:checked:disabled {
1392
- border-color: var(--color-primary-600);
1393
- background-color: var(--color-primary-600);
2633
+ .GeckoUITagInput[data-state=disabled] .GeckoUITagInput__tag {
2634
+ color: var(--color-text-disabled);
2635
+ opacity: 70%;
1394
2636
  }
1395
- .GeckoUICheckbox:has(:checked:disabled) {
1396
- opacity: 40%;
2637
+ .GeckoUITagInput__placeholder {
2638
+ align-self: center;
2639
+ padding-block: calc(var(--spacing, 0.25rem) * 1);
2640
+ font-size: var(--text-sm, 0.875rem);
2641
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
2642
+ color: var(--color-text-placeholder);
1397
2643
  }
1398
- .GeckoUICheckbox__icon {
1399
- pointer-events: none;
1400
- position: absolute;
1401
- inset: calc(var(--spacing, 0.25rem) * 0);
1402
- z-index: 1;
1403
- margin: auto;
2644
+ .GeckoUITagInput__placeholder[data-hidden] {
1404
2645
  display: none;
1405
- stroke-width: 5px;
1406
- color: var(--color-text-on-primary);
1407
- }
1408
- .GeckoUICheckbox:has(:checked) .GeckoUICheckbox__icon {
1409
- display: block;
1410
2646
  }
1411
- .GeckoUIDateInputWrapper {
1412
- width: 100%;
2647
+ .GeckoUITagInput__field {
2648
+ display: inline-grid;
2649
+ flex: auto;
2650
+ grid-template-columns: 0 min-content;
2651
+ color: inherit;
1413
2652
  }
1414
- .GeckoUIDateInput__calendar {
1415
- background-color: var(--color-surface-primary);
2653
+ .GeckoUITagInput__field::after {
2654
+ content: attr(data-keyword) " ";
2655
+ grid-area: 1/2;
2656
+ visibility: hidden;
2657
+ white-space: pre;
2658
+ font: inherit;
2659
+ min-width: 2px;
2660
+ padding: 0;
2661
+ margin: 0;
2662
+ border: 0;
1416
2663
  }
1417
- .GeckoUISelect {
1418
- position: relative;
1419
- display: flex;
2664
+ .GeckoUITagInput__input {
1420
2665
  width: 100%;
1421
- flex-direction: column;
1422
- align-self: flex-start;
2666
+ min-width: calc(var(--spacing, 0.25rem) * 0);
2667
+ --tw-border-style: none;
2668
+ border-style: none;
2669
+ background-color: transparent;
2670
+ padding-block: calc(var(--spacing, 0.25rem) * 1);
1423
2671
  font-size: var(--text-sm, 0.875rem);
1424
2672
  line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
1425
2673
  color: var(--color-text-primary);
2674
+ --tw-outline-style: none;
2675
+ outline-style: none;
2676
+ grid-area: 1/1/2/3;
1426
2677
  }
1427
- .GeckoUIPagination {
2678
+ .GeckoUITagInput__input[data-initial] {
2679
+ position: absolute;
2680
+ inset-inline: calc(var(--spacing, 0.25rem) * 3);
2681
+ width: auto;
2682
+ }
2683
+ .GeckoUITagInput__input:disabled {
2684
+ cursor: not-allowed;
2685
+ }
2686
+ .GeckoUITagInput__prefix,
2687
+ .GeckoUITagInput__suffix {
2688
+ display: flex;
2689
+ align-items: center;
2690
+ align-self: center;
2691
+ }
2692
+ .GeckoUITagInput__menu {
1428
2693
  box-sizing: border-box;
1429
2694
  border-width: 0;
1430
2695
  border-style: solid;
1431
2696
  border-color: #e5e7eb;
2697
+ scrollbar-width: thin;
2698
+ scrollbar-color: var(--gecko-ui-scrollbar-thumb) transparent;
2699
+ scrollbar-gutter: auto;
2700
+ }
2701
+ .GeckoUITagInput__menu -webkit-scrollbar {
2702
+ width: 6px;
2703
+ }
2704
+ .GeckoUITagInput__menu -webkit-scrollbar-track {
2705
+ background: transparent;
2706
+ }
2707
+ .GeckoUITagInput__menu -webkit-scrollbar-thumb {
2708
+ background: var(--gecko-ui-scrollbar-thumb);
2709
+ }
2710
+ .GeckoUITagInput__menu -webkit-scrollbar-thumb:hover {
2711
+ background: var(--gecko-ui-scrollbar-thumb-hover);
2712
+ }
2713
+ .GeckoUITagInput__menu {
1432
2714
  display: flex;
1433
2715
  width: 100%;
1434
- align-items: center;
1435
- justify-content: space-between;
1436
- :where(& > :not(:last-child)) {
1437
- --tw-space-x-reverse: 0;
1438
- margin-inline-start: calc(calc(var(--spacing, 0.25rem) * 2) * var(--tw-space-x-reverse));
1439
- margin-inline-end: calc(calc(var(--spacing, 0.25rem) * 2) * calc(1 - var(--tw-space-x-reverse)));
1440
- }
1441
- border-top-style: var(--tw-border-style);
1442
- border-top-width: 1px;
1443
- padding-inline: calc(var(--spacing, 0.25rem) * 4);
1444
- @media (width >= 40rem) {
1445
- margin-inline: calc(var(--spacing, 0.25rem) * 0);
1446
- }
1447
- @media (width >= 40rem) {
1448
- justify-content: center;
1449
- }
2716
+ min-width: calc(var(--spacing, 0.25rem) * 0);
2717
+ flex-direction: column;
2718
+ gap: 1px;
2719
+ overflow-x: hidden;
2720
+ overflow-y: auto;
2721
+ overscroll-behavior: contain;
2722
+ border-radius: var(--radius-md, 0.375rem);
2723
+ background-color: var(--color-surface-primary);
2724
+ padding: calc(var(--spacing, 0.25rem) * 2);
2725
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
2726
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2727
+ box-shadow:
2728
+ var(--tw-inset-shadow),
2729
+ var(--tw-inset-ring-shadow),
2730
+ var(--tw-ring-offset-shadow),
2731
+ var(--tw-ring-shadow),
2732
+ var(--tw-shadow);
2733
+ --tw-ring-color: var(--color-border-primary);
2734
+ z-index: var(--gecko-tag-input-z);
2735
+ max-height: var(--gecko-tag-input-menu-max-height);
2736
+ scrollbar-gutter: stable overlay;
1450
2737
  }
1451
- .GeckoUIPagination__arrow {
2738
+ .GeckoUITagInput__option {
1452
2739
  box-sizing: border-box;
1453
2740
  border-width: 0;
1454
2741
  border-style: solid;
@@ -1465,129 +2752,1857 @@
1465
2752
  padding: 0;
1466
2753
  text-transform: none;
1467
2754
  -webkit-appearance: button;
1468
- cursor: pointer;
1469
2755
  background-color: transparent;
1470
2756
  background-image: none;
1471
- position: relative;
1472
2757
  display: flex;
1473
- height: calc(var(--spacing, 0.25rem) * 10);
2758
+ min-width: calc(var(--spacing, 0.25rem) * 0);
2759
+ cursor: pointer;
2760
+ scroll-margin: calc(var(--spacing, 0.25rem) * 2);
2761
+ flex-direction: row;
1474
2762
  align-items: center;
1475
- justify-content: center;
1476
- padding: calc(var(--spacing, 0.25rem) * 4);
1477
- font-size: var(--text-sm, 0.875rem);
1478
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
1479
- --tw-font-weight: var(--font-weight-medium, 500);
1480
- font-weight: var(--font-weight-medium, 500);
1481
- color: var(--color-text-muted);
2763
+ justify-content: space-between;
2764
+ gap: calc(var(--spacing, 0.25rem) * 3);
2765
+ border-radius: 0.25rem;
2766
+ padding-block: calc(var(--spacing, 0.25rem) * 2);
2767
+ padding-right: calc(var(--spacing, 0.25rem) * 4);
2768
+ padding-left: calc(var(--spacing, 0.25rem) * 3);
2769
+ text-align: left;
2770
+ overflow-wrap: anywhere;
1482
2771
  }
1483
- .GeckoUIPagination__arrow:disabled {
2772
+ .GeckoUITagInput__option[data-focused] {
2773
+ background-color: var(--color-surface-hover-strong);
2774
+ }
2775
+ .GeckoUITagInput__option:disabled {
1484
2776
  cursor: not-allowed;
2777
+ opacity: 50%;
1485
2778
  }
1486
- .GeckoUIPagination__arrow__icon {
2779
+ .GeckoUISkeleton {
1487
2780
  box-sizing: border-box;
1488
2781
  border-width: 0;
1489
2782
  border-style: solid;
1490
2783
  border-color: #e5e7eb;
1491
- display: inline-block;
1492
- height: calc(var(--spacing, 0.25rem) * 4);
1493
- width: calc(var(--spacing, 0.25rem) * 4);
1494
- background-color: var(--color-text-primary);
1495
- mask-position: center;
1496
- mask-size: contain;
1497
- mask-repeat: no-repeat;
1498
- height: calc(var(--spacing, 0.25rem) * 5);
1499
- width: calc(var(--spacing, 0.25rem) * 5);
1500
- background-color: var(--color-text-muted);
2784
+ --gecko-skeleton-bg: var(--color-surface-hover-strong);
2785
+ --gecko-skeleton-highlight: rgb(255 255 255 / 55%);
2786
+ --gecko-skeleton-radius: 0.25rem;
2787
+ --gecko-skeleton-duration: 1.6s;
2788
+ --gecko-skeleton-line-height: 1em;
2789
+ --gecko-skeleton-line-gap: 0.5rem;
2790
+ --gecko-skeleton-last-line-width: 60%;
2791
+ display: flex;
2792
+ flex-direction: column;
2793
+ gap: var(--gecko-skeleton-line-gap);
1501
2794
  }
1502
- .GeckoUIPagination__arrow__icon[data-direction=previous] {
1503
- mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.2906 6.18134C13.5777 6.47992 13.5684 6.9547 13.2698 7.2418L9.33208 10.9512L13.2698 14.6605C13.5684 14.9476 13.5777 15.4224 13.2906 15.721C13.0035 16.0196 12.5287 16.0289 12.2302 15.7418L7.73017 11.4918C7.58311 11.3504 7.5 11.1552 7.5 10.9512C7.5 10.7472 7.58311 10.552 7.73017 10.4105L12.2302 6.16055C12.5287 5.87345 13.0035 5.88276 13.2906 6.18134Z" fill="%236B7280"/></svg>');
1504
- -webkit-mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.2906 6.18134C13.5777 6.47992 13.5684 6.9547 13.2698 7.2418L9.33208 10.9512L13.2698 14.6605C13.5684 14.9476 13.5777 15.4224 13.2906 15.721C13.0035 16.0196 12.5287 16.0289 12.2302 15.7418L7.73017 11.4918C7.58311 11.3504 7.5 11.1552 7.5 10.9512C7.5 10.7472 7.58311 10.552 7.73017 10.4105L12.2302 6.16055C12.5287 5.87345 13.0035 5.88276 13.2906 6.18134Z" fill="%236B7280"/></svg>');
2795
+ .GeckoUISkeleton__bar {
2796
+ position: relative;
2797
+ display: block;
2798
+ flex: 1;
2799
+ overflow: hidden;
2800
+ background: var(--gecko-skeleton-bg);
2801
+ border-radius: var(--gecko-skeleton-radius);
1505
2802
  }
1506
- .GeckoUIPagination__arrow__icon[data-direction=next] {
1507
- mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.70938 15.721C7.42228 15.4224 7.43159 14.9476 7.73017 14.6605L11.6679 10.9512L7.73017 7.2418C7.43159 6.9547 7.42228 6.47992 7.70938 6.18134C7.99647 5.88276 8.47125 5.87345 8.76983 6.16055L13.2698 10.4105C13.4169 10.5519 13.5 10.7472 13.5 10.9512C13.5 11.1552 13.4169 11.3504 13.2698 11.4918L8.76983 15.7418C8.47125 16.0289 7.99647 16.0196 7.70938 15.721Z" fill="%236B7280"/></svg>');
1508
- -webkit-mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.70938 15.721C7.42228 15.4224 7.43159 14.9476 7.73017 14.6605L11.6679 10.9512L7.73017 7.2418C7.43159 6.9547 7.42228 6.47992 7.70938 6.18134C7.99647 5.88276 8.47125 5.87345 8.76983 6.16055L13.2698 10.4105C13.4169 10.5519 13.5 10.7472 13.5 10.9512C13.5 11.1552 13.4169 11.3504 13.2698 11.4918L8.76983 15.7418C8.47125 16.0289 7.99647 16.0196 7.70938 15.721Z" fill="%236B7280"/></svg>');
2803
+ .GeckoUISkeleton[data-shape=text] > .GeckoUISkeleton__bar {
2804
+ flex: none;
2805
+ height: var(--gecko-skeleton-line-height);
1509
2806
  }
1510
- .GeckoUIPagination__arrow:disabled .GeckoUIPagination__arrow__icon {
1511
- background-color: var(--color-border-secondary);
2807
+ .GeckoUISkeleton[data-shape=text] > .GeckoUISkeleton__bar:last-child:not(:only-child) {
2808
+ width: var(--gecko-skeleton-last-line-width);
1512
2809
  }
1513
- .GeckoUIPagination__page-count {
1514
- display: flex;
1515
- flex-direction: row;
1516
- align-items: center;
1517
- justify-content: center;
1518
- column-gap: calc(var(--spacing, 0.25rem) * 1);
1519
- padding: calc(var(--spacing, 0.25rem) * 4);
1520
- font-size: var(--text-sm, 0.875rem);
1521
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
1522
- --tw-font-weight: var(--font-weight-medium, 500);
1523
- font-weight: var(--font-weight-medium, 500);
1524
- color: var(--color-text-muted);
1525
- @media (width >= 40rem) {
2810
+ .GeckoUISkeleton[data-shape=circle] {
2811
+ width: fit-content;
2812
+ }
2813
+ .GeckoUISkeleton[data-shape=circle] > .GeckoUISkeleton__bar {
2814
+ aspect-ratio: 1 / 1;
2815
+ height: 100%;
2816
+ border-radius: 9999px;
2817
+ }
2818
+ .GeckoUISkeleton[data-animation=pulse] > .GeckoUISkeleton__bar {
2819
+ animation: gecko-skeleton-pulse var(--gecko-skeleton-duration) ease-in-out infinite;
2820
+ }
2821
+ .GeckoUISkeleton[data-animation=wave] > .GeckoUISkeleton__bar::after {
2822
+ position: absolute;
2823
+ inset: calc(var(--spacing, 0.25rem) * 0);
2824
+ content: "";
2825
+ transform: translateX(-100%);
2826
+ background:
2827
+ linear-gradient(
2828
+ 90deg,
2829
+ transparent,
2830
+ var(--gecko-skeleton-highlight),
2831
+ transparent);
2832
+ animation: gecko-skeleton-wave var(--gecko-skeleton-duration) linear infinite;
2833
+ }
2834
+ @media (prefers-reduced-motion: reduce) {
2835
+ .GeckoUISkeleton > .GeckoUISkeleton__bar,
2836
+ .GeckoUISkeleton > .GeckoUISkeleton__bar::after {
2837
+ animation: none;
2838
+ }
2839
+ .GeckoUISkeleton > .GeckoUISkeleton__bar::after {
1526
2840
  display: none;
1527
2841
  }
1528
2842
  }
1529
- .GeckoUIPagination__page-buttons {
1530
- display: none;
1531
- flex-direction: row;
1532
- column-gap: calc(var(--spacing, 0.25rem) * 2);
1533
- @media (width >= 40rem) {
1534
- display: flex;
2843
+ @keyframes gecko-skeleton-pulse {
2844
+ 50% {
2845
+ opacity: 0.45;
1535
2846
  }
1536
2847
  }
1537
- .GeckoUIPagination__page-button {
2848
+ @keyframes gecko-skeleton-wave {
2849
+ 100% {
2850
+ transform: translateX(100%);
2851
+ }
2852
+ }
2853
+ .GeckoUIProgress {
2854
+ --gecko-progress-accent: var(--color-primary-600);
2855
+ --gecko-progress-track: var(--color-surface-hover-strong);
2856
+ --gecko-progress-height: 0.5rem;
2857
+ --gecko-progress-radius: 9999px;
2858
+ --gecko-progress-duration: 1.4s;
2859
+ --gecko-progress-label-gap: 0.375rem;
2860
+ --gecko-progress-percent: 0%;
1538
2861
  box-sizing: border-box;
1539
2862
  border-width: 0;
1540
2863
  border-style: solid;
1541
2864
  border-color: #e5e7eb;
1542
- font-family: inherit;
1543
- font-feature-settings: inherit;
1544
- font-variation-settings: inherit;
1545
- font-size: 100%;
1546
- font-weight: inherit;
1547
- line-height: inherit;
1548
- letter-spacing: inherit;
1549
- color: inherit;
1550
- margin: 0;
1551
- padding: 0;
1552
- text-transform: none;
1553
- -webkit-appearance: button;
1554
- cursor: pointer;
1555
- background-color: transparent;
1556
- background-image: none;
1557
- position: relative;
1558
2865
  display: flex;
1559
- height: calc(var(--spacing, 0.25rem) * 10);
1560
- align-items: center;
1561
- justify-content: center;
1562
- padding: calc(var(--spacing, 0.25rem) * 4);
1563
- font-size: var(--text-sm, 0.875rem);
1564
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
1565
- --tw-font-weight: var(--font-weight-medium, 500);
1566
- font-weight: var(--font-weight-medium, 500);
1567
- color: var(--color-text-muted);
2866
+ width: 100%;
2867
+ flex-direction: column;
2868
+ gap: var(--gecko-progress-label-gap);
1568
2869
  }
1569
- .GeckoUIPagination__page-button:hover {
1570
- color: var(--color-text-primary);
2870
+ .GeckoUIProgress[data-color=default] {
2871
+ --gecko-progress-accent: var(--color-text-secondary);
1571
2872
  }
1572
- .GeckoUIPagination__page-button[data-active] {
1573
- color: var(--color-primary-600);
1574
- text-decoration-line: underline;
1575
- text-underline-offset: 2px;
2873
+ .GeckoUIProgress[data-color=primary] {
2874
+ --gecko-progress-accent: var(--color-primary-600);
1576
2875
  }
1577
- .GeckoUIPagination__page-button[data-active]:hover {
1578
- color: var(--color-primary-700);
2876
+ .GeckoUIProgress[data-color=success] {
2877
+ --gecko-progress-accent: var(--color-success);
1579
2878
  }
1580
- .GeckoUIPagination__page-button[data-ellipsis] {
1581
- cursor: default;
1582
- color: var(--color-text-disabled);
2879
+ .GeckoUIProgress[data-color=error] {
2880
+ --gecko-progress-accent: var(--color-error);
2881
+ }
2882
+ .GeckoUIProgress[data-color=warning] {
2883
+ --gecko-progress-accent: var(--color-warning);
2884
+ }
2885
+ .GeckoUIProgress[data-color=info] {
2886
+ --gecko-progress-accent: var(--color-info);
2887
+ }
2888
+ .GeckoUIProgress[data-size=sm] {
2889
+ --gecko-progress-height: 0.25rem;
2890
+ }
2891
+ .GeckoUIProgress[data-size=lg] {
2892
+ --gecko-progress-height: 0.75rem;
2893
+ }
2894
+ .GeckoUIProgress__label {
2895
+ align-self: flex-end;
2896
+ font-size: var(--text-xs, 0.75rem);
2897
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
2898
+ color: var(--color-text-secondary);
2899
+ }
2900
+ .GeckoUIProgress__track {
2901
+ width: 100%;
2902
+ overflow: hidden;
2903
+ height: var(--gecko-progress-height);
2904
+ border-radius: var(--gecko-progress-radius);
2905
+ background: var(--gecko-progress-track);
2906
+ }
2907
+ .GeckoUIProgress__bar {
2908
+ height: 100%;
2909
+ transition-property: width;
2910
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
2911
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
2912
+ --tw-duration: 300ms;
2913
+ transition-duration: 300ms;
2914
+ --tw-ease: var(--ease-out, cubic-bezier(0, 0, 0.2, 1));
2915
+ transition-timing-function: var(--ease-out, cubic-bezier(0, 0, 0.2, 1));
2916
+ width: var(--gecko-progress-percent);
2917
+ border-radius: inherit;
2918
+ background: var(--gecko-progress-accent);
2919
+ }
2920
+ .GeckoUIProgress[data-indeterminate] .GeckoUIProgress__bar {
2921
+ width: calc(2/5 * 100%);
2922
+ transition: none;
2923
+ animation: gecko-progress-slide var(--gecko-progress-duration) ease-in-out infinite;
2924
+ }
2925
+ @media (prefers-reduced-motion: reduce) {
2926
+ .GeckoUIProgress__bar {
2927
+ transition: none;
2928
+ }
2929
+ .GeckoUIProgress[data-indeterminate] .GeckoUIProgress__bar {
2930
+ width: 100%;
2931
+ animation: gecko-progress-pulse var(--gecko-progress-duration) ease-in-out infinite;
2932
+ }
2933
+ }
2934
+ @keyframes gecko-progress-slide {
2935
+ 0% {
2936
+ transform: translateX(-100%);
2937
+ }
2938
+ 100% {
2939
+ transform: translateX(250%);
2940
+ }
2941
+ }
2942
+ @keyframes gecko-progress-pulse {
2943
+ 50% {
2944
+ opacity: 0.45;
2945
+ }
2946
+ }
2947
+ .GeckoUIOTPInput {
2948
+ display: flex;
2949
+ width: 100%;
2950
+ max-width: 100%;
2951
+ flex-direction: row;
2952
+ justify-content: center;
2953
+ gap: calc(var(--spacing, 0.25rem) * 2);
2954
+ isolation: isolate;
2955
+ }
2956
+ .GeckoUIOTPInput__input {
2957
+ box-sizing: border-box;
2958
+ border-width: 0;
2959
+ border-style: solid;
2960
+ border-color: #e5e7eb;
2961
+ font-family: inherit;
2962
+ font-feature-settings: inherit;
2963
+ font-variation-settings: inherit;
2964
+ font-size: 100%;
2965
+ font-weight: inherit;
2966
+ line-height: inherit;
2967
+ letter-spacing: inherit;
2968
+ color: inherit;
2969
+ margin: 0;
2970
+ padding: 0;
2971
+ text-transform: none;
2972
+ display: block;
2973
+ height: 100%;
2974
+ width: 100%;
2975
+ border-radius: var(--radius-lg, 0.5rem);
2976
+ border-style: var(--tw-border-style);
2977
+ border-width: 1px;
2978
+ border-color: var(--color-border-secondary);
2979
+ text-align: center;
2980
+ --tw-outline-style: none;
2981
+ outline-style: none;
2982
+ &:enabled {
2983
+ &:focus-within {
2984
+ border-color: var(--color-primary-300);
2985
+ }
2986
+ }
2987
+ &:disabled {
2988
+ cursor: not-allowed;
2989
+ }
2990
+ }
2991
+ .GeckoUIOTPInput[data-state=disabled] .GeckoUIOTPInput__input {
2992
+ background-color: var(--color-surface-disabled);
2993
+ color: var(--color-text-disabled);
2994
+ }
2995
+ .GeckoUIOTPInput:hover .GeckoUIOTPInput__input:enabled {
2996
+ border-color: var(--color-primary-400);
2997
+ }
2998
+ .GeckoUIOTPInput__overlay-button {
2999
+ box-sizing: border-box;
3000
+ border-width: 0;
3001
+ border-style: solid;
3002
+ border-color: #e5e7eb;
3003
+ font-family: inherit;
3004
+ font-feature-settings: inherit;
3005
+ font-variation-settings: inherit;
3006
+ font-size: 100%;
3007
+ font-weight: inherit;
3008
+ line-height: inherit;
3009
+ letter-spacing: inherit;
3010
+ color: inherit;
3011
+ margin: 0;
3012
+ padding: 0;
3013
+ text-transform: none;
3014
+ -webkit-appearance: button;
3015
+ cursor: pointer;
3016
+ background-image: none;
3017
+ position: absolute;
3018
+ inset: calc(var(--spacing, 0.25rem) * 0);
3019
+ z-index: 1;
3020
+ cursor: text;
3021
+ background-color: transparent;
3022
+ }
3023
+ .GeckoUIOTPInput[data-state=disabled] .GeckoUIOTPInput__overlay-button {
3024
+ cursor: not-allowed;
3025
+ }
3026
+ .GeckoUIOTPInput[aria-invalid=true] .GeckoUIOTPInput__input {
3027
+ border-color: var(--color-border-invalid);
3028
+ }
3029
+ .GeckoUIOTPInput[aria-invalid=true]:hover .GeckoUIOTPInput__input:enabled {
3030
+ border-color: var(--color-border-invalid-hover);
3031
+ }
3032
+ .GeckoUICheckbox {
3033
+ box-sizing: border-box;
3034
+ border-width: 0;
3035
+ border-style: solid;
3036
+ border-color: #e5e7eb;
3037
+ position: relative;
3038
+ display: inline-flex;
3039
+ align-items: center;
3040
+ justify-content: center;
3041
+ }
3042
+ .GeckoUICheckbox__input {
3043
+ box-sizing: border-box;
3044
+ border-width: 0;
3045
+ border-style: solid;
3046
+ border-color: #e5e7eb;
3047
+ outline: none;
3048
+ }
3049
+ .GeckoUICheckbox__input:focus-visible {
3050
+ outline: 2px solid var(--color-primary-300);
3051
+ outline-offset: 2px;
3052
+ }
3053
+ .GeckoUICheckbox__input {
3054
+ margin: calc(var(--spacing, 0.25rem) * 0);
3055
+ height: calc(var(--spacing, 0.25rem) * 4);
3056
+ width: calc(var(--spacing, 0.25rem) * 4);
3057
+ cursor: pointer;
3058
+ appearance: none;
3059
+ border-radius: 0.25rem;
3060
+ border-style: var(--tw-border-style);
3061
+ border-width: 1px;
3062
+ border-color: var(--color-border-primary);
3063
+ }
3064
+ .GeckoUICheckbox__input:hover {
3065
+ border-color: var(--color-primary-400);
3066
+ }
3067
+ .GeckoUICheckbox__input:checked,
3068
+ .GeckoUICheckbox__input:indeterminate {
3069
+ border-color: var(--color-primary-600);
3070
+ background-color: var(--color-primary-600);
3071
+ }
3072
+ .GeckoUICheckbox__input:disabled {
3073
+ cursor: not-allowed;
3074
+ border-color: var(--color-border-disabled);
3075
+ background-color: var(--color-surface-disabled);
3076
+ }
3077
+ .GeckoUICheckbox__input:checked:disabled,
3078
+ .GeckoUICheckbox__input:indeterminate:disabled {
3079
+ border-color: var(--color-primary-600);
3080
+ background-color: var(--color-primary-600);
3081
+ }
3082
+ .GeckoUICheckbox__input[aria-invalid=true] {
3083
+ border-color: var(--color-border-invalid);
3084
+ }
3085
+ .GeckoUICheckbox__input[aria-invalid=true]:hover:enabled {
3086
+ border-color: var(--color-border-invalid-hover);
3087
+ }
3088
+ .GeckoUICheckbox:has(:checked:disabled),
3089
+ .GeckoUICheckbox:has(:indeterminate:disabled) {
3090
+ opacity: 40%;
3091
+ }
3092
+ .GeckoUICheckbox__icon {
3093
+ pointer-events: none;
3094
+ position: absolute;
3095
+ inset: calc(var(--spacing, 0.25rem) * 0);
3096
+ z-index: 1;
3097
+ margin: auto;
3098
+ display: none;
3099
+ stroke-width: 5px;
3100
+ color: var(--color-text-on-primary);
3101
+ }
3102
+ .GeckoUICheckbox:has(:checked) .GeckoUICheckbox__icon,
3103
+ .GeckoUICheckbox:has(:indeterminate) .GeckoUICheckbox__icon {
3104
+ display: block;
3105
+ }
3106
+ .GeckoUITimeInputWrapper {
3107
+ --gecko-time-input-column-height: 15rem;
3108
+ --gecko-time-input-column-width: 4rem;
3109
+ --gecko-time-input-z: 10;
3110
+ position: relative;
3111
+ width: 100%;
3112
+ }
3113
+ .GeckoUITimeInput {
3114
+ box-sizing: border-box;
3115
+ border-width: 0;
3116
+ border-style: solid;
3117
+ border-color: #e5e7eb;
3118
+ position: relative;
3119
+ display: flex;
3120
+ min-height: calc(var(--spacing, 0.25rem) * 10);
3121
+ align-items: center;
3122
+ gap: calc(var(--spacing, 0.25rem) * 3);
3123
+ border-radius: var(--radius-md, 0.375rem);
3124
+ border-style: var(--tw-border-style);
3125
+ border-width: 1px;
3126
+ border-color: var(--color-border-secondary);
3127
+ padding-inline: calc(var(--spacing, 0.25rem) * 3);
3128
+ }
3129
+ .GeckoUITimeInput[data-state=disabled] {
3130
+ cursor: not-allowed;
3131
+ background-color: var(--color-surface-disabled);
3132
+ color: var(--color-text-disabled);
3133
+ }
3134
+ .GeckoUITimeInput[data-state=disabled] .GeckoUITimeInput__segment {
3135
+ cursor: not-allowed;
3136
+ }
3137
+ .GeckoUITimeInput[data-state=readonly] .GeckoUITimeInput__segment {
3138
+ cursor: default;
3139
+ }
3140
+ .GeckoUITimeInput[data-state=readonly] .GeckoUITimeInput__segment:hover,
3141
+ .GeckoUITimeInput[data-state=readonly] .GeckoUITimeInput__segment:focus-within {
3142
+ background-color: transparent;
3143
+ }
3144
+ .GeckoUITimeInput[data-state=enabled] {
3145
+ cursor: pointer;
3146
+ }
3147
+ .GeckoUITimeInput[data-state=enabled]:focus-within,
3148
+ .GeckoUITimeInput[data-state=enabled][data-focus] {
3149
+ border-color: var(--color-primary-500);
3150
+ }
3151
+ .GeckoUITimeInput[data-state=enabled]:hover {
3152
+ border-color: var(--color-primary-300);
3153
+ }
3154
+ .GeckoUITimeInput[aria-invalid=true],
3155
+ .GeckoUITimeInput[aria-invalid=true]:focus-within {
3156
+ border-color: var(--color-border-invalid);
3157
+ }
3158
+ .GeckoUITimeInput[aria-invalid=true]:hover {
3159
+ border-color: var(--color-border-invalid-hover);
3160
+ }
3161
+ .GeckoUITimeInput[data-empty] .GeckoUITimeInput__segments {
3162
+ width: calc(var(--spacing, 0.25rem) * 0);
3163
+ flex: 0;
3164
+ overflow: hidden;
3165
+ }
3166
+ .GeckoUITimeInput__placeholder {
3167
+ overflow: hidden;
3168
+ display: -webkit-box;
3169
+ -webkit-box-orient: vertical;
3170
+ -webkit-line-clamp: 1;
3171
+ flex: 1;
3172
+ font-size: var(--text-sm, 0.875rem);
3173
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3174
+ color: var(--color-text-placeholder);
3175
+ }
3176
+ .GeckoUITimeInput__segments {
3177
+ margin-left: 1px;
3178
+ display: flex;
3179
+ flex: 1;
3180
+ align-items: center;
3181
+ font-size: var(--text-sm, 0.875rem);
3182
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3183
+ }
3184
+ .GeckoUITimeInput__hidden-input {
3185
+ pointer-events: none;
3186
+ position: absolute;
3187
+ top: calc(var(--spacing, 0.25rem) * 0);
3188
+ left: calc(var(--spacing, 0.25rem) * 0);
3189
+ z-index: calc(10 * -1);
3190
+ height: 100%;
3191
+ width: 100%;
3192
+ --tw-border-style: none;
3193
+ border-style: none;
3194
+ background-color: transparent;
3195
+ opacity: 0%;
3196
+ --tw-outline-style: none;
3197
+ outline-style: none;
3198
+ }
3199
+ .GeckoUITimeInput__segment {
3200
+ cursor: text;
3201
+ border-radius: 0.25rem;
3202
+ padding-block: calc(var(--spacing, 0.25rem) * 0.5);
3203
+ text-align: center;
3204
+ font-size: var(--text-sm, 0.875rem);
3205
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3206
+ transition-property:
3207
+ color,
3208
+ background-color,
3209
+ border-color,
3210
+ outline-color,
3211
+ text-decoration-color,
3212
+ fill,
3213
+ stroke,
3214
+ --tw-gradient-from,
3215
+ --tw-gradient-via,
3216
+ --tw-gradient-to;
3217
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
3218
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
3219
+ --tw-duration: 150ms;
3220
+ transition-duration: 150ms;
3221
+ --tw-ease: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
3222
+ transition-timing-function: var(--ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
3223
+ }
3224
+ .GeckoUITimeInput__segment:focus-within {
3225
+ background-color: var(--color-surface-hover-strong);
3226
+ &:hover {
3227
+ @media (hover: hover) {
3228
+ background-color: var(--color-surface-hover-strong);
3229
+ }
3230
+ }
3231
+ }
3232
+ .GeckoUITimeInput__segment[data-empty] {
3233
+ color: var(--color-text-placeholder);
3234
+ }
3235
+ .GeckoUITimeInput__segment:hover {
3236
+ background-color: var(--color-surface-hover);
3237
+ }
3238
+ .GeckoUITimeInput__segment[data-segment=meridiem] {
3239
+ margin-left: calc(var(--spacing, 0.25rem) * 1);
3240
+ }
3241
+ .GeckoUITimeInput__separator {
3242
+ color: var(--color-text-muted);
3243
+ -webkit-user-select: none;
3244
+ user-select: none;
3245
+ }
3246
+ .GeckoUITimeInput[data-state=disabled] .GeckoUITimeInput__separator {
3247
+ color: var(--color-text-disabled);
3248
+ }
3249
+ .GeckoUITimeInput__prefix,
3250
+ .GeckoUITimeInput__suffix {
3251
+ display: flex;
3252
+ align-items: center;
3253
+ }
3254
+ .GeckoUITimeInput__icons {
3255
+ display: flex;
3256
+ align-items: center;
3257
+ }
3258
+ .GeckoUITimeInput__clear-button {
3259
+ box-sizing: border-box;
3260
+ border-width: 0;
3261
+ border-style: solid;
3262
+ border-color: #e5e7eb;
3263
+ font-family: inherit;
3264
+ font-feature-settings: inherit;
3265
+ font-variation-settings: inherit;
3266
+ font-size: 100%;
3267
+ font-weight: inherit;
3268
+ line-height: inherit;
3269
+ letter-spacing: inherit;
3270
+ color: inherit;
3271
+ margin: 0;
3272
+ padding: 0;
3273
+ text-transform: none;
3274
+ -webkit-appearance: button;
3275
+ background-color: transparent;
3276
+ background-image: none;
3277
+ display: flex;
3278
+ cursor: pointer;
3279
+ align-items: center;
3280
+ justify-content: center;
3281
+ padding: calc(var(--spacing, 0.25rem) * 1);
3282
+ }
3283
+ .GeckoUITimeInput__clear-button:hover .GeckoUI-icon__clear {
3284
+ background-color: var(--color-text-secondary);
3285
+ }
3286
+ .GeckoUITimeInput__clock-icon {
3287
+ height: calc(var(--spacing, 0.25rem) * 4);
3288
+ width: calc(var(--spacing, 0.25rem) * 4);
3289
+ flex-shrink: 0;
3290
+ color: var(--color-text-tertiary);
3291
+ }
3292
+ .GeckoUITimeInput[data-state=disabled] .GeckoUITimeInput__clock-icon {
3293
+ color: var(--color-text-disabled);
3294
+ }
3295
+ .GeckoUITimeInput__picker {
3296
+ box-sizing: border-box;
3297
+ border-width: 0;
3298
+ border-style: solid;
3299
+ border-color: #e5e7eb;
3300
+ overflow: hidden;
3301
+ border-radius: var(--radius-md, 0.375rem);
3302
+ border-style: var(--tw-border-style);
3303
+ border-width: 1px;
3304
+ border-color: var(--color-border-secondary);
3305
+ background-color: var(--color-surface-primary);
3306
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
3307
+ box-shadow:
3308
+ var(--tw-inset-shadow),
3309
+ var(--tw-inset-ring-shadow),
3310
+ var(--tw-ring-offset-shadow),
3311
+ var(--tw-ring-shadow),
3312
+ var(--tw-shadow);
3313
+ z-index: var(--gecko-time-input-z);
3314
+ }
3315
+ .GeckoUITimeInput__columns {
3316
+ display: flex;
3317
+ }
3318
+ .GeckoUITimeInput__column {
3319
+ box-sizing: border-box;
3320
+ border-width: 0;
3321
+ border-style: solid;
3322
+ border-color: #e5e7eb;
3323
+ overflow-y: auto;
3324
+ padding: calc(var(--spacing, 0.25rem) * 1);
3325
+ max-height: var(--gecko-time-input-column-height);
3326
+ min-width: var(--gecko-time-input-column-width);
3327
+ scrollbar-width: none;
3328
+ }
3329
+ .GeckoUITimeInput__column::-webkit-scrollbar {
3330
+ display: none;
3331
+ }
3332
+ .GeckoUITimeInput__column + .GeckoUITimeInput__column {
3333
+ border-left-style: var(--tw-border-style);
3334
+ border-left-width: 1px;
3335
+ border-color: var(--color-border-primary);
3336
+ }
3337
+ .GeckoUITimeInput__cell {
3338
+ box-sizing: border-box;
3339
+ border-width: 0;
3340
+ border-style: solid;
3341
+ border-color: #e5e7eb;
3342
+ font-family: inherit;
3343
+ font-feature-settings: inherit;
3344
+ font-variation-settings: inherit;
3345
+ font-size: 100%;
3346
+ font-weight: inherit;
3347
+ line-height: inherit;
3348
+ letter-spacing: inherit;
3349
+ color: inherit;
3350
+ margin: 0;
3351
+ padding: 0;
3352
+ text-transform: none;
3353
+ -webkit-appearance: button;
3354
+ background-color: transparent;
3355
+ background-image: none;
3356
+ width: 100%;
3357
+ cursor: pointer;
3358
+ border-radius: 0.25rem;
3359
+ padding-inline: calc(var(--spacing, 0.25rem) * 2);
3360
+ padding-block: calc(var(--spacing, 0.25rem) * 2.5);
3361
+ text-align: center;
3362
+ font-size: var(--text-base, 1rem);
3363
+ line-height: var(--tw-leading, var(--text-base--line-height, calc(1.5 / 1)));
3364
+ color: var(--color-text-primary);
3365
+ --tw-numeric-spacing: tabular-nums;
3366
+ font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
3367
+ }
3368
+ .GeckoUITimeInput__cell:hover:not(:disabled):not([data-state=selected]) {
3369
+ background-color: var(--color-surface-hover);
3370
+ }
3371
+ .GeckoUITimeInput__cell[data-state=selected] {
3372
+ background-color: var(--color-primary-600);
3373
+ --tw-font-weight: var(--font-weight-medium, 500);
3374
+ font-weight: var(--font-weight-medium, 500);
3375
+ color: var(--color-text-on-primary);
3376
+ }
3377
+ .GeckoUITimeInput__cell[data-state=selected]:hover:not(:disabled) {
3378
+ background-color: var(--color-primary-700);
3379
+ }
3380
+ .GeckoUITimeInput__cell:disabled {
3381
+ cursor: not-allowed;
3382
+ background-color: transparent;
3383
+ color: var(--color-text-disabled);
3384
+ }
3385
+ .GeckoUITimeInput__cell[data-state=selected]:disabled {
3386
+ background-color: var(--color-primary-600);
3387
+ color: var(--color-text-on-primary);
3388
+ opacity: 45%;
3389
+ }
3390
+ .GeckoUIFileInputWrapper {
3391
+ width: 100%;
3392
+ }
3393
+ .GeckoUIFileInput {
3394
+ box-sizing: border-box;
3395
+ border-width: 0;
3396
+ border-style: solid;
3397
+ border-color: #e5e7eb;
3398
+ position: relative;
3399
+ display: flex;
3400
+ min-height: calc(var(--spacing, 0.25rem) * 10);
3401
+ width: 100%;
3402
+ align-items: center;
3403
+ gap: calc(var(--spacing, 0.25rem) * 3);
3404
+ border-radius: var(--radius-md, 0.375rem);
3405
+ border-style: var(--tw-border-style);
3406
+ border-width: 1px;
3407
+ border-color: var(--color-border-secondary);
3408
+ padding-inline: calc(var(--spacing, 0.25rem) * 3);
3409
+ font-size: var(--text-sm, 0.875rem);
3410
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3411
+ color: var(--color-text-primary);
3412
+ }
3413
+ .GeckoUIFileInput[data-state=enabled] {
3414
+ cursor: pointer;
3415
+ }
3416
+ .GeckoUIFileInput[data-state=enabled]:hover {
3417
+ border-color: var(--color-primary-300);
3418
+ }
3419
+ .GeckoUIFileInput[data-state=enabled]:focus-visible {
3420
+ border-color: var(--color-primary-500);
3421
+ --tw-outline-style: none;
3422
+ outline-style: none;
3423
+ }
3424
+ .GeckoUIFileInput[data-state=readonly] {
3425
+ cursor: default;
3426
+ }
3427
+ .GeckoUIFileInput[data-state=disabled] {
3428
+ cursor: not-allowed;
3429
+ background-color: var(--color-surface-disabled);
3430
+ color: var(--color-text-disabled);
3431
+ }
3432
+ .GeckoUIFileInput[data-dragging] {
3433
+ border-color: var(--color-primary-400);
3434
+ background-color: var(--color-surface-hover);
3435
+ }
3436
+ .GeckoUIFileInput:has(.GeckoUIFileInput__trigger[aria-invalid=true]),
3437
+ .GeckoUIFileInput:has(.GeckoUIFileInput__trigger[aria-invalid=true])[data-dragging],
3438
+ .GeckoUIFileInput[data-state=enabled]:has(.GeckoUIFileInput__trigger[aria-invalid=true]):focus-visible {
3439
+ border-color: var(--color-border-invalid);
3440
+ }
3441
+ .GeckoUIFileInput[data-state=enabled]:has(.GeckoUIFileInput__trigger[aria-invalid=true]):hover {
3442
+ border-color: var(--color-border-invalid-hover);
3443
+ }
3444
+ .GeckoUIFileInput[data-custom] {
3445
+ min-height: calc(var(--spacing, 0.25rem) * 0);
3446
+ border-style: var(--tw-border-style);
3447
+ border-width: 0px;
3448
+ background-color: transparent;
3449
+ padding: calc(var(--spacing, 0.25rem) * 0);
3450
+ }
3451
+ .GeckoUIFileInput__trigger {
3452
+ display: flex;
3453
+ min-width: calc(var(--spacing, 0.25rem) * 0);
3454
+ flex: 1;
3455
+ cursor: pointer;
3456
+ align-items: center;
3457
+ background-color: transparent;
3458
+ padding: calc(var(--spacing, 0.25rem) * 0);
3459
+ text-align: left;
3460
+ }
3461
+ .GeckoUIFileInput__trigger:disabled {
3462
+ cursor: not-allowed;
3463
+ }
3464
+ .GeckoUIFileInput__trigger:focus-visible {
3465
+ border-radius: var(--radius-sm, 0.25rem);
3466
+ outline-style: var(--tw-outline-style);
3467
+ outline-width: 2px;
3468
+ outline-offset: 2px;
3469
+ outline-color: var(--color-primary-500);
3470
+ }
3471
+ .GeckoUIFileInput__value {
3472
+ flex: 1;
3473
+ overflow: hidden;
3474
+ text-overflow: ellipsis;
3475
+ white-space: nowrap;
3476
+ }
3477
+ .GeckoUIFileInput__placeholder {
3478
+ flex: 1;
3479
+ overflow: hidden;
3480
+ text-overflow: ellipsis;
3481
+ white-space: nowrap;
3482
+ color: var(--color-text-placeholder);
3483
+ }
3484
+ .GeckoUIFileInput__icons {
3485
+ display: flex;
3486
+ flex-shrink: 0;
3487
+ align-items: center;
3488
+ gap: calc(var(--spacing, 0.25rem) * 1.5);
3489
+ }
3490
+ .GeckoUIFileInput__icon {
3491
+ width: calc(var(--spacing, 0.25rem) * 4);
3492
+ height: calc(var(--spacing, 0.25rem) * 4);
3493
+ color: var(--color-text-tertiary);
3494
+ }
3495
+ .GeckoUIFileInput__spinner {
3496
+ width: calc(var(--spacing, 0.25rem) * 4);
3497
+ height: calc(var(--spacing, 0.25rem) * 4);
3498
+ }
3499
+ .GeckoUIFileInput__clear {
3500
+ display: flex;
3501
+ cursor: pointer;
3502
+ align-items: center;
3503
+ border-radius: 0.25rem;
3504
+ padding: calc(var(--spacing, 0.25rem) * 0.5);
3505
+ color: var(--color-text-tertiary);
3506
+ }
3507
+ .GeckoUIFileInput__clear:hover {
3508
+ background-color: var(--color-surface-hover);
3509
+ color: var(--color-text-primary);
3510
+ }
3511
+ .GeckoUIDateInputWrapper {
3512
+ width: 100%;
3513
+ }
3514
+ .GeckoUIDateInput__calendar {
3515
+ background-color: var(--color-surface-primary);
3516
+ }
3517
+ .GeckoUIDateInputWrapper {
3518
+ --gecko-date-input-z: 50;
3519
+ }
3520
+ .GeckoUIDateInput__calendar-layer {
3521
+ z-index: var(--gecko-date-input-z, 50);
3522
+ }
3523
+ .GeckoUIAccordion {
3524
+ box-sizing: border-box;
3525
+ border-width: 0;
3526
+ border-style: solid;
3527
+ border-color: #e5e7eb;
3528
+ --gecko-accordion-radius: 0.5rem;
3529
+ --gecko-accordion-gap: 0.5rem;
3530
+ --gecko-accordion-padding-x: 1rem;
3531
+ --gecko-accordion-padding-y: 0.75rem;
3532
+ --gecko-accordion-font-size: 0.875rem;
3533
+ --gecko-accordion-duration: 200ms;
3534
+ display: flex;
3535
+ flex-direction: column;
3536
+ gap: var(--gecko-accordion-gap);
3537
+ }
3538
+ .GeckoUIAccordion[data-size=sm] {
3539
+ --gecko-accordion-padding-x: 0.75rem;
3540
+ --gecko-accordion-padding-y: 0.5rem;
3541
+ --gecko-accordion-font-size: 0.8125rem;
3542
+ }
3543
+ .GeckoUIAccordion[data-size=lg] {
3544
+ --gecko-accordion-padding-x: 1.25rem;
3545
+ --gecko-accordion-padding-y: 1rem;
3546
+ --gecko-accordion-font-size: 1rem;
3547
+ }
3548
+ .GeckoUIAccordion__item {
3549
+ overflow: hidden;
3550
+ }
3551
+ .GeckoUIAccordion__header {
3552
+ box-sizing: border-box;
3553
+ border-width: 0;
3554
+ border-style: solid;
3555
+ border-color: #e5e7eb;
3556
+ font-family: inherit;
3557
+ font-feature-settings: inherit;
3558
+ font-variation-settings: inherit;
3559
+ font-size: 100%;
3560
+ font-weight: inherit;
3561
+ line-height: inherit;
3562
+ letter-spacing: inherit;
3563
+ color: inherit;
3564
+ margin: 0;
3565
+ padding: 0;
3566
+ text-transform: none;
3567
+ -webkit-appearance: button;
3568
+ background-color: transparent;
3569
+ background-image: none;
3570
+ display: flex;
3571
+ width: 100%;
3572
+ cursor: pointer;
3573
+ align-items: center;
3574
+ justify-content: space-between;
3575
+ gap: calc(var(--spacing, 0.25rem) * 3);
3576
+ text-align: left;
3577
+ --tw-font-weight: var(--font-weight-medium, 500);
3578
+ font-weight: var(--font-weight-medium, 500);
3579
+ transition-property:
3580
+ color,
3581
+ background-color,
3582
+ border-color,
3583
+ outline-color,
3584
+ text-decoration-color,
3585
+ fill,
3586
+ stroke,
3587
+ --tw-gradient-from,
3588
+ --tw-gradient-via,
3589
+ --tw-gradient-to;
3590
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
3591
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
3592
+ padding: var(--gecko-accordion-padding-y) var(--gecko-accordion-padding-x);
3593
+ font-size: var(--gecko-accordion-font-size);
3594
+ color: var(--color-text-primary);
3595
+ }
3596
+ .GeckoUIAccordion__header:focus-visible {
3597
+ outline: 2px solid var(--color-primary-300);
3598
+ outline-offset: -2px;
3599
+ }
3600
+ .GeckoUIAccordion__header[data-disabled] {
3601
+ cursor: not-allowed;
3602
+ opacity: 50%;
3603
+ }
3604
+ .GeckoUIAccordion__header__content {
3605
+ display: flex;
3606
+ min-width: calc(var(--spacing, 0.25rem) * 0);
3607
+ align-items: center;
3608
+ gap: calc(var(--spacing, 0.25rem) * 2);
3609
+ }
3610
+ .GeckoUIAccordion__header__icon {
3611
+ flex-shrink: 0;
3612
+ transition-property:
3613
+ transform,
3614
+ translate,
3615
+ scale,
3616
+ rotate;
3617
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
3618
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
3619
+ transition-duration: var(--gecko-accordion-duration);
3620
+ color: var(--color-text-tertiary);
3621
+ }
3622
+ .GeckoUIAccordion__header:hover:not([data-disabled]) .GeckoUIAccordion__header__content {
3623
+ text-decoration-line: underline;
3624
+ text-decoration-thickness: 1px;
3625
+ text-underline-offset: 4px;
3626
+ }
3627
+ .GeckoUIAccordion__header:hover:not([data-disabled]) .GeckoUIAccordion__header__icon {
3628
+ color: var(--color-text-primary);
3629
+ }
3630
+ .GeckoUIAccordion__header[data-state=open] .GeckoUIAccordion__header__icon {
3631
+ rotate: 180deg;
3632
+ }
3633
+ .GeckoUIAccordion__panel {
3634
+ display: grid;
3635
+ grid-template-rows: 0fr;
3636
+ transition: grid-template-rows var(--gecko-accordion-duration) ease;
3637
+ }
3638
+ .GeckoUIAccordion__panel[data-state=open] {
3639
+ grid-template-rows: 1fr;
3640
+ }
3641
+ .GeckoUIAccordion__panel__inner {
3642
+ overflow: hidden;
3643
+ }
3644
+ .GeckoUIAccordion__panel__content {
3645
+ font-size: var(--gecko-accordion-font-size);
3646
+ color: var(--color-text-secondary);
3647
+ padding: 0 var(--gecko-accordion-padding-x) var(--gecko-accordion-padding-y);
3648
+ }
3649
+ .GeckoUIAccordion[data-variant=separated] .GeckoUIAccordion__item {
3650
+ border-style: var(--tw-border-style);
3651
+ border-width: 1px;
3652
+ border-color: var(--color-border-primary);
3653
+ border-radius: var(--gecko-accordion-radius);
3654
+ }
3655
+ .GeckoUIAccordion[data-variant=contained] {
3656
+ --gecko-accordion-gap: 0;
3657
+ overflow: hidden;
3658
+ border-style: var(--tw-border-style);
3659
+ border-width: 1px;
3660
+ border-color: var(--color-border-primary);
3661
+ border-radius: var(--gecko-accordion-radius);
3662
+ }
3663
+ .GeckoUIAccordion[data-variant=contained] .GeckoUIAccordion__item + .GeckoUIAccordion__item {
3664
+ border-top-style: var(--tw-border-style);
3665
+ border-top-width: 1px;
3666
+ border-color: var(--color-border-primary);
3667
+ }
3668
+ .GeckoUIAccordion[data-variant=plain] {
3669
+ --gecko-accordion-gap: 0;
3670
+ --gecko-accordion-padding-x: 0;
3671
+ }
3672
+ .GeckoUIAccordion[data-variant=plain] .GeckoUIAccordion__item + .GeckoUIAccordion__item {
3673
+ border-top-style: var(--tw-border-style);
3674
+ border-top-width: 1px;
3675
+ border-color: var(--color-border-primary);
3676
+ }
3677
+ @media (prefers-reduced-motion: reduce) {
3678
+ .GeckoUIAccordion__panel,
3679
+ .GeckoUIAccordion__header__icon {
3680
+ transition: none;
3681
+ }
3682
+ }
3683
+ .GeckoUISelect {
3684
+ position: relative;
3685
+ display: flex;
3686
+ width: 100%;
3687
+ flex-direction: column;
3688
+ align-self: flex-start;
3689
+ font-size: var(--text-sm, 0.875rem);
3690
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3691
+ color: var(--color-text-primary);
3692
+ }
3693
+ .GeckoUIPagination {
3694
+ box-sizing: border-box;
3695
+ border-width: 0;
3696
+ border-style: solid;
3697
+ border-color: #e5e7eb;
3698
+ display: flex;
3699
+ width: 100%;
3700
+ align-items: center;
3701
+ justify-content: space-between;
3702
+ :where(& > :not(:last-child)) {
3703
+ --tw-space-x-reverse: 0;
3704
+ margin-inline-start: calc(calc(var(--spacing, 0.25rem) * 2) * var(--tw-space-x-reverse));
3705
+ margin-inline-end: calc(calc(var(--spacing, 0.25rem) * 2) * calc(1 - var(--tw-space-x-reverse)));
3706
+ }
3707
+ border-top-style: var(--tw-border-style);
3708
+ border-top-width: 1px;
3709
+ padding-inline: calc(var(--spacing, 0.25rem) * 4);
3710
+ @media (width >= 40rem) {
3711
+ margin-inline: calc(var(--spacing, 0.25rem) * 0);
3712
+ }
3713
+ @media (width >= 40rem) {
3714
+ justify-content: center;
3715
+ }
3716
+ }
3717
+ .GeckoUIPagination__arrow {
3718
+ box-sizing: border-box;
3719
+ border-width: 0;
3720
+ border-style: solid;
3721
+ border-color: #e5e7eb;
3722
+ font-family: inherit;
3723
+ font-feature-settings: inherit;
3724
+ font-variation-settings: inherit;
3725
+ font-size: 100%;
3726
+ font-weight: inherit;
3727
+ line-height: inherit;
3728
+ letter-spacing: inherit;
3729
+ color: inherit;
3730
+ margin: 0;
3731
+ padding: 0;
3732
+ text-transform: none;
3733
+ -webkit-appearance: button;
3734
+ cursor: pointer;
3735
+ background-color: transparent;
3736
+ background-image: none;
3737
+ position: relative;
3738
+ display: flex;
3739
+ height: calc(var(--spacing, 0.25rem) * 10);
3740
+ align-items: center;
3741
+ justify-content: center;
3742
+ padding: calc(var(--spacing, 0.25rem) * 4);
3743
+ font-size: var(--text-sm, 0.875rem);
3744
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3745
+ --tw-font-weight: var(--font-weight-medium, 500);
3746
+ font-weight: var(--font-weight-medium, 500);
3747
+ color: var(--color-text-muted);
3748
+ }
3749
+ .GeckoUIPagination__arrow:disabled {
3750
+ cursor: not-allowed;
3751
+ }
3752
+ .GeckoUIPagination__arrow__icon {
3753
+ box-sizing: border-box;
3754
+ border-width: 0;
3755
+ border-style: solid;
3756
+ border-color: #e5e7eb;
3757
+ display: inline-block;
3758
+ height: calc(var(--spacing, 0.25rem) * 4);
3759
+ width: calc(var(--spacing, 0.25rem) * 4);
3760
+ background-color: var(--color-text-primary);
3761
+ mask-position: center;
3762
+ mask-size: contain;
3763
+ mask-repeat: no-repeat;
3764
+ height: calc(var(--spacing, 0.25rem) * 5);
3765
+ width: calc(var(--spacing, 0.25rem) * 5);
3766
+ background-color: var(--color-text-muted);
3767
+ }
3768
+ .GeckoUIPagination__arrow__icon[data-direction=previous] {
3769
+ mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.2906 6.18134C13.5777 6.47992 13.5684 6.9547 13.2698 7.2418L9.33208 10.9512L13.2698 14.6605C13.5684 14.9476 13.5777 15.4224 13.2906 15.721C13.0035 16.0196 12.5287 16.0289 12.2302 15.7418L7.73017 11.4918C7.58311 11.3504 7.5 11.1552 7.5 10.9512C7.5 10.7472 7.58311 10.552 7.73017 10.4105L12.2302 6.16055C12.5287 5.87345 13.0035 5.88276 13.2906 6.18134Z" fill="%236B7280"/></svg>');
3770
+ -webkit-mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.2906 6.18134C13.5777 6.47992 13.5684 6.9547 13.2698 7.2418L9.33208 10.9512L13.2698 14.6605C13.5684 14.9476 13.5777 15.4224 13.2906 15.721C13.0035 16.0196 12.5287 16.0289 12.2302 15.7418L7.73017 11.4918C7.58311 11.3504 7.5 11.1552 7.5 10.9512C7.5 10.7472 7.58311 10.552 7.73017 10.4105L12.2302 6.16055C12.5287 5.87345 13.0035 5.88276 13.2906 6.18134Z" fill="%236B7280"/></svg>');
3771
+ }
3772
+ .GeckoUIPagination__arrow__icon[data-direction=next] {
3773
+ mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.70938 15.721C7.42228 15.4224 7.43159 14.9476 7.73017 14.6605L11.6679 10.9512L7.73017 7.2418C7.43159 6.9547 7.42228 6.47992 7.70938 6.18134C7.99647 5.88276 8.47125 5.87345 8.76983 6.16055L13.2698 10.4105C13.4169 10.5519 13.5 10.7472 13.5 10.9512C13.5 11.1552 13.4169 11.3504 13.2698 11.4918L8.76983 15.7418C8.47125 16.0289 7.99647 16.0196 7.70938 15.721Z" fill="%236B7280"/></svg>');
3774
+ -webkit-mask-image: url('data:image/svg+xml,<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.70938 15.721C7.42228 15.4224 7.43159 14.9476 7.73017 14.6605L11.6679 10.9512L7.73017 7.2418C7.43159 6.9547 7.42228 6.47992 7.70938 6.18134C7.99647 5.88276 8.47125 5.87345 8.76983 6.16055L13.2698 10.4105C13.4169 10.5519 13.5 10.7472 13.5 10.9512C13.5 11.1552 13.4169 11.3504 13.2698 11.4918L8.76983 15.7418C8.47125 16.0289 7.99647 16.0196 7.70938 15.721Z" fill="%236B7280"/></svg>');
3775
+ }
3776
+ .GeckoUIPagination__arrow:disabled .GeckoUIPagination__arrow__icon {
3777
+ background-color: var(--color-border-secondary);
3778
+ }
3779
+ .GeckoUIPagination__page-count {
3780
+ display: flex;
3781
+ flex-direction: row;
3782
+ align-items: center;
3783
+ justify-content: center;
3784
+ column-gap: calc(var(--spacing, 0.25rem) * 1);
3785
+ padding: calc(var(--spacing, 0.25rem) * 4);
3786
+ font-size: var(--text-sm, 0.875rem);
3787
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3788
+ --tw-font-weight: var(--font-weight-medium, 500);
3789
+ font-weight: var(--font-weight-medium, 500);
3790
+ color: var(--color-text-muted);
3791
+ @media (width >= 40rem) {
3792
+ display: none;
3793
+ }
3794
+ }
3795
+ .GeckoUIPagination__page-buttons {
3796
+ display: none;
3797
+ flex-direction: row;
3798
+ column-gap: calc(var(--spacing, 0.25rem) * 2);
3799
+ @media (width >= 40rem) {
3800
+ display: flex;
3801
+ }
3802
+ }
3803
+ .GeckoUIPagination__page-button {
3804
+ box-sizing: border-box;
3805
+ border-width: 0;
3806
+ border-style: solid;
3807
+ border-color: #e5e7eb;
3808
+ font-family: inherit;
3809
+ font-feature-settings: inherit;
3810
+ font-variation-settings: inherit;
3811
+ font-size: 100%;
3812
+ font-weight: inherit;
3813
+ line-height: inherit;
3814
+ letter-spacing: inherit;
3815
+ color: inherit;
3816
+ margin: 0;
3817
+ padding: 0;
3818
+ text-transform: none;
3819
+ -webkit-appearance: button;
3820
+ cursor: pointer;
3821
+ background-color: transparent;
3822
+ background-image: none;
3823
+ position: relative;
3824
+ display: flex;
3825
+ height: calc(var(--spacing, 0.25rem) * 10);
3826
+ align-items: center;
3827
+ justify-content: center;
3828
+ padding: calc(var(--spacing, 0.25rem) * 4);
3829
+ font-size: var(--text-sm, 0.875rem);
3830
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3831
+ --tw-font-weight: var(--font-weight-medium, 500);
3832
+ font-weight: var(--font-weight-medium, 500);
3833
+ color: var(--color-text-muted);
3834
+ }
3835
+ .GeckoUIPagination__page-button:hover {
3836
+ color: var(--color-text-primary);
3837
+ }
3838
+ .GeckoUIPagination__page-button[data-active] {
3839
+ color: var(--color-primary-600);
3840
+ text-decoration-line: underline;
3841
+ text-underline-offset: 2px;
3842
+ }
3843
+ .GeckoUIPagination__page-button[data-active]:hover {
3844
+ color: var(--color-primary-700);
3845
+ }
3846
+ .GeckoUIPagination__page-button[data-ellipsis] {
3847
+ cursor: default;
3848
+ color: var(--color-text-disabled);
3849
+ }
3850
+ .GeckoUIInputError {
3851
+ width: 100%;
3852
+ font-size: var(--text-sm, 0.875rem);
3853
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3854
+ --tw-font-weight: var(--font-weight-normal, 400);
3855
+ font-weight: var(--font-weight-normal, 400);
3856
+ color: var(--color-error);
3857
+ }
3858
+ .GeckoUIColorInputWrapper {
3859
+ --gecko-color-input-z: 10;
3860
+ position: relative;
3861
+ width: 100%;
3862
+ }
3863
+ .GeckoUIColorInputWrapper[data-custom] {
3864
+ width: fit-content;
3865
+ }
3866
+ .GeckoUIColorInput {
3867
+ box-sizing: border-box;
3868
+ border-width: 0;
3869
+ border-style: solid;
3870
+ border-color: #e5e7eb;
3871
+ --gecko-color-input-height: 2.5rem;
3872
+ --gecko-color-input-swatch-size: 1.25rem;
3873
+ --gecko-color-input-radius: 0.375rem;
3874
+ --gecko-color-input-checker-size: 6px;
3875
+ --gecko-color-input-checker: #cbd5e1;
3876
+ display: flex;
3877
+ width: 100%;
3878
+ align-items: center;
3879
+ gap: calc(var(--spacing, 0.25rem) * 2);
3880
+ border-style: var(--tw-border-style);
3881
+ border-width: 1px;
3882
+ border-color: var(--color-border-secondary);
3883
+ padding-inline: calc(var(--spacing, 0.25rem) * 3);
3884
+ font-size: var(--text-sm, 0.875rem);
3885
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
3886
+ color: var(--color-text-primary);
3887
+ height: var(--gecko-color-input-height);
3888
+ border-radius: var(--gecko-color-input-radius);
3889
+ }
3890
+ .GeckoUIColorInput[data-custom] {
3891
+ height: auto;
3892
+ width: auto;
3893
+ border-style: var(--tw-border-style);
3894
+ border-width: 0px;
3895
+ background-color: transparent;
3896
+ padding: calc(var(--spacing, 0.25rem) * 0);
3897
+ }
3898
+ .GeckoUIColorInput[data-state=enabled] {
3899
+ cursor: pointer;
3900
+ }
3901
+ .GeckoUIColorInput[data-state=enabled]:hover,
3902
+ .GeckoUIColorInput[data-state=enabled][data-open] {
3903
+ border-color: var(--color-primary-400);
3904
+ }
3905
+ .GeckoUIColorInput[data-state=readonly] {
3906
+ cursor: default;
3907
+ }
3908
+ .GeckoUIColorInput[data-state=disabled] {
3909
+ cursor: not-allowed;
3910
+ background-color: var(--color-surface-disabled);
3911
+ color: var(--color-text-disabled);
3912
+ }
3913
+ .GeckoUIColorInput[aria-invalid=true],
3914
+ .GeckoUIColorInput[aria-invalid=true][data-open] {
3915
+ border-color: var(--color-border-invalid);
3916
+ }
3917
+ .GeckoUIColorInput[data-state=enabled][aria-invalid=true]:hover {
3918
+ border-color: var(--color-border-invalid-hover);
3919
+ }
3920
+ .GeckoUIColorInput:focus-visible {
3921
+ outline-style: var(--tw-outline-style);
3922
+ outline-width: 2px;
3923
+ outline-offset: 2px;
3924
+ outline-color: var(--color-primary-500);
3925
+ }
3926
+ .GeckoUIColorInput__swatch {
3927
+ display: block;
3928
+ width: var(--gecko-color-input-swatch-size);
3929
+ height: var(--gecko-color-input-swatch-size);
3930
+ flex-shrink: 0;
3931
+ border-radius: 0.25rem;
3932
+ --gecko-color-layer: transparent;
3933
+ --gecko-color-input-checker-tile: calc(var(--gecko-color-input-checker-size) * 2);
3934
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
3935
+ background-color: #fff;
3936
+ background-image:
3937
+ linear-gradient(var(--gecko-color-layer), var(--gecko-color-layer)),
3938
+ linear-gradient(
3939
+ 45deg,
3940
+ var(--gecko-color-input-checker) 25%,
3941
+ transparent 25%),
3942
+ linear-gradient(
3943
+ -45deg,
3944
+ var(--gecko-color-input-checker) 25%,
3945
+ transparent 25%),
3946
+ linear-gradient(
3947
+ 45deg,
3948
+ transparent 75%,
3949
+ var(--gecko-color-input-checker) 75%),
3950
+ linear-gradient(
3951
+ -45deg,
3952
+ transparent 75%,
3953
+ var(--gecko-color-input-checker) 75%);
3954
+ background-size:
3955
+ auto,
3956
+ var(--gecko-color-input-checker-tile) var(--gecko-color-input-checker-tile),
3957
+ var(--gecko-color-input-checker-tile) var(--gecko-color-input-checker-tile),
3958
+ var(--gecko-color-input-checker-tile) var(--gecko-color-input-checker-tile),
3959
+ var(--gecko-color-input-checker-tile) var(--gecko-color-input-checker-tile);
3960
+ background-position:
3961
+ 0 0,
3962
+ 0 0,
3963
+ 0 var(--gecko-color-input-checker-size),
3964
+ var(--gecko-color-input-checker-size) calc(var(--gecko-color-input-checker-size) * -1),
3965
+ calc(var(--gecko-color-input-checker-size) * -1) 0;
3966
+ }
3967
+ .GeckoUIColorInput__value {
3968
+ flex: 1;
3969
+ overflow: hidden;
3970
+ text-overflow: ellipsis;
3971
+ white-space: nowrap;
3972
+ text-align: left;
3973
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
3974
+ text-transform: uppercase;
3975
+ }
3976
+ .GeckoUIColorInput__placeholder {
3977
+ flex: 1;
3978
+ overflow: hidden;
3979
+ text-overflow: ellipsis;
3980
+ white-space: nowrap;
3981
+ text-align: left;
3982
+ color: var(--color-text-placeholder);
3983
+ }
3984
+ .GeckoUIColorInput__caret {
3985
+ width: calc(var(--spacing, 0.25rem) * 0);
3986
+ height: calc(var(--spacing, 0.25rem) * 0);
3987
+ flex-shrink: 0;
3988
+ border-style: var(--tw-border-style);
3989
+ border-width: 4px;
3990
+ border-color: transparent;
3991
+ border-top-color: var(--color-text-tertiary);
3992
+ margin-top: 0.25rem;
3993
+ }
3994
+ .GeckoUIColorInput__panel {
3995
+ border-radius: var(--radius-lg, 0.5rem);
3996
+ border-style: var(--tw-border-style);
3997
+ border-width: 1px;
3998
+ border-color: var(--color-border-primary);
3999
+ background-color: var(--color-surface-primary);
4000
+ padding: calc(var(--spacing, 0.25rem) * 3);
4001
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
4002
+ box-shadow:
4003
+ var(--tw-inset-shadow),
4004
+ var(--tw-inset-ring-shadow),
4005
+ var(--tw-ring-offset-shadow),
4006
+ var(--tw-ring-shadow),
4007
+ var(--tw-shadow);
4008
+ z-index: var(--gecko-color-input-z, 10);
4009
+ }
4010
+ .GeckoUIBreadcrumb {
4011
+ --gecko-breadcrumb-gap: 0.5rem;
4012
+ --gecko-breadcrumb-link: var(--color-text-primary);
4013
+ --gecko-breadcrumb-current: var(--color-text-tertiary);
4014
+ --gecko-breadcrumb-separator: var(--color-text-placeholder);
4015
+ --gecko-breadcrumb-separator-size: 0.875rem;
4016
+ box-sizing: border-box;
4017
+ border-width: 0;
4018
+ border-style: solid;
4019
+ border-color: #e5e7eb;
4020
+ }
4021
+ .GeckoUIBreadcrumb[data-size=sm] {
4022
+ --gecko-breadcrumb-gap: 0.375rem;
4023
+ --gecko-breadcrumb-separator-size: 0.75rem;
4024
+ font-size: var(--text-xs, 0.75rem);
4025
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
4026
+ }
4027
+ .GeckoUIBreadcrumb[data-size=md] {
4028
+ font-size: var(--text-sm, 0.875rem);
4029
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
4030
+ }
4031
+ .GeckoUIBreadcrumb[data-size=lg] {
4032
+ --gecko-breadcrumb-gap: 0.625rem;
4033
+ --gecko-breadcrumb-separator-size: 1rem;
4034
+ font-size: var(--text-base, 1rem);
4035
+ line-height: var(--tw-leading, var(--text-base--line-height, calc(1.5 / 1)));
4036
+ }
4037
+ .GeckoUIBreadcrumb__list {
4038
+ box-sizing: border-box;
4039
+ border-width: 0;
4040
+ border-style: solid;
4041
+ border-color: #e5e7eb;
4042
+ display: flex;
4043
+ list-style-type: none;
4044
+ flex-wrap: wrap;
4045
+ align-items: center;
4046
+ padding: calc(var(--spacing, 0.25rem) * 0);
4047
+ gap: var(--gecko-breadcrumb-gap);
4048
+ }
4049
+ .GeckoUIBreadcrumb__crumb {
4050
+ display: inline-flex;
4051
+ min-width: calc(var(--spacing, 0.25rem) * 0);
4052
+ align-items: center;
4053
+ }
4054
+ .GeckoUIBreadcrumb__separator {
4055
+ display: inline-flex;
4056
+ flex-shrink: 0;
4057
+ align-items: center;
4058
+ -webkit-user-select: none;
4059
+ user-select: none;
4060
+ color: var(--gecko-breadcrumb-separator);
4061
+ }
4062
+ .GeckoUIBreadcrumb__separator svg {
4063
+ width: var(--gecko-breadcrumb-separator-size);
4064
+ height: var(--gecko-breadcrumb-separator-size);
4065
+ }
4066
+ .GeckoUIBreadcrumb__link {
4067
+ display: inline-flex;
4068
+ align-items: center;
4069
+ gap: calc(var(--spacing, 0.25rem) * 1.5);
4070
+ overflow: hidden;
4071
+ text-overflow: ellipsis;
4072
+ white-space: nowrap;
4073
+ border-radius: 0.25rem;
4074
+ color: var(--gecko-breadcrumb-link);
4075
+ }
4076
+ .GeckoUIBreadcrumb__link:is(a) {
4077
+ cursor: pointer;
4078
+ }
4079
+ .GeckoUIBreadcrumb__link:is(a):hover {
4080
+ text-decoration-line: underline;
4081
+ }
4082
+ .GeckoUIBreadcrumb__link:focus-visible {
4083
+ outline: 2px solid var(--color-primary-300);
4084
+ outline-offset: 2px;
4085
+ }
4086
+ .GeckoUIBreadcrumb__link[data-current] {
4087
+ color: var(--gecko-breadcrumb-current);
4088
+ }
4089
+ .GeckoUIBreadcrumb__menu {
4090
+ box-sizing: border-box;
4091
+ border-width: 0;
4092
+ border-style: solid;
4093
+ border-color: #e5e7eb;
4094
+ display: flex;
4095
+ list-style-type: none;
4096
+ flex-direction: column;
4097
+ border-radius: var(--radius-md, 0.375rem);
4098
+ border-style: var(--tw-border-style);
4099
+ border-width: 1px;
4100
+ border-color: var(--color-border-secondary);
4101
+ background-color: var(--color-surface-primary);
4102
+ padding: calc(var(--spacing, 0.25rem) * 1);
4103
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
4104
+ box-shadow:
4105
+ var(--tw-inset-shadow),
4106
+ var(--tw-inset-ring-shadow),
4107
+ var(--tw-ring-offset-shadow),
4108
+ var(--tw-ring-shadow),
4109
+ var(--tw-shadow);
4110
+ z-index: var(--gecko-breadcrumb-z, 10);
4111
+ min-width: 10rem;
4112
+ }
4113
+ .GeckoUIBreadcrumb__menu__item {
4114
+ display: flex;
4115
+ }
4116
+ .GeckoUIBreadcrumb__menu__item .GeckoUIBreadcrumb__link {
4117
+ width: 100%;
4118
+ border-radius: 0.25rem;
4119
+ padding-inline: calc(var(--spacing, 0.25rem) * 2);
4120
+ padding-block: calc(var(--spacing, 0.25rem) * 1.5);
4121
+ }
4122
+ .GeckoUIBreadcrumb__menu__item .GeckoUIBreadcrumb__link:hover {
4123
+ background-color: var(--color-surface-hover);
4124
+ text-decoration-line: none;
4125
+ }
4126
+ .GeckoUIBreadcrumb__expand {
4127
+ box-sizing: border-box;
4128
+ border-width: 0;
4129
+ border-style: solid;
4130
+ border-color: #e5e7eb;
4131
+ font-family: inherit;
4132
+ font-feature-settings: inherit;
4133
+ font-variation-settings: inherit;
4134
+ font-size: 100%;
4135
+ font-weight: inherit;
4136
+ line-height: inherit;
4137
+ letter-spacing: inherit;
4138
+ color: inherit;
4139
+ margin: 0;
4140
+ padding: 0;
4141
+ text-transform: none;
4142
+ -webkit-appearance: button;
4143
+ background-color: transparent;
4144
+ background-image: none;
4145
+ display: inline-flex;
4146
+ cursor: pointer;
4147
+ align-items: center;
4148
+ border-radius: 0.25rem;
4149
+ padding-inline: calc(var(--spacing, 0.25rem) * 1);
4150
+ --tw-leading: 1;
4151
+ line-height: 1;
4152
+ color: var(--gecko-breadcrumb-link);
4153
+ }
4154
+ .GeckoUIBreadcrumb__expand:hover {
4155
+ background-color: var(--color-surface-hover);
4156
+ }
4157
+ .GeckoUIBreadcrumb__expand:focus-visible {
4158
+ outline: 2px solid var(--color-primary-300);
4159
+ outline-offset: 2px;
4160
+ }
4161
+ .GeckoUIColorPicker {
4162
+ box-sizing: border-box;
4163
+ border-width: 0;
4164
+ border-style: solid;
4165
+ border-color: #e5e7eb;
4166
+ --gecko-color-picker-width: 16rem;
4167
+ --gecko-color-picker-saturation-height: 10rem;
4168
+ --gecko-color-picker-radius: 0.5rem;
4169
+ --gecko-color-picker-gap: 0.75rem;
4170
+ --gecko-color-picker-slider-height: 0.75rem;
4171
+ --gecko-color-picker-thumb-size: 0.875rem;
4172
+ --gecko-color-picker-thumb-ring: #fff;
4173
+ --gecko-color-picker-preview-size: 2rem;
4174
+ --gecko-color-picker-swatch-size: 1.25rem;
4175
+ --gecko-color-picker-checker-size: 8px;
4176
+ --gecko-color-picker-checker: #cbd5e1;
4177
+ display: flex;
4178
+ width: var(--gecko-color-picker-width);
4179
+ flex-direction: column;
4180
+ gap: var(--gecko-color-picker-gap);
4181
+ }
4182
+ .GeckoUIColorPicker[data-disabled] {
4183
+ pointer-events: none;
4184
+ opacity: 60%;
4185
+ }
4186
+ .GeckoUIColorPicker__saturation {
4187
+ position: relative;
4188
+ width: 100%;
4189
+ touch-action: none;
4190
+ -webkit-user-select: none;
4191
+ user-select: none;
4192
+ height: var(--gecko-color-picker-saturation-height);
4193
+ border-radius: var(--gecko-color-picker-radius);
4194
+ cursor: crosshair;
4195
+ background-image:
4196
+ linear-gradient(
4197
+ to top,
4198
+ #000,
4199
+ transparent),
4200
+ linear-gradient(
4201
+ to right,
4202
+ #fff,
4203
+ transparent);
4204
+ background-blend-mode: normal;
4205
+ }
4206
+ .GeckoUIColorPicker__saturation__thumb {
4207
+ position: absolute;
4208
+ display: block;
4209
+ width: var(--gecko-color-picker-thumb-size);
4210
+ height: var(--gecko-color-picker-thumb-size);
4211
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
4212
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
4213
+ translate: var(--tw-translate-x) var(--tw-translate-y);
4214
+ border-radius: calc(infinity * 1px);
4215
+ border-style: var(--tw-border-style);
4216
+ border-width: 2px;
4217
+ background-color: transparent;
4218
+ padding: calc(var(--spacing, 0.25rem) * 0);
4219
+ border-color: var(--gecko-color-picker-thumb-ring);
4220
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3);
4221
+ cursor: grab;
4222
+ }
4223
+ .GeckoUIColorPicker__saturation__thumb:focus-visible {
4224
+ outline-style: var(--tw-outline-style);
4225
+ outline-width: 2px;
4226
+ outline-offset: 2px;
4227
+ outline-color: var(--color-primary-500);
4228
+ }
4229
+ .GeckoUIColorPicker__saturation__thumb[data-custom] {
4230
+ width: auto;
4231
+ height: auto;
4232
+ border-style: var(--tw-border-style);
4233
+ border-width: 0px;
4234
+ background-color: transparent;
4235
+ --tw-shadow: 0 0 #0000;
4236
+ box-shadow:
4237
+ var(--tw-inset-shadow),
4238
+ var(--tw-inset-ring-shadow),
4239
+ var(--tw-ring-offset-shadow),
4240
+ var(--tw-ring-shadow),
4241
+ var(--tw-shadow);
4242
+ }
4243
+ .GeckoUIColorPicker__saturation[data-dragging] .GeckoUIColorPicker__saturation__thumb {
4244
+ cursor: grabbing;
4245
+ }
4246
+ .GeckoUIColorPicker__controls {
4247
+ display: flex;
4248
+ align-items: center;
4249
+ gap: var(--gecko-color-picker-gap);
4250
+ }
4251
+ .GeckoUIColorPicker__preview {
4252
+ width: var(--gecko-color-picker-preview-size);
4253
+ height: var(--gecko-color-picker-preview-size);
4254
+ flex-shrink: 0;
4255
+ border-radius: calc(infinity * 1px);
4256
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
4257
+ }
4258
+ .GeckoUIColorPicker__sliders {
4259
+ display: flex;
4260
+ min-width: calc(var(--spacing, 0.25rem) * 0);
4261
+ flex: 1;
4262
+ flex-direction: column;
4263
+ gap: calc(var(--spacing, 0.25rem) * 2);
4264
+ }
4265
+ .GeckoUIColorPicker__slider {
4266
+ position: relative;
4267
+ width: 100%;
4268
+ touch-action: none;
4269
+ -webkit-user-select: none;
4270
+ user-select: none;
4271
+ height: var(--gecko-color-picker-slider-height);
4272
+ }
4273
+ .GeckoUIColorPicker__slider__track {
4274
+ position: absolute;
4275
+ inset: calc(var(--spacing, 0.25rem) * 0);
4276
+ border-radius: calc(infinity * 1px);
4277
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
4278
+ }
4279
+ .GeckoUIColorPicker__slider[data-kind=hue] .GeckoUIColorPicker__slider__track {
4280
+ background:
4281
+ linear-gradient(
4282
+ to right,
4283
+ #f00 0%,
4284
+ #ff0 17%,
4285
+ #0f0 33%,
4286
+ #0ff 50%,
4287
+ #00f 67%,
4288
+ #f0f 83%,
4289
+ #f00 100%);
4290
+ }
4291
+ .GeckoUIColorPicker__slider__thumb {
4292
+ position: absolute;
4293
+ top: calc(1/2 * 100%);
4294
+ display: block;
4295
+ width: var(--gecko-color-picker-thumb-size);
4296
+ height: var(--gecko-color-picker-thumb-size);
4297
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
4298
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
4299
+ translate: var(--tw-translate-x) var(--tw-translate-y);
4300
+ border-radius: calc(infinity * 1px);
4301
+ border-style: var(--tw-border-style);
4302
+ border-width: 2px;
4303
+ background-color: transparent;
4304
+ padding: calc(var(--spacing, 0.25rem) * 0);
4305
+ border-color: var(--gecko-color-picker-thumb-ring);
4306
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3);
4307
+ cursor: grab;
4308
+ }
4309
+ .GeckoUIColorPicker__slider__thumb:focus-visible {
4310
+ outline-style: var(--tw-outline-style);
4311
+ outline-width: 2px;
4312
+ outline-offset: 2px;
4313
+ outline-color: var(--color-primary-500);
4314
+ }
4315
+ .GeckoUIColorPicker__slider__thumb[data-custom] {
4316
+ width: auto;
4317
+ height: auto;
4318
+ border-style: var(--tw-border-style);
4319
+ border-width: 0px;
4320
+ background-color: transparent;
4321
+ --tw-shadow: 0 0 #0000;
4322
+ box-shadow:
4323
+ var(--tw-inset-shadow),
4324
+ var(--tw-inset-ring-shadow),
4325
+ var(--tw-ring-offset-shadow),
4326
+ var(--tw-ring-shadow),
4327
+ var(--tw-shadow);
4328
+ }
4329
+ .GeckoUIColorPicker__slider[data-dragging] .GeckoUIColorPicker__slider__thumb {
4330
+ cursor: grabbing;
4331
+ }
4332
+ .GeckoUIColorPicker__dropper {
4333
+ display: flex;
4334
+ width: calc(var(--spacing, 0.25rem) * 8);
4335
+ height: calc(var(--spacing, 0.25rem) * 8);
4336
+ flex-shrink: 0;
4337
+ cursor: pointer;
4338
+ align-items: center;
4339
+ justify-content: center;
4340
+ border-radius: var(--radius-md, 0.375rem);
4341
+ border-style: var(--tw-border-style);
4342
+ border-width: 1px;
4343
+ border-color: var(--color-border-secondary);
4344
+ color: var(--color-text-secondary);
4345
+ transition-property:
4346
+ color,
4347
+ background-color,
4348
+ border-color,
4349
+ outline-color,
4350
+ text-decoration-color,
4351
+ fill,
4352
+ stroke,
4353
+ --tw-gradient-from,
4354
+ --tw-gradient-via,
4355
+ --tw-gradient-to;
4356
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
4357
+ transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
4358
+ }
4359
+ .GeckoUIColorPicker__dropper:hover:not(:disabled) {
4360
+ background-color: var(--color-surface-hover);
4361
+ color: var(--color-text-primary);
4362
+ }
4363
+ .GeckoUIColorPicker__dropper:disabled {
4364
+ cursor: not-allowed;
4365
+ opacity: 50%;
4366
+ }
4367
+ .GeckoUIColorPicker__dropper svg {
4368
+ width: calc(var(--spacing, 0.25rem) * 4);
4369
+ height: calc(var(--spacing, 0.25rem) * 4);
4370
+ }
4371
+ .GeckoUIColorPicker__field {
4372
+ display: flex;
4373
+ align-items: center;
4374
+ gap: calc(var(--spacing, 0.25rem) * 2);
4375
+ }
4376
+ .GeckoUIColorPicker__format {
4377
+ position: relative;
4378
+ flex-shrink: 0;
4379
+ }
4380
+ .GeckoUIColorPicker__format__trigger {
4381
+ display: flex;
4382
+ height: calc(var(--spacing, 0.25rem) * 9);
4383
+ cursor: pointer;
4384
+ align-items: center;
4385
+ gap: calc(var(--spacing, 0.25rem) * 1.5);
4386
+ border-radius: var(--radius-md, 0.375rem);
4387
+ border-style: var(--tw-border-style);
4388
+ border-width: 1px;
4389
+ border-color: var(--color-border-secondary);
4390
+ background-color: transparent;
4391
+ padding-inline: calc(var(--spacing, 0.25rem) * 2);
4392
+ font-size: var(--text-xs, 0.75rem);
4393
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
4394
+ --tw-font-weight: var(--font-weight-medium, 500);
4395
+ font-weight: var(--font-weight-medium, 500);
4396
+ color: var(--color-text-secondary);
4397
+ }
4398
+ .GeckoUIColorPicker__format__trigger:hover:not(:disabled) {
4399
+ border-color: var(--color-primary-400);
4400
+ }
4401
+ .GeckoUIColorPicker__format__trigger[data-open] {
4402
+ border-color: var(--color-primary-400);
4403
+ }
4404
+ .GeckoUIColorPicker__format__trigger:focus-visible {
4405
+ outline-style: var(--tw-outline-style);
4406
+ outline-width: 2px;
4407
+ outline-offset: 2px;
4408
+ outline-color: var(--color-primary-500);
4409
+ }
4410
+ .GeckoUIColorPicker__format__trigger:disabled {
4411
+ cursor: not-allowed;
4412
+ background-color: var(--color-surface-disabled);
4413
+ color: var(--color-text-disabled);
4414
+ }
4415
+ .GeckoUIColorPicker__format__caret {
4416
+ width: calc(var(--spacing, 0.25rem) * 0);
4417
+ height: calc(var(--spacing, 0.25rem) * 0);
4418
+ flex-shrink: 0;
4419
+ border-style: var(--tw-border-style);
4420
+ border-width: 4px;
4421
+ border-color: transparent;
4422
+ border-top-color: var(--color-text-tertiary);
4423
+ margin-top: 0.25rem;
4424
+ }
4425
+ .GeckoUIColorPicker__format__list {
4426
+ position: absolute;
4427
+ top: 100%;
4428
+ left: calc(var(--spacing, 0.25rem) * 0);
4429
+ z-index: 10;
4430
+ margin: calc(var(--spacing, 0.25rem) * 0);
4431
+ margin-top: calc(var(--spacing, 0.25rem) * 1);
4432
+ display: flex;
4433
+ min-width: 100%;
4434
+ list-style-type: none;
4435
+ flex-direction: column;
4436
+ gap: calc(var(--spacing, 0.25rem) * 0.5);
4437
+ border-radius: var(--radius-md, 0.375rem);
4438
+ border-style: var(--tw-border-style);
4439
+ border-width: 1px;
4440
+ border-color: var(--color-border-primary);
4441
+ background-color: var(--color-surface-primary);
4442
+ padding: calc(var(--spacing, 0.25rem) * 1);
4443
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
4444
+ box-shadow:
4445
+ var(--tw-inset-shadow),
4446
+ var(--tw-inset-ring-shadow),
4447
+ var(--tw-ring-offset-shadow),
4448
+ var(--tw-ring-shadow),
4449
+ var(--tw-shadow);
4450
+ }
4451
+ .GeckoUIColorPicker__format__list:focus {
4452
+ --tw-outline-style: none;
4453
+ outline-style: none;
4454
+ }
4455
+ .GeckoUIColorPicker__format__option {
4456
+ cursor: pointer;
4457
+ border-radius: 0.25rem;
4458
+ padding-inline: calc(var(--spacing, 0.25rem) * 2);
4459
+ padding-block: calc(var(--spacing, 0.25rem) * 1.5);
4460
+ font-size: var(--text-xs, 0.75rem);
4461
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
4462
+ --tw-font-weight: var(--font-weight-medium, 500);
4463
+ font-weight: var(--font-weight-medium, 500);
4464
+ white-space: nowrap;
4465
+ color: var(--color-text-primary);
4466
+ }
4467
+ .GeckoUIColorPicker__format__option[data-active] {
4468
+ background-color: var(--color-surface-hover);
4469
+ }
4470
+ .GeckoUIColorPicker__format__option[aria-selected=true] {
4471
+ background-color: var(--color-primary-500);
4472
+ color: var(--color-text-on-primary);
4473
+ }
4474
+ .GeckoUIColorPicker__input {
4475
+ height: calc(var(--spacing, 0.25rem) * 9);
4476
+ width: 100%;
4477
+ min-width: calc(var(--spacing, 0.25rem) * 0);
4478
+ flex: 1;
4479
+ border-radius: var(--radius-md, 0.375rem);
4480
+ border-style: var(--tw-border-style);
4481
+ border-width: 1px;
4482
+ border-color: var(--color-border-secondary);
4483
+ padding-inline: calc(var(--spacing, 0.25rem) * 2.5);
4484
+ font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
4485
+ font-size: var(--text-sm, 0.875rem);
4486
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
4487
+ color: var(--color-text-primary);
4488
+ text-transform: uppercase;
4489
+ }
4490
+ .GeckoUIColorPicker__input:focus {
4491
+ border-color: var(--color-primary-400);
4492
+ --tw-outline-style: none;
4493
+ outline-style: none;
4494
+ }
4495
+ .GeckoUIColorPicker__input:disabled {
4496
+ cursor: not-allowed;
4497
+ background-color: var(--color-surface-disabled);
4498
+ color: var(--color-text-disabled);
4499
+ }
4500
+ .GeckoUIColorPicker__swatches {
4501
+ display: flex;
4502
+ flex-wrap: wrap;
4503
+ gap: calc(var(--spacing, 0.25rem) * 1.5);
4504
+ }
4505
+ .GeckoUIColorPicker__swatch {
4506
+ width: var(--gecko-color-picker-swatch-size);
4507
+ height: var(--gecko-color-picker-swatch-size);
4508
+ cursor: pointer;
4509
+ border-radius: var(--radius-md, 0.375rem);
4510
+ border-style: var(--tw-border-style);
4511
+ border-width: 0px;
4512
+ padding: calc(var(--spacing, 0.25rem) * 0);
4513
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15);
4514
+ }
4515
+ .GeckoUIColorPicker__swatch:hover:not(:disabled) {
4516
+ --tw-scale-x: 110%;
4517
+ --tw-scale-y: 110%;
4518
+ --tw-scale-z: 110%;
4519
+ scale: var(--tw-scale-x) var(--tw-scale-y);
4520
+ }
4521
+ .GeckoUIColorPicker__swatch[aria-pressed=true] {
4522
+ outline-style: var(--tw-outline-style);
4523
+ outline-width: 2px;
4524
+ outline-offset: 2px;
4525
+ outline-color: var(--color-primary-500);
4526
+ }
4527
+ .GeckoUIColorPicker__swatch:focus-visible {
4528
+ outline-style: var(--tw-outline-style);
4529
+ outline-width: 2px;
4530
+ outline-offset: 2px;
4531
+ outline-color: var(--color-primary-500);
4532
+ }
4533
+ .GeckoUIColorPicker__swatch:disabled {
4534
+ cursor: not-allowed;
1583
4535
  }
1584
- .GeckoUIInputError {
1585
- width: 100%;
1586
- font-size: var(--text-sm, 0.875rem);
1587
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
1588
- --tw-font-weight: var(--font-weight-normal, 400);
1589
- font-weight: var(--font-weight-normal, 400);
1590
- color: var(--color-red-600, oklch(57.7% 0.245 27.325));
4536
+ .GeckoUIColorPicker__preview,
4537
+ .GeckoUIColorPicker__swatch {
4538
+ --gecko-color-layer: transparent;
4539
+ --gecko-color-picker-checker-tile: calc(var(--gecko-color-picker-checker-size) * 2);
4540
+ background-color: #fff;
4541
+ background-size:
4542
+ auto,
4543
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile),
4544
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile),
4545
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile),
4546
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile);
4547
+ background-position:
4548
+ 0 0,
4549
+ 0 0,
4550
+ 0 var(--gecko-color-picker-checker-size),
4551
+ var(--gecko-color-picker-checker-size) calc(var(--gecko-color-picker-checker-size) * -1),
4552
+ calc(var(--gecko-color-picker-checker-size) * -1) 0;
4553
+ background-image:
4554
+ linear-gradient(var(--gecko-color-layer), var(--gecko-color-layer)),
4555
+ linear-gradient(
4556
+ 45deg,
4557
+ var(--gecko-color-picker-checker) 25%,
4558
+ transparent 25%),
4559
+ linear-gradient(
4560
+ -45deg,
4561
+ var(--gecko-color-picker-checker) 25%,
4562
+ transparent 25%),
4563
+ linear-gradient(
4564
+ 45deg,
4565
+ transparent 75%,
4566
+ var(--gecko-color-picker-checker) 75%),
4567
+ linear-gradient(
4568
+ -45deg,
4569
+ transparent 75%,
4570
+ var(--gecko-color-picker-checker) 75%);
4571
+ }
4572
+ .GeckoUIColorPicker__slider[data-kind=alpha] .GeckoUIColorPicker__slider__track {
4573
+ --gecko-color-layer: linear-gradient(transparent, transparent);
4574
+ --gecko-color-picker-checker-tile: calc(var(--gecko-color-picker-checker-size) * 2);
4575
+ background-color: #fff;
4576
+ background-size:
4577
+ auto,
4578
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile),
4579
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile),
4580
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile),
4581
+ var(--gecko-color-picker-checker-tile) var(--gecko-color-picker-checker-tile);
4582
+ background-position:
4583
+ 0 0,
4584
+ 0 0,
4585
+ 0 var(--gecko-color-picker-checker-size),
4586
+ var(--gecko-color-picker-checker-size) calc(var(--gecko-color-picker-checker-size) * -1),
4587
+ calc(var(--gecko-color-picker-checker-size) * -1) 0;
4588
+ background-image:
4589
+ var(--gecko-color-layer),
4590
+ linear-gradient(
4591
+ 45deg,
4592
+ var(--gecko-color-picker-checker) 25%,
4593
+ transparent 25%),
4594
+ linear-gradient(
4595
+ -45deg,
4596
+ var(--gecko-color-picker-checker) 25%,
4597
+ transparent 25%),
4598
+ linear-gradient(
4599
+ 45deg,
4600
+ transparent 75%,
4601
+ var(--gecko-color-picker-checker) 75%),
4602
+ linear-gradient(
4603
+ -45deg,
4604
+ transparent 75%,
4605
+ var(--gecko-color-picker-checker) 75%);
1591
4606
  }
1592
4607
  .GeckoUICounterInput {
1593
4608
  box-sizing: border-box;
@@ -1669,6 +4684,14 @@
1669
4684
  .GeckoUICounterInput:focus-within .GeckoUICounterInput__input {
1670
4685
  border-color: var(--color-primary-400);
1671
4686
  }
4687
+ .GeckoUICounterInput:has(.GeckoUICounterInput__input[aria-invalid=true]) .GeckoUICounterInput__button,
4688
+ .GeckoUICounterInput:has(.GeckoUICounterInput__input[aria-invalid=true]) .GeckoUICounterInput__input {
4689
+ border-color: var(--color-border-invalid);
4690
+ }
4691
+ .GeckoUICounterInput:has(.GeckoUICounterInput__input[aria-invalid=true]):hover .GeckoUICounterInput__button,
4692
+ .GeckoUICounterInput:has(.GeckoUICounterInput__input[aria-invalid=true]):hover .GeckoUICounterInput__input {
4693
+ border-color: var(--color-border-invalid-hover);
4694
+ }
1672
4695
  .GeckoUICounterInput__input {
1673
4696
  box-sizing: border-box;
1674
4697
  border-width: 0;
@@ -1775,24 +4798,6 @@
1775
4798
  font-size: var(--text-sm, 0.875rem);
1776
4799
  line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
1777
4800
  }
1778
- .GeckoUICalendar[data-calendars="2"] {
1779
- max-width: fit-content;
1780
- min-width: fit-content;
1781
- }
1782
- .GeckoUICalendar__dual {
1783
- display: flex;
1784
- gap: calc(var(--spacing, 0.25rem) * 4);
1785
- }
1786
- .GeckoUICalendar__dual__item {
1787
- max-width: 296px;
1788
- min-width: 296px;
1789
- }
1790
- .GeckoUICalendar__dual__item[data-position=second] {
1791
- display: none;
1792
- @media (width >= 48rem) {
1793
- display: block;
1794
- }
1795
- }
1796
4801
  .GeckoUILoadingButton[data-loading] {
1797
4802
  gap: calc(var(--spacing, 0.25rem) * 2);
1798
4803
  }
@@ -1875,13 +4880,12 @@
1875
4880
  .GeckoUIDateInput[data-state=enabled]:hover {
1876
4881
  border-color: var(--color-primary-300);
1877
4882
  }
1878
- .GeckoUIDateInput[data-error] {
1879
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
1880
- &:hover {
1881
- @media (hover: hover) {
1882
- border-color: var(--color-red-600, oklch(57.7% 0.245 27.325));
1883
- }
1884
- }
4883
+ .GeckoUIDateInput[aria-invalid=true],
4884
+ .GeckoUIDateInput[aria-invalid=true]:focus-within {
4885
+ border-color: var(--color-border-invalid);
4886
+ }
4887
+ .GeckoUIDateInput[aria-invalid=true]:hover {
4888
+ border-color: var(--color-border-invalid-hover);
1885
4889
  }
1886
4890
  .GeckoUIDateInput[data-empty] .GeckoUIDateInput__display-container {
1887
4891
  width: calc(var(--spacing, 0.25rem) * 0);
@@ -2038,13 +5042,13 @@
2038
5042
  background-color: var(--color-surface-primary);
2039
5043
  }
2040
5044
  .GeckoUISelectMenu {
5045
+ --gecko-select-menu-z: 10;
2041
5046
  box-sizing: border-box;
2042
5047
  border-width: 0;
2043
5048
  border-style: solid;
2044
5049
  border-color: #e5e7eb;
2045
5050
  position: absolute;
2046
5051
  left: calc(var(--spacing, 0.25rem) * 0);
2047
- z-index: 10;
2048
5052
  display: flex;
2049
5053
  max-height: 240px;
2050
5054
  min-width: calc(var(--spacing, 0.25rem) * 0);
@@ -2061,6 +5065,7 @@
2061
5065
  var(--tw-ring-shadow),
2062
5066
  var(--tw-shadow);
2063
5067
  --tw-ring-color: var(--color-border-primary);
5068
+ z-index: var(--gecko-select-menu-z);
2064
5069
  }
2065
5070
  .GeckoUISelectMenu__items {
2066
5071
  box-sizing: border-box;
@@ -2123,6 +5128,12 @@
2123
5128
  .GeckoUIDateRangeInput__calendar {
2124
5129
  background-color: var(--color-surface-primary);
2125
5130
  }
5131
+ .GeckoUIDateRangeInputWrapper {
5132
+ --gecko-date-range-input-z: 50;
5133
+ }
5134
+ .GeckoUIDateRangeInput__calendar-layer {
5135
+ z-index: var(--gecko-date-range-input-z, 50);
5136
+ }
2126
5137
  .GeckoUISelectEmpty {
2127
5138
  padding-inline: calc(var(--spacing, 0.25rem) * 3);
2128
5139
  padding-block: calc(var(--spacing, 0.25rem) * 2);
@@ -2398,6 +5409,13 @@
2398
5409
  position: absolute;
2399
5410
  left: 0;
2400
5411
  }
5412
+ .GeckoUISelectButton[aria-invalid=true],
5413
+ .GeckoUISelectButton[aria-invalid=true]:focus-within {
5414
+ border-color: var(--color-border-invalid);
5415
+ }
5416
+ .GeckoUISelectButton[data-state=enabled][aria-invalid=true]:hover {
5417
+ border-color: var(--color-border-invalid-hover);
5418
+ }
2401
5419
  .GeckoUICalendar__header {
2402
5420
  display: flex;
2403
5421
  align-items: center;
@@ -2586,289 +5604,44 @@
2586
5604
  }
2587
5605
  }
2588
5606
  .GeckoUICalendar__day-picker__button[data-range-start] {
2589
- border-top-left-radius: var(--radius-md, 0.375rem);
2590
- border-bottom-left-radius: var(--radius-md, 0.375rem);
2591
- }
2592
- .GeckoUICalendar__day-picker__button[data-range-end] {
2593
- border-top-right-radius: var(--radius-md, 0.375rem);
2594
- border-bottom-right-radius: var(--radius-md, 0.375rem);
2595
- }
2596
- .GeckoUICalendar__day-picker__button[data-hover-preview-start] {
2597
- border-top-left-radius: var(--radius-md, 0.375rem);
2598
- border-bottom-left-radius: var(--radius-md, 0.375rem);
2599
- border-top-right-radius: 0;
2600
- border-bottom-right-radius: 0;
2601
- }
2602
- .GeckoUICalendar__day-picker__button[data-hover-preview-end] {
2603
- border-top-left-radius: 0;
2604
- border-bottom-left-radius: 0;
2605
- border-top-right-radius: var(--radius-md, 0.375rem);
2606
- border-bottom-right-radius: var(--radius-md, 0.375rem);
2607
- }
2608
- .GeckoUICalendar__day-picker__button[data-range-start],
2609
- .GeckoUICalendar__day-picker__button[data-range-end],
2610
- .GeckoUICalendar__day-picker__button[data-in-range] {
2611
- color: var(--color-text-on-primary);
2612
- }
2613
- .GeckoUICalendar__day-picker__button[data-disabled] {
2614
- cursor: not-allowed;
2615
- opacity: 30%;
2616
- }
2617
- .dark .GeckoUICalendar__day-picker__button[data-hover-preview] {
2618
- background-color: var(--color-primary-500);
2619
- }
2620
- .GeckoUICalendar__year-picker {
2621
- display: grid;
2622
- grid-template-columns: repeat(4, minmax(0, 1fr));
2623
- place-items: center;
2624
- gap: calc(var(--spacing, 0.25rem) * 1);
2625
- }
2626
- .GeckoUICalendar__year-picker__button {
2627
- box-sizing: border-box;
2628
- border-width: 0;
2629
- border-style: solid;
2630
- border-color: #e5e7eb;
2631
- font-family: inherit;
2632
- font-feature-settings: inherit;
2633
- font-variation-settings: inherit;
2634
- font-size: 100%;
2635
- font-weight: inherit;
2636
- line-height: inherit;
2637
- letter-spacing: inherit;
2638
- color: inherit;
2639
- margin: 0;
2640
- padding: 0;
2641
- text-transform: none;
2642
- -webkit-appearance: button;
2643
- cursor: pointer;
2644
- background-color: transparent;
2645
- background-image: none;
2646
- border-radius: var(--radius-md, 0.375rem);
2647
- padding: calc(var(--spacing, 0.25rem) * 5);
2648
- &:hover {
2649
- @media (hover: hover) {
2650
- background-color: var(--color-surface-hover-strong);
2651
- }
2652
- }
2653
- }
2654
- .GeckoUICalendar__year-picker__button[data-selected] {
2655
- background-color: var(--color-surface-hover-strong);
2656
- }
2657
- .GeckoUICalendar__year-picker__button[data-prev-next] {
2658
- opacity: 40%;
2659
- &:hover {
2660
- @media (hover: hover) {
2661
- opacity: 100%;
2662
- }
2663
- }
2664
- }
2665
- .GeckoUISelectDropdownSearch__icon {
2666
- display: inline-block;
2667
- height: calc(var(--spacing, 0.25rem) * 4);
2668
- width: calc(var(--spacing, 0.25rem) * 4);
2669
- background-color: var(--color-text-muted);
2670
- mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="16" viewBox="0 0 17 16" fill="none"><path d="M14.3429 13.9995L10.3429 9.99951M11.6762 6.66618C11.6762 9.24351 9.58685 11.3328 7.00952 11.3328C4.4322 11.3328 2.34286 9.24351 2.34286 6.66618C2.34286 4.08885 4.4322 1.99951 7.00952 1.99951C9.58685 1.99951 11.6762 4.08885 11.6762 6.66618Z" stroke="currentColor" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/></svg>');
2671
- -webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="16" viewBox="0 0 17 16" fill="none"><path d="M14.3429 13.9995L10.3429 9.99951M11.6762 6.66618C11.6762 9.24351 9.58685 11.3328 7.00952 11.3328C4.4322 11.3328 2.34286 9.24351 2.34286 6.66618C2.34286 4.08885 4.4322 1.99951 7.00952 1.99951C9.58685 1.99951 11.6762 4.08885 11.6762 6.66618Z" stroke="currentColor" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/></svg>');
2672
- }
2673
- .GeckoUICalendar__month-picker {
2674
- display: grid;
2675
- grid-template-columns: repeat(4, minmax(0, 1fr));
2676
- place-items: center;
2677
- gap: calc(var(--spacing, 0.25rem) * 1);
2678
- }
2679
- .GeckoUICalendar__month-picker__button {
2680
- box-sizing: border-box;
2681
- border-width: 0;
2682
- border-style: solid;
2683
- border-color: #e5e7eb;
2684
- font-family: inherit;
2685
- font-feature-settings: inherit;
2686
- font-variation-settings: inherit;
2687
- font-size: 100%;
2688
- font-weight: inherit;
2689
- line-height: inherit;
2690
- letter-spacing: inherit;
2691
- color: inherit;
2692
- margin: 0;
2693
- padding: 0;
2694
- text-transform: none;
2695
- -webkit-appearance: button;
2696
- cursor: pointer;
2697
- background-color: transparent;
2698
- background-image: none;
2699
- width: 100%;
2700
- border-radius: var(--radius-md, 0.375rem);
2701
- padding: calc(var(--spacing, 0.25rem) * 5);
2702
- &:hover {
2703
- @media (hover: hover) {
2704
- background-color: var(--color-surface-hover-strong);
2705
- }
2706
- }
2707
- }
2708
- .GeckoUICalendar__month-picker__button[data-selected] {
2709
- background-color: var(--color-surface-hover-strong);
2710
- }
2711
- .GeckoUIRHFRadio {
2712
- display: inline-flex;
2713
- align-items: center;
2714
- }
2715
- .GeckoUIRHFRadio__label {
2716
- margin-left: calc(var(--spacing, 0.25rem) * 2);
2717
- cursor: pointer;
2718
- font-size: var(--text-sm, 0.875rem);
2719
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
2720
- --tw-font-weight: var(--font-weight-medium, 500);
2721
- font-weight: var(--font-weight-medium, 500);
2722
- color: var(--color-text-secondary);
2723
- }
2724
- .GeckoUIRHFRadio:has(:disabled) .GeckoUIRHFRadio__label {
2725
- cursor: not-allowed;
2726
- color: var(--color-text-disabled);
2727
- }
2728
- .GeckoUIRHFInput[data-error] {
2729
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2730
- }
2731
- .GeckoUIRHFInput[data-error]:hover {
2732
- border-color: var(--color-red-600, oklch(57.7% 0.245 27.325));
2733
- }
2734
- .GeckoUIRHFInput[data-error]:focus-within {
2735
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2736
- }
2737
- .GeckoUIRHFSelectButton[data-error] {
2738
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2739
- }
2740
- .GeckoUIRHFSelectButton[data-error]:hover {
2741
- border-color: var(--color-red-600, oklch(57.7% 0.245 27.325));
2742
- }
2743
- .GeckoUIRHFSelectButton[data-error]:focus-within {
2744
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2745
- }
2746
- .GeckoUIRHFTextarea[data-error] {
2747
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2748
- }
2749
- .GeckoUIRHFTextarea[data-error]:enabled:hover {
2750
- border-color: var(--color-red-600, oklch(57.7% 0.245 27.325));
2751
- }
2752
- .GeckoUIRHFTextarea[data-error]:enabled:focus {
2753
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2754
- }
2755
- .GeckoUIRHFOTPInput[data-error] .GeckoUIOTPInput__input {
2756
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2757
- }
2758
- .GeckoUIRHFOTPInput[data-error]:hover .GeckoUIOTPInput__input:enabled {
2759
- border-color: var(--color-red-600, oklch(57.7% 0.245 27.325));
2760
- }
2761
- .GeckoUIRHFCheckbox {
2762
- display: inline-flex;
2763
- align-items: center;
2764
- }
2765
- .GeckoUIRHFCheckbox__label {
2766
- margin-left: calc(var(--spacing, 0.25rem) * 2);
2767
- cursor: pointer;
2768
- font-size: var(--text-sm, 0.875rem);
2769
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
2770
- --tw-font-weight: var(--font-weight-medium, 500);
2771
- font-weight: var(--font-weight-medium, 500);
2772
- color: var(--color-text-secondary);
2773
- }
2774
- .GeckoUIRHFCheckbox:has(:disabled) .GeckoUIRHFCheckbox__label {
2775
- cursor: not-allowed;
2776
- color: var(--color-text-disabled);
2777
- }
2778
- .GeckoUIRHFFileInput {
2779
- box-sizing: border-box;
2780
- border-width: 0;
2781
- border-style: solid;
2782
- border-color: #e5e7eb;
2783
- font-family: inherit;
2784
- font-feature-settings: inherit;
2785
- font-variation-settings: inherit;
2786
- font-size: 100%;
2787
- font-weight: inherit;
2788
- line-height: inherit;
2789
- letter-spacing: inherit;
2790
- color: inherit;
2791
- margin: 0;
2792
- padding: 0;
2793
- text-transform: none;
2794
- }
2795
- .GeckoUIRHFFileInput__input[data-custom] {
2796
- display: none;
2797
- }
2798
- .GeckoUIRHFInputGroup {
2799
- position: relative;
2800
- display: flex;
2801
- flex-direction: column;
2802
- align-items: flex-start;
2803
- row-gap: calc(var(--spacing, 0.25rem) * 2);
2804
- }
2805
- .GeckoUIRHFFilePicker {
2806
- display: flex;
2807
- width: 100%;
2808
- flex-direction: column;
2809
- gap: calc(var(--spacing, 0.25rem) * 3);
2810
- }
2811
- .GeckoUIRHFFilePicker[data-dragging] .GeckoUIRHFFilePicker__upload-area {
2812
- border-color: var(--color-primary-400);
2813
- background-color: var(--color-surface-hover-strong);
2814
- }
2815
- .GeckoUIRHFFilePicker[data-error] .GeckoUIRHFFilePicker__upload-area {
2816
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
2817
- }
2818
- .GeckoUIRHFFilePicker[data-loading] {
2819
- cursor: wait;
2820
- }
2821
- .GeckoUIRHFFilePicker__upload-area {
2822
- position: relative;
2823
- display: flex;
2824
- min-height: 160px;
2825
- flex-direction: column;
2826
- align-items: center;
2827
- justify-content: center;
2828
- gap: calc(var(--spacing, 0.25rem) * 3);
2829
- border-radius: var(--radius-lg, 0.5rem);
2830
- border-style: var(--tw-border-style);
2831
- border-width: 2px;
2832
- --tw-border-style: dashed;
2833
- border-style: dashed;
2834
- border-color: var(--color-border-secondary);
2835
- background-color: var(--color-surface-secondary);
2836
- padding: calc(var(--spacing, 0.25rem) * 6);
2837
- transition-property:
2838
- color,
2839
- background-color,
2840
- border-color,
2841
- outline-color,
2842
- text-decoration-color,
2843
- fill,
2844
- stroke,
2845
- --tw-gradient-from,
2846
- --tw-gradient-via,
2847
- --tw-gradient-to;
2848
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
2849
- transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
2850
- --tw-duration: 200ms;
2851
- transition-duration: 200ms;
5607
+ border-top-left-radius: var(--radius-md, 0.375rem);
5608
+ border-bottom-left-radius: var(--radius-md, 0.375rem);
2852
5609
  }
2853
- .GeckoUIRHFFilePicker__upload-icon {
2854
- height: calc(var(--spacing, 0.25rem) * 10);
2855
- width: calc(var(--spacing, 0.25rem) * 10);
2856
- color: var(--color-text-muted);
5610
+ .GeckoUICalendar__day-picker__button[data-range-end] {
5611
+ border-top-right-radius: var(--radius-md, 0.375rem);
5612
+ border-bottom-right-radius: var(--radius-md, 0.375rem);
2857
5613
  }
2858
- .GeckoUIRHFFilePicker__upload-text {
2859
- text-align: center;
2860
- font-size: var(--text-sm, 0.875rem);
2861
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
2862
- color: var(--color-text-muted);
5614
+ .GeckoUICalendar__day-picker__button[data-hover-preview-start] {
5615
+ border-top-left-radius: var(--radius-md, 0.375rem);
5616
+ border-bottom-left-radius: var(--radius-md, 0.375rem);
5617
+ border-top-right-radius: 0;
5618
+ border-bottom-right-radius: 0;
2863
5619
  }
2864
- .GeckoUIRHFFilePicker__upload-buttons {
2865
- display: flex;
2866
- flex-wrap: wrap;
2867
- align-items: center;
2868
- justify-content: center;
2869
- gap: calc(var(--spacing, 0.25rem) * 2);
5620
+ .GeckoUICalendar__day-picker__button[data-hover-preview-end] {
5621
+ border-top-left-radius: 0;
5622
+ border-bottom-left-radius: 0;
5623
+ border-top-right-radius: var(--radius-md, 0.375rem);
5624
+ border-bottom-right-radius: var(--radius-md, 0.375rem);
5625
+ }
5626
+ .GeckoUICalendar__day-picker__button[data-range-start],
5627
+ .GeckoUICalendar__day-picker__button[data-range-end],
5628
+ .GeckoUICalendar__day-picker__button[data-in-range] {
5629
+ color: var(--color-text-on-primary);
2870
5630
  }
2871
- .GeckoUIRHFFilePicker__browse-button {
5631
+ .GeckoUICalendar__day-picker__button[data-disabled] {
5632
+ cursor: not-allowed;
5633
+ opacity: 30%;
5634
+ }
5635
+ .dark .GeckoUICalendar__day-picker__button[data-hover-preview] {
5636
+ background-color: var(--color-primary-500);
5637
+ }
5638
+ .GeckoUICalendar__year-picker {
5639
+ display: grid;
5640
+ grid-template-columns: repeat(4, minmax(0, 1fr));
5641
+ place-items: center;
5642
+ gap: calc(var(--spacing, 0.25rem) * 1);
5643
+ }
5644
+ .GeckoUICalendar__year-picker__button {
2872
5645
  box-sizing: border-box;
2873
5646
  border-width: 0;
2874
5647
  border-style: solid;
@@ -2889,100 +5662,39 @@
2889
5662
  background-color: transparent;
2890
5663
  background-image: none;
2891
5664
  border-radius: var(--radius-md, 0.375rem);
2892
- border-style: var(--tw-border-style);
2893
- border-width: 1px;
2894
- border-color: var(--color-border-secondary);
2895
- background-color: var(--color-surface-primary);
2896
- padding-inline: calc(var(--spacing, 0.25rem) * 4);
2897
- padding-block: calc(var(--spacing, 0.25rem) * 2);
2898
- font-size: var(--text-sm, 0.875rem);
2899
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
2900
- --tw-font-weight: var(--font-weight-medium, 500);
2901
- font-weight: var(--font-weight-medium, 500);
2902
- color: var(--color-text-primary);
2903
- --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
2904
- box-shadow:
2905
- var(--tw-inset-shadow),
2906
- var(--tw-inset-ring-shadow),
2907
- var(--tw-ring-offset-shadow),
2908
- var(--tw-ring-shadow),
2909
- var(--tw-shadow);
2910
- transition-property:
2911
- color,
2912
- background-color,
2913
- border-color,
2914
- outline-color,
2915
- text-decoration-color,
2916
- fill,
2917
- stroke,
2918
- --tw-gradient-from,
2919
- --tw-gradient-via,
2920
- --tw-gradient-to;
2921
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
2922
- transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
2923
- --tw-duration: 200ms;
2924
- transition-duration: 200ms;
2925
- }
2926
- .GeckoUIRHFFilePicker__browse-button:hover {
2927
- background-color: var(--color-surface-tertiary);
2928
- }
2929
- .GeckoUIRHFFilePicker__browse-button:focus-visible {
2930
- --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2931
- box-shadow:
2932
- var(--tw-inset-shadow),
2933
- var(--tw-inset-ring-shadow),
2934
- var(--tw-ring-offset-shadow),
2935
- var(--tw-ring-shadow),
2936
- var(--tw-shadow);
2937
- --tw-ring-color: var(--color-primary-400);
2938
- --tw-ring-offset-width: 2px;
2939
- --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2940
- --tw-outline-style: none;
2941
- outline-style: none;
5665
+ padding: calc(var(--spacing, 0.25rem) * 5);
5666
+ &:hover {
5667
+ @media (hover: hover) {
5668
+ background-color: var(--color-surface-hover-strong);
5669
+ }
5670
+ }
2942
5671
  }
2943
- .GeckoUIRHFFilePicker__file-list {
2944
- display: flex;
2945
- max-height: 200px;
2946
- flex-direction: column;
2947
- overflow-y: auto;
2948
- border-radius: var(--radius-lg, 0.5rem);
2949
- border-style: var(--tw-border-style);
2950
- border-width: 1px;
2951
- border-color: var(--color-border-secondary);
5672
+ .GeckoUICalendar__year-picker__button[data-selected] {
5673
+ background-color: var(--color-surface-hover-strong);
2952
5674
  }
2953
- .GeckoUIRHFFilePicker__file-row {
2954
- display: flex;
2955
- align-items: center;
2956
- gap: calc(var(--spacing, 0.25rem) * 3);
2957
- border-bottom-style: var(--tw-border-style);
2958
- border-bottom-width: 1px;
2959
- border-color: var(--color-border-secondary);
2960
- padding-inline: calc(var(--spacing, 0.25rem) * 4);
2961
- padding-block: calc(var(--spacing, 0.25rem) * 3);
2962
- &:last-child {
2963
- border-bottom-style: var(--tw-border-style);
2964
- border-bottom-width: 0px;
5675
+ .GeckoUICalendar__year-picker__button[data-prev-next] {
5676
+ opacity: 40%;
5677
+ &:hover {
5678
+ @media (hover: hover) {
5679
+ opacity: 100%;
5680
+ }
2965
5681
  }
2966
5682
  }
2967
- .GeckoUIRHFFilePicker__file-row:hover {
2968
- background-color: var(--color-surface-secondary);
2969
- }
2970
- .GeckoUIRHFFilePicker__file-name {
2971
- flex: 1;
2972
- overflow: hidden;
2973
- text-overflow: ellipsis;
2974
- white-space: nowrap;
2975
- font-size: var(--text-sm, 0.875rem);
2976
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
2977
- color: var(--color-text-primary);
5683
+ .GeckoUISelectDropdownSearch__icon {
5684
+ display: inline-block;
5685
+ height: calc(var(--spacing, 0.25rem) * 4);
5686
+ width: calc(var(--spacing, 0.25rem) * 4);
5687
+ background-color: var(--color-text-muted);
5688
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="16" viewBox="0 0 17 16" fill="none"><path d="M14.3429 13.9995L10.3429 9.99951M11.6762 6.66618C11.6762 9.24351 9.58685 11.3328 7.00952 11.3328C4.4322 11.3328 2.34286 9.24351 2.34286 6.66618C2.34286 4.08885 4.4322 1.99951 7.00952 1.99951C9.58685 1.99951 11.6762 4.08885 11.6762 6.66618Z" stroke="currentColor" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/></svg>');
5689
+ -webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="16" viewBox="0 0 17 16" fill="none"><path d="M14.3429 13.9995L10.3429 9.99951M11.6762 6.66618C11.6762 9.24351 9.58685 11.3328 7.00952 11.3328C4.4322 11.3328 2.34286 9.24351 2.34286 6.66618C2.34286 4.08885 4.4322 1.99951 7.00952 1.99951C9.58685 1.99951 11.6762 4.08885 11.6762 6.66618Z" stroke="currentColor" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/></svg>');
2978
5690
  }
2979
- .GeckoUIRHFFilePicker__file-size {
2980
- flex-shrink: 0;
2981
- font-size: var(--text-xs, 0.75rem);
2982
- line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
2983
- color: var(--color-text-muted);
5691
+ .GeckoUICalendar__month-picker {
5692
+ display: grid;
5693
+ grid-template-columns: repeat(4, minmax(0, 1fr));
5694
+ place-items: center;
5695
+ gap: calc(var(--spacing, 0.25rem) * 1);
2984
5696
  }
2985
- .GeckoUIRHFFilePicker__file-remove {
5697
+ .GeckoUICalendar__month-picker__button {
2986
5698
  box-sizing: border-box;
2987
5699
  border-width: 0;
2988
5700
  border-style: solid;
@@ -3002,70 +5714,58 @@
3002
5714
  cursor: pointer;
3003
5715
  background-color: transparent;
3004
5716
  background-image: none;
3005
- flex-shrink: 0;
3006
- border-radius: 0.25rem;
3007
- padding: calc(var(--spacing, 0.25rem) * 1);
3008
- color: var(--color-text-muted);
3009
- transition-property:
3010
- color,
3011
- background-color,
3012
- border-color,
3013
- outline-color,
3014
- text-decoration-color,
3015
- fill,
3016
- stroke,
3017
- --tw-gradient-from,
3018
- --tw-gradient-via,
3019
- --tw-gradient-to;
3020
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(0.4, 0, 0.2, 1)));
3021
- transition-duration: var(--tw-duration, var(--default-transition-duration, 150ms));
3022
- --tw-duration: 200ms;
3023
- transition-duration: 200ms;
5717
+ width: 100%;
5718
+ border-radius: var(--radius-md, 0.375rem);
5719
+ padding: calc(var(--spacing, 0.25rem) * 5);
5720
+ &:hover {
5721
+ @media (hover: hover) {
5722
+ background-color: var(--color-surface-hover-strong);
5723
+ }
5724
+ }
3024
5725
  }
3025
- .GeckoUIRHFFilePicker__file-remove:hover {
3026
- background-color: var(--color-red-100, oklch(93.6% 0.032 17.717));
3027
- color: var(--color-red-600, oklch(57.7% 0.245 27.325));
5726
+ .GeckoUICalendar__month-picker__button[data-selected] {
5727
+ background-color: var(--color-surface-hover-strong);
3028
5728
  }
3029
- .GeckoUIRHFFilePicker__file-remove:focus-visible {
3030
- --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3031
- box-shadow:
3032
- var(--tw-inset-shadow),
3033
- var(--tw-inset-ring-shadow),
3034
- var(--tw-ring-offset-shadow),
3035
- var(--tw-ring-shadow),
3036
- var(--tw-shadow);
3037
- --tw-ring-color: var(--color-red-400, oklch(70.4% 0.191 22.216));
3038
- --tw-outline-style: none;
3039
- outline-style: none;
5729
+ .GeckoUIRHFRadio {
5730
+ display: inline-flex;
5731
+ align-items: center;
3040
5732
  }
3041
- .GeckoUIRHFFilePicker__file-remove-icon {
3042
- height: calc(var(--spacing, 0.25rem) * 4);
3043
- width: calc(var(--spacing, 0.25rem) * 4);
5733
+ .GeckoUIRHFRadio__label {
5734
+ margin-left: calc(var(--spacing, 0.25rem) * 2);
5735
+ cursor: pointer;
5736
+ font-size: var(--text-sm, 0.875rem);
5737
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
5738
+ --tw-font-weight: var(--font-weight-medium, 500);
5739
+ font-weight: var(--font-weight-medium, 500);
5740
+ color: var(--color-text-secondary);
3044
5741
  }
3045
- .GeckoUIRHFFilePicker__loading-overlay {
3046
- pointer-events: none;
3047
- position: absolute;
3048
- inset: calc(var(--spacing, 0.25rem) * 0);
3049
- display: flex;
5742
+ .GeckoUIRHFRadio:has(:disabled) .GeckoUIRHFRadio__label {
5743
+ cursor: not-allowed;
5744
+ color: var(--color-text-disabled);
5745
+ }
5746
+ .GeckoUIRHFCheckbox {
5747
+ display: inline-flex;
3050
5748
  align-items: center;
3051
- justify-content: center;
3052
- border-radius: var(--radius-lg, 0.5rem);
3053
- background-color: color-mix(in srgb, oklch(1 0 none) 50%, transparent);
3054
- @supports (color: color-mix(in lab, red, red)) {
3055
- background-color: color-mix(in oklab, var(--color-surface-primary) 50%, transparent);
3056
- }
3057
5749
  }
3058
- .GeckoUIRHFCounterInput[data-error] .GeckoUICounterInput__button,
3059
- .GeckoUIRHFCounterInput[data-error] .GeckoUICounterInput__input {
3060
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
5750
+ .GeckoUIRHFCheckbox__label {
5751
+ margin-left: calc(var(--spacing, 0.25rem) * 2);
5752
+ cursor: pointer;
5753
+ font-size: var(--text-sm, 0.875rem);
5754
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
5755
+ --tw-font-weight: var(--font-weight-medium, 500);
5756
+ font-weight: var(--font-weight-medium, 500);
5757
+ color: var(--color-text-secondary);
3061
5758
  }
3062
- .GeckoUIRHFCounterInput[data-error]:hover .GeckoUICounterInput__button,
3063
- .GeckoUIRHFCounterInput[data-error]:hover .GeckoUICounterInput__input {
3064
- border-color: var(--color-red-600, oklch(57.7% 0.245 27.325));
5759
+ .GeckoUIRHFCheckbox:has(:disabled) .GeckoUIRHFCheckbox__label {
5760
+ cursor: not-allowed;
5761
+ color: var(--color-text-disabled);
3065
5762
  }
3066
- .GeckoUIRHFCounterInput[data-error]:focus-within .GeckoUICounterInput__button,
3067
- .GeckoUIRHFCounterInput[data-error]:focus-within .GeckoUICounterInput__input {
3068
- border-color: var(--color-red-500, oklch(63.7% 0.237 25.331));
5763
+ .GeckoUIRHFInputGroup {
5764
+ position: relative;
5765
+ display: flex;
5766
+ flex-direction: column;
5767
+ align-items: flex-start;
5768
+ row-gap: calc(var(--spacing, 0.25rem) * 2);
3069
5769
  }
3070
5770
  .GeckoUIRHFCurrencyInput__currency-symbol,
3071
5771
  .GeckoUIRHFCurrencyInput__currency-code {
@@ -3113,6 +5813,12 @@
3113
5813
  --color-border-focus: oklch(0.7155 0 none);
3114
5814
  --color-border-hover: oklch(0.8699 0 none);
3115
5815
  --color-border-disabled: oklch(0.9401 0 none);
5816
+ --color-border-invalid: oklch(0.6368 0.2078 25.33);
5817
+ --color-border-invalid-hover: oklch(0.5168 0.2178 25.33);
5818
+ --color-success: oklch(0.6271 0.1699 149.21);
5819
+ --color-error: oklch(0.6368 0.2078 25.33);
5820
+ --color-warning: oklch(0.6685 0.1626 58.32);
5821
+ --color-info: oklch(0.6231 0.188 259.81);
3116
5822
  --gecko-ui-scrollbar-track: oklch(0 0 none);
3117
5823
  --gecko-ui-scrollbar-thumb: oklch(0.8717 0.0093 258.34);
3118
5824
  --gecko-ui-scrollbar-thumb-hover: oklch(0.7137 0.0192 261.32);
@@ -3139,11 +5845,19 @@
3139
5845
  --color-border-secondary: oklch(0.4676 0 none);
3140
5846
  --color-border-focus: oklch(0.5555 0 none);
3141
5847
  --color-border-hover: oklch(0.7155 0 none);
5848
+ --color-border-invalid: oklch(0.71 0.19 25.33);
5849
+ --color-border-invalid-hover: oklch(0.83 0.17 25.33);
3142
5850
  --color-border-disabled: oklch(0.2972 0 none);
3143
5851
  --gecko-ui-scrollbar-track: oklch(0 0 none);
3144
5852
  --gecko-ui-scrollbar-thumb: oklch(0.4461 0.0263 256.8);
3145
5853
  --gecko-ui-scrollbar-thumb-hover: oklch(0.551 0.0234 264.36);
5854
+ --color-success: oklch(0.72 0.17 149.21);
5855
+ --color-error: oklch(0.71 0.19 25.33);
5856
+ --color-warning: oklch(0.76 0.15 58.32);
5857
+ --color-info: oklch(0.72 0.17 259.81);
3146
5858
  }
5859
+ @property --tw-font-weight { syntax: "*"; inherits: false; }
5860
+ @property --tw-duration { syntax: "*"; inherits: false; }
3147
5861
  @property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }
3148
5862
  @property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
3149
5863
  @property --tw-shadow-color { syntax: "*"; inherits: false; }
@@ -3159,21 +5873,25 @@
3159
5873
  @property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }
3160
5874
  @property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }
3161
5875
  @property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
3162
- @property --tw-duration { syntax: "*"; inherits: false; }
3163
- @property --tw-ease { syntax: "*"; inherits: false; }
5876
+ @property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }
5877
+ @property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }
5878
+ @property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }
3164
5879
  @property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }
3165
5880
  @property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }
3166
5881
  @property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }
3167
- @property --tw-font-weight { syntax: "*"; inherits: false; }
5882
+ @property --tw-leading { syntax: "*"; inherits: false; }
5883
+ @property --tw-ease { syntax: "*"; inherits: false; }
3168
5884
  @property --tw-rotate-x { syntax: "*"; inherits: false; }
3169
5885
  @property --tw-rotate-y { syntax: "*"; inherits: false; }
3170
5886
  @property --tw-rotate-z { syntax: "*"; inherits: false; }
3171
5887
  @property --tw-skew-x { syntax: "*"; inherits: false; }
3172
5888
  @property --tw-skew-y { syntax: "*"; inherits: false; }
3173
- @property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }
3174
- @property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }
3175
- @property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }
3176
- @property --tw-leading { syntax: "*"; inherits: false; }
5889
+ @property --tw-ordinal { syntax: "*"; inherits: false; }
5890
+ @property --tw-slashed-zero { syntax: "*"; inherits: false; }
5891
+ @property --tw-numeric-figure { syntax: "*"; inherits: false; }
5892
+ @property --tw-numeric-spacing { syntax: "*"; inherits: false; }
5893
+ @property --tw-numeric-fraction { syntax: "*"; inherits: false; }
5894
+ @property --tw-outline-style { syntax: "*"; inherits: false; initial-value: solid; }
3177
5895
  @property --tw-space-x-reverse { syntax: "*"; inherits: false; initial-value: 0; }
3178
5896
  @keyframes spin {
3179
5897
  to {
@@ -3186,6 +5904,8 @@
3186
5904
  ::before,
3187
5905
  ::after,
3188
5906
  ::backdrop {
5907
+ --tw-font-weight: initial;
5908
+ --tw-duration: initial;
3189
5909
  --tw-border-style: solid;
3190
5910
  --tw-shadow: 0 0 #0000;
3191
5911
  --tw-shadow-color: initial;
@@ -3201,21 +5921,25 @@
3201
5921
  --tw-ring-offset-width: 0px;
3202
5922
  --tw-ring-offset-color: #fff;
3203
5923
  --tw-ring-offset-shadow: 0 0 #0000;
3204
- --tw-duration: initial;
3205
- --tw-ease: initial;
5924
+ --tw-translate-x: 0;
5925
+ --tw-translate-y: 0;
5926
+ --tw-translate-z: 0;
3206
5927
  --tw-scale-x: 1;
3207
5928
  --tw-scale-y: 1;
3208
5929
  --tw-scale-z: 1;
3209
- --tw-font-weight: initial;
5930
+ --tw-leading: initial;
5931
+ --tw-ease: initial;
3210
5932
  --tw-rotate-x: initial;
3211
5933
  --tw-rotate-y: initial;
3212
5934
  --tw-rotate-z: initial;
3213
5935
  --tw-skew-x: initial;
3214
5936
  --tw-skew-y: initial;
3215
- --tw-translate-x: 0;
3216
- --tw-translate-y: 0;
3217
- --tw-translate-z: 0;
3218
- --tw-leading: initial;
5937
+ --tw-ordinal: initial;
5938
+ --tw-slashed-zero: initial;
5939
+ --tw-numeric-figure: initial;
5940
+ --tw-numeric-spacing: initial;
5941
+ --tw-numeric-fraction: initial;
5942
+ --tw-outline-style: solid;
3219
5943
  --tw-space-x-reverse: 0;
3220
5944
  }
3221
5945
  }