mnfst 0.5.188 → 0.5.190

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 (58) hide show
  1. package/lib/manifest.accordion.css +3 -1
  2. package/lib/manifest.appwrite.auth.js +7 -1
  3. package/lib/manifest.appwrite.data.js +8 -1
  4. package/lib/manifest.avatar.css +6 -4
  5. package/lib/manifest.button.css +7 -5
  6. package/lib/manifest.chart.css +2 -0
  7. package/lib/manifest.chat.js +7 -0
  8. package/lib/manifest.checkbox.css +6 -4
  9. package/lib/manifest.code.css +3 -1
  10. package/lib/manifest.code.js +6 -0
  11. package/lib/manifest.code.min.css +1 -1
  12. package/lib/manifest.colorpicker.css +7 -5
  13. package/lib/manifest.colorpicker.js +3 -0
  14. package/lib/manifest.combobox.css +14 -2
  15. package/lib/manifest.combobox.js +24 -5
  16. package/lib/manifest.components.js +7 -1
  17. package/lib/manifest.css +133 -67
  18. package/lib/manifest.d.ts +214 -30
  19. package/lib/manifest.data.js +71 -29
  20. package/lib/manifest.datepicker.css +15 -13
  21. package/lib/manifest.dialog.css +2 -0
  22. package/lib/manifest.divider.css +3 -1
  23. package/lib/manifest.dropdown.css +6 -4
  24. package/lib/manifest.dropdowns.js +25 -2
  25. package/lib/manifest.export.js +6 -0
  26. package/lib/manifest.form.css +3 -1
  27. package/lib/manifest.input.css +7 -5
  28. package/lib/manifest.integrity.json +25 -25
  29. package/lib/manifest.js +39 -0
  30. package/lib/manifest.localization.js +6 -1
  31. package/lib/manifest.markdown.js +24 -1
  32. package/lib/manifest.min.css +1 -1
  33. package/lib/manifest.native.js +7 -0
  34. package/lib/manifest.payments.js +7 -0
  35. package/lib/manifest.radio.css +2 -0
  36. package/lib/manifest.range.css +6 -4
  37. package/lib/manifest.resize.css +3 -1
  38. package/lib/manifest.resize.js +6 -1
  39. package/lib/manifest.router.js +7 -0
  40. package/lib/manifest.schema.json +29 -0
  41. package/lib/manifest.sidebar.css +2 -0
  42. package/lib/manifest.slides.css +2 -0
  43. package/lib/manifest.status.js +7 -0
  44. package/lib/manifest.svg.js +6 -0
  45. package/lib/manifest.switch.css +5 -3
  46. package/lib/manifest.table.css +4 -2
  47. package/lib/manifest.tabs.js +6 -1
  48. package/lib/manifest.theme.css +4 -2
  49. package/lib/manifest.toast.css +4 -2
  50. package/lib/manifest.toasts.js +6 -1
  51. package/lib/manifest.tooltip.css +2 -0
  52. package/lib/manifest.tooltips.js +6 -0
  53. package/lib/manifest.typography.css +5 -3
  54. package/lib/manifest.url.parameters.js +6 -0
  55. package/lib/manifest.utilities.css +7 -5
  56. package/lib/manifest.utilities.js +20 -1
  57. package/lib/manifest.virtual.js +6 -0
  58. package/package.json +5 -5
package/lib/manifest.css CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  /* Manifest Reset - browser style normalizer */
8
8
 
9
+ @layer base, components, utilities;
10
+
9
11
  @layer base {
10
12
 
11
13
  *,
@@ -180,7 +182,7 @@
180
182
  :where(hr) {
181
183
  height: 1px;
182
184
  color: inherit;
183
- background-color: var(--color-line, color-mix(oklch(20.5% 0 0) 12%, transparent));
185
+ background-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 12%, transparent));
184
186
  border: 0 none
185
187
  }
186
188
 
@@ -375,6 +377,8 @@
375
377
 
376
378
  /* Manifest Accordions */
377
379
 
