avo 4.0.0.beta.6 → 4.0.0.beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +9 -5
  4. data/Rakefile +11 -0
  5. data/app/assets/builds/avo/application.css +320 -55
  6. data/app/assets/builds/avo/application.js +277 -277
  7. data/app/assets/builds/avo/application.js.map +4 -4
  8. data/app/assets/stylesheets/application.css +2 -0
  9. data/app/assets/stylesheets/css/components/alert.css +72 -0
  10. data/app/assets/stylesheets/css/components/button.css +11 -1
  11. data/app/assets/stylesheets/css/components/ui/description_list.css +1 -1
  12. data/app/assets/stylesheets/css/components/ui/dropdown.css +30 -5
  13. data/app/assets/stylesheets/css/components/ui/dropdown_card.css +8 -0
  14. data/app/assets/stylesheets/css/layout.css +1 -0
  15. data/app/assets/stylesheets/css/typography.css +4 -0
  16. data/app/assets/stylesheets/css/variables.css +2 -2
  17. data/app/components/avo/alert_component.html.erb +29 -21
  18. data/app/components/avo/alert_component.rb +30 -24
  19. data/app/components/avo/base_component.rb +4 -0
  20. data/app/components/avo/developer_warning_component.html.erb +15 -0
  21. data/app/components/avo/developer_warning_component.rb +26 -0
  22. data/app/components/avo/fields/belongs_to_field/edit_component.html.erb +79 -77
  23. data/app/components/avo/items/panel_component.html.erb +3 -0
  24. data/app/components/avo/items/panel_component.rb +33 -0
  25. data/app/components/avo/keyboard_shortcuts_component.rb +2 -1
  26. data/app/components/avo/referrer_params_component.html.erb +1 -1
  27. data/app/components/avo/u_i/dropdown_card_component.html.erb +9 -0
  28. data/app/components/avo/u_i/dropdown_card_component.rb +9 -0
  29. data/app/components/avo/u_i/dropdown_menu_component.html.erb +1 -1
  30. data/app/components/avo/views/resource_show_component.rb +1 -1
  31. data/app/controllers/avo/base_application_controller.rb +0 -1
  32. data/app/controllers/avo/base_controller.rb +5 -3
  33. data/app/helpers/avo/application_helper.rb +5 -3
  34. data/app/javascript/application.js +21 -3
  35. data/app/javascript/js/controllers/index_row_navigator_controller.js +12 -9
  36. data/app/javascript/js/global_hotkeys.js +20 -0
  37. data/app/views/avo/base/preview.html.erb +2 -2
  38. data/app/views/avo/partials/_javascript.html.erb +4 -0
  39. data/app/views/layouts/avo/application.html.erb +1 -1
  40. data/avo.gemspec +2 -2
  41. data/bin/test +8 -5
  42. data/lib/avo/asset_manager.rb +0 -2
  43. data/lib/avo/configuration.rb +13 -0
  44. data/lib/avo/current.rb +11 -0
  45. data/lib/avo/discreet_information.rb +2 -0
  46. data/lib/avo/fields/concerns/has_html_attributes.rb +1 -1
  47. data/lib/avo/resources/array_resource.rb +4 -0
  48. data/lib/avo/resources/items/item_group.rb +4 -0
  49. data/lib/avo/version.rb +1 -1
  50. data/lib/avo.rb +2 -1
  51. data/lib/generators/avo/resource_generator.rb +1 -1
  52. data/lib/generators/avo/templates/initializer/avo.tt +6 -0
  53. metadata +11 -5
@@ -16,7 +16,6 @@
16
16
  --color-red-500: oklch(63.7% 0.237 25.331);
17
17
  --color-red-600: oklch(57.7% 0.245 27.325);
18
18
  --color-red-700: oklch(50.5% 0.213 27.518);
19
- --color-red-900: oklch(39.6% 0.141 25.723);
20
19
  --color-orange-50: oklch(98% 0.016 73.684);
21
20
  --color-orange-100: oklch(95.4% 0.038 75.164);
22
21
  --color-orange-300: oklch(83.7% 0.128 66.29);
@@ -24,6 +23,7 @@
24
23
  --color-orange-500: oklch(70.5% 0.213 47.604);
25
24
  --color-orange-600: oklch(64.6% 0.222 41.116);
26
25
  --color-orange-700: oklch(55.3% 0.195 38.402);
26
+ --color-orange-950: oklch(26.6% 0.079 36.259);
27
27
  --color-amber-50: oklch(98.7% 0.022 95.277);
28
28
  --color-amber-100: oklch(96.2% 0.059 95.617);
29
29
  --color-amber-300: oklch(87.9% 0.169 91.605);
@@ -242,6 +242,7 @@
242
242
  --container-2xl: 42rem;
243
243
  --container-3xl: 48rem;
244
244
  --container-4xl: 56rem;
245
+ --container-6xl: 72rem;
245
246
  --text-xs: 0.75rem;
246
247
  --text-xs--line-height: calc(1 / 0.75);
247
248
  --text-sm: 0.875rem;
@@ -270,6 +271,7 @@
270
271
  --tracking-wide: 0.025em;
271
272
  --tracking-widest: 0.1em;
272
273
  --leading-tight: 1.25;
274
+ --leading-snug: 1.375;
273
275
  --radius-xs: 0.125rem;
274
276
  --radius-sm: 0.25rem;
275
277
  --radius-md: 0.375rem;
@@ -317,14 +319,20 @@
317
319
  --color-avo-neutral-800: oklch(39.04% 0.0000 89.88);
318
320
  --color-avo-neutral-900: oklch(27.68% 0.0000 89.88);
319
321
  --color-avo-neutral-950: oklch(20.46% 0.0000 89.88);
322
+ --color-success: var(--color-green-500);
320
323
  --color-success-content: var(--color-green-600);
324
+ --color-success-foreground: var(--color-green-400);
325
+ --color-info: var(--color-blue-400);
321
326
  --color-info-content: var(--color-blue-600);
322
327
  --color-info-foreground: var(--color-blue-500);
323
328
  --color-warning: var(--color-yellow-500);
324
329
  --color-warning-content: var(--color-yellow-600);
330
+ --color-warning-foreground: var(--color-yellow-400);
325
331
  --color-danger: var(--color-red-500);
326
332
  --color-danger-content: var(--color-red-600);
333
+ --color-danger-foreground: var(--color-red-400);
327
334
  --box-shadow-card: 0px 8px 16px 0px rgba(0, 0, 0, 0.04);
335
+ --box-shadow-dropdown-card: 0px 8px 16px 0px rgba(0, 0, 0, 0.1);
328
336
  --box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.04);
329
337
  --box-shadow-grid-card: 0 -1.5px 0 1px var(--color-secondary) inset, 0 0.8px 0 1.3px var(--color-primary) inset;
330
338
  --box-shadow-error: 0 0 5px 1px var(--color-red-600), 0 0 0 1px var(--color-red-600), 0 0 0 3px var(--color-red-300);
@@ -565,6 +573,9 @@
565
573
  .end-0 {
566
574
  inset-inline-end: calc(var(--spacing) * 0);
567
575
  }
576
+ .end-2 {
577
+ inset-inline-end: calc(var(--spacing) * 2);
578
+ }
568
579
  .end-3 {
569
580
  inset-inline-end: calc(var(--spacing) * 3);
570
581
  }
@@ -586,6 +597,9 @@
586
597
  .top-1\/2 {
587
598
  top: calc(1 / 2 * 100%);
588
599
  }
600
+ .top-2 {
601
+ top: calc(var(--spacing) * 2);
602
+ }
589
603
  .top-3 {
590
604
  top: calc(var(--spacing) * 3);
591
605
  }
@@ -595,9 +609,6 @@
595
609
  .top-full {
596
610
  top: 100%;
597
611
  }
598
- .right-0 {
599
- right: calc(var(--spacing) * 0);
600
- }
601
612
  .right-3 {
602
613
  right: calc(var(--spacing) * 3);
603
614
  }
@@ -610,9 +621,6 @@
610
621
  .bottom-full {
611
622
  bottom: 100%;
612
623
  }
613
- .left-0 {
614
- left: calc(var(--spacing) * 0);
615
- }
616
624
  .left-auto {
617
625
  left: auto;
618
626
  }
@@ -817,8 +825,8 @@
817
825
  .mt-8 {
818
826
  margin-top: calc(var(--spacing) * 8);
819
827
  }
820
- .mr-0 {
821
- margin-right: calc(var(--spacing) * 0);
828
+ .mt-auto {
829
+ margin-top: auto;
822
830
  }
823
831
  .mr-2 {
824
832
  margin-right: calc(var(--spacing) * 2);
@@ -914,6 +922,10 @@
914
922
  width: calc(var(--spacing) * 6);
915
923
  height: calc(var(--spacing) * 6);
916
924
  }
925
+ .size-7 {
926
+ width: calc(var(--spacing) * 7);
927
+ height: calc(var(--spacing) * 7);
928
+ }
917
929
  .size-8 {
918
930
  width: calc(var(--spacing) * 8);
919
931
  height: calc(var(--spacing) * 8);
@@ -966,9 +978,6 @@
966
978
  .h-\[0\.75rem\] {
967
979
  height: 0.75rem;
968
980
  }
969
- .h-\[76vh\] {
970
- height: 76vh;
971
- }
972
981
  .h-full {
973
982
  height: 100%;
974
983
  }
@@ -1011,6 +1020,9 @@
1011
1020
  .min-h-56 {
1012
1021
  min-height: calc(var(--spacing) * 56);
1013
1022
  }
1023
+ .min-h-64 {
1024
+ min-height: calc(var(--spacing) * 64);
1025
+ }
1014
1026
  .min-h-\[8rem\] {
1015
1027
  min-height: 8rem;
1016
1028
  }
@@ -1143,6 +1155,9 @@
1143
1155
  .max-w-4xl {
1144
1156
  max-width: var(--container-4xl);
1145
1157
  }
1158
+ .max-w-6xl {
1159
+ max-width: var(--container-6xl);
1160
+ }
1146
1161
  .max-w-24 {
1147
1162
  max-width: calc(var(--spacing) * 24);
1148
1163
  }
@@ -1152,8 +1167,8 @@
1152
1167
  .max-w-full {
1153
1168
  max-width: 100%;
1154
1169
  }
1155
- .max-w-lg {
1156
- max-width: var(--container-lg);
1170
+ .max-w-md {
1171
+ max-width: var(--container-md);
1157
1172
  }
1158
1173
  .max-w-screen-xl {
1159
1174
  max-width: var(--breakpoint-xl);
@@ -1197,6 +1212,9 @@
1197
1212
  .flex-2 {
1198
1213
  flex: 2;
1199
1214
  }
1215
+ .flex-shrink-0 {
1216
+ flex-shrink: 0;
1217
+ }
1200
1218
  .shrink-0 {
1201
1219
  flex-shrink: 0;
1202
1220
  }
@@ -1217,10 +1235,21 @@
1217
1235
  .origin-top-left {
1218
1236
  transform-origin: 0 0;
1219
1237
  }
1238
+ .origin-top-right {
1239
+ transform-origin: 100% 0;
1240
+ }
1220
1241
  .-translate-x-1\/2 {
1221
1242
  --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
1222
1243
  translate: var(--tw-translate-x) var(--tw-translate-y);
1223
1244
  }
1245
+ .translate-x-0 {
1246
+ --tw-translate-x: calc(var(--spacing) * 0);
1247
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1248
+ }
1249
+ .translate-x-10 {
1250
+ --tw-translate-x: calc(var(--spacing) * 10);
1251
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1252
+ }
1224
1253
  .-translate-y-1\/2 {
1225
1254
  --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
1226
1255
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1303,6 +1332,9 @@
1303
1332
  .grid-cols-12 {
1304
1333
  grid-template-columns: repeat(12, minmax(0, 1fr));
1305
1334
  }
1335
+ .grid-cols-\[repeat\(auto-fit\,minmax\(min\(100\%\,247px\)\,1fr\)\)\] {
1336
+ grid-template-columns: repeat(auto-fit,minmax(min(100%, 247px),1fr));
1337
+ }
1306
1338
  .grid-rows-1 {
1307
1339
  grid-template-rows: repeat(1, minmax(0, 1fr));
1308
1340
  }
@@ -1386,6 +1418,13 @@
1386
1418
  margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
1387
1419
  }
1388
1420
  }
1421
+ .space-y-3 {
1422
+ :where(& > :not(:last-child)) {
1423
+ --tw-space-y-reverse: 0;
1424
+ margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
1425
+ margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
1426
+ }
1427
+ }
1389
1428
  .space-y-4 {
1390
1429
  :where(& > :not(:last-child)) {
1391
1430
  --tw-space-y-reverse: 0;
@@ -1444,6 +1483,9 @@
1444
1483
  margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));
1445
1484
  }
1446
1485
  }
1486
+ .gap-y-1 {
1487
+ row-gap: calc(var(--spacing) * 1);
1488
+ }
1447
1489
  .gap-y-4 {
1448
1490
  row-gap: calc(var(--spacing) * 4);
1449
1491
  }
@@ -1595,6 +1637,10 @@
1595
1637
  border-style: var(--tw-border-style);
1596
1638
  border-width: 1px;
1597
1639
  }
1640
+ .border-0 {
1641
+ border-style: var(--tw-border-style);
1642
+ border-width: 0px;
1643
+ }
1598
1644
  .border-2 {
1599
1645
  border-style: var(--tw-border-style);
1600
1646
  border-width: 2px;
@@ -1695,9 +1741,6 @@
1695
1741
  .border-green-500 {
1696
1742
  border-color: var(--color-green-500);
1697
1743
  }
1698
- .border-green-600 {
1699
- border-color: var(--color-green-600);
1700
- }
1701
1744
  .border-indigo-300 {
1702
1745
  border-color: var(--color-indigo-300);
1703
1746
  }
@@ -1710,9 +1753,6 @@
1710
1753
  .border-lime-500 {
1711
1754
  border-color: var(--color-lime-500);
1712
1755
  }
1713
- .border-neutral-200 {
1714
- border-color: var(--color-neutral-200);
1715
- }
1716
1756
  .border-neutral-300 {
1717
1757
  border-color: var(--color-neutral-300);
1718
1758
  }
@@ -1725,8 +1765,11 @@
1725
1765
  .border-orange-500 {
1726
1766
  border-color: var(--color-orange-500);
1727
1767
  }
1728
- .border-orange-600 {
1729
- border-color: var(--color-orange-600);
1768
+ .border-orange-600\/40 {
1769
+ border-color: color-mix(in srgb, oklch(64.6% 0.222 41.116) 40%, transparent);
1770
+ @supports (color: color-mix(in lab, red, red)) {
1771
+ border-color: color-mix(in oklab, var(--color-orange-600) 40%, transparent);
1772
+ }
1730
1773
  }
1731
1774
  .border-pink-300 {
1732
1775
  border-color: var(--color-pink-300);
@@ -1947,21 +1990,21 @@
1947
1990
  .bg-neutral-50 {
1948
1991
  background-color: var(--color-neutral-50);
1949
1992
  }
1950
- .bg-neutral-100 {
1951
- background-color: var(--color-neutral-100);
1952
- }
1953
1993
  .bg-neutral-500 {
1954
1994
  background-color: var(--color-neutral-500);
1955
1995
  }
1956
1996
  .bg-orange-50 {
1957
1997
  background-color: var(--color-orange-50);
1958
1998
  }
1959
- .bg-orange-400 {
1960
- background-color: var(--color-orange-400);
1961
- }
1962
1999
  .bg-orange-500 {
1963
2000
  background-color: var(--color-orange-500);
1964
2001
  }
2002
+ .bg-orange-500\/10 {
2003
+ background-color: color-mix(in srgb, oklch(70.5% 0.213 47.604) 10%, transparent);
2004
+ @supports (color: color-mix(in lab, red, red)) {
2005
+ background-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
2006
+ }
2007
+ }
1965
2008
  .bg-orange-700 {
1966
2009
  background-color: var(--color-orange-700);
1967
2010
  }
@@ -2109,9 +2152,6 @@
2109
2152
  .object-cover {
2110
2153
  object-fit: cover;
2111
2154
  }
2112
- .p-0\.5 {
2113
- padding: calc(var(--spacing) * 0.5);
2114
- }
2115
2155
  .p-1 {
2116
2156
  padding: calc(var(--spacing) * 1);
2117
2157
  }
@@ -2196,6 +2236,9 @@
2196
2236
  .pt-0\.5 {
2197
2237
  padding-top: calc(var(--spacing) * 0.5);
2198
2238
  }
2239
+ .pt-1 {
2240
+ padding-top: calc(var(--spacing) * 1);
2241
+ }
2199
2242
  .pt-2 {
2200
2243
  padding-top: calc(var(--spacing) * 2);
2201
2244
  }
@@ -2285,6 +2328,9 @@
2285
2328
  font-size: var(--text-xs);
2286
2329
  line-height: var(--tw-leading, var(--text-xs--line-height));
2287
2330
  }
2331
+ .text-\[0\.85em\] {
2332
+ font-size: 0.85em;
2333
+ }
2288
2334
  .text-\[10px\] {
2289
2335
  font-size: 10px;
2290
2336
  }
@@ -2304,6 +2350,10 @@
2304
2350
  --tw-leading: 1;
2305
2351
  line-height: 1;
2306
2352
  }
2353
+ .leading-snug {
2354
+ --tw-leading: var(--leading-snug);
2355
+ line-height: var(--leading-snug);
2356
+ }
2307
2357
  .leading-tight {
2308
2358
  --tw-leading: var(--leading-tight);
2309
2359
  line-height: var(--leading-tight);
@@ -2457,9 +2507,15 @@
2457
2507
  .text-orange-500 {
2458
2508
  color: var(--color-orange-500);
2459
2509
  }
2510
+ .text-orange-600 {
2511
+ color: var(--color-orange-600);
2512
+ }
2460
2513
  .text-orange-700 {
2461
2514
  color: var(--color-orange-700);
2462
2515
  }
2516
+ .text-orange-950 {
2517
+ color: var(--color-orange-950);
2518
+ }
2463
2519
  .text-pink-500 {
2464
2520
  color: var(--color-pink-500);
2465
2521
  }
@@ -2660,10 +2716,22 @@
2660
2716
  --tw-duration: 200ms;
2661
2717
  transition-duration: 200ms;
2662
2718
  }
2719
+ .duration-300 {
2720
+ --tw-duration: 300ms;
2721
+ transition-duration: 300ms;
2722
+ }
2723
+ .ease-in {
2724
+ --tw-ease: var(--ease-in);
2725
+ transition-timing-function: var(--ease-in);
2726
+ }
2663
2727
  .ease-in-out {
2664
2728
  --tw-ease: var(--ease-in-out);
2665
2729
  transition-timing-function: var(--ease-in-out);
2666
2730
  }
2731
+ .ease-out {
2732
+ --tw-ease: var(--ease-out);
2733
+ transition-timing-function: var(--ease-out);
2734
+ }
2667
2735
  .select-none {
2668
2736
  -webkit-user-select: none;
2669
2737
  user-select: none;
@@ -3264,29 +3332,19 @@
3264
3332
  background-color: var(--color-zinc-600);
3265
3333
  }
3266
3334
  }
3267
- .hover\:text-blue-500 {
3268
- &:hover {
3269
- color: var(--color-blue-500);
3270
- }
3271
- }
3272
3335
  .hover\:text-content {
3273
3336
  &:hover {
3274
3337
  color: var(--color-content);
3275
3338
  }
3276
3339
  }
3277
- .hover\:text-gray-600 {
3340
+ .hover\:text-danger-content {
3278
3341
  &:hover {
3279
- color: var(--color-gray-600);
3342
+ color: var(--color-danger-content);
3280
3343
  }
3281
3344
  }
3282
- .hover\:text-gray-900 {
3283
- &:hover {
3284
- color: var(--color-gray-900);
3285
- }
3286
- }
3287
- .hover\:text-red-900 {
3345
+ .hover\:text-gray-600 {
3288
3346
  &:hover {
3289
- color: var(--color-red-900);
3347
+ color: var(--color-gray-600);
3290
3348
  }
3291
3349
  }
3292
3350
  .hover\:text-slate-900 {
@@ -3294,11 +3352,6 @@
3294
3352
  color: var(--color-slate-900);
3295
3353
  }
3296
3354
  }
3297
- .hover\:underline {
3298
- &:hover {
3299
- text-decoration-line: underline;
3300
- }
3301
- }
3302
3355
  .hover\:opacity-100 {
3303
3356
  &:hover {
3304
3357
  opacity: 100%;
@@ -3383,6 +3436,11 @@
3383
3436
  translate: var(--tw-translate-x) var(--tw-translate-y);
3384
3437
  }
3385
3438
  }
3439
+ .active\:cursor-grabbing {
3440
+ &:active {
3441
+ cursor: grabbing;
3442
+ }
3443
+ }
3386
3444
  .active\:border-amber-500 {
3387
3445
  &:active {
3388
3446
  border-color: var(--color-amber-500);
@@ -4436,11 +4494,45 @@
4436
4494
  }
4437
4495
  }
4438
4496
  }
4497
+ .dark\:border-orange-500\/30 {
4498
+ &:where(.dark, .dark *) {
4499
+ border-color: color-mix(in srgb, oklch(70.5% 0.213 47.604) 30%, transparent);
4500
+ @supports (color: color-mix(in lab, red, red)) {
4501
+ border-color: color-mix(in oklab, var(--color-orange-500) 30%, transparent);
4502
+ }
4503
+ }
4504
+ }
4505
+ .dark\:bg-orange-500\/15 {
4506
+ &:where(.dark, .dark *) {
4507
+ background-color: color-mix(in srgb, oklch(70.5% 0.213 47.604) 15%, transparent);
4508
+ @supports (color: color-mix(in lab, red, red)) {
4509
+ background-color: color-mix(in oklab, var(--color-orange-500) 15%, transparent);
4510
+ }
4511
+ }
4512
+ }
4513
+ .dark\:bg-orange-950\/30 {
4514
+ &:where(.dark, .dark *) {
4515
+ background-color: color-mix(in srgb, oklch(26.6% 0.079 36.259) 30%, transparent);
4516
+ @supports (color: color-mix(in lab, red, red)) {
4517
+ background-color: color-mix(in oklab, var(--color-orange-950) 30%, transparent);
4518
+ }
4519
+ }
4520
+ }
4439
4521
  .dark\:bg-tertiary {
4440
4522
  &:where(.dark, .dark *) {
4441
4523
  background-color: var(--color-tertiary);
4442
4524
  }
4443
4525
  }
4526
+ .dark\:text-orange-50 {
4527
+ &:where(.dark, .dark *) {
4528
+ color: var(--color-orange-50);
4529
+ }
4530
+ }
4531
+ .dark\:text-orange-300 {
4532
+ &:where(.dark, .dark *) {
4533
+ color: var(--color-orange-300);
4534
+ }
4535
+ }
4444
4536
  .print\:hidden {
4445
4537
  @media print {
4446
4538
  display: none;
@@ -7684,6 +7776,9 @@
7684
7776
  transform: scale(0.75) translateY(2px);
7685
7777
  box-shadow: none;
7686
7778
  }
7779
+ .hotkeys-hide-badges .hotkey-badge kbd {
7780
+ display: none;
7781
+ }
7687
7782
  @layer base {
7688
7783
  a {
7689
7784
  color: var(--color-info-content);
@@ -8414,7 +8509,7 @@
8414
8509
  border-radius: var(--radius-2xl);
8415
8510
  background-color: var(--color-primary);
8416
8511
  padding: calc(var(--spacing) * 4);
8417
- --tw-shadow: 0 8px 16px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.08));
8512
+ --tw-shadow: 0px 8px 16px 0px var(--tw-shadow-color, rgba(0, 0, 0, 0.08));
8418
8513
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
8419
8514
  transition: margin 0.1s ease-in-out, width 0.1s ease-in-out;
8420
8515
  height: calc(100dvh - var(--spacing) - var(--top-navbar-height));
@@ -8425,6 +8520,7 @@
8425
8520
  flex-direction: column;
8426
8521
  overflow-y: auto;
8427
8522
  padding-inline: calc(var(--spacing) * 2);
8523
+ padding-top: calc(var(--spacing) * 1);
8428
8524
  }
8429
8525
  .avo-container {
8430
8526
  display: flex;
@@ -10598,6 +10694,7 @@
10598
10694
  display: flex;
10599
10695
  width: 100%;
10600
10696
  flex: 1;
10697
+ flex-direction: column;
10601
10698
  flex-wrap: wrap;
10602
10699
  :where(& > :not(:last-child)) {
10603
10700
  --tw-divide-y-reverse: 0;
@@ -11321,15 +11418,32 @@
11321
11418
  background-color: transparent !important;
11322
11419
  color: var(--color-content-secondary);
11323
11420
  }
11421
+ &.menu__item--action {
11422
+ gap: calc(var(--spacing) * 1.5);
11423
+ color: var(--color-content-secondary);
11424
+ &.dropdown-menu__item--disabled {
11425
+ opacity: 60%;
11426
+ }
11427
+ }
11428
+ &:hover {
11429
+ background-color: var(--color-secondary);
11430
+ color: var(--color-content);
11431
+ }
11324
11432
  }
11325
- .dropdown-menu__item--active, .dropdown-menu__item:hover, .dropdown-menu__list > :is(a, button):hover {
11433
+ .dropdown-menu__list > :is(a, button):hover {
11326
11434
  background-color: var(--color-secondary);
11327
11435
  }
11436
+ .dropdown-menu__item--active {
11437
+ background: color-mix(in srgb, oklch(97.31% 0.0000 89.88), oklch(20.46% 0.0000 89.88) 5%);
11438
+ @supports (color: color-mix(in lab, red, red)) {
11439
+ background: color-mix(in oklab, var(--color-secondary), var(--color-content) 5%);
11440
+ }
11441
+ }
11328
11442
  .dropdown-menu__item:focus-visible, .dropdown-menu__list > :is(a, button):focus-visible {
11329
11443
  background-color: var(--color-primary);
11330
11444
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
11331
11445
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
11332
- --tw-ring-color: var(--color-content);
11446
+ --tw-ring-color: var(--color-info-foreground);
11333
11447
  --tw-outline-style: none;
11334
11448
  outline-style: none;
11335
11449
  --tw-ring-inset: inset;
@@ -11338,7 +11452,34 @@
11338
11452
  width: calc(var(--spacing) * 4);
11339
11453
  height: calc(var(--spacing) * 4);
11340
11454
  flex-shrink: 0;
11341
- color: var(--color-content);
11455
+ color: inherit;
11456
+ &.menu__item__icon--action {
11457
+ box-sizing: content-box;
11458
+ border-radius: var(--radius-sm);
11459
+ background-color: var(--color-secondary);
11460
+ padding: calc(var(--spacing) * 0.5);
11461
+ .dropdown-menu__item--active &, .dropdown-menu__item:hover & {
11462
+ background-color: inherit;
11463
+ }
11464
+ }
11465
+ }
11466
+ .dropdown-card {
11467
+ overflow: hidden;
11468
+ border-radius: var(--radius-lg);
11469
+ border-style: var(--tw-border-style);
11470
+ border-width: 1px;
11471
+ border-color: var(--color-tertiary);
11472
+ background-color: var(--color-secondary);
11473
+ padding: calc(var(--spacing) * 0.5);
11474
+ box-shadow: var(--box-shadow-dropdown-card);
11475
+ }
11476
+ .dropdown-card__body {
11477
+ overflow: hidden;
11478
+ border-radius: var(--radius-lg);
11479
+ border-style: var(--tw-border-style);
11480
+ border-width: 1px;
11481
+ border-color: var(--color-tertiary);
11482
+ background-color: var(--color-primary);
11342
11483
  }
11343
11484
  @layer base {
11344
11485
  input[type="radio"] {
@@ -11891,6 +12032,120 @@
11891
12032
  --tw-leading: calc(var(--spacing) * 4);
11892
12033
  line-height: calc(var(--spacing) * 4);
11893
12034
  }
12035
+ .alert {
12036
+ pointer-events: auto;
12037
+ position: relative;
12038
+ display: grid;
12039
+ width: 100%;
12040
+ max-width: var(--container-md);
12041
+ min-width: calc(var(--spacing) * 0);
12042
+ --tw-translate-x: calc(var(--spacing) * 10);
12043
+ translate: var(--tw-translate-x) var(--tw-translate-y);
12044
+ align-items: flex-start;
12045
+ gap: calc(var(--spacing) * 1);
12046
+ border-radius: var(--radius-lg);
12047
+ border-style: var(--tw-border-style);
12048
+ border-width: 1px;
12049
+ padding: calc(var(--spacing) * 3);
12050
+ opacity: 0%;
12051
+ grid-template-columns: auto 1fr auto;
12052
+ background: var(--alert-background);
12053
+ border-color: var(--alert-border);
12054
+ will-change: opacity, transform;
12055
+ --alert-color: var(--color-foreground);
12056
+ --alert-title-color: oklch(20.46% 0.0000 89.88);
12057
+ @supports (color: color-mix(in lab, red, red)) {
12058
+ --alert-title-color: color-mix(in oklab, var(--color-content) 20%, var(--alert-color));
12059
+ }
12060
+ --alert-message-color: oklch(20.46% 0.0000 89.88);
12061
+ @supports (color: color-mix(in lab, red, red)) {
12062
+ --alert-message-color: color-mix(in oklab, var(--color-content) 10%, var(--alert-color));
12063
+ }
12064
+ --alert-background: var(--color-background);
12065
+ --alert-border: var(--color-tertiary);
12066
+ }
12067
+ .alert__icon-container {
12068
+ display: flex;
12069
+ flex-shrink: 0;
12070
+ align-items: flex-start;
12071
+ justify-content: center;
12072
+ padding: calc(var(--spacing) * 1);
12073
+ color: var(--alert-title-color);
12074
+ }
12075
+ .alert__icon-container--status {
12076
+ grid-column-start: 1;
12077
+ align-self: stretch;
12078
+ }
12079
+ .alert__icon {
12080
+ width: calc(var(--spacing) * 3.5);
12081
+ height: calc(var(--spacing) * 3.5);
12082
+ }
12083
+ .alert__body {
12084
+ grid-column-start: 2;
12085
+ display: flex;
12086
+ min-width: calc(var(--spacing) * 0);
12087
+ flex-direction: column;
12088
+ align-items: flex-start;
12089
+ justify-content: center;
12090
+ gap: calc(var(--spacing) * 0.5);
12091
+ align-self: stretch;
12092
+ }
12093
+ .alert__title {
12094
+ width: 100%;
12095
+ font-size: var(--text-sm);
12096
+ line-height: var(--tw-leading, var(--text-sm--line-height));
12097
+ --tw-leading: calc(var(--spacing) * 5);
12098
+ line-height: calc(var(--spacing) * 5);
12099
+ --tw-font-weight: var(--font-weight-medium);
12100
+ font-weight: var(--font-weight-medium);
12101
+ color: var(--alert-title-color);
12102
+ }
12103
+ .alert__message {
12104
+ width: 100%;
12105
+ font-size: var(--text-xs);
12106
+ line-height: var(--tw-leading, var(--text-xs--line-height));
12107
+ --tw-leading: calc(var(--spacing) * 4);
12108
+ line-height: calc(var(--spacing) * 4);
12109
+ --tw-font-weight: var(--font-weight-normal);
12110
+ font-weight: var(--font-weight-normal);
12111
+ color: var(--alert-message-color);
12112
+ }
12113
+ .alert__icon-container--close {
12114
+ grid-column-start: 3;
12115
+ align-self: flex-start;
12116
+ }
12117
+ .alert--success {
12118
+ --alert-color: var(--color-success-content);
12119
+ --alert-background: color-mix(in srgb, oklch(72.3% 0.219 149.579) 15%, #fff);
12120
+ @supports (color: color-mix(in lab, red, red)) {
12121
+ --alert-background: color-mix(in oklab, var(--color-success) 15%, var(--color-primary));
12122
+ }
12123
+ --alert-border: var(--color-success-foreground);
12124
+ }
12125
+ .alert--info {
12126
+ --alert-color: var(--color-info-content);
12127
+ --alert-background: color-mix(in srgb, oklch(70.7% 0.165 254.624) 15%, #fff);
12128
+ @supports (color: color-mix(in lab, red, red)) {
12129
+ --alert-background: color-mix(in oklab, var(--color-info) 15%, var(--color-primary));
12130
+ }
12131
+ --alert-border: var(--color-info-foreground);
12132
+ }
12133
+ .alert--warning {
12134
+ --alert-color: var(--color-warning-content);
12135
+ --alert-background: color-mix(in srgb, oklch(79.5% 0.184 86.047) 15%, #fff);
12136
+ @supports (color: color-mix(in lab, red, red)) {
12137
+ --alert-background: color-mix(in oklab, var(--color-warning) 15%, var(--color-primary));
12138
+ }
12139
+ --alert-border: var(--color-warning-foreground);
12140
+ }
12141
+ .alert--danger {
12142
+ --alert-color: var(--color-danger-content);
12143
+ --alert-background: color-mix(in srgb, oklch(63.7% 0.237 25.331) 15%, #fff);
12144
+ @supports (color: color-mix(in lab, red, red)) {
12145
+ --alert-background: color-mix(in oklab, var(--color-danger) 15%, var(--color-primary));
12146
+ }
12147
+ --alert-border: var(--color-danger-foreground);
12148
+ }
11894
12149
  .breadcrumbs {
11895
12150
  width: 100%;
11896
12151
  }
@@ -11956,6 +12211,16 @@
11956
12211
  }
11957
12212
  }
11958
12213
  @layer base {
12214
+ .button-icon {
12215
+ display: inline-flex;
12216
+ cursor: pointer;
12217
+ &:focus-visible {
12218
+ border-radius: var(--radius-lg);
12219
+ --tw-outline-style: none;
12220
+ outline-style: none;
12221
+ box-shadow: var(--box-shadow-focus);
12222
+ }
12223
+ }
11959
12224
  .button {
11960
12225
  display: inline-flex;
11961
12226
  flex-grow: 0;
@@ -11999,7 +12264,7 @@
11999
12264
  border-radius: var(--radius-lg);
12000
12265
  --tw-outline-style: none;
12001
12266
  outline-style: none;
12002
- box-shadow: 0 0 0 1px var(--color-primary), 0 0 0 3px var(--color-info-foreground);
12267
+ box-shadow: var(--box-shadow-focus);
12003
12268
  }
12004
12269
  --btn-color-accent: var(--color-avo-neutral-50);
12005
12270
  --btn-color-accent-content: var(--color-avo-neutral-100);