@wpmoo/ui 1.0.0-rc.1 → 1.0.0-rc.2

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.
@@ -96,18 +96,18 @@
96
96
  --bs-gray-900: #212529;
97
97
  --bs-primary: #171717;
98
98
  --bs-secondary: #f4f4f5;
99
- --bs-success: #16803c;
100
- --bs-info: #0f6e8c;
101
- --bs-warning: #a15c00;
102
- --bs-danger: #dc2626;
99
+ --bs-success: #047857;
100
+ --bs-info: #0369a1;
101
+ --bs-warning: #b45309;
102
+ --bs-danger: #e7000b;
103
103
  --bs-light: #fafafa;
104
104
  --bs-dark: #18181b;
105
105
  --bs-primary-rgb: 23, 23, 23;
106
106
  --bs-secondary-rgb: 244, 244, 245;
107
- --bs-success-rgb: 22, 128, 60;
108
- --bs-info-rgb: 15, 110, 140;
109
- --bs-warning-rgb: 161, 92, 0;
110
- --bs-danger-rgb: 220, 38, 38;
107
+ --bs-success-rgb: 4, 120, 87;
108
+ --bs-info-rgb: 3, 105, 161;
109
+ --bs-warning-rgb: 180, 83, 9;
110
+ --bs-danger-rgb: 231, 0, 11;
111
111
  --bs-light-rgb: 250, 250, 250;
112
112
  --bs-dark-rgb: 24, 24, 27;
113
113
  --bs-white-rgb: 255, 255, 255;
@@ -150,12 +150,29 @@
150
150
  --moo-surface: #fff;
151
151
  --moo-muted-surface: #f4f4f5;
152
152
  --moo-border: #e4e4e7;
153
+ --moo-primary: #171717;
154
+ --moo-primary-foreground: #fafafa;
153
155
  --moo-foreground: #18181b;
154
156
  --moo-muted-foreground: #71717a;
155
157
  --moo-disabled-foreground: #a1a1aa;
156
- --moo-ring: #18181b;
157
- --moo-destructive: #dc2626;
158
- --moo-destructive-foreground: #fff;
158
+ --moo-ring: color-mix(in srgb, #fff 60%, #171717);
159
+ --moo-destructive: #e7000b;
160
+ --moo-destructive-surface: color-mix(in srgb, #e7000b 3%, transparent);
161
+ --moo-destructive-surface-hover: color-mix(in srgb, #e7000b 6%, transparent);
162
+ --moo-destructive-foreground: #e7000b;
163
+ --moo-form-invalid-ring-color: color-mix(in srgb, #e7000b 20%, transparent);
164
+ --moo-warning: #b45309;
165
+ --moo-warning-surface: color-mix(in srgb, #b45309 10%, transparent);
166
+ --moo-warning-surface-hover: color-mix(in srgb, #b45309 20%, transparent);
167
+ --moo-warning-foreground: #b45309;
168
+ --moo-success: #047857;
169
+ --moo-success-surface: color-mix(in srgb, #047857 10%, transparent);
170
+ --moo-success-surface-hover: color-mix(in srgb, #047857 20%, transparent);
171
+ --moo-success-foreground: #047857;
172
+ --moo-info: #0369a1;
173
+ --moo-info-surface: color-mix(in srgb, #0369a1 10%, transparent);
174
+ --moo-info-surface-hover: color-mix(in srgb, #0369a1 20%, transparent);
175
+ --moo-info-foreground: #0369a1;
159
176
  --moo-sidebar: #fafafa;
160
177
  --bs-body-color: var(--moo-foreground);
161
178
  --bs-body-color-rgb: 24, 24, 27;
@@ -181,32 +198,32 @@
181
198
  --bs-highlight-bg: #fff3cd;
182
199
  --bs-border-color: var(--moo-border);
183
200
  --bs-border-color-translucent: rgba(24, 24, 27, 0.175);
184
- --bs-form-valid-color: #16803c;
185
- --bs-form-valid-border-color: #16803c;
186
- --bs-form-invalid-color: #dc2626;
187
- --bs-form-invalid-border-color: #dc2626;
201
+ --bs-form-valid-color: #047857;
202
+ --bs-form-valid-border-color: #047857;
203
+ --bs-form-invalid-color: var(--moo-destructive);
204
+ --bs-form-invalid-border-color: #e7000b;
188
205
  --bs-primary-text-emphasis: #090909;
189
206
  --bs-secondary-text-emphasis: #626262;
190
- --bs-success-text-emphasis: #093318;
191
- --bs-info-text-emphasis: #062c38;
192
- --bs-warning-text-emphasis: #402500;
193
- --bs-danger-text-emphasis: #580f0f;
207
+ --bs-success-text-emphasis: #023023;
208
+ --bs-info-text-emphasis: #012a40;
209
+ --bs-warning-text-emphasis: #482104;
210
+ --bs-danger-text-emphasis: #5c0004;
194
211
  --bs-light-text-emphasis: #495057;
195
212
  --bs-dark-text-emphasis: #495057;
196
213
  --bs-primary-bg-subtle: #d1d1d1;
197
214
  --bs-secondary-bg-subtle: #fdfdfd;
198
- --bs-success-bg-subtle: #d0e6d8;
199
- --bs-info-bg-subtle: #cfe2e8;
200
- --bs-warning-bg-subtle: #ecdecc;
201
- --bs-danger-bg-subtle: #f8d4d4;
215
+ --bs-success-bg-subtle: #cde4dd;
216
+ --bs-info-bg-subtle: #cde1ec;
217
+ --bs-warning-bg-subtle: #f0ddce;
218
+ --bs-danger-bg-subtle: #faccce;
202
219
  --bs-light-bg-subtle: #fcfcfd;
203
220
  --bs-dark-bg-subtle: #ced4da;
204
221
  --bs-primary-border-subtle: #a2a2a2;
205
222
  --bs-secondary-border-subtle: #fbfbfb;
206
- --bs-success-border-subtle: #a2ccb1;
207
- --bs-info-border-subtle: #9fc5d1;
208
- --bs-warning-border-subtle: #d9be99;
209
- --bs-danger-border-subtle: #f1a8a8;
223
+ --bs-success-border-subtle: #9bc9bc;
224
+ --bs-info-border-subtle: #9ac3d9;
225
+ --bs-warning-border-subtle: #e1ba9d;
226
+ --bs-danger-border-subtle: #f5999d;
210
227
  --bs-light-border-subtle: #e9ecef;
211
228
  --bs-dark-border-subtle: #adb5bd;
212
229
  }
@@ -215,20 +232,37 @@
215
232
  color-scheme: dark;
216
233
  color: var(--bs-body-color);
217
234
  background-color: var(--bs-body-bg);
218
- --moo-surface: #18181b;
235
+ --moo-surface: #0a0a0a;
219
236
  --moo-muted-surface: #27272a;
220
237
  --moo-border: #3f3f46;
238
+ --moo-primary: #e4e4e7;
239
+ --moo-primary-foreground: #18181b;
221
240
  --moo-foreground: #fafafa;
222
241
  --moo-muted-foreground: #a1a1aa;
223
242
  --moo-disabled-foreground: #71717a;
224
- --moo-ring: #fafafa;
225
- --moo-destructive: #f87171;
226
- --moo-destructive-foreground: #18181b;
243
+ --moo-ring: color-mix(in srgb, #fff 40%, #171717);
244
+ --moo-destructive: #ff6467;
245
+ --moo-destructive-surface: color-mix(in srgb, #ff6467 20%, transparent);
246
+ --moo-destructive-surface-hover: color-mix(in srgb, #ff6467 30%, transparent);
247
+ --moo-destructive-foreground: #ff6467;
248
+ --moo-form-invalid-ring-color: color-mix(in srgb, #ff6467 40%, transparent);
249
+ --moo-warning: color-mix(in srgb, #fafafa 60%, #b45309);
250
+ --moo-warning-surface: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #b45309) 20%, transparent);
251
+ --moo-warning-surface-hover: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #b45309) 30%, transparent);
252
+ --moo-warning-foreground: color-mix(in srgb, #fafafa 60%, #b45309);
253
+ --moo-success: color-mix(in srgb, #fafafa 60%, #047857);
254
+ --moo-success-surface: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #047857) 20%, transparent);
255
+ --moo-success-surface-hover: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #047857) 30%, transparent);
256
+ --moo-success-foreground: color-mix(in srgb, #fafafa 60%, #047857);
257
+ --moo-info: color-mix(in srgb, #fafafa 60%, #0369a1);
258
+ --moo-info-surface: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #0369a1) 20%, transparent);
259
+ --moo-info-surface-hover: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #0369a1) 30%, transparent);
260
+ --moo-info-foreground: color-mix(in srgb, #fafafa 60%, #0369a1);
227
261
  --moo-sidebar: #1c1c1f;
228
262
  --bs-body-color: var(--moo-foreground);
229
263
  --bs-body-color-rgb: 250, 250, 250;
230
264
  --bs-body-bg: var(--moo-surface);
231
- --bs-body-bg-rgb: 24, 24, 27;
265
+ --bs-body-bg-rgb: 10, 10, 10;
232
266
  --bs-emphasis-color: var(--moo-foreground);
233
267
  --bs-emphasis-color-rgb: 250, 250, 250;
234
268
  --bs-secondary-color: var(--moo-muted-foreground);
@@ -251,30 +285,30 @@
251
285
  --bs-border-color-translucent: rgba(250, 250, 250, 0.15);
252
286
  --bs-form-valid-color: #75b798;
253
287
  --bs-form-valid-border-color: #75b798;
254
- --bs-form-invalid-color: #ea868f;
255
- --bs-form-invalid-border-color: #ea868f;
288
+ --bs-form-invalid-color: var(--moo-destructive);
289
+ --bs-form-invalid-border-color: color-mix(in srgb, #ff6467 50%, transparent);
256
290
  --bs-primary-text-emphasis: #747474;
257
291
  --bs-secondary-text-emphasis: #f8f8f9;
258
- --bs-success-text-emphasis: #73b38a;
259
- --bs-info-text-emphasis: #6fa8ba;
260
- --bs-warning-text-emphasis: #c79d66;
261
- --bs-danger-text-emphasis: #ea7d7d;
292
+ --bs-success-text-emphasis: #68ae9a;
293
+ --bs-info-text-emphasis: #68a5c7;
294
+ --bs-warning-text-emphasis: #d2986b;
295
+ --bs-danger-text-emphasis: #f1666d;
262
296
  --bs-light-text-emphasis: #f8f9fa;
263
297
  --bs-dark-text-emphasis: #dee2e6;
264
298
  --bs-primary-bg-subtle: #050505;
265
299
  --bs-secondary-bg-subtle: #313131;
266
- --bs-success-bg-subtle: #041a0c;
267
- --bs-info-bg-subtle: #03161c;
268
- --bs-warning-bg-subtle: #201200;
269
- --bs-danger-bg-subtle: #2c0808;
300
+ --bs-success-bg-subtle: #011811;
301
+ --bs-info-bg-subtle: #011520;
302
+ --bs-warning-bg-subtle: #241102;
303
+ --bs-danger-bg-subtle: #2e0002;
270
304
  --bs-light-bg-subtle: #343a40;
271
305
  --bs-dark-bg-subtle: #1f2225;
272
306
  --bs-primary-border-subtle: #0e0e0e;
273
307
  --bs-secondary-border-subtle: #929293;
274
- --bs-success-border-subtle: #0d4d24;
275
- --bs-info-border-subtle: #094254;
276
- --bs-warning-border-subtle: #613700;
277
- --bs-danger-border-subtle: #841717;
308
+ --bs-success-border-subtle: #024834;
309
+ --bs-info-border-subtle: #023f61;
310
+ --bs-warning-border-subtle: #6c3205;
311
+ --bs-danger-border-subtle: #8b0007;
278
312
  --bs-light-border-subtle: #495057;
279
313
  --bs-dark-border-subtle: #343a40;
280
314
  }
@@ -286,12 +320,29 @@
286
320
  --moo-surface: #fff;
287
321
  --moo-muted-surface: #f4f4f5;
288
322
  --moo-border: #e4e4e7;
323
+ --moo-primary: #171717;
324
+ --moo-primary-foreground: #fafafa;
289
325
  --moo-foreground: #18181b;
290
326
  --moo-muted-foreground: #71717a;
291
327
  --moo-disabled-foreground: #a1a1aa;
292
- --moo-ring: #18181b;
293
- --moo-destructive: #dc2626;
294
- --moo-destructive-foreground: #fff;
328
+ --moo-ring: color-mix(in srgb, #fff 60%, #171717);
329
+ --moo-destructive: #e7000b;
330
+ --moo-destructive-surface: color-mix(in srgb, #e7000b 3%, transparent);
331
+ --moo-destructive-surface-hover: color-mix(in srgb, #e7000b 6%, transparent);
332
+ --moo-destructive-foreground: #e7000b;
333
+ --moo-form-invalid-ring-color: color-mix(in srgb, #e7000b 20%, transparent);
334
+ --moo-warning: #b45309;
335
+ --moo-warning-surface: color-mix(in srgb, #b45309 10%, transparent);
336
+ --moo-warning-surface-hover: color-mix(in srgb, #b45309 20%, transparent);
337
+ --moo-warning-foreground: #b45309;
338
+ --moo-success: #047857;
339
+ --moo-success-surface: color-mix(in srgb, #047857 10%, transparent);
340
+ --moo-success-surface-hover: color-mix(in srgb, #047857 20%, transparent);
341
+ --moo-success-foreground: #047857;
342
+ --moo-info: #0369a1;
343
+ --moo-info-surface: color-mix(in srgb, #0369a1 10%, transparent);
344
+ --moo-info-surface-hover: color-mix(in srgb, #0369a1 20%, transparent);
345
+ --moo-info-foreground: #0369a1;
295
346
  --moo-sidebar: #fafafa;
296
347
  --bs-body-color: var(--moo-foreground);
297
348
  --bs-body-color-rgb: 24, 24, 27;
@@ -317,32 +368,32 @@
317
368
  --bs-highlight-bg: #fff3cd;
318
369
  --bs-border-color: var(--moo-border);
319
370
  --bs-border-color-translucent: rgba(24, 24, 27, 0.175);
320
- --bs-form-valid-color: #16803c;
321
- --bs-form-valid-border-color: #16803c;
322
- --bs-form-invalid-color: #dc2626;
323
- --bs-form-invalid-border-color: #dc2626;
371
+ --bs-form-valid-color: #047857;
372
+ --bs-form-valid-border-color: #047857;
373
+ --bs-form-invalid-color: var(--moo-destructive);
374
+ --bs-form-invalid-border-color: #e7000b;
324
375
  --bs-primary-text-emphasis: #090909;
325
376
  --bs-secondary-text-emphasis: #626262;
326
- --bs-success-text-emphasis: #093318;
327
- --bs-info-text-emphasis: #062c38;
328
- --bs-warning-text-emphasis: #402500;
329
- --bs-danger-text-emphasis: #580f0f;
377
+ --bs-success-text-emphasis: #023023;
378
+ --bs-info-text-emphasis: #012a40;
379
+ --bs-warning-text-emphasis: #482104;
380
+ --bs-danger-text-emphasis: #5c0004;
330
381
  --bs-light-text-emphasis: #495057;
331
382
  --bs-dark-text-emphasis: #495057;
332
383
  --bs-primary-bg-subtle: #d1d1d1;
333
384
  --bs-secondary-bg-subtle: #fdfdfd;
334
- --bs-success-bg-subtle: #d0e6d8;
335
- --bs-info-bg-subtle: #cfe2e8;
336
- --bs-warning-bg-subtle: #ecdecc;
337
- --bs-danger-bg-subtle: #f8d4d4;
385
+ --bs-success-bg-subtle: #cde4dd;
386
+ --bs-info-bg-subtle: #cde1ec;
387
+ --bs-warning-bg-subtle: #f0ddce;
388
+ --bs-danger-bg-subtle: #faccce;
338
389
  --bs-light-bg-subtle: #fcfcfd;
339
390
  --bs-dark-bg-subtle: #ced4da;
340
391
  --bs-primary-border-subtle: #a2a2a2;
341
392
  --bs-secondary-border-subtle: #fbfbfb;
342
- --bs-success-border-subtle: #a2ccb1;
343
- --bs-info-border-subtle: #9fc5d1;
344
- --bs-warning-border-subtle: #d9be99;
345
- --bs-danger-border-subtle: #f1a8a8;
393
+ --bs-success-border-subtle: #9bc9bc;
394
+ --bs-info-border-subtle: #9ac3d9;
395
+ --bs-warning-border-subtle: #e1ba9d;
396
+ --bs-danger-border-subtle: #f5999d;
346
397
  --bs-light-border-subtle: #e9ecef;
347
398
  --bs-dark-border-subtle: #adb5bd;
348
399
  }
@@ -351,20 +402,37 @@
351
402
  color-scheme: dark;
352
403
  color: var(--bs-body-color);
353
404
  background-color: var(--bs-body-bg);
354
- --moo-surface: #18181b;
405
+ --moo-surface: #0a0a0a;
355
406
  --moo-muted-surface: #27272a;
356
407
  --moo-border: #3f3f46;
408
+ --moo-primary: #e4e4e7;
409
+ --moo-primary-foreground: #18181b;
357
410
  --moo-foreground: #fafafa;
358
411
  --moo-muted-foreground: #a1a1aa;
359
412
  --moo-disabled-foreground: #71717a;
360
- --moo-ring: #fafafa;
361
- --moo-destructive: #f87171;
362
- --moo-destructive-foreground: #18181b;
413
+ --moo-ring: color-mix(in srgb, #fff 40%, #171717);
414
+ --moo-destructive: #ff6467;
415
+ --moo-destructive-surface: color-mix(in srgb, #ff6467 20%, transparent);
416
+ --moo-destructive-surface-hover: color-mix(in srgb, #ff6467 30%, transparent);
417
+ --moo-destructive-foreground: #ff6467;
418
+ --moo-form-invalid-ring-color: color-mix(in srgb, #ff6467 40%, transparent);
419
+ --moo-warning: color-mix(in srgb, #fafafa 60%, #b45309);
420
+ --moo-warning-surface: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #b45309) 20%, transparent);
421
+ --moo-warning-surface-hover: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #b45309) 30%, transparent);
422
+ --moo-warning-foreground: color-mix(in srgb, #fafafa 60%, #b45309);
423
+ --moo-success: color-mix(in srgb, #fafafa 60%, #047857);
424
+ --moo-success-surface: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #047857) 20%, transparent);
425
+ --moo-success-surface-hover: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #047857) 30%, transparent);
426
+ --moo-success-foreground: color-mix(in srgb, #fafafa 60%, #047857);
427
+ --moo-info: color-mix(in srgb, #fafafa 60%, #0369a1);
428
+ --moo-info-surface: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #0369a1) 20%, transparent);
429
+ --moo-info-surface-hover: color-mix(in srgb, color-mix(in srgb, #fafafa 60%, #0369a1) 30%, transparent);
430
+ --moo-info-foreground: color-mix(in srgb, #fafafa 60%, #0369a1);
363
431
  --moo-sidebar: #1c1c1f;
364
432
  --bs-body-color: var(--moo-foreground);
365
433
  --bs-body-color-rgb: 250, 250, 250;
366
434
  --bs-body-bg: var(--moo-surface);
367
- --bs-body-bg-rgb: 24, 24, 27;
435
+ --bs-body-bg-rgb: 10, 10, 10;
368
436
  --bs-emphasis-color: var(--moo-foreground);
369
437
  --bs-emphasis-color-rgb: 250, 250, 250;
370
438
  --bs-secondary-color: var(--moo-muted-foreground);
@@ -387,30 +455,30 @@
387
455
  --bs-border-color-translucent: rgba(250, 250, 250, 0.15);
388
456
  --bs-form-valid-color: #75b798;
389
457
  --bs-form-valid-border-color: #75b798;
390
- --bs-form-invalid-color: #ea868f;
391
- --bs-form-invalid-border-color: #ea868f;
458
+ --bs-form-invalid-color: var(--moo-destructive);
459
+ --bs-form-invalid-border-color: color-mix(in srgb, #ff6467 50%, transparent);
392
460
  --bs-primary-text-emphasis: #747474;
393
461
  --bs-secondary-text-emphasis: #f8f8f9;
394
- --bs-success-text-emphasis: #73b38a;
395
- --bs-info-text-emphasis: #6fa8ba;
396
- --bs-warning-text-emphasis: #c79d66;
397
- --bs-danger-text-emphasis: #ea7d7d;
462
+ --bs-success-text-emphasis: #68ae9a;
463
+ --bs-info-text-emphasis: #68a5c7;
464
+ --bs-warning-text-emphasis: #d2986b;
465
+ --bs-danger-text-emphasis: #f1666d;
398
466
  --bs-light-text-emphasis: #f8f9fa;
399
467
  --bs-dark-text-emphasis: #dee2e6;
400
468
  --bs-primary-bg-subtle: #050505;
401
469
  --bs-secondary-bg-subtle: #313131;
402
- --bs-success-bg-subtle: #041a0c;
403
- --bs-info-bg-subtle: #03161c;
404
- --bs-warning-bg-subtle: #201200;
405
- --bs-danger-bg-subtle: #2c0808;
470
+ --bs-success-bg-subtle: #011811;
471
+ --bs-info-bg-subtle: #011520;
472
+ --bs-warning-bg-subtle: #241102;
473
+ --bs-danger-bg-subtle: #2e0002;
406
474
  --bs-light-bg-subtle: #343a40;
407
475
  --bs-dark-bg-subtle: #1f2225;
408
476
  --bs-primary-border-subtle: #0e0e0e;
409
477
  --bs-secondary-border-subtle: #929293;
410
- --bs-success-border-subtle: #0d4d24;
411
- --bs-info-border-subtle: #094254;
412
- --bs-warning-border-subtle: #613700;
413
- --bs-danger-border-subtle: #841717;
478
+ --bs-success-border-subtle: #024834;
479
+ --bs-info-border-subtle: #023f61;
480
+ --bs-warning-border-subtle: #6c3205;
481
+ --bs-danger-border-subtle: #8b0007;
414
482
  --bs-light-border-subtle: #495057;
415
483
  --bs-dark-border-subtle: #343a40;
416
484
  }
@@ -518,52 +586,52 @@
518
586
  }
519
587
  .table-success {
520
588
  --bs-table-color: #0a0a0a;
521
- --bs-table-bg: #d0e6d8;
522
- --bs-table-border-color: #a8baaf;
523
- --bs-table-striped-bg: #c6dbce;
589
+ --bs-table-bg: #cde4dd;
590
+ --bs-table-border-color: #a6b8b3;
591
+ --bs-table-striped-bg: #c3d9d2;
524
592
  --bs-table-striped-color: #0a0a0a;
525
- --bs-table-active-bg: #bcd0c3;
593
+ --bs-table-active-bg: #bacec8;
526
594
  --bs-table-active-color: #0a0a0a;
527
- --bs-table-hover-bg: #c1d6c9;
595
+ --bs-table-hover-bg: #bed4cd;
528
596
  --bs-table-hover-color: #0a0a0a;
529
597
  color: var(--bs-table-color);
530
598
  border-color: var(--bs-table-border-color);
531
599
  }
532
600
  .table-info {
533
601
  --bs-table-color: #0a0a0a;
534
- --bs-table-bg: #cfe2e8;
535
- --bs-table-border-color: #a8b7bc;
536
- --bs-table-striped-bg: #c5d7dd;
602
+ --bs-table-bg: #cde1ec;
603
+ --bs-table-border-color: #a6b6bf;
604
+ --bs-table-striped-bg: #c3d6e1;
537
605
  --bs-table-striped-color: #0a0a0a;
538
- --bs-table-active-bg: #bbccd2;
606
+ --bs-table-active-bg: #baccd5;
539
607
  --bs-table-active-color: #0a0a0a;
540
- --bs-table-hover-bg: #c0d2d7;
608
+ --bs-table-hover-bg: #bed1db;
541
609
  --bs-table-hover-color: #0a0a0a;
542
610
  color: var(--bs-table-color);
543
611
  border-color: var(--bs-table-border-color);
544
612
  }
545
613
  .table-warning {
546
614
  --bs-table-color: #0a0a0a;
547
- --bs-table-bg: #ecdecc;
548
- --bs-table-border-color: #bfb4a5;
549
- --bs-table-striped-bg: #e1d3c2;
615
+ --bs-table-bg: #f0ddce;
616
+ --bs-table-border-color: #c2b3a7;
617
+ --bs-table-striped-bg: #e5d2c4;
550
618
  --bs-table-striped-color: #0a0a0a;
551
- --bs-table-active-bg: #d5c9b9;
619
+ --bs-table-active-bg: #d9c8ba;
552
620
  --bs-table-active-color: #0a0a0a;
553
- --bs-table-hover-bg: #dbcebd;
621
+ --bs-table-hover-bg: #dfcdbf;
554
622
  --bs-table-hover-color: #0a0a0a;
555
623
  color: var(--bs-table-color);
556
624
  border-color: var(--bs-table-border-color);
557
625
  }
558
626
  .table-danger {
559
627
  --bs-table-color: #0a0a0a;
560
- --bs-table-bg: #f8d4d4;
561
- --bs-table-border-color: #c8acac;
562
- --bs-table-striped-bg: #eccaca;
628
+ --bs-table-bg: #faccce;
629
+ --bs-table-border-color: #caa5a7;
630
+ --bs-table-striped-bg: #eec2c4;
563
631
  --bs-table-striped-color: #0a0a0a;
564
- --bs-table-active-bg: #e0c0c0;
632
+ --bs-table-active-bg: #e2b9ba;
565
633
  --bs-table-active-color: #0a0a0a;
566
- --bs-table-hover-bg: #e6c5c5;
634
+ --bs-table-hover-bg: #e8bdbf;
567
635
  --bs-table-hover-color: #0a0a0a;
568
636
  color: var(--bs-table-color);
569
637
  border-color: var(--bs-table-border-color);
@@ -870,29 +938,29 @@
870
938
  .form-check {
871
939
  display: block;
872
940
  min-height: 1.3125rem;
873
- padding-left: 1.5em;
941
+ padding-left: 1.5rem;
874
942
  margin-bottom: 0.125rem;
875
943
  }
876
944
  .form-check .form-check-input {
877
945
  float: left;
878
- margin-left: -1.5em;
946
+ margin-left: -1.5rem;
879
947
  }
880
948
  .form-check-reverse {
881
- padding-right: 1.5em;
949
+ padding-right: 1.5rem;
882
950
  padding-left: 0;
883
951
  text-align: right;
884
952
  }
885
953
  .form-check-reverse .form-check-input {
886
954
  float: right;
887
- margin-right: -1.5em;
955
+ margin-right: -1.5rem;
888
956
  margin-left: 0;
889
957
  }
890
958
  .form-check-input {
891
959
  --bs-form-check-bg: transparent;
892
960
  flex-shrink: 0;
893
- width: 1em;
894
- height: 1em;
895
- margin-top: 0.25em;
961
+ width: 1rem;
962
+ height: 1rem;
963
+ margin-top: 0.25rem;
896
964
  vertical-align: top;
897
965
  appearance: none;
898
966
  background-color: var(--bs-form-check-bg);
@@ -1113,36 +1181,18 @@
1113
1181
  }
1114
1182
  .was-validated .form-control:valid, .form-control.is-valid {
1115
1183
  border-color: var(--bs-form-valid-border-color);
1116
- padding-right: calc(1.42857em + 0.5rem);
1117
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2316803c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
1118
- background-repeat: no-repeat;
1119
- background-position: right calc(0.35714em + 0.125rem) center;
1120
- background-size: calc(0.71429em + 0.25rem) calc(0.71429em + 0.25rem);
1121
1184
  }
1122
1185
  .was-validated .form-control:valid:focus, .form-control.is-valid:focus {
1123
1186
  border-color: var(--bs-form-valid-border-color);
1124
1187
  box-shadow: 0 0 0 2px rgba(var(--bs-success-rgb), 0.25);
1125
1188
  }
1126
- .was-validated textarea.form-control:valid, textarea.form-control.is-valid {
1127
- padding-right: calc(1.42857em + 0.5rem);
1128
- background-position: top calc(0.35714em + 0.125rem) right calc(0.35714em + 0.125rem);
1129
- }
1130
1189
  .was-validated .form-select:valid, .form-select.is-valid {
1131
1190
  border-color: var(--bs-form-valid-border-color);
1132
1191
  }
1133
- .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
1134
- --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2316803c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
1135
- padding-right: 3.4375rem;
1136
- background-position: right 0.625rem center, center right 1.875rem;
1137
- background-size: 16px 12px, calc(0.71429em + 0.25rem) calc(0.71429em + 0.25rem);
1138
- }
1139
1192
  .was-validated .form-select:valid:focus, .form-select.is-valid:focus {
1140
1193
  border-color: var(--bs-form-valid-border-color);
1141
1194
  box-shadow: 0 0 0 2px rgba(var(--bs-success-rgb), 0.25);
1142
1195
  }
1143
- .was-validated .form-control-color:valid, .form-control-color.is-valid {
1144
- width: calc(3rem + calc(1.42857em + 0.5rem));
1145
- }
1146
1196
  .was-validated .form-check-input:valid, .form-check-input.is-valid {
1147
1197
  border-color: var(--bs-form-valid-border-color);
1148
1198
  }
@@ -1196,36 +1246,18 @@
1196
1246
  }
1197
1247
  .was-validated .form-control:invalid, .form-control.is-invalid {
1198
1248
  border-color: var(--bs-form-invalid-border-color);
1199
- padding-right: calc(1.42857em + 0.5rem);
1200
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc2626'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc2626' stroke='none'/%3e%3c/svg%3e");
1201
- background-repeat: no-repeat;
1202
- background-position: right calc(0.35714em + 0.125rem) center;
1203
- background-size: calc(0.71429em + 0.25rem) calc(0.71429em + 0.25rem);
1204
1249
  }
1205
1250
  .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
1206
1251
  border-color: var(--bs-form-invalid-border-color);
1207
1252
  box-shadow: 0 0 0 2px rgba(var(--bs-danger-rgb), 0.25);
1208
1253
  }
1209
- .was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
1210
- padding-right: calc(1.42857em + 0.5rem);
1211
- background-position: top calc(0.35714em + 0.125rem) right calc(0.35714em + 0.125rem);
1212
- }
1213
1254
  .was-validated .form-select:invalid, .form-select.is-invalid {
1214
1255
  border-color: var(--bs-form-invalid-border-color);
1215
1256
  }
1216
- .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
1217
- --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc2626'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc2626' stroke='none'/%3e%3c/svg%3e");
1218
- padding-right: 3.4375rem;
1219
- background-position: right 0.625rem center, center right 1.875rem;
1220
- background-size: 16px 12px, calc(0.71429em + 0.25rem) calc(0.71429em + 0.25rem);
1221
- }
1222
1257
  .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
1223
1258
  border-color: var(--bs-form-invalid-border-color);
1224
1259
  box-shadow: 0 0 0 2px rgba(var(--bs-danger-rgb), 0.25);
1225
1260
  }
1226
- .was-validated .form-control-color:invalid, .form-control-color.is-invalid {
1227
- width: calc(3rem + calc(1.42857em + 0.5rem));
1228
- }
1229
1261
  .was-validated .form-check-input:invalid, .form-check-input.is-invalid {
1230
1262
  border-color: var(--bs-form-invalid-border-color);
1231
1263
  }
@@ -1358,67 +1390,67 @@
1358
1390
  }
1359
1391
  .btn-success {
1360
1392
  --bs-btn-color: #fff;
1361
- --bs-btn-bg: #16803c;
1362
- --bs-btn-border-color: #16803c;
1393
+ --bs-btn-bg: #047857;
1394
+ --bs-btn-border-color: #047857;
1363
1395
  --bs-btn-hover-color: #fff;
1364
- --bs-btn-hover-bg: #136d33;
1365
- --bs-btn-hover-border-color: #126630;
1366
- --bs-btn-focus-shadow-rgb: 57, 147, 89;
1396
+ --bs-btn-hover-bg: #03664a;
1397
+ --bs-btn-hover-border-color: #036046;
1398
+ --bs-btn-focus-shadow-rgb: 42, 140, 112;
1367
1399
  --bs-btn-active-color: #fff;
1368
- --bs-btn-active-bg: #126630;
1369
- --bs-btn-active-border-color: #11602d;
1400
+ --bs-btn-active-bg: #036046;
1401
+ --bs-btn-active-border-color: #035a41;
1370
1402
  --bs-btn-active-shadow: none;
1371
1403
  --bs-btn-disabled-color: #fff;
1372
- --bs-btn-disabled-bg: #16803c;
1373
- --bs-btn-disabled-border-color: #16803c;
1404
+ --bs-btn-disabled-bg: #047857;
1405
+ --bs-btn-disabled-border-color: #047857;
1374
1406
  }
1375
1407
  .btn-info {
1376
1408
  --bs-btn-color: #fff;
1377
- --bs-btn-bg: #0f6e8c;
1378
- --bs-btn-border-color: #0f6e8c;
1409
+ --bs-btn-bg: #0369a1;
1410
+ --bs-btn-border-color: #0369a1;
1379
1411
  --bs-btn-hover-color: #fff;
1380
- --bs-btn-hover-bg: #0d5e77;
1381
- --bs-btn-hover-border-color: #0c5870;
1382
- --bs-btn-focus-shadow-rgb: 51, 132, 157;
1412
+ --bs-btn-hover-bg: #035989;
1413
+ --bs-btn-hover-border-color: #025481;
1414
+ --bs-btn-focus-shadow-rgb: 41, 128, 175;
1383
1415
  --bs-btn-active-color: #fff;
1384
- --bs-btn-active-bg: #0c5870;
1385
- --bs-btn-active-border-color: #0b5369;
1416
+ --bs-btn-active-bg: #025481;
1417
+ --bs-btn-active-border-color: #024f79;
1386
1418
  --bs-btn-active-shadow: none;
1387
1419
  --bs-btn-disabled-color: #fff;
1388
- --bs-btn-disabled-bg: #0f6e8c;
1389
- --bs-btn-disabled-border-color: #0f6e8c;
1420
+ --bs-btn-disabled-bg: #0369a1;
1421
+ --bs-btn-disabled-border-color: #0369a1;
1390
1422
  }
1391
1423
  .btn-warning {
1392
1424
  --bs-btn-color: #fff;
1393
- --bs-btn-bg: #a15c00;
1394
- --bs-btn-border-color: #a15c00;
1425
+ --bs-btn-bg: #b45309;
1426
+ --bs-btn-border-color: #b45309;
1395
1427
  --bs-btn-hover-color: #fff;
1396
- --bs-btn-hover-bg: #894e00;
1397
- --bs-btn-hover-border-color: #814a00;
1398
- --bs-btn-focus-shadow-rgb: 175, 116, 38;
1428
+ --bs-btn-hover-bg: #994708;
1429
+ --bs-btn-hover-border-color: #904207;
1430
+ --bs-btn-focus-shadow-rgb: 191, 109, 46;
1399
1431
  --bs-btn-active-color: #fff;
1400
- --bs-btn-active-bg: #814a00;
1401
- --bs-btn-active-border-color: #794500;
1432
+ --bs-btn-active-bg: #904207;
1433
+ --bs-btn-active-border-color: #873e07;
1402
1434
  --bs-btn-active-shadow: none;
1403
1435
  --bs-btn-disabled-color: #fff;
1404
- --bs-btn-disabled-bg: #a15c00;
1405
- --bs-btn-disabled-border-color: #a15c00;
1436
+ --bs-btn-disabled-bg: #b45309;
1437
+ --bs-btn-disabled-border-color: #b45309;
1406
1438
  }
1407
1439
  .btn-danger {
1408
1440
  --bs-btn-color: #fff;
1409
- --bs-btn-bg: #dc2626;
1410
- --bs-btn-border-color: #dc2626;
1441
+ --bs-btn-bg: #e7000b;
1442
+ --bs-btn-border-color: #e7000b;
1411
1443
  --bs-btn-hover-color: #fff;
1412
- --bs-btn-hover-bg: #bb2020;
1413
- --bs-btn-hover-border-color: #b01e1e;
1414
- --bs-btn-focus-shadow-rgb: 225, 71, 71;
1444
+ --bs-btn-hover-bg: #c40009;
1445
+ --bs-btn-hover-border-color: #b90009;
1446
+ --bs-btn-focus-shadow-rgb: 235, 38, 48;
1415
1447
  --bs-btn-active-color: #fff;
1416
- --bs-btn-active-bg: #b01e1e;
1417
- --bs-btn-active-border-color: #a51d1d;
1448
+ --bs-btn-active-bg: #b90009;
1449
+ --bs-btn-active-border-color: #ad0008;
1418
1450
  --bs-btn-active-shadow: none;
1419
1451
  --bs-btn-disabled-color: #fff;
1420
- --bs-btn-disabled-bg: #dc2626;
1421
- --bs-btn-disabled-border-color: #dc2626;
1452
+ --bs-btn-disabled-bg: #e7000b;
1453
+ --bs-btn-disabled-border-color: #e7000b;
1422
1454
  }
1423
1455
  .btn-light {
1424
1456
  --bs-btn-color: #0a0a0a;
@@ -1485,67 +1517,67 @@
1485
1517
  --bs-gradient: none;
1486
1518
  }
1487
1519
  .btn-outline-success {
1488
- --bs-btn-color: #16803c;
1489
- --bs-btn-border-color: #16803c;
1520
+ --bs-btn-color: #047857;
1521
+ --bs-btn-border-color: #047857;
1490
1522
  --bs-btn-hover-color: #fff;
1491
- --bs-btn-hover-bg: #16803c;
1492
- --bs-btn-hover-border-color: #16803c;
1493
- --bs-btn-focus-shadow-rgb: 22, 128, 60;
1523
+ --bs-btn-hover-bg: #047857;
1524
+ --bs-btn-hover-border-color: #047857;
1525
+ --bs-btn-focus-shadow-rgb: 4, 120, 87;
1494
1526
  --bs-btn-active-color: #fff;
1495
- --bs-btn-active-bg: #16803c;
1496
- --bs-btn-active-border-color: #16803c;
1527
+ --bs-btn-active-bg: #047857;
1528
+ --bs-btn-active-border-color: #047857;
1497
1529
  --bs-btn-active-shadow: none;
1498
- --bs-btn-disabled-color: #16803c;
1530
+ --bs-btn-disabled-color: #047857;
1499
1531
  --bs-btn-disabled-bg: transparent;
1500
- --bs-btn-disabled-border-color: #16803c;
1532
+ --bs-btn-disabled-border-color: #047857;
1501
1533
  --bs-gradient: none;
1502
1534
  }
1503
1535
  .btn-outline-info {
1504
- --bs-btn-color: #0f6e8c;
1505
- --bs-btn-border-color: #0f6e8c;
1536
+ --bs-btn-color: #0369a1;
1537
+ --bs-btn-border-color: #0369a1;
1506
1538
  --bs-btn-hover-color: #fff;
1507
- --bs-btn-hover-bg: #0f6e8c;
1508
- --bs-btn-hover-border-color: #0f6e8c;
1509
- --bs-btn-focus-shadow-rgb: 15, 110, 140;
1539
+ --bs-btn-hover-bg: #0369a1;
1540
+ --bs-btn-hover-border-color: #0369a1;
1541
+ --bs-btn-focus-shadow-rgb: 3, 105, 161;
1510
1542
  --bs-btn-active-color: #fff;
1511
- --bs-btn-active-bg: #0f6e8c;
1512
- --bs-btn-active-border-color: #0f6e8c;
1543
+ --bs-btn-active-bg: #0369a1;
1544
+ --bs-btn-active-border-color: #0369a1;
1513
1545
  --bs-btn-active-shadow: none;
1514
- --bs-btn-disabled-color: #0f6e8c;
1546
+ --bs-btn-disabled-color: #0369a1;
1515
1547
  --bs-btn-disabled-bg: transparent;
1516
- --bs-btn-disabled-border-color: #0f6e8c;
1548
+ --bs-btn-disabled-border-color: #0369a1;
1517
1549
  --bs-gradient: none;
1518
1550
  }
1519
1551
  .btn-outline-warning {
1520
- --bs-btn-color: #a15c00;
1521
- --bs-btn-border-color: #a15c00;
1552
+ --bs-btn-color: #b45309;
1553
+ --bs-btn-border-color: #b45309;
1522
1554
  --bs-btn-hover-color: #fff;
1523
- --bs-btn-hover-bg: #a15c00;
1524
- --bs-btn-hover-border-color: #a15c00;
1525
- --bs-btn-focus-shadow-rgb: 161, 92, 0;
1555
+ --bs-btn-hover-bg: #b45309;
1556
+ --bs-btn-hover-border-color: #b45309;
1557
+ --bs-btn-focus-shadow-rgb: 180, 83, 9;
1526
1558
  --bs-btn-active-color: #fff;
1527
- --bs-btn-active-bg: #a15c00;
1528
- --bs-btn-active-border-color: #a15c00;
1559
+ --bs-btn-active-bg: #b45309;
1560
+ --bs-btn-active-border-color: #b45309;
1529
1561
  --bs-btn-active-shadow: none;
1530
- --bs-btn-disabled-color: #a15c00;
1562
+ --bs-btn-disabled-color: #b45309;
1531
1563
  --bs-btn-disabled-bg: transparent;
1532
- --bs-btn-disabled-border-color: #a15c00;
1564
+ --bs-btn-disabled-border-color: #b45309;
1533
1565
  --bs-gradient: none;
1534
1566
  }
1535
1567
  .btn-outline-danger {
1536
- --bs-btn-color: #dc2626;
1537
- --bs-btn-border-color: #dc2626;
1568
+ --bs-btn-color: #e7000b;
1569
+ --bs-btn-border-color: #e7000b;
1538
1570
  --bs-btn-hover-color: #fff;
1539
- --bs-btn-hover-bg: #dc2626;
1540
- --bs-btn-hover-border-color: #dc2626;
1541
- --bs-btn-focus-shadow-rgb: 220, 38, 38;
1571
+ --bs-btn-hover-bg: #e7000b;
1572
+ --bs-btn-hover-border-color: #e7000b;
1573
+ --bs-btn-focus-shadow-rgb: 231, 0, 11;
1542
1574
  --bs-btn-active-color: #fff;
1543
- --bs-btn-active-bg: #dc2626;
1544
- --bs-btn-active-border-color: #dc2626;
1575
+ --bs-btn-active-bg: #e7000b;
1576
+ --bs-btn-active-border-color: #e7000b;
1545
1577
  --bs-btn-active-shadow: none;
1546
- --bs-btn-disabled-color: #dc2626;
1578
+ --bs-btn-disabled-color: #e7000b;
1547
1579
  --bs-btn-disabled-bg: transparent;
1548
- --bs-btn-disabled-border-color: #dc2626;
1580
+ --bs-btn-disabled-border-color: #e7000b;
1549
1581
  --bs-gradient: none;
1550
1582
  }
1551
1583
  .btn-outline-light {
@@ -2470,25 +2502,25 @@
2470
2502
  color: var(--bs-breadcrumb-item-active-color);
2471
2503
  }
2472
2504
  .pagination {
2473
- --bs-pagination-padding-x: 0.75rem;
2474
- --bs-pagination-padding-y: 0.375rem;
2505
+ --bs-pagination-padding-x: 0;
2506
+ --bs-pagination-padding-y: 0;
2475
2507
  --bs-pagination-font-size: 0.875rem;
2476
2508
  --bs-pagination-color: var(--moo-muted-foreground);
2477
- --bs-pagination-bg: var(--bs-body-bg);
2509
+ --bs-pagination-bg: transparent;
2478
2510
  --bs-pagination-border-width: var(--bs-border-width);
2479
2511
  --bs-pagination-border-color: transparent;
2480
- --bs-pagination-border-radius: var(--bs-border-radius);
2512
+ --bs-pagination-border-radius: var(--bs-border-radius-lg);
2481
2513
  --bs-pagination-hover-color: var(--bs-body-color);
2482
- --bs-pagination-hover-bg: var(--moo-muted-surface);
2514
+ --bs-pagination-hover-bg: color-mix(in srgb, var(--moo-muted-surface) 50%, transparent);
2483
2515
  --bs-pagination-hover-border-color: transparent;
2484
2516
  --bs-pagination-focus-color: var(--bs-link-hover-color);
2485
- --bs-pagination-focus-bg: var(--moo-muted-surface);
2517
+ --bs-pagination-focus-bg: color-mix(in srgb, var(--moo-muted-surface) 50%, transparent);
2486
2518
  --bs-pagination-focus-box-shadow: 0 0 0 2px rgba(23, 23, 23, 0.25);
2487
2519
  --bs-pagination-active-color: var(--bs-body-color);
2488
- --bs-pagination-active-bg: var(--moo-muted-surface);
2520
+ --bs-pagination-active-bg: color-mix(in srgb, var(--moo-muted-surface) 50%, transparent);
2489
2521
  --bs-pagination-active-border-color: var(--moo-border);
2490
2522
  --bs-pagination-disabled-color: var(--moo-disabled-foreground);
2491
- --bs-pagination-disabled-bg: var(--bs-secondary-bg);
2523
+ --bs-pagination-disabled-bg: transparent;
2492
2524
  --bs-pagination-disabled-border-color: transparent;
2493
2525
  display: flex;
2494
2526
  padding-left: 0;
@@ -2559,12 +2591,12 @@
2559
2591
  }
2560
2592
  }
2561
2593
  .badge {
2562
- --bs-badge-padding-x: 0.65em;
2563
- --bs-badge-padding-y: 0.35em;
2564
- --bs-badge-font-size: 0.75em;
2594
+ --bs-badge-padding-x: 0.5rem;
2595
+ --bs-badge-padding-y: 0.125rem;
2596
+ --bs-badge-font-size: 0.75rem;
2565
2597
  --bs-badge-font-weight: 500;
2566
2598
  --bs-badge-color: #fff;
2567
- --bs-badge-border-radius: var(--bs-border-radius);
2599
+ --bs-badge-border-radius: var(--bs-border-radius-pill);
2568
2600
  display: inline-block;
2569
2601
  padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
2570
2602
  font-size: var(--bs-badge-font-size);
@@ -2669,18 +2701,18 @@
2669
2701
  .btn-close {
2670
2702
  --bs-btn-close-color: #0a0a0a;
2671
2703
  --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230a0a0a'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
2672
- --bs-btn-close-opacity: 0.5;
2673
- --bs-btn-close-hover-opacity: 0.75;
2704
+ --bs-btn-close-opacity: 1;
2705
+ --bs-btn-close-hover-opacity: 1;
2674
2706
  --bs-btn-close-focus-shadow: 0 0 0 2px rgba(23, 23, 23, 0.25);
2675
2707
  --bs-btn-close-focus-opacity: 1;
2676
- --bs-btn-close-disabled-opacity: 0.25;
2708
+ --bs-btn-close-disabled-opacity: 0.5;
2677
2709
  --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
2678
2710
  box-sizing: content-box;
2679
- width: 1em;
2680
- height: 1em;
2681
- padding: 0.25em 0.25em;
2711
+ width: 0.75rem;
2712
+ height: 0.75rem;
2713
+ padding: 0.34375rem 0.34375rem;
2682
2714
  color: var(--bs-btn-close-color);
2683
- background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;
2715
+ background: transparent var(--bs-btn-close-bg) center/0.75rem auto no-repeat;
2684
2716
  border: 0;
2685
2717
  border-radius: 0.5rem;
2686
2718
  opacity: var(--bs-btn-close-opacity);
@@ -3821,24 +3853,71 @@
3821
3853
  color: #fff !important;
3822
3854
  background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;
3823
3855
  }
3824
- :is(.btn, a, button, summary, [tabindex]):not(input, textarea, select):focus-visible {
3825
- outline: var(--bs-focus-ring-width) solid var(--moo-ring);
3826
- outline-offset: var(--bs-focus-ring-width);
3856
+ :is(.btn, a, button, summary, [tabindex]):not(input, textarea, select):focus-visible,
3857
+ :is(.form-control, .form-select, .form-check-input):focus-visible {
3858
+ border-color: var(--moo-ring);
3859
+ outline: 0;
3860
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
3861
+ }
3862
+ .btn:focus-visible:hover,
3863
+ .btn.show:focus-visible {
3864
+ border-color: var(--bs-btn-hover-border-color);
3865
+ box-shadow: none;
3866
+ }
3867
+ .form-control:focus:not(:focus-visible),
3868
+ .form-select:focus:not(:focus-visible) {
3869
+ border-color: var(--moo-border);
3870
+ box-shadow: none;
3871
+ }
3872
+ .page-link:focus:not(:focus-visible) {
3873
+ outline: 0;
3827
3874
  box-shadow: none;
3828
3875
  }
3876
+ .page-item:not(.active) > .page-link:focus:not(:focus-visible) {
3877
+ color: var(--bs-pagination-color);
3878
+ background-color: var(--bs-pagination-bg);
3879
+ border-color: var(--bs-pagination-border-color);
3880
+ }
3829
3881
  .form-control.is-invalid,
3830
3882
  .form-control.is-invalid:focus,
3883
+ .was-validated .form-control:invalid,
3884
+ .was-validated .form-control:invalid:focus,
3831
3885
  .form-select.is-invalid,
3832
- .form-select.is-invalid:focus {
3833
- box-shadow: 0 0 0 var(--bs-focus-ring-width) color-mix(in srgb, var(--bs-form-invalid-border-color) 20%, transparent);
3886
+ .form-select.is-invalid:focus,
3887
+ .was-validated .form-select:invalid,
3888
+ .was-validated .form-select:invalid:focus {
3889
+ box-shadow: 0 0 0 3px var(--moo-form-invalid-ring-color);
3834
3890
  }
3835
- .btn-check:focus-visible + .btn {
3836
- outline: var(--bs-focus-ring-width) solid var(--moo-ring);
3837
- outline-offset: var(--bs-focus-ring-width);
3891
+ .btn-check:focus:not(:focus-visible) + .btn {
3892
+ outline: 0;
3838
3893
  box-shadow: none;
3839
3894
  }
3895
+ .btn-check:focus-visible + .btn {
3896
+ border-color: var(--moo-ring);
3897
+ outline: 0;
3898
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
3899
+ }
3840
3900
  .input-group > .dropdown-toggle[aria-expanded="true"]:focus-visible {
3901
+ box-shadow: none;
3902
+ }
3903
+ .combobox-chips:focus-within {
3904
+ border-color: var(--moo-ring);
3905
+ outline: 0;
3906
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
3907
+ }
3908
+ .input-group:has(> .form-control:focus):not(:has(> .form-control[type="file"])) {
3909
+ border-color: var(--moo-ring);
3841
3910
  outline: 0;
3911
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
3912
+ }
3913
+ .input-group.has-validation:not(:has(> :is(.valid-feedback, .invalid-feedback, .valid-tooltip, .invalid-tooltip))):has(> :is(.form-control, .form-select).is-invalid),
3914
+ .was-validated .input-group.has-validation:not(:has(> :is(.valid-feedback, .invalid-feedback, .valid-tooltip, .invalid-tooltip))):has(> :is(.form-control, .form-select):invalid) {
3915
+ border-color: var(--bs-form-invalid-border-color);
3916
+ box-shadow: 0 0 0 3px var(--moo-form-invalid-ring-color);
3917
+ }
3918
+ .input-group.has-validation:not(:has(> :is(.valid-feedback, .invalid-feedback, .valid-tooltip, .invalid-tooltip))) > :is(.form-control, .form-select).is-invalid,
3919
+ .was-validated .input-group.has-validation:not(:has(> :is(.valid-feedback, .invalid-feedback, .valid-tooltip, .invalid-tooltip))) > :is(.form-control, .form-select):invalid {
3920
+ box-shadow: none;
3842
3921
  }
3843
3922
  :where( .scroll-fade, .scroll-fade-y, .scroll-fade-x, .scroll-fade-t, .scroll-fade-b, .scroll-fade-l, .scroll-fade-r, .scroll-fade-s, .scroll-fade-e ) {
3844
3923
  --scroll-fade-size: min(12%, 2.5rem);
@@ -4009,10 +4088,14 @@
4009
4088
  }
4010
4089
  }
4011
4090
  kbd {
4091
+ display: inline-flex;
4092
+ height: 1.25rem;
4093
+ min-width: 1.25rem;
4094
+ align-items: center;
4095
+ justify-content: center;
4012
4096
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
4013
4097
  line-height: 1rem;
4014
4098
  font-weight: 500;
4015
- border: var(--bs-border-width) solid var(--bs-border-color);
4016
4099
  }
4017
4100
  .form-control {
4018
4101
  min-height: 2rem;
@@ -4027,6 +4110,11 @@
4027
4110
  textarea.form-control:disabled {
4028
4111
  resize: none;
4029
4112
  }
4113
+ .form-select option,
4114
+ .form-select optgroup {
4115
+ color: var(--bs-body-color);
4116
+ background-color: var(--bs-body-bg);
4117
+ }
4030
4118
  .input-group:not(:has(> .form-control[type="file"])) {
4031
4119
  border: var(--bs-border-width) solid var(--moo-border);
4032
4120
  border-radius: var(--moo-input-group-border-radius);
@@ -4034,10 +4122,10 @@
4034
4122
  .input-group.rounded-pill:not(:has(> .form-control[type="file"])) {
4035
4123
  --moo-input-group-border-radius: var(--bs-border-radius-pill);
4036
4124
  }
4037
- .input-group:not(:has(textarea)):not(:has(> .form-control[type="file"])) {
4125
+ .input-group:not(:has(> :is(.valid-feedback, .invalid-feedback, .valid-tooltip, .invalid-tooltip))):not(:has(textarea)):not(:has(> .form-control[type="file"])):not(:has(> [data-align])) {
4038
4126
  height: calc(2rem + var(--bs-border-width) * 2);
4039
4127
  }
4040
- .input-group:not(:has(textarea)):not(:has(> .form-control[type="file"])) > .form-control {
4128
+ .input-group:not(:has(> :is(.valid-feedback, .invalid-feedback, .valid-tooltip, .invalid-tooltip))):not(:has(textarea)):not(:has(> .form-control[type="file"])):not(:has(> [data-align])) > .form-control {
4041
4129
  min-height: 0;
4042
4130
  }
4043
4131
  .input-group > textarea.form-control {
@@ -4140,10 +4228,6 @@
4140
4228
  border: 0;
4141
4229
  background-color: transparent;
4142
4230
  }
4143
- .input-group:has(> .form-control:focus):not(:has(> .form-control[type="file"])) {
4144
- border-color: #8b8b8b;
4145
- box-shadow: 0 0 0 2px rgba(23, 23, 23, 0.25);
4146
- }
4147
4231
  .input-group:not(:has(> .form-control[type="file"])) > :is(.form-control, .form-select):focus {
4148
4232
  outline: 0;
4149
4233
  box-shadow: none;
@@ -4203,13 +4287,21 @@ label.btn {
4203
4287
  :is(.btn-xs, .btn-sm, .btn-group-sm > .btn, .btn-group-sm > .btn-group > .btn):not(.btn-icon, .btn-icon-xs, .btn-icon-sm, .btn-icon-lg):has(> [data-icon="inline-end"]) {
4204
4288
  padding-inline-end: 0.375rem;
4205
4289
  }
4290
+ .btn-icon {
4291
+ --bs-btn-line-height: 1.25rem;
4292
+ --bs-btn-padding-y: 0.3125rem;
4293
+ }
4206
4294
  .btn-icon,
4207
4295
  .btn-icon-xs,
4208
4296
  .btn-icon-sm,
4209
4297
  .btn-icon-lg {
4210
- padding: 0;
4211
- inline-size: calc( var(--bs-btn-line-height) + var(--bs-btn-padding-y) + var(--bs-btn-padding-y) + var(--bs-btn-border-width) + var(--bs-btn-border-width));
4212
- aspect-ratio: 1;
4298
+ --moo-btn-icon-size: calc(
4299
+ var(--bs-btn-line-height) +
4300
+ var(--bs-btn-padding-y) * 2 +
4301
+ var(--bs-btn-border-width) * 2);
4302
+ padding-inline: 0;
4303
+ inline-size: var(--moo-btn-icon-size);
4304
+ block-size: var(--moo-btn-icon-size);
4213
4305
  }
4214
4306
  :is(.btn-icon, .btn-icon-xs, .btn-icon-sm, .btn-icon-lg)::after {
4215
4307
  display: none;
@@ -4261,19 +4353,19 @@ label.btn {
4261
4353
  --bs-btn-disabled-bg: transparent;
4262
4354
  }
4263
4355
  .btn-primary {
4264
- --bs-btn-color: var(--moo-surface);
4265
- --bs-btn-bg: var(--moo-foreground);
4266
- --bs-btn-hover-bg: color-mix(in srgb, var(--moo-foreground) 88%, var(--moo-surface));
4267
- --bs-btn-active-bg: color-mix(in srgb, var(--moo-foreground) 80%, var(--moo-surface));
4356
+ --bs-btn-color: var(--moo-primary-foreground);
4357
+ --bs-btn-bg: var(--moo-primary);
4358
+ --bs-btn-hover-bg: color-mix(in srgb, var(--moo-primary) 80%, var(--moo-surface));
4359
+ --bs-btn-active-bg: color-mix(in srgb, var(--moo-primary) 72%, var(--moo-surface));
4268
4360
  }
4269
4361
  .btn-secondary {
4270
4362
  --bs-btn-color: var(--moo-foreground);
4271
- --bs-btn-bg: var(--moo-muted-surface);
4363
+ --bs-btn-bg: var(--moo-surface);
4272
4364
  --bs-btn-border-color: var(--moo-border);
4273
- --bs-btn-hover-bg: color-mix(in srgb, var(--moo-muted-surface) 86%, var(--moo-foreground));
4274
- --bs-btn-hover-border-color: color-mix(in srgb, var(--moo-border) 80%, var(--moo-foreground));
4275
- --bs-btn-active-bg: color-mix(in srgb, var(--moo-muted-surface) 78%, var(--moo-foreground));
4276
- --bs-btn-active-border-color: color-mix(in srgb, var(--moo-border) 72%, var(--moo-foreground));
4365
+ --bs-btn-hover-bg: color-mix(in srgb, var(--moo-muted-surface) 95%, var(--moo-foreground));
4366
+ --bs-btn-hover-border-color: color-mix(in srgb, var(--moo-border) 90%, var(--moo-foreground));
4367
+ --bs-btn-active-bg: color-mix(in srgb, var(--moo-muted-surface) 88%, var(--moo-foreground));
4368
+ --bs-btn-active-border-color: color-mix(in srgb, var(--moo-border) 82%, var(--moo-foreground));
4277
4369
  }
4278
4370
  .btn-outline-secondary {
4279
4371
  --bs-btn-color: var(--moo-foreground);
@@ -4300,15 +4392,67 @@ label.btn {
4300
4392
  }
4301
4393
  .btn-danger {
4302
4394
  --bs-btn-color: var(--moo-destructive-foreground);
4303
- --bs-btn-bg: var(--moo-destructive);
4304
- --bs-btn-hover-bg: color-mix(in srgb, var(--moo-destructive) 88%, var(--moo-foreground));
4305
- --bs-btn-active-bg: color-mix(in srgb, var(--moo-destructive) 80%, var(--moo-foreground));
4395
+ --bs-btn-bg: var(--moo-destructive-surface);
4396
+ --bs-btn-border-color: transparent;
4397
+ --bs-btn-hover-color: var(--moo-destructive-foreground);
4398
+ --bs-btn-hover-bg: var(--moo-destructive-surface-hover);
4399
+ --bs-btn-hover-border-color: transparent;
4400
+ --bs-btn-active-color: var(--moo-destructive-foreground);
4401
+ --bs-btn-active-bg: var(--moo-destructive-surface-hover);
4402
+ --bs-btn-active-border-color: transparent;
4306
4403
  }
4307
4404
  .btn-link {
4308
4405
  --bs-btn-color: var(--moo-foreground);
4309
4406
  --bs-btn-hover-color: var(--moo-muted-foreground);
4310
4407
  text-underline-offset: 0.25rem;
4311
4408
  }
4409
+ .btn-close {
4410
+ --bs-btn-close-color: var(--moo-foreground);
4411
+ --bs-btn-hover-color: var(--bs-btn-close-color);
4412
+ --bs-btn-hover-bg: var(--moo-muted-surface);
4413
+ --bs-btn-hover-border-color: transparent;
4414
+ --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M18 6 6 18'/%3e%3cpath d='m6 6 12 12'/%3e%3c/svg%3e");
4415
+ display: inline-flex;
4416
+ flex: 0 0 auto;
4417
+ align-items: center;
4418
+ justify-content: center;
4419
+ border-width: var(--bs-border-width);
4420
+ border-style: var(--bs-border-style);
4421
+ border-color: transparent;
4422
+ border-radius: var(--bs-border-radius-xl);
4423
+ color: var(--bs-btn-close-color);
4424
+ background-image: none;
4425
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
4426
+ }
4427
+ .btn-close::before {
4428
+ width: 0.75rem;
4429
+ height: 0.75rem;
4430
+ content: "";
4431
+ background-color: currentColor;
4432
+ -webkit-mask: var(--bs-btn-close-bg) center/contain no-repeat;
4433
+ mask: var(--bs-btn-close-bg) center/contain no-repeat;
4434
+ }
4435
+ [data-bs-theme="dark"] .btn-close {
4436
+ filter: none;
4437
+ }
4438
+ .btn-close:hover {
4439
+ border-color: var(--bs-btn-hover-border-color);
4440
+ color: var(--bs-btn-hover-color);
4441
+ background-color: var(--bs-btn-hover-bg);
4442
+ }
4443
+ .btn-close:focus-visible {
4444
+ border-color: var(--moo-ring);
4445
+ color: var(--bs-btn-hover-color);
4446
+ background-color: var(--bs-btn-hover-bg);
4447
+ }
4448
+ .btn-close:focus:not(:focus-visible) {
4449
+ box-shadow: none;
4450
+ }
4451
+ .btn-close:disabled,
4452
+ .btn-close.disabled {
4453
+ pointer-events: none;
4454
+ opacity: var(--moo-disabled-control-opacity);
4455
+ }
4312
4456
  [dir="rtl"] .btn-group,
4313
4457
  [dir="rtl"] .btn-toolbar {
4314
4458
  direction: ltr;
@@ -4317,6 +4461,38 @@ label.btn {
4317
4461
  [dir="rtl"] .btn-toolbar > .btn {
4318
4462
  unicode-bidi: plaintext;
4319
4463
  }
4464
+ .btn-group > .btn-icon,
4465
+ .btn-group > .btn-icon-xs,
4466
+ .btn-group > .btn-icon-sm,
4467
+ .btn-group > .btn-icon-lg,
4468
+ .btn-group-vertical > .btn-icon,
4469
+ .btn-group-vertical > .btn-icon-xs,
4470
+ .btn-group-vertical > .btn-icon-sm,
4471
+ .btn-group-vertical > .btn-icon-lg {
4472
+ flex: 0 0 auto;
4473
+ }
4474
+ .btn-group-vertical > .btn-icon,
4475
+ .btn-group-vertical > .btn-icon-xs,
4476
+ .btn-group-vertical > .btn-icon-sm,
4477
+ .btn-group-vertical > .btn-icon-lg {
4478
+ width: var(--moo-btn-icon-size);
4479
+ }
4480
+ .btn-group-select,
4481
+ .input-group > .btn-group-select {
4482
+ flex: 0 0 auto;
4483
+ width: auto;
4484
+ min-width: calc(1.875rem + 1rem);
4485
+ padding-inline-end: 1.875rem;
4486
+ }
4487
+ .toggle-group > .btn:not(:disabled):not(.disabled):not([aria-disabled="true"]):active {
4488
+ transform: none;
4489
+ }
4490
+ .toggle-group > .btn-check:focus-visible + .btn,
4491
+ .toggle-group > .btn-check:checked:focus-visible + .btn {
4492
+ border-color: var(--moo-ring);
4493
+ outline: 0;
4494
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
4495
+ }
4320
4496
  .card {
4321
4497
  --bs-card-bg: var(--moo-surface);
4322
4498
  --bs-card-color: var(--moo-foreground);
@@ -4328,26 +4504,72 @@ label.btn {
4328
4504
  --bs-card-cap-color: var(--moo-foreground);
4329
4505
  --bs-card-title-color: var(--moo-foreground);
4330
4506
  --bs-card-subtitle-color: var(--moo-muted-foreground);
4331
- gap: var(--bs-card-spacer-x);
4332
- padding-block: var(--bs-card-spacer-x);
4507
+ --moo-card-spacing: 1rem;
4508
+ gap: var(--moo-card-spacing);
4509
+ padding-block: var(--moo-card-spacing);
4510
+ border: var(--bs-card-border-width) solid var(--bs-card-border-color);
4333
4511
  box-shadow: var(--bs-card-box-shadow);
4334
4512
  }
4513
+ .card:has(.card-footer) {
4514
+ padding-block-end: 0;
4515
+ }
4516
+ .card:has(> .card-image) {
4517
+ padding-block-start: 0;
4518
+ }
4519
+ .card--sm {
4520
+ --moo-card-spacing: 0.75rem;
4521
+ }
4335
4522
  .card-header {
4523
+ display: grid;
4524
+ grid-template-columns: 1fr auto;
4525
+ column-gap: var(--moo-card-spacing);
4526
+ align-items: flex-start;
4527
+ border-bottom: 0;
4528
+ }
4529
+ .card-header__text {
4336
4530
  display: flex;
4337
4531
  flex-direction: column;
4338
- gap: 0.375rem;
4339
- border-bottom: 0;
4532
+ gap: 0.25rem;
4533
+ min-width: 0;
4534
+ grid-column: 1;
4535
+ }
4536
+ .card-action {
4537
+ grid-column: 2;
4538
+ grid-row: 1;
4340
4539
  }
4341
4540
  .card-header,
4342
4541
  .card-body,
4343
4542
  .card-footer {
4344
4543
  padding-block: 0;
4345
4544
  }
4545
+ .card-header,
4546
+ .card-body {
4547
+ padding-inline: var(--moo-card-spacing);
4548
+ }
4346
4549
  .card-footer {
4347
4550
  display: flex;
4348
4551
  align-items: center;
4349
4552
  gap: 0.5rem;
4350
- border-top: 0;
4553
+ padding: var(--moo-card-spacing);
4554
+ border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
4555
+ background-color: var(--moo-muted-surface);
4556
+ }
4557
+ .card-img-top {
4558
+ border-top-left-radius: var(--bs-card-border-radius);
4559
+ border-top-right-radius: var(--bs-card-border-radius);
4560
+ }
4561
+ .card-image {
4562
+ aspect-ratio: 16 / 9;
4563
+ overflow: hidden;
4564
+ border-top-left-radius: var(--bs-card-border-radius);
4565
+ border-top-right-radius: var(--bs-card-border-radius);
4566
+ background-color: var(--moo-muted-surface);
4567
+ }
4568
+ .card-image .card-img-top {
4569
+ width: 100%;
4570
+ height: 100%;
4571
+ object-fit: cover;
4572
+ border-radius: 0;
4351
4573
  }
4352
4574
  .card-title {
4353
4575
  margin-bottom: 0;
@@ -4359,6 +4581,13 @@ label.btn {
4359
4581
  .card-subtitle {
4360
4582
  margin-top: 0;
4361
4583
  font-size: 0.875rem;
4584
+ color: var(--moo-muted-foreground);
4585
+ }
4586
+ .table-responsive:not(.scroll-fade-x):has(.table-row-actions > [aria-expanded="true"]) {
4587
+ overflow: visible;
4588
+ }
4589
+ .table-row-actions:has(> [aria-expanded="true"]) {
4590
+ z-index: 1000;
4362
4591
  }
4363
4592
  .dropdown-menu {
4364
4593
  --bs-dropdown-bg: var(--moo-surface);
@@ -4389,6 +4618,17 @@ label.btn {
4389
4618
  height: 1rem;
4390
4619
  flex: 0 0 auto;
4391
4620
  }
4621
+ .dropdown-item[data-variant="destructive"] {
4622
+ color: var(--moo-destructive) !important;
4623
+ }
4624
+ .dropdown-item[data-variant="destructive"]:hover,
4625
+ .dropdown-item[data-variant="destructive"]:focus {
4626
+ color: var(--moo-destructive) !important;
4627
+ background-color: var(--moo-destructive-surface) !important;
4628
+ }
4629
+ .dropdown-item[data-variant="destructive"] > [data-icon] {
4630
+ color: var(--moo-destructive) !important;
4631
+ }
4392
4632
  .dropdown-menu .dropdown-divider {
4393
4633
  margin-inline: calc(-1 * var(--bs-dropdown-padding-x));
4394
4634
  border-block-start: var(--bs-border-width) solid var(--bs-dropdown-divider-bg);
@@ -4408,8 +4648,8 @@ label.btn {
4408
4648
  flex: 0 0 auto;
4409
4649
  align-items: center;
4410
4650
  justify-content: center;
4411
- width: 1em;
4412
- height: 1em;
4651
+ width: 1rem;
4652
+ height: 1rem;
4413
4653
  border: var(--bs-border-width) solid var(--bs-border-color);
4414
4654
  border-radius: var(--moo-dropdown-item-check-border-radius);
4415
4655
  color: transparent;
@@ -4452,6 +4692,24 @@ label.btn {
4452
4692
  --moo-dropdown-sidebar-min-width: 14rem;
4453
4693
  min-width: max(100%, var(--moo-dropdown-sidebar-min-width));
4454
4694
  }
4695
+ @media (max-width: 575.98px) {
4696
+ [data-slot="sidebar-header"] .dropend > .dropdown-menu,
4697
+ [data-slot="sidebar-footer"] .dropend > .dropdown-menu {
4698
+ left: 0 !important;
4699
+ right: 0 !important;
4700
+ min-width: 100%;
4701
+ margin: 0;
4702
+ transform: none !important;
4703
+ }
4704
+ [data-slot="sidebar-header"] .dropend > .dropdown-menu {
4705
+ top: calc(100% + 0.25rem) !important;
4706
+ bottom: auto !important;
4707
+ }
4708
+ [data-slot="sidebar-footer"] .dropend > .dropdown-menu {
4709
+ top: auto !important;
4710
+ bottom: calc(100% + 0.25rem) !important;
4711
+ }
4712
+ }
4455
4713
  @media (min-width: 992px) {
4456
4714
  [data-slot="sidebar-header"] [data-moo-sidebar-dropdown-positioned] > .dropdown-menu {
4457
4715
  position: fixed !important;
@@ -4533,8 +4791,9 @@ label.btn {
4533
4791
  height: 0.9375rem;
4534
4792
  min-width: 0.9375rem;
4535
4793
  padding-inline: 0.2rem;
4794
+ border: 0;
4536
4795
  border-radius: var(--bs-border-radius-pill);
4537
- border: 2px solid var(--bs-body-bg);
4796
+ box-shadow: 0 0 0 2px var(--bs-body-bg);
4538
4797
  background-color: var(--moo-muted-surface);
4539
4798
  color: var(--moo-foreground);
4540
4799
  font-size: 0.625rem;
@@ -4551,14 +4810,14 @@ label.btn {
4551
4810
  padding-inline: 0;
4552
4811
  }
4553
4812
  .avatar-badge--icon {
4554
- width: 0.75rem;
4555
- height: 0.75rem;
4556
- min-width: 0.75rem;
4813
+ width: 0.625rem;
4814
+ height: 0.625rem;
4815
+ min-width: 0.625rem;
4557
4816
  padding-inline: 0;
4558
4817
  }
4559
4818
  .avatar-badge--icon [data-icon] {
4560
- width: 0.375rem;
4561
- height: 0.375rem;
4819
+ width: 0.5rem;
4820
+ height: 0.5rem;
4562
4821
  }
4563
4822
  .avatar-sm {
4564
4823
  width: 1.5rem;
@@ -4575,6 +4834,7 @@ label.btn {
4575
4834
  align-items: center;
4576
4835
  }
4577
4836
  .avatar-group > .avatar {
4837
+ box-shadow: 0 0 0 2px var(--bs-body-bg);
4578
4838
  z-index: 0;
4579
4839
  }
4580
4840
  .avatar-group .avatar + .avatar,
@@ -4965,9 +5225,6 @@ label.btn {
4965
5225
  border: var(--bs-border-width) solid var(--moo-sidebar-border);
4966
5226
  background: var(--moo-sidebar-accent);
4967
5227
  }
4968
- .sidebar-avatar {
4969
- border-radius: var(--bs-border-radius);
4970
- }
4971
5228
  .sidebar-footer .sidebar-account-menu {
4972
5229
  width: auto;
4973
5230
  min-width: var(--moo-dropdown-sidebar-min-width);
@@ -5209,15 +5466,45 @@ label.btn {
5209
5466
  .alert {
5210
5467
  --bs-alert-border-color: var(--moo-border);
5211
5468
  --bs-alert-color: var(--moo-foreground);
5469
+ --bs-alert-padding-x: 0.625rem;
5470
+ --bs-alert-padding-y: 0.5rem;
5212
5471
  display: flex;
5213
5472
  align-items: flex-start;
5214
- gap: 0.75rem;
5473
+ gap: 0.375rem;
5474
+ }
5475
+ .alert-dismissible {
5476
+ padding-right: 0;
5477
+ padding-left: 0;
5478
+ padding-inline-start: var(--bs-alert-padding-x);
5479
+ padding-inline-end: calc(var(--bs-alert-padding-x) + 1.5rem);
5480
+ }
5481
+ .alert-dismissible .btn-close {
5482
+ top: auto;
5483
+ right: auto;
5484
+ inset-block-start: var(--bs-alert-padding-y);
5485
+ inset-inline-end: var(--bs-alert-padding-x);
5486
+ padding: 0.34375rem 0.34375rem;
5215
5487
  }
5216
5488
  .alert-danger {
5217
5489
  --bs-alert-bg: transparent;
5218
5490
  --bs-alert-border-color: var(--moo-border);
5219
5491
  --bs-alert-color: var(--moo-destructive);
5220
5492
  }
5493
+ .alert-warning {
5494
+ --bs-alert-bg: var(--moo-warning-surface);
5495
+ --bs-alert-border-color: var(--moo-border);
5496
+ --bs-alert-color: var(--moo-warning);
5497
+ }
5498
+ .alert-success {
5499
+ --bs-alert-bg: var(--moo-success-surface);
5500
+ --bs-alert-border-color: var(--moo-border);
5501
+ --bs-alert-color: var(--moo-success);
5502
+ }
5503
+ .alert-info {
5504
+ --bs-alert-bg: var(--moo-info-surface);
5505
+ --bs-alert-border-color: var(--moo-border);
5506
+ --bs-alert-color: var(--moo-info);
5507
+ }
5221
5508
  .alert-icon {
5222
5509
  display: flex;
5223
5510
  flex: 0 0 auto;
@@ -5231,6 +5518,9 @@ label.btn {
5231
5518
  flex: 1 1 auto;
5232
5519
  min-width: 0;
5233
5520
  }
5521
+ .alert-body p {
5522
+ color: color-mix(in srgb, var(--bs-alert-color) 60%, var(--bs-secondary-color));
5523
+ }
5234
5524
  .alert-heading {
5235
5525
  margin-bottom: 0.25rem;
5236
5526
  font-size: 0.875rem;
@@ -5241,18 +5531,55 @@ label.btn {
5241
5531
  }
5242
5532
  .breadcrumb {
5243
5533
  --bs-breadcrumb-item-active-color: var(--moo-foreground);
5534
+ --bs-breadcrumb-item-padding-x: 0.375rem;
5535
+ column-gap: var(--bs-breadcrumb-item-padding-x);
5536
+ line-height: 1.25rem;
5537
+ }
5538
+ .breadcrumb-item {
5539
+ display: inline-flex;
5540
+ align-items: center;
5541
+ }
5542
+ .breadcrumb-item + .breadcrumb-item::before {
5543
+ float: none;
5544
+ flex: 0 0 auto;
5545
+ }
5546
+ .breadcrumb-item + .breadcrumb-item {
5547
+ padding-left: 0;
5548
+ }
5549
+ .breadcrumb:not(.breadcrumb--custom-divider) .breadcrumb-item + .breadcrumb-item::before {
5550
+ width: 0.875rem;
5551
+ height: 0.875rem;
5552
+ padding-right: 0;
5553
+ margin-inline-end: var(--bs-breadcrumb-item-padding-x);
5554
+ background-color: var(--moo-muted-foreground);
5555
+ content: "";
5556
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/100% 100% no-repeat;
5557
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/100% 100% no-repeat;
5558
+ }
5559
+ .breadcrumb--custom-divider .breadcrumb-item + .breadcrumb-item::before {
5560
+ display: inline-flex;
5561
+ align-items: center;
5562
+ justify-content: center;
5563
+ width: 0.875rem;
5564
+ height: 0.875rem;
5565
+ padding-right: 0;
5566
+ margin-inline-end: var(--bs-breadcrumb-item-padding-x);
5567
+ line-height: 1;
5244
5568
  }
5245
5569
  :dir(rtl) .breadcrumb {
5246
5570
  --bs-breadcrumb-divider: "<";
5247
5571
  }
5248
5572
  :dir(rtl) .breadcrumb-item + .breadcrumb-item {
5249
- padding-right: var(--bs-breadcrumb-item-padding-x);
5573
+ padding-right: 0;
5250
5574
  padding-left: 0;
5251
5575
  }
5252
5576
  :dir(rtl) .breadcrumb-item + .breadcrumb-item::before {
5253
- float: right;
5254
5577
  padding-right: 0;
5255
- padding-left: var(--bs-breadcrumb-item-padding-x);
5578
+ padding-left: 0;
5579
+ }
5580
+ :dir(rtl) .breadcrumb:not(.breadcrumb--custom-divider) .breadcrumb-item + .breadcrumb-item::before {
5581
+ padding-left: 0;
5582
+ transform: scaleX(-1);
5256
5583
  }
5257
5584
  .breadcrumb-item a {
5258
5585
  color: var(--moo-muted-foreground);
@@ -5272,36 +5599,108 @@ label.btn {
5272
5599
  width: 1rem;
5273
5600
  height: 1rem;
5274
5601
  }
5275
- .breadcrumb-dropdown-item {
5602
+ .breadcrumb-dropdown-item,
5603
+ .breadcrumb-dropdown-item .dropdown {
5276
5604
  display: inline-flex;
5277
5605
  align-items: center;
5278
5606
  }
5279
- .breadcrumb-dropdown-item button {
5607
+ .breadcrumb-dropdown-trigger {
5608
+ display: inline-flex;
5609
+ align-items: center;
5610
+ gap: 0.25rem;
5280
5611
  padding: 0;
5281
5612
  border: 0;
5282
5613
  background-color: transparent;
5283
5614
  color: var(--moo-muted-foreground);
5615
+ font: inherit;
5616
+ line-height: 1.25rem;
5284
5617
  text-decoration: none;
5285
5618
  }
5286
- .breadcrumb-dropdown-item button:hover,
5287
- .breadcrumb-dropdown-item button:focus {
5619
+ .breadcrumb-dropdown-trigger:hover,
5620
+ .breadcrumb-dropdown-trigger:focus {
5288
5621
  color: var(--moo-foreground);
5289
5622
  }
5623
+ .breadcrumb .breadcrumb-dropdown-trigger:focus-visible {
5624
+ outline: 0;
5625
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
5626
+ }
5627
+ .breadcrumb-dropdown-trigger > [data-icon] {
5628
+ width: 0.875rem;
5629
+ height: 0.875rem;
5630
+ }
5290
5631
  .page-link {
5291
5632
  display: inline-flex;
5292
5633
  align-items: center;
5293
5634
  justify-content: center;
5294
- gap: 0.25rem;
5295
- min-width: calc( 1em * var(--bs-body-line-height, 1.5) + var(--bs-pagination-padding-y) * 2 + var(--bs-pagination-border-width) * 2);
5296
- min-height: calc( 1em * var(--bs-body-line-height, 1.5) + var(--bs-pagination-padding-y) * 2 + var(--bs-pagination-border-width) * 2);
5635
+ flex-shrink: 0;
5636
+ gap: 0.375rem;
5637
+ min-width: calc( 1.25rem + 0.625rem + var(--bs-pagination-border-width) * 2);
5638
+ min-height: calc( 1.25rem + 0.625rem + var(--bs-pagination-border-width) * 2);
5639
+ line-height: 1.25rem;
5640
+ font-weight: 500;
5641
+ white-space: nowrap;
5642
+ user-select: none;
5643
+ }
5644
+ .page-link[aria-label]:has(> span:not(.visually-hidden):not(.d-none)):has([data-icon="inline-start"]) {
5645
+ padding-inline-start: 0.375rem;
5646
+ padding-inline-end: 0.625rem;
5647
+ }
5648
+ .page-link[aria-label]:has(> span:not(.visually-hidden):not(.d-none)):has([data-icon="inline-end"]) {
5649
+ padding-inline-start: 0.625rem;
5650
+ padding-inline-end: 0.375rem;
5651
+ }
5652
+ @media (min-width: 576px) {
5653
+ .page-link[aria-label]:has(> .d-sm-inline):has([data-icon="inline-start"]) {
5654
+ padding-inline-start: 0.375rem;
5655
+ padding-inline-end: 0.625rem;
5656
+ }
5657
+ .page-link[aria-label]:has(> .d-sm-inline):has([data-icon="inline-end"]) {
5658
+ padding-inline-start: 0.625rem;
5659
+ padding-inline-end: 0.375rem;
5660
+ }
5661
+ }
5662
+ .page-link:has([data-icon]):not(:has(> span:not(.visually-hidden))) {
5663
+ padding-inline: 0;
5297
5664
  }
5298
5665
  .page-link [data-icon] {
5299
5666
  width: 1rem;
5300
5667
  height: 1rem;
5668
+ flex: 0 0 auto;
5669
+ }
5670
+ .page-item:not(.disabled) .page-link:active {
5671
+ transform: translateY(0.5px);
5301
5672
  }
5302
5673
  .page-item.disabled {
5303
5674
  opacity: var(--moo-disabled-control-opacity);
5304
5675
  }
5676
+ .badge {
5677
+ display: inline-flex;
5678
+ height: 1.25rem;
5679
+ align-items: center;
5680
+ justify-content: center;
5681
+ border: var(--bs-border-width) solid var(--bs-border-color);
5682
+ border-color: transparent;
5683
+ gap: 0.25rem;
5684
+ line-height: 1rem;
5685
+ }
5686
+ .badge[class~="border"] {
5687
+ border-color: var(--moo-border) !important;
5688
+ }
5689
+ .badge[class~="text-bg-primary"] {
5690
+ color: var(--moo-primary-foreground) !important;
5691
+ background-color: var(--moo-primary) !important;
5692
+ }
5693
+ .badge[class~="text-bg-secondary"] {
5694
+ color: var(--moo-foreground) !important;
5695
+ background-color: var(--moo-muted-surface) !important;
5696
+ }
5697
+ .badge[class~="text-bg-danger"] {
5698
+ color: var(--moo-destructive) !important;
5699
+ background-color: var(--moo-destructive-surface) !important;
5700
+ }
5701
+ .badge[class~="text-body-secondary"] {
5702
+ color: var(--moo-foreground) !important;
5703
+ }
5305
5704
  .progress {
5306
5705
  --bs-progress-bar-bg: var(--moo-foreground);
5307
5706
  }
@@ -5313,32 +5712,66 @@ label.btn {
5313
5712
  opacity: 1;
5314
5713
  background-color: var(--moo-border);
5315
5714
  }
5316
- [data-bs-theme="dark"] .form-check-input:checked {
5715
+ [data-bs-theme="dark"] .form-check-input:is(:checked, :indeterminate):not([role="switch"]) {
5317
5716
  filter: invert(1);
5318
5717
  }
5319
- .form-check-input[type="checkbox"]:focus:active,
5320
- .form-check-input[type="checkbox"]:focus:not(:focus-visible) {
5718
+ .form-check-input {
5719
+ margin-top: 0.125rem;
5720
+ }
5721
+ .form-check-input:is([type="checkbox"], [type="radio"]):not(.is-invalid):focus:active,
5722
+ .form-check-input:is([type="checkbox"], [type="radio"]):not(.is-invalid):focus:not(:focus-visible) {
5321
5723
  border-color: var(--bs-border-color);
5322
5724
  box-shadow: none;
5323
5725
  }
5324
- .form-check-input[type="checkbox"]:checked:focus:active,
5325
- .form-check-input[type="checkbox"]:checked:focus:not(:focus-visible) {
5726
+ .form-check-input:is([type="checkbox"], [type="radio"]):checked:not(.is-invalid):focus:active,
5727
+ .form-check-input:is([type="checkbox"], [type="radio"]):checked:not(.is-invalid):focus:not(:focus-visible) {
5326
5728
  border-color: #171717;
5327
5729
  }
5328
- .form-check-input[type="checkbox"]:indeterminate:focus:active,
5329
- .form-check-input[type="checkbox"]:indeterminate:focus:not(:focus-visible) {
5730
+ .form-check-input[type="checkbox"]:not(.is-invalid):indeterminate:focus:active,
5731
+ .form-check-input[type="checkbox"]:not(.is-invalid):indeterminate:focus:not(:focus-visible) {
5330
5732
  border-color: #171717;
5331
5733
  }
5734
+ .form-check-input.is-invalid {
5735
+ box-shadow: 0 0 0 3px var(--moo-form-invalid-ring-color);
5736
+ }
5737
+ .form-check-input.is-invalid:focus:active,
5738
+ .form-check-input.is-invalid:focus:not(:focus-visible) {
5739
+ box-shadow: 0 0 0 3px var(--moo-form-invalid-ring-color);
5740
+ }
5741
+ .form-check-input:is([type="checkbox"], [type="radio"]).is-invalid:checked:focus:active,
5742
+ .form-check-input:is([type="checkbox"], [type="radio"]).is-invalid:checked:focus:not(:focus-visible) {
5743
+ box-shadow: 0 0 0 3px var(--moo-form-invalid-ring-color);
5744
+ }
5745
+ .form-check-input[type="checkbox"].is-invalid:indeterminate:focus:active,
5746
+ .form-check-input[type="checkbox"].is-invalid:indeterminate:focus:not(:focus-visible) {
5747
+ box-shadow: 0 0 0 3px var(--moo-form-invalid-ring-color);
5748
+ }
5749
+ .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked,
5750
+ .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked:focus:active,
5751
+ .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked:focus:not(:focus-visible) {
5752
+ border-color: var(--bs-primary);
5753
+ background-color: var(--bs-primary);
5754
+ }
5332
5755
  .radio-group legend.form-label {
5333
5756
  font-size: inherit;
5334
5757
  }
5335
5758
  .form-switch .form-check-input {
5336
5759
  height: 1.15rem;
5337
5760
  }
5761
+ :where([data-bs-theme="dark"]) .form-switch .form-check-input:checked {
5762
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2318181b'/%3e%3c/svg%3e");
5763
+ background-color: var(--moo-foreground);
5764
+ border-color: var(--moo-foreground);
5765
+ filter: none;
5766
+ }
5338
5767
  .form-switch .form-check-input:focus:active:not(:checked),
5339
5768
  .form-switch .form-check-input:focus:not(:focus-visible):not(:checked) {
5340
5769
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%2810, 10, 10, 0.25%29'/%3e%3c/svg%3e");
5341
5770
  }
5771
+ :where([data-bs-theme="dark"]) .form-switch .form-check-input:focus:active:not(:checked),
5772
+ :where([data-bs-theme="dark"]) .form-switch .form-check-input:focus:not(:focus-visible):not(:checked) {
5773
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
5774
+ }
5342
5775
  .spinner [data-icon] {
5343
5776
  width: 1rem;
5344
5777
  height: 1rem;
@@ -5402,6 +5835,7 @@ label.btn {
5402
5835
  font-weight: 500;
5403
5836
  color: var(--bs-secondary-text-emphasis);
5404
5837
  border-radius: var(--bs-border-radius);
5838
+ cursor: default;
5405
5839
  transition: all 0.2s ease-in-out;
5406
5840
  }
5407
5841
  @media (prefers-reduced-motion: reduce) {
@@ -5412,11 +5846,55 @@ label.btn {
5412
5846
  .tabs-list .nav-link:hover {
5413
5847
  color: var(--moo-foreground);
5414
5848
  }
5849
+ .tabs-list .nav-link:not(.active, .disabled):hover {
5850
+ background-color: transparent;
5851
+ box-shadow: none;
5852
+ }
5853
+ .tabs-list .nav-link:focus:not(:focus-visible) {
5854
+ outline: 0;
5855
+ box-shadow: none;
5856
+ }
5415
5857
  .tabs-list .nav-link.active {
5416
5858
  color: var(--moo-foreground);
5417
5859
  background-color: var(--moo-surface);
5418
5860
  box-shadow: var(--bs-box-shadow-sm);
5419
5861
  }
5862
+ .tabs-list .nav-link.active:focus-visible {
5863
+ border-color: var(--moo-ring);
5864
+ outline: 0;
5865
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
5866
+ }
5867
+ .tabs-list:has(.nav-link:hover) .nav-link.active:not(:hover) {
5868
+ background-color: var(--moo-surface);
5869
+ box-shadow: var(--bs-box-shadow-sm);
5870
+ }
5871
+ .tabs--vertical {
5872
+ display: flex;
5873
+ align-items: flex-start;
5874
+ gap: 1rem;
5875
+ width: 100%;
5876
+ max-width: 100%;
5877
+ }
5878
+ .tabs--vertical .tabs-list {
5879
+ flex: 0 0 auto;
5880
+ }
5881
+ .tabs--vertical .nav-link {
5882
+ justify-content: flex-start;
5883
+ text-align: start;
5884
+ }
5885
+ .tabs--vertical .tab-content {
5886
+ flex: 1 1 auto;
5887
+ min-width: 0;
5888
+ margin-top: 0;
5889
+ }
5890
+ @media (max-width: 575.98px) {
5891
+ .tabs--vertical {
5892
+ flex-direction: column;
5893
+ }
5894
+ .tabs--vertical .tabs-list {
5895
+ flex-direction: row !important;
5896
+ }
5897
+ }
5420
5898
  .tabs-list .nav-link:disabled,
5421
5899
  .tabs-list .nav-link.disabled {
5422
5900
  color: var(--moo-disabled-foreground);
@@ -5437,14 +5915,12 @@ label.btn {
5437
5915
  max-width: 100%;
5438
5916
  min-width: 0;
5439
5917
  opacity: 0;
5440
- transform: translateY(0.25rem);
5441
5918
  visibility: hidden;
5442
5919
  pointer-events: none;
5443
- transition: opacity 0.16s ease, transform 0.16s ease, visibility 0s linear 0.16s;
5920
+ transition: opacity 0.16s ease, visibility 0s linear 0.16s;
5444
5921
  }
5445
5922
  .tab-content > .active {
5446
5923
  opacity: 1;
5447
- transform: none;
5448
5924
  visibility: visible;
5449
5925
  pointer-events: auto;
5450
5926
  transition-delay: 0s;
@@ -5492,8 +5968,44 @@ label.btn {
5492
5968
  --bs-tooltip-padding-y: 0.375rem;
5493
5969
  --bs-tooltip-font-size: 0.75rem;
5494
5970
  --bs-tooltip-opacity: 1;
5971
+ --moo-tooltip-motion-duration: 150ms;
5972
+ --moo-tooltip-motion-easing: cubic-bezier(0.16, 1, 0.3, 1);
5973
+ --moo-tooltip-motion-scale: 0.95;
5974
+ --moo-tooltip-motion-translate: 0.25rem;
5495
5975
  line-height: 1.333;
5496
5976
  }
5977
+ .tooltip.fade .tooltip-inner {
5978
+ transition: transform var(--moo-tooltip-motion-duration) var(--moo-tooltip-motion-easing);
5979
+ transform: scale(var(--moo-tooltip-motion-scale));
5980
+ transform-origin: center;
5981
+ will-change: transform;
5982
+ }
5983
+ .tooltip.show .tooltip-inner {
5984
+ transform: translate3d(0, 0, 0) scale(1);
5985
+ }
5986
+ .bs-tooltip-top.fade:not(.show) .tooltip-inner,
5987
+ .bs-tooltip-auto[data-popper-placement^="top"].fade:not(.show) .tooltip-inner {
5988
+ transform: translate3d(0, var(--moo-tooltip-motion-translate), 0) scale(var(--moo-tooltip-motion-scale));
5989
+ }
5990
+ .bs-tooltip-bottom.fade:not(.show) .tooltip-inner,
5991
+ .bs-tooltip-auto[data-popper-placement^="bottom"].fade:not(.show) .tooltip-inner {
5992
+ transform: translate3d(0, calc(var(--moo-tooltip-motion-translate) * -1), 0) scale(var(--moo-tooltip-motion-scale));
5993
+ }
5994
+ .bs-tooltip-start.fade:not(.show) .tooltip-inner,
5995
+ .bs-tooltip-auto[data-popper-placement^="left"].fade:not(.show) .tooltip-inner {
5996
+ transform: translate3d(var(--moo-tooltip-motion-translate), 0, 0) scale(var(--moo-tooltip-motion-scale));
5997
+ }
5998
+ .bs-tooltip-end.fade:not(.show) .tooltip-inner,
5999
+ .bs-tooltip-auto[data-popper-placement^="right"].fade:not(.show) .tooltip-inner {
6000
+ transform: translate3d(calc(var(--moo-tooltip-motion-translate) * -1), 0, 0) scale(var(--moo-tooltip-motion-scale));
6001
+ }
6002
+ @media (prefers-reduced-motion: reduce) {
6003
+ .tooltip.fade .tooltip-inner {
6004
+ transition: none;
6005
+ transform: none;
6006
+ will-change: auto;
6007
+ }
6008
+ }
5497
6009
  .tooltip-trigger {
5498
6010
  color: var(--moo-foreground);
5499
6011
  text-decoration-line: underline;
@@ -5501,12 +6013,8 @@ label.btn {
5501
6013
  text-decoration-color: var(--moo-muted-foreground);
5502
6014
  text-underline-offset: 0.2em;
5503
6015
  }
5504
- .tooltip-kbd {
5505
- padding: 0.125rem 0.375rem;
5506
- font-size: 0.75rem;
5507
- color: var(--bs-body-bg);
5508
- background-color: var(--bs-body-color);
5509
- border-radius: var(--bs-border-radius-sm);
6016
+ .tooltip-inner kbd {
6017
+ margin-inline-start: 0.25rem;
5510
6018
  }
5511
6019
  .popover {
5512
6020
  --bs-popover-border-radius: var(--bs-border-radius-lg);
@@ -5536,6 +6044,7 @@ label.btn {
5536
6044
  --bs-modal-border-color: var(--moo-border);
5537
6045
  --bs-modal-header-border-width: 0;
5538
6046
  --bs-modal-footer-border-color: var(--moo-border);
6047
+ --bs-modal-footer-bg: color-mix(in srgb, var(--bs-secondary-bg) 50%, transparent);
5539
6048
  --bs-modal-title-line-height: 1;
5540
6049
  }
5541
6050
  .modal[tabindex]:focus-visible {
@@ -5554,6 +6063,7 @@ label.btn {
5554
6063
  .modal--alert {
5555
6064
  --bs-modal-width: 24rem;
5556
6065
  --bs-modal-padding: 1rem;
6066
+ --bs-modal-footer-bg: color-mix(in srgb, var(--bs-secondary-bg) 50%, transparent);
5557
6067
  }
5558
6068
  .modal-header--alert {
5559
6069
  align-items: flex-start;
@@ -5589,9 +6099,14 @@ label.btn {
5589
6099
  .toast {
5590
6100
  --bs-toast-border-radius: var(--bs-border-radius-lg);
5591
6101
  --bs-toast-border-color: var(--moo-border);
6102
+ --bs-toast-bg: var(--bs-body-bg);
5592
6103
  --bs-toast-box-shadow: var(--bs-box-shadow-lg);
6104
+ --bs-toast-header-bg: var(--bs-body-bg);
5593
6105
  --bs-toast-padding-x: 1rem;
5594
6106
  }
6107
+ .toast-container {
6108
+ z-index: var(--bs-toast-zindex, 1090);
6109
+ }
5595
6110
  .toast-header strong {
5596
6111
  font-weight: 500;
5597
6112
  }
@@ -5604,9 +6119,30 @@ label.btn {
5604
6119
  margin-bottom: 0;
5605
6120
  font-weight: 500;
5606
6121
  }
5607
- .field:has(> .is-invalid) > .form-label {
6122
+ .field[data-invalid="true"] {
5608
6123
  color: var(--bs-form-invalid-color);
5609
6124
  }
6125
+ .field--switch {
6126
+ flex-direction: row;
6127
+ align-items: flex-start;
6128
+ justify-content: space-between;
6129
+ gap: 1.25rem;
6130
+ }
6131
+ .field--switch > :first-child {
6132
+ min-width: 0;
6133
+ }
6134
+ .field--switch > label {
6135
+ flex: 0 0 auto;
6136
+ margin: 0;
6137
+ }
6138
+ .field--switch .form-label {
6139
+ margin-bottom: 0.25rem;
6140
+ font-weight: 500;
6141
+ }
6142
+ .field--disabled {
6143
+ opacity: 0.5;
6144
+ pointer-events: none;
6145
+ }
5610
6146
  .field-description,
5611
6147
  .field-error {
5612
6148
  margin-top: 0;
@@ -5723,10 +6259,6 @@ label.btn {
5723
6259
  padding-inline: 0.625rem;
5724
6260
  cursor: text;
5725
6261
  }
5726
- .combobox-chips:focus-within {
5727
- border-color: #8b8b8b;
5728
- box-shadow: 0 0 0 2px rgba(23, 23, 23, 0.25);
5729
- }
5730
6262
  .combobox-value {
5731
6263
  display: flex;
5732
6264
  min-width: 0;
@@ -5871,9 +6403,10 @@ label.btn {
5871
6403
  }
5872
6404
  .datatable {
5873
6405
  --moo-datatable-min-width: 48rem;
6406
+ --moo-datatable-actions-cell-fade-width: 1.25rem;
5874
6407
  --moo-datatable-card-label-width: 7rem;
5875
6408
  --moo-datatable-frame-header-min-height: 2.78125rem;
5876
- --moo-datatable-select-cell-inset: 0.89062rem;
6409
+ --moo-datatable-select-cell-inset: 0.82812rem;
5877
6410
  --moo-datatable-table-select-all-offset-y: 0.04688rem;
5878
6411
  --moo-datatable-toolbar-control-height: calc(2rem + var(--bs-border-width) * 2);
5879
6412
  --moo-datatable-search-filter-menu-width: 12.5rem;
@@ -5903,8 +6436,19 @@ label.btn {
5903
6436
  border-radius: var(--bs-border-radius);
5904
6437
  overflow: hidden;
5905
6438
  }
5906
- .datatable-frame:has(.table-row-actions .dropdown-menu.show),
5907
- .datatable-frame .table-responsive:has(.table-row-actions .dropdown-menu.show) {
6439
+ .datatable-frame [data-datatable-column="actions"] {
6440
+ position: sticky;
6441
+ inset-inline-end: 0;
6442
+ z-index: 2;
6443
+ background: linear-gradient(90deg, transparent 0, var(--bs-body-bg) var(--moo-datatable-actions-cell-fade-width));
6444
+ }
6445
+ [dir="rtl"] .datatable-frame [data-datatable-column="actions"],
6446
+ .datatable-frame [dir="rtl"] [data-datatable-column="actions"] {
6447
+ background: linear-gradient(270deg, transparent 0, var(--bs-body-bg) var(--moo-datatable-actions-cell-fade-width));
6448
+ }
6449
+ .datatable-card-frame:has(.datatable-card .dropdown-menu.show) {
6450
+ position: relative;
6451
+ z-index: 1000;
5908
6452
  overflow: visible;
5909
6453
  }
5910
6454
  .datatable-frame-header {
@@ -6213,6 +6757,11 @@ label.btn {
6213
6757
  color: var(--bs-body-color);
6214
6758
  background-color: var(--moo-muted-surface);
6215
6759
  }
6760
+ .datatable-view-toggle .btn-check:focus-visible + .datatable-view-option {
6761
+ z-index: 3;
6762
+ border-color: var(--moo-ring);
6763
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
6764
+ }
6216
6765
  .datatable-view-trigger {
6217
6766
  min-block-size: var(--moo-datatable-toolbar-control-height);
6218
6767
  }
@@ -6334,13 +6883,6 @@ label.btn {
6334
6883
  border-radius: var(--bs-border-radius);
6335
6884
  background-color: var(--bs-body-bg);
6336
6885
  }
6337
- .datatable-card-frame:has(.datatable-card .dropdown-menu.show),
6338
- .datatable-card:has(.dropdown-menu.show) {
6339
- overflow: visible;
6340
- }
6341
- .datatable-card:has(.dropdown-menu.show) {
6342
- z-index: 2;
6343
- }
6344
6886
  .datatable-card-header {
6345
6887
  display: grid;
6346
6888
  grid-template-columns: auto minmax(0, 1fr) auto;
@@ -6468,6 +7010,7 @@ label.btn {
6468
7010
  max-width: 100%;
6469
7011
  justify-self: end;
6470
7012
  overflow-x: auto;
7013
+ overflow-y: hidden;
6471
7014
  -webkit-overflow-scrolling: touch;
6472
7015
  }
6473
7016
  .datatable-page-nav .pagination {
@@ -6484,8 +7027,8 @@ label.btn {
6484
7027
  flex: 0 0 auto;
6485
7028
  align-items: center;
6486
7029
  justify-content: center;
6487
- width: 1em;
6488
- height: 1em;
7030
+ width: 1rem;
7031
+ height: 1rem;
6489
7032
  border: var(--bs-border-width) solid var(--bs-border-color);
6490
7033
  border-radius: var(--moo-datatable-facet-item-border-radius);
6491
7034
  color: transparent;
@@ -6724,14 +7267,24 @@ label.btn {
6724
7267
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
6725
7268
  }
6726
7269
 
6727
- :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .form-check-input:checked,
6728
- .moo-ui[data-bs-theme="dark"] .form-check-input:checked {
6729
- filter: invert(1);
7270
+ :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .form-switch .form-check-input:checked,
7271
+ .moo-ui[data-bs-theme="dark"] .form-switch .form-check-input:checked {
7272
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2318181b'/%3e%3c/svg%3e");
7273
+ background-color: var(--moo-foreground);
7274
+ border-color: var(--moo-foreground);
7275
+ filter: none;
6730
7276
  }
6731
7277
 
6732
- :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .btn-close,
6733
- .moo-ui[data-bs-theme="dark"] .btn-close {
6734
- filter: var(--bs-btn-close-white-filter);
7278
+ :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .form-switch .form-check-input:focus:active:not(:checked),
7279
+ :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .form-switch .form-check-input:focus:not(:focus-visible):not(:checked),
7280
+ .moo-ui[data-bs-theme="dark"] .form-switch .form-check-input:focus:active:not(:checked),
7281
+ .moo-ui[data-bs-theme="dark"] .form-switch .form-check-input:focus:not(:focus-visible):not(:checked) {
7282
+ --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
7283
+ }
7284
+
7285
+ :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .form-check-input:checked:not([role="switch"]),
7286
+ .moo-ui[data-bs-theme="dark"] .form-check-input:checked:not([role="switch"]) {
7287
+ filter: invert(1);
6735
7288
  }
6736
7289
 
6737
7290
  .modal-backdrop,