380
+ @layer base, components, utilities;
381
+
378
382
  @layer components {
379
383
 
380
384
 
@@ -430,7 +434,7 @@
430
434
  order: 1;
431
435
  width: 1rem;
432
436
  height: 1rem;
433
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 50%, var(--color-field-inverse, oklch(43.9% 0 0)));
437
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 50%, var(--color-field-inverse, oklch(43.9% 0 0)));
434
438
  -webkit-mask-image: var(--icon-accordion, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 256 256'%3E%3Cpath fill='%23000' d='m184.49 136.49l-80 80a12 12 0 0 1-17-17L159 128L87.51 56.49a12 12 0 1 1 17-17l80 80a12 12 0 0 1-.02 17'/%3E%3C/svg%3E"));
435
439
  mask-image: var(--icon-accordion, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 256 256'%3E%3Cpath fill='%23000' d='m184.49 136.49l-80 80a12 12 0 0 1-17-17L159 128L87.51 56.49a12 12 0 1 1 17-17l80 80a12 12 0 0 1-.02 17'/%3E%3C/svg%3E"));
436
440
  -webkit-mask-repeat: no-repeat;
@@ -458,6 +462,8 @@
458
462
 
459
463
  /* Manifest Avatars */
460
464
 
465
+ @layer base, components, utilities;
466
+
461
467
  @layer utilities {
462
468
 
463
469
  :where(.avatar) {
@@ -473,7 +479,7 @@
473
479
  text-align: center;
474
480
  text-transform: uppercase;
475
481
  color: var(--color-field-inverse, oklch(43.9% 0 0));
476
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
482
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
477
483
  background-clip: content-box;
478
484
  background-size: cover;
479
485
  background-position: center;
@@ -505,7 +511,7 @@
505
511
  width: 9px;
506
512
  height: 9px;
507
513
  z-index: 1;
508
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
514
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
509
515
  border: 1px solid var(--color-page, oklch(98.5% 0 0));
510
516
  border-radius: 50%
511
517
  }
@@ -517,7 +523,7 @@
517
523
  background-blend-mode: normal;
518
524
 
519
525
  &:hover {
520
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent));
526
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent));
521
527
  background-blend-mode: multiply;
522
528
 
523
529
  & img {
@@ -569,7 +575,7 @@
569
575
  padding-inline-end: 1.5ch;
570
576
 
571
577
  &:hover .avatar {
572
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent));
578
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent));
573
579
  transition: var(--transition, all .05s ease-in-out)
574
580
  }
575
581
  }
@@ -589,6 +595,8 @@
589
595
 
590
596
  /* Manifest Buttons */
591
597
 
598
+ @layer base, components, utilities;
599
+
592
600
  @layer components {
593
601
 
594
602
  :where(button:not(.link), [role=button], [type=button], [type=reset], [type=submit], select):not(code, .unstyle) {
@@ -607,12 +615,12 @@
607
615
  white-space: nowrap;
608
616
  text-overflow: ellipsis;
609
617
  color: var(--color-field-inverse, oklch(43.9% 0 0));
610
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
618
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
611
619
  border-width: 0;
612
620
  border-style: solid;
613
621
  border-color: transparent;
614
622
  border-radius: var(--radius, 0.5rem);
615
- outline-color: var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
623
+ outline-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
616
624
  cursor: pointer;
617
625
  transition: var(--transition, all .05s ease-in-out);
618
626
  appearance: button;
@@ -641,15 +649,15 @@
641
649
  }
642
650
 
643
651
  &:hover {
644
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
652
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
645
653
  }
646
654
 
647
655
  &:active {
648
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
656
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
649
657
  }
650
658
 
651
659
  &:focus-visible {
652
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
660
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
653
661
  }
654
662
  }
655
663
 
@@ -669,6 +677,8 @@
669
677
 
670
678
  /* Manifest Charts */
671
679
 
680
+ @layer base, components, utilities;
681
+
672
682
  :root {
673
683
  /* Chart guidance */
674
684
  --color-chart-grid: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
@@ -966,6 +976,8 @@
966
976
 
967
977
  /* Manifest Chat */
968
978
 
979
+ @layer base, components, utilities;
980
+
969
981
  @layer utilities {
970
982
 
971
983
  :where(.chat-wrapper) {
@@ -1019,7 +1031,7 @@
1019
1031
 
1020
1032
  /* Own messages */
1021
1033
  :where(.own) {
1022
- width: fit-content;
1034
+ width: 95%;
1023
1035
  max-width: calc(var(--spacing-content-width, 74rem) - 10rem);
1024
1036
  margin-inline-start: auto;
1025
1037
  padding-block: 0.5rem;
@@ -1118,6 +1130,8 @@
1118
1130
 
1119
1131
  /* Manifest Checkboxes */
1120
1132
 
1133
+ @layer base, components, utilities;
1134
+
1121
1135
  @layer components {
1122
1136
 
1123
1137
  input[type=checkbox]:not([role=switch], .unstyle) {
@@ -1134,13 +1148,13 @@
1134
1148
  &:checked {
1135
1149
 
1136
1150
  &:hover {
1137
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent));
1138
- border-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
1151
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent));
1152
+ border-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
1139
1153
  }
1140
1154
 
1141
1155
  &:active {
1142
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent));
1143
- border-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
1156
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent));
1157
+ border-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
1144
1158
  }
1145
1159
  }
1146
1160
 
@@ -1177,8 +1191,10 @@
1177
1191
 
1178
1192
  /* Manifest Color Picker */
1179
1193
 
1194
+ @layer base, components, utilities;
1195
+
1180
1196
  :root {
1181
- --color-picker-swatch: var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
1197
+ --color-picker-swatch: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1182
1198
  --icon-color-solid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='lucide lucide-paint-roller-icon lucide-paint-roller'%3E%3Crect width='16' height='6' x='2' y='2' rx='2'/%3E%3Cpath d='M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2'/%3E%3Crect width='4' height='6' x='8' y='16' rx='1'/%3E%3C/svg%3E");
1183
1199
  --icon-color-gradient: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='lucide lucide-blend-icon lucide-blend'%3E%3Ccircle cx='9' cy='9' r='7'/%3E%3Ccircle cx='15' cy='15' r='7'/%3E%3C/svg%3E");
1184
1200
  --icon-color-library: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='lucide lucide-swatch-book-icon lucide-swatch-book'%3E%3Cpath d='M11 17a4 4 0 0 1-8 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2Z'/%3E%3Cpath d='M16.7 13H19a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H7'/%3E%3Cpath d='M 7 17h.01'/%3E%3Cpath d='m11 8 2.3-2.3a2.4 2.4 0 0 1 3.404.004L18.6 7.6a2.4 2.4 0 0 1 .026 3.434L9.9 19.8'/%3E%3C/svg%3E");
@@ -1260,7 +1276,7 @@
1260
1276
  display: flex;
1261
1277
  width: 100%;
1262
1278
  padding: 2px;
1263
- border-bottom: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
1279
+ border-bottom: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1264
1280
 
1265
1281
  /* Distribute button widths equally */
1266
1282
  & button {
@@ -1435,7 +1451,7 @@
1435
1451
 
1436
1452
  /* Gradient layers */
1437
1453
  & :where(.layer-options-wrapper) {
1438
- border-bottom: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
1454
+ border-bottom: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1439
1455
 
1440
1456
  /* Layer options inputs */
1441
1457
  & :where(.layer-options-inputs) {
@@ -1485,7 +1501,7 @@
1485
1501
  margin-inline-end: 0.5rem;
1486
1502
  border-radius: 1rem;
1487
1503
  cursor: pointer;
1488
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
1504
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1489
1505
 
1490
1506
  /* Stop handle */
1491
1507
  & :where(.stop-handle) {
@@ -1574,7 +1590,7 @@
1574
1590
 
1575
1591
  /* Only apply border to all except last library-group */
1576
1592
  &:not(:last-child) {
1577
- border-bottom: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
1593
+ border-bottom: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1578
1594
  }
1579
1595
 
1580
1596
  /* Palette wrapper */
@@ -1681,6 +1697,8 @@
1681
1697
 
1682
1698
  /* Manifest Combobox */
1683
1699
 
1700
+ @layer base, components, utilities;
1701
+
1684
1702
  @layer components {
1685
1703
 
1686
1704
  /* Wrapper */
@@ -1716,9 +1734,19 @@
1716
1734
  padding-inline: calc(var(--spacing, 0.25rem) * 1.25)
1717
1735
  }
1718
1736
 
1719
- &:has(> :where(input, textarea):disabled) {
1737
+ /* Plugin-set from render(), so it tracks any editor type — including a
1738
+ <button> editor, which the old :has(> input:disabled) rule missed. */
1739
+ &[data-disabled] {
1720
1740
  opacity: .5;
1721
- pointer-events: none
1741
+ pointer-events: none;
1742
+ cursor: default;
1743
+
1744
+ /* The × stays (layout), inert — the field is already dimmed as a whole,
1745
+ so don't let the global :disabled dimming stack on top of it. */
1746
+ .combobox-chip>button:disabled {
1747
+ opacity: 1;
1748
+ cursor: default
1749
+ }
1722
1750
  }
1723
1751
 
1724
1752
  /* Inner typing surface */
@@ -1914,6 +1942,8 @@
1914
1942
 
1915
1943
  /* Manifest Date Picker */
1916
1944
 
1945
+ @layer base, components, utilities;
1946
+
1917
1947
  @layer utilities {
1918
1948
 
1919
1949
  /* Picker container only (not trigger input/button) */
@@ -1922,7 +1952,7 @@
1922
1952
  min-width: 17rem;
1923
1953
  background: var(--color-popover-surface, oklch(98.5% 0 0));
1924
1954
  color: var(--color-content-stark, oklch(20.5% 0 0));
1925
- border: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
1955
+ border: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1926
1956
  border-radius: var(--radius, 0.5rem);
1927
1957
 
1928
1958
  /* Shell */
@@ -1957,7 +1987,7 @@
1957
1987
  transition: var(--transition, all .05s ease-in-out);
1958
1988
 
1959
1989
  &:hover {
1960
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
1990
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1961
1991
  color: var(--color-content-stark, oklch(20.5% 0 0))
1962
1992
  }
1963
1993
  }
@@ -2049,7 +2079,7 @@
2049
2079
  transition: var(--transition, all .05s ease-in-out);
2050
2080
 
2051
2081
  &:hover:not(:disabled):not([aria-selected=true]) {
2052
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
2082
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2053
2083
  }
2054
2084
 
2055
2085
  &:focus-visible {
@@ -2065,7 +2095,7 @@
2065
2095
 
2066
2096
  /* Today marker */
2067
2097
  &[aria-current=date]:not([aria-selected=true]) {
2068
- border-color: var(--color-line, color-mix(oklch(20.5% 0 0) 18%, transparent));
2098
+ border-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 18%, transparent));
2069
2099
  font-weight: 600
2070
2100
  }
2071
2101
 
@@ -2126,11 +2156,11 @@
2126
2156
  transition: var(--transition, all .05s ease-in-out);
2127
2157
 
2128
2158
  &:hover:not(:disabled) {
2129
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
2159
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2130
2160
  }
2131
2161
 
2132
2162
  &[aria-current=true] {
2133
- border-color: var(--color-line, color-mix(oklch(20.5% 0 0) 18%, transparent));
2163
+ border-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 18%, transparent));
2134
2164
  font-weight: 600
2135
2165
  }
2136
2166
 
@@ -2165,7 +2195,7 @@
2165
2195
  padding-bottom: 0.5rem;
2166
2196
  padding-inline-start: 0.5rem;
2167
2197
  border: none;
2168
- border-top: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
2198
+ border-top: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
2169
2199
 
2170
2200
  /* "Time" label */
2171
2201
  &>label {
@@ -2221,7 +2251,7 @@
2221
2251
 
2222
2252
  &:hover,
2223
2253
  &:focus {
2224
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
2254
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2225
2255
  }
2226
2256
  }
2227
2257
 
@@ -2248,7 +2278,7 @@
2248
2278
  transition: var(--transition, all .05s ease-in-out);
2249
2279
 
2250
2280
  &:hover {
2251
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
2281
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2252
2282
  }
2253
2283
  }
2254
2284
 
@@ -2294,7 +2324,7 @@
2294
2324
  width: 100%;
2295
2325
  contain: inline-size;
2296
2326
  padding: 0.5rem 0;
2297
- border-top: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
2327
+ border-top: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
2298
2328
 
2299
2329
  /* Today | Clear buttons */
2300
2330
  &>button {
@@ -2331,7 +2361,7 @@
2331
2361
  padding: 0.25rem 0.625rem;
2332
2362
  font-size: 0.75rem;
2333
2363
  white-space: nowrap;
2334
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
2364
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
2335
2365
  color: var(--color-content-stark, oklch(20.5% 0 0));
2336
2366
  border: none;
2337
2367
  border-radius: calc(var(--radius, 0.5rem) * 2);
@@ -2339,7 +2369,7 @@
2339
2369
  transition: var(--transition, all .05s ease-in-out);
2340
2370
 
2341
2371
  &:hover {
2342
- background: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 16%, transparent))
2372
+ background: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 16%, transparent))
2343
2373
  }
2344
2374
  }
2345
2375
  }
@@ -2394,7 +2424,7 @@
2394
2424
  transition: var(--transition, all .05s ease-in-out);
2395
2425
 
2396
2426
  &:hover {
2397
- background: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
2427
+ background: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2398
2428
  }
2399
2429
 
2400
2430
  &[aria-selected=true] {
@@ -2440,6 +2470,8 @@
2440
2470
  }
2441
2471
 
2442
2472
  /* Manifest Dialogs */
2473
+ @layer base, components, utilities;
2474
+
2443
2475
  [popover]:not(.unstyle):not(:popover-open) {
2444
2476
  display: none;
2445
2477
  }
@@ -2547,6 +2579,8 @@
2547
2579
 
2548
2580
  /* Manifest Dividers */
2549
2581
 
2582
+ @layer base, components, utilities;
2583
+
2550
2584
  @layer utilities {
2551
2585
 
2552
2586
  :where(.divider) {
@@ -2569,7 +2603,7 @@
2569
2603
  flex: 1;
2570
2604
  width: auto;
2571
2605
  height: 1px;
2572
- background-color: var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent))
2606
+ background-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2573
2607
  }
2574
2608
 
2575
2609
  /* Space between lines and content */
@@ -2625,6 +2659,8 @@
2625
2659
 
2626
2660
  /* Manifest Dock */
2627
2661
 
2662
+ @layer base, components, utilities;
2663
+
2628
2664
  @layer components {
2629
2665
 
2630
2666
  /* Fixed bottom navigation bar. Best practice: <nav dock aria-label="Primary">.
@@ -2681,6 +2717,8 @@
2681
2717
  }
2682
2718
 
2683
2719
  /* Manifest Dropdowns */
2720
+ @layer base, components, utilities;
2721
+
2684
2722
  [popover]:not(.unstyle):not(:popover-open) {
2685
2723
  display: none;
2686
2724
  }
@@ -2735,12 +2773,12 @@
2735
2773
  &:hover {
2736
2774
  color: var(--color-field-inverse, oklch(43.9% 0 0));
2737
2775
  text-decoration: inherit;
2738
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
2776
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2739
2777
  }
2740
2778
 
2741
2779
  &:active {
2742
2780
  color: var(--color-field-inverse, oklch(43.9% 0 0));
2743
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
2781
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2744
2782
  }
2745
2783
 
2746
2784
  & span,
@@ -2767,7 +2805,7 @@
2767
2805
  margin-inline-start: calc(0.25rem * -1);
2768
2806
  margin-top: 0.25rem;
2769
2807
  margin-bottom: 0.25rem;
2770
- background-color: var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent))
2808
+ background-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
2771
2809
  }
2772
2810
 
2773
2811
  /* Labels (not inner field-surface wrappers) */
@@ -2817,7 +2855,7 @@
2817
2855
 
2818
2856
  /* Dark theme */
2819
2857
  :where(.dark menu[popover]) :where(li, a, button, label:not(:has(input:not([type=checkbox], [type=radio], [type=hidden]), select, textarea, .combobox, .label, label))):hover {
2820
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
2858
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
2821
2859
  }
2822
2860
 
2823
2861
  /* Nested menu alignment (not combobox listboxes, which anchor to their field) */
@@ -2949,6 +2987,8 @@
2949
2987
 
2950
2988
  /* Manifest Edit */
2951
2989
 
2990
+ @layer base, components, utilities;
2991
+
2952
2992
  /* Authors override any of this without specificity battles: every rule is wrapped
2953
2993
  in :where(), state lives on data-attributes, and injected affordances use plain
2954
2994
  semantic class names (.edit-handle, .edit-frame) — no framework-prefixed litter. */
@@ -3125,6 +3165,8 @@
3125
3165
 
3126
3166
  /* Manifest Forms */
3127
3167
 
3168
+ @layer base, components, utilities;
3169
+
3128
3170
  @layer components {
3129
3171
 
3130
3172
  /* Group & tab bar wrappers */
@@ -3273,7 +3315,7 @@
3273
3315
  :where(fieldset:has(legend)):not(.unstyle) {
3274
3316
  padding: 1ch 1.5ch 1.5ch 1.5ch;
3275
3317
  border-radius: var(--radius, 0.5rem);
3276
- border-color: var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
3318
+ border-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
3277
3319
  border-style: solid;
3278
3320
  border-width: 1px;
3279
3321
 
@@ -3445,6 +3487,8 @@
3445
3487
 
3446
3488
  /* Manifest Inputs */
3447
3489
 
3490
+ @layer base, components, utilities;
3491
+
3448
3492
  :root {
3449
3493
 
3450
3494
  /* Copy button icons */
@@ -3458,7 +3502,7 @@
3458
3502
  width: 100%;
3459
3503
  max-width: 100%;
3460
3504
  color: var(--color-field-inverse, oklch(43.9% 0 0));
3461
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
3505
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
3462
3506
  border-width: 0;
3463
3507
  border-style: solid;
3464
3508
  border-color: transparent;
@@ -3468,15 +3512,15 @@
3468
3512
  appearance: none;
3469
3513
 
3470
3514
  &:hover {
3471
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
3515
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
3472
3516
  }
3473
3517
 
3474
3518
  &:active {
3475
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
3519
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
3476
3520
  }
3477
3521
 
3478
3522
  &:focus-visible {
3479
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent))
3523
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
3480
3524
  }
3481
3525
 
3482
3526
  &::placeholder {
@@ -3484,7 +3528,7 @@
3484
3528
  }
3485
3529
 
3486
3530
  &::selection {
3487
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 80%, var(--color-field-inverse, oklch(43.9% 0 0)))
3531
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 80%, var(--color-field-inverse, oklch(43.9% 0 0)))
3488
3532
  }
3489
3533
 
3490
3534
  &[type=file] {
@@ -3674,6 +3718,8 @@
3674
3718
 
3675
3719
  /* Manifest Radios */
3676
3720
 
3721
+ @layer base, components, utilities;
3722
+
3677
3723
  @layer components {
3678
3724
 
3679
3725
  input[type=radio]:not(.unstyle) {
@@ -3713,6 +3759,8 @@
3713
3759
 
3714
3760
  /* Manifest Range */
3715
3761
 
3762
+ @layer base, components, utilities;
3763
+
3716
3764
  @layer components {
3717
3765
 
3718
3766
  input[type=range]:not(.unstyle) {
@@ -3723,14 +3771,14 @@
3723
3771
 
3724
3772
  &::-webkit-slider-runnable-track {
3725
3773
  height: calc(var(--spacing, 0.25rem) * 2);
3726
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
3774
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
3727
3775
  border-radius: var(--radius, 0.5rem);
3728
3776
  cursor: pointer;
3729
3777
  transition: var(--transition, all .05s ease-in-out)
3730
3778
  }
3731
3779
 
3732
3780
  &:hover::-webkit-slider-runnable-track {
3733
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent));
3781
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent));
3734
3782
  }
3735
3783
 
3736
3784
  &::-webkit-slider-thumb {
@@ -3740,7 +3788,7 @@
3740
3788
  width: calc(var(--spacing-field-height, 2.25rem) * 0.5);
3741
3789
  height: calc(var(--spacing-field-height, 2.25rem) * 0.5);
3742
3790
  transform: translateY(-50%);
3743
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 60%, var(--color-field-inverse, oklch(43.9% 0 0)));
3791
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 60%, var(--color-field-inverse, oklch(43.9% 0 0)));
3744
3792
  border-radius: 200px;
3745
3793
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
3746
3794
  cursor: pointer;
@@ -3748,7 +3796,7 @@
3748
3796
  }
3749
3797
 
3750
3798
  &::-webkit-slider-thumb:hover {
3751
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 30%, var(--color-field-inverse, oklch(43.9% 0 0)));
3799
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 30%, var(--color-field-inverse, oklch(43.9% 0 0)));
3752
3800
  }
3753
3801
  }
3754
3802
 
@@ -3774,6 +3822,8 @@
3774
3822
 
3775
3823
  /* Manifest Resize Handles */
3776
3824
 
3825
+ @layer base, components, utilities;
3826
+
3777
3827
  @layer utilities {
3778
3828
 
3779
3829
  :where([x-resize]) {
@@ -3806,7 +3856,7 @@
3806
3856
 
3807
3857
  &:hover::before,
3808
3858
  &:active::before {
3809
- background-color: var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
3859
+ background-color: var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
3810
3860
  }
3811
3861
  }
3812
3862
 
@@ -4007,6 +4057,8 @@
4007
4057
  }
4008
4058
 
4009
4059
  /* Manifest Sidebars */
4060
+ @layer base, components, utilities;
4061
+
4010
4062
  [popover]:not(.unstyle):not(:popover-open) {
4011
4063
  display: none;
4012
4064
  }
@@ -4087,6 +4139,8 @@
4087
4139
 
4088
4140
  /* Manifest Slides */
4089
4141
 
4142
+ @layer base, components, utilities;
4143
+
4090
4144
  @layer components {
4091
4145
 
4092
4146
  [x-carousel] {
@@ -4168,6 +4222,8 @@
4168
4222
 
4169
4223
  /* Manifest Switches */
4170
4224
 
4225
+ @layer base, components, utilities;
4226
+
4171
4227
  @layer components {
4172
4228
 
4173
4229
  :where(input[role=switch]):not(.unstyle) {
@@ -4189,14 +4245,14 @@
4189
4245
  width: calc(var(--spacing-field-height, 2.25rem) * 0.65 - 0.125rem * 2);
4190
4246
  height: calc(var(--spacing-field-height, 2.25rem) * 0.65 - 0.125rem * 2);
4191
4247
  border-radius: 50%;
4192
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 60%, var(--color-field-inverse, oklch(43.9% 0 0)));
4248
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 60%, var(--color-field-inverse, oklch(43.9% 0 0)));
4193
4249
  box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
4194
4250
  transition: var(--transition, all .05s ease-in-out)
4195
4251
  }
4196
4252
 
4197
4253
  /* Checked */
4198
4254
  &:checked {
4199
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
4255
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
4200
4256
 
4201
4257
  /* Marker */
4202
4258
  &::before {
@@ -4205,7 +4261,7 @@
4205
4261
  }
4206
4262
 
4207
4263
  &:hover {
4208
- background-color: var(--color-field-surface-hover, color-mix(oklch(20.5% 0 0) 15%, transparent))
4264
+ background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
4209
4265
  }
4210
4266
  }
4211
4267
  }
@@ -4213,6 +4269,8 @@
4213
4269
 
4214
4270
  /* Manifest Tables */
4215
4271
 
4272
+ @layer base, components, utilities;
4273
+
4216
4274
  @layer components {
4217
4275
 
4218
4276
  :where(.grid-table):not(.unstyle) {
@@ -4236,7 +4294,7 @@
4236
4294
  /* Header row */
4237
4295
  :where(thead, .grid-header > *) {
4238
4296
  background-color: var(--color-surface-1, oklch(97% 0 0));
4239
- border-bottom: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent))
4297
+ border-bottom: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
4240
4298
  }
4241
4299
 
4242
4300
  /* Header cell */
@@ -4246,7 +4304,7 @@
4246
4304
 
4247
4305
  /* Row */
4248
4306
  :where(tr, .grid-row > *) {
4249
- border-bottom: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent))
4307
+ border-bottom: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
4250
4308
  }
4251
4309
 
4252
4310
  /* Cell */
@@ -4297,6 +4355,8 @@
4297
4355
 
4298
4356
  /* ManifestToasts */
4299
4357
 
4358
+ @layer base, components, utilities;
4359
+
4300
4360
  @layer utilities {
4301
4361
 
4302
4362
  :where(.toast-container) {
@@ -4319,7 +4379,7 @@
4319
4379
  pointer-events: auto;
4320
4380
  max-width: 90vw;
4321
4381
  background-color: var(--color-popover-surface, oklch(98.5% 0 0));
4322
- border: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
4382
+ border: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
4323
4383
  border-radius: calc(var(--radius, 0.5rem) * 2);
4324
4384
  box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
4325
4385
  overflow: hidden;
@@ -4372,7 +4432,7 @@
4372
4432
  /* Brand, accent, positive, negative utility class overrides (see Utilities) */
4373
4433
  :where(.toast.brand, .toast.accent, .toast.positive, .toast.negative) {
4374
4434
  color: var(--color-field-inverse, oklch(43.9% 0 0));
4375
- background-color: var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent));
4435
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
4376
4436
 
4377
4437
  :where(.toast-dismiss-button) {
4378
4438
  border-inline-start: 1px solid color-mix(in oklch, var(--color-field-inverse, oklch(43.9% 0 0)) 20%, transparent);
@@ -4395,6 +4455,8 @@
4395
4455
  }
4396
4456
 
4397
4457
  /* Manifest Tooltips */
4458
+ @layer base, components, utilities;
4459
+
4398
4460
  [popover]:not(.unstyle):not(:popover-open) {
4399
4461
  display: none;
4400
4462
  }
@@ -4557,6 +4619,8 @@
4557
4619
 
4558
4620
  /* Manifest Typography */
4559
4621
 
4622
+ @layer base, components, utilities;
4623
+
4560
4624
  @layer base {
4561
4625
 
4562
4626
  /* All text elements */
@@ -4674,7 +4738,7 @@
4674
4738
  /* Asides */
4675
4739
  :where(aside):not(.unstyle) {
4676
4740
  padding: calc(var(--spacing, 0.25rem) * 4);
4677
- border: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
4741
+ border: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
4678
4742
  border-radius: var(--radius, 0.5rem)
4679
4743
  }
4680
4744
 
@@ -4691,7 +4755,7 @@
4691
4755
  font-size: 0.75rem;
4692
4756
  line-height: 1;
4693
4757
  color: var(--color-field-inverse, oklch(43.9% 0 0));
4694
- background-color: var(--color-field-surface, color-mix(oklch(97% 0 0) 10%, transparent));
4758
+ background-color: var(--color-field-surface, color-mix(in oklch, oklch(97% 0 0) 10%, transparent));
4695
4759
  border-radius: 100px;
4696
4760
 
4697
4761
  /* Solo icons */
@@ -4934,7 +4998,7 @@
4934
4998
  font-size: 0.8125rem;
4935
4999
  line-height: 1.7;
4936
5000
  background-color: var(--color-page, oklch(98.5% 0 0));
4937
- border: 1px solid var(--color-line, color-mix(oklch(20.5% 0 0) 10%, transparent));
5001
+ border: 1px solid var(--color-line, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
4938
5002
  border-radius: var(--radius, 0.5rem);
4939
5003
  overflow: hidden;
4940
5004
  tab-size: 4;
@@ -5264,6 +5328,8 @@
5264
5328
 
5265
5329
  /* Manifest Utilities */
5266
5330
 
5331
+ @layer base, components, utilities;
5332
+
5267
5333
  @layer utilities {
5268
5334
 
5269
5335
  /* Center in flex parent */
@@ -5327,12 +5393,12 @@
5327
5393
  :where(.outlined) {
5328
5394
  border-width: 1px;
5329
5395
  border-style: solid;
5330
- border-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 90%, var(--color-field-inverse, oklch(43.9% 0 0)))
5396
+ border-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 90%, var(--color-field-inverse, oklch(43.9% 0 0)))
5331
5397
  }
5332
5398
 
5333
5399
  /* Dark theme override */
5334
5400
  .dark :where(.outlined) {
5335
- border-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 80%, var(--color-field-inverse, oklch(43.9% 0 0)))
5401
+ border-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 80%, var(--color-field-inverse, oklch(43.9% 0 0)))
5336
5402
  }
5337
5403
 
5338
5404
  /* Transparent */
@@ -5490,8 +5556,8 @@
5490
5556
  padding: calc(var(--spacing, 0.25rem) * 4);
5491
5557
  border-radius: calc(var(--radius, 0.5rem) * 2);
5492
5558
  color: var(--color-content-stark, oklch(43.9% 0 0));
5493
- background-color: color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 20%, transparent);
5494
- border: 1px solid color-mix(in oklch, var(--color-field-surface, color-mix(oklch(20.5% 0 0) 10%, transparent)) 15%, transparent);
5559
+ background-color: color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 20%, transparent);
5560
+ border: 1px solid color-mix(in oklch, var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent)) 15%, transparent);
5495
5561
 
5496
5562
  /* Auto format asides with icons */
5497
5563
  &:has([x-icon]):not([x-code-group] aside, aside.frame) {
@@ -5662,7 +5728,7 @@
5662
5728
  /* Accent colors */
5663
5729
  :where(.accent) {
5664
5730
  --color-field-surface: var(--color-accent-surface, oklch(43.9% 0 0));
5665
- --color-field-surface-hover: var(--color-accent-surface-hover, color-mix(oklch(20.5% 0 0) 90%, oklch(98.5% 0 0)));
5731
+ --color-field-surface-hover: var(--color-accent-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 90%, oklch(98.5% 0 0)));
5666
5732
  --color-field-inverse: var(--color-accent-inverse, oklch(98.5% 0 0));
5667
5733
  --color-content-stark: var(--color-accent-content, oklch(43.9% 0 0));
5668
5734
  --color-content-neutral: color-mix(in oklch, var(--color-accent-content, oklch(43.9% 0 0)) 85%, transparent);