@sigx/zero-daisyui 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +61 -1
  2. package/dist/audit.json +6963 -3228
  3. package/dist/components.d.ts +14 -2
  4. package/dist/components.js +1 -0
  5. package/dist/css/components/accordion.css +26 -2
  6. package/dist/css/components/alert.css +2 -0
  7. package/dist/css/components/avatar.css +2 -0
  8. package/dist/css/components/badge.css +2 -0
  9. package/dist/css/components/box.css +2 -0
  10. package/dist/css/components/breadcrumbs.css +2 -0
  11. package/dist/css/components/button.css +2 -0
  12. package/dist/css/components/card.css +2 -0
  13. package/dist/css/components/carousel.css +2 -0
  14. package/dist/css/components/center.css +2 -0
  15. package/dist/css/components/chat.css +2 -0
  16. package/dist/css/components/checkbox-group.css +98 -0
  17. package/dist/css/components/checkbox.css +10 -0
  18. package/dist/css/components/collapsible.css +16 -2
  19. package/dist/css/components/combobox.css +43 -1
  20. package/dist/css/components/container.css +2 -0
  21. package/dist/css/components/countdown.css +2 -0
  22. package/dist/css/components/dialog.css +2 -0
  23. package/dist/css/components/diff.css +7 -0
  24. package/dist/css/components/divider.css +2 -0
  25. package/dist/css/components/drawer.css +2 -0
  26. package/dist/css/components/empty-state.css +2 -0
  27. package/dist/css/components/field.css +2 -0
  28. package/dist/css/components/file-upload.css +34 -0
  29. package/dist/css/components/grid.css +2 -0
  30. package/dist/css/components/indicator.css +2 -0
  31. package/dist/css/components/input.css +137 -0
  32. package/dist/css/components/join.css +2 -0
  33. package/dist/css/components/kbd.css +2 -0
  34. package/dist/css/components/menu.css +2 -0
  35. package/dist/css/components/nav-list.css +2 -0
  36. package/dist/css/components/navbar.css +2 -0
  37. package/dist/css/components/number-input.css +2 -0
  38. package/dist/css/components/pagination.css +6 -0
  39. package/dist/css/components/popover.css +2 -0
  40. package/dist/css/components/progress.css +2 -0
  41. package/dist/css/components/radial-progress.css +2 -0
  42. package/dist/css/components/radio-group.css +10 -4
  43. package/dist/css/components/rating-group.css +2 -0
  44. package/dist/css/components/select.css +61 -1
  45. package/dist/css/components/skeleton.css +2 -0
  46. package/dist/css/components/slider.css +154 -25
  47. package/dist/css/components/spacer.css +2 -0
  48. package/dist/css/components/spinner.css +2 -0
  49. package/dist/css/components/stack.css +2 -0
  50. package/dist/css/components/stats.css +68 -16
  51. package/dist/css/components/status.css +2 -0
  52. package/dist/css/components/steps.css +2 -0
  53. package/dist/css/components/swap.css +2 -0
  54. package/dist/css/components/switch.css +23 -0
  55. package/dist/css/components/table.css +7 -0
  56. package/dist/css/components/tabs.css +15 -0
  57. package/dist/css/components/textarea.css +2 -0
  58. package/dist/css/components/timeline.css +3 -0
  59. package/dist/css/components/toast.css +2 -0
  60. package/dist/css/components/toggle-group.css +2 -0
  61. package/dist/css/components/toggle.css +2 -0
  62. package/dist/css/components/tooltip.css +2 -0
  63. package/dist/css/components/tree-view.css +6 -0
  64. package/dist/css/index.css +702 -64
  65. package/dist/css/tokens.css +13 -13
  66. package/dist/lynx/components/accordion.css +5 -0
  67. package/dist/lynx/components/alert.css +20 -0
  68. package/dist/lynx/components/button.css +5 -0
  69. package/dist/lynx/components/checkbox-group.css +209 -0
  70. package/dist/lynx/components/checkbox.css +8 -0
  71. package/dist/lynx/components/combobox.css +53 -0
  72. package/dist/lynx/components/diff.css +5 -0
  73. package/dist/lynx/components/drawer.css +4 -0
  74. package/dist/lynx/components/file-upload.css +47 -0
  75. package/dist/lynx/components/input.css +178 -0
  76. package/dist/lynx/components/number-input.css +8 -0
  77. package/dist/lynx/components/pagination.css +16 -0
  78. package/dist/lynx/components/progress.css +4 -4
  79. package/dist/lynx/components/radio-group.css +8 -0
  80. package/dist/lynx/components/rating-group.css +3 -3
  81. package/dist/lynx/components/select.css +65 -0
  82. package/dist/lynx/components/slider.css +106 -25
  83. package/dist/lynx/components/stats.css +146 -16
  84. package/dist/lynx/components/steps.css +4 -0
  85. package/dist/lynx/components/switch.css +4 -0
  86. package/dist/lynx/components/table.css +5 -0
  87. package/dist/lynx/components/tabs.css +13 -0
  88. package/dist/lynx/components/timeline.css +26 -0
  89. package/dist/lynx/components/toggle.css +5 -0
  90. package/dist/lynx/components/tree-view.css +4 -0
  91. package/dist/lynx/index.css +998 -94
  92. package/dist/lynx/manifest.json +40 -5
  93. package/dist/lynx/tokens.css +4 -4
  94. package/dist/manifest.json +38 -3
  95. package/dist/recipes.d.ts +7 -0
  96. package/dist/recipes.d.ts.map +1 -1
  97. package/dist/recipes.js +658 -60
  98. package/dist/recipes.js.map +1 -1
  99. package/dist/register.d.ts +9 -0
  100. package/dist/report.json +627 -211
  101. package/dist/tokens.d.ts.map +1 -1
  102. package/dist/tokens.js +18 -4
  103. package/dist/tokens.js.map +1 -1
  104. package/package.json +5 -5
  105. package/src/recipes.ts +667 -61
  106. package/src/tokens.ts +18 -4
@@ -21,6 +21,7 @@ import type { Tooltip as ZTooltip } from '@sigx/zero/tooltip';
21
21
  import type { Menu as ZMenu } from '@sigx/zero/menu';
22
22
  import type { Field as ZField } from '@sigx/zero/field';
23
23
  import type { Checkbox as ZCheckbox } from '@sigx/zero/checkbox';
24
+ import type { CheckboxGroup as ZCheckboxGroup } from '@sigx/zero/checkbox-group';
24
25
  import type { RadioGroup as ZRadioGroup } from '@sigx/zero/radio-group';
25
26
  import type { Progress as ZProgress } from '@sigx/zero/progress';
26
27
  import type { Slider as ZSlider } from '@sigx/zero/slider';
@@ -172,6 +173,14 @@ type CheckboxProps = {
172
173
  type CheckboxAdapted = Adapted<typeof ZCheckbox, ZeroAxisProp, CheckboxProps>;
173
174
  export declare const Checkbox: CheckboxAdapted & AdaptedStatics<typeof ZCheckbox> & { Root: CheckboxAdapted };
174
175
 
176
+ /** checkbox-group — no vendor route; the wired surface keeps zero's names. */
177
+ type CheckboxGroupProps = {
178
+ color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
179
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
180
+ };
181
+ type CheckboxGroupAdapted = Adapted<typeof ZCheckboxGroup, ZeroAxisProp, CheckboxGroupProps>;
182
+ export declare const CheckboxGroup: CheckboxGroupAdapted & AdaptedStatics<typeof ZCheckboxGroup> & { Root: CheckboxGroupAdapted };
183
+
175
184
  /** radio-group — no vendor route; the wired surface keeps zero's names. */
176
185
  type RadioGroupProps = {
177
186
  color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
@@ -364,7 +373,7 @@ type SpinnerProps = {
364
373
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
365
374
  };
366
375
  type SpinnerAdapted = Adapted<typeof ZSpinner, ZeroAxisProp, SpinnerProps>;
367
- export declare const Spinner: SpinnerAdapted & { Root: SpinnerAdapted };
376
+ export declare const Spinner: SpinnerAdapted & AdaptedStatics<typeof ZSpinner> & { Root: SpinnerAdapted };
368
377
 
369
378
  /** kbd — no vendor route; the wired surface keeps zero's names. */
370
379
  type KbdProps = {
@@ -396,7 +405,10 @@ type StatsProps = {
396
405
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
397
406
  };
398
407
  type StatsAdapted = Adapted<typeof ZStats, ZeroAxisProp, StatsProps>;
399
- export declare const Stats: StatsAdapted & AdaptedStatics<typeof ZStats> & { Root: StatsAdapted };
408
+ type StatsItemAdapted = Adapted<typeof ZStats.Item, 'color', {
409
+ color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
410
+ }>;
411
+ export declare const Stats: StatsAdapted & Omit<AdaptedStatics<typeof ZStats>, 'Item'> & { Root: StatsAdapted; Item: StatsItemAdapted };
400
412
 
401
413
  /** timeline — no vendor route; the wired surface keeps zero's names. */
402
414
  type TimelineProps = {
@@ -46,6 +46,7 @@ export { Tooltip } from '@sigx/zero/tooltip';
46
46
  export { Menu } from '@sigx/zero/menu';
47
47
  export { Field } from '@sigx/zero/field';
48
48
  export { Checkbox } from '@sigx/zero/checkbox';
49
+ export { CheckboxGroup } from '@sigx/zero/checkbox-group';
49
50
  export { RadioGroup } from '@sigx/zero/radio-group';
50
51
  export { Progress } from '@sigx/zero/progress';
51
52
  export { Slider } from '@sigx/zero/slider';
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="accordion"][data-part="root"] {
3
5
  --accordion-accent: var(--color-base-content);
@@ -9,6 +11,11 @@
9
11
  gap: var(--space-md);
10
12
  }
11
13
 
14
+ [data-scope="accordion"][data-part="root"][data-orientation="horizontal"] {
15
+ flex-direction: row;
16
+ align-items: start;
17
+ }
18
+
12
19
  [data-scope="accordion"][data-part="item"] {
13
20
  interpolate-size: allow-keywords;
14
21
  border: var(--border) solid var(--color-base-300);
@@ -20,11 +27,16 @@
20
27
  [data-scope="accordion"][data-part="item"]::details-content {
21
28
  block-size: 0;
22
29
  overflow: hidden;
23
- transition: block-size var(--duration-normal) var(--ease-standard), content-visibility var(--duration-normal) allow-discrete;
24
30
  }
25
31
 
26
32
  [data-scope="accordion"][data-part="item"][open]::details-content {
27
33
  block-size: auto;
34
+ transition: block-size var(--duration-normal) var(--ease-standard), content-visibility var(--duration-normal) allow-discrete;
35
+ }
36
+
37
+ [data-scope="accordion"][data-part="root"][data-orientation="horizontal"] > [data-scope="accordion"][data-part="item"] {
38
+ flex: 1 1 0;
39
+ min-inline-size: 0;
28
40
  }
29
41
 
30
42
  [data-scope="accordion"][data-part="trigger"] {
@@ -77,6 +89,11 @@
77
89
  font-size: var(--text-md);
78
90
  }
79
91
 
92
+ [data-scope="accordion"][data-part="panel"][data-state="closed"] {
93
+ box-sizing: border-box;
94
+ animation: accordion-panel-exit var(--duration-normal) var(--ease-standard);
95
+ }
96
+
80
97
  [data-scope="accordion"][data-part="root"][data-color="primary"] {
81
98
  --accordion-accent: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
82
99
  }
@@ -158,8 +175,15 @@
158
175
  }
159
176
 
160
177
  @media (prefers-reduced-motion: reduce) {
161
- [data-scope="accordion"][data-part="item"]::details-content {
178
+ [data-scope="accordion"][data-part="item"][open]::details-content {
162
179
  transition: none;
163
180
  }
181
+
182
+ [data-scope="accordion"][data-part="panel"][data-state="closed"] {
183
+ animation: none;
184
+ }
164
185
  }
165
186
  }
187
+ @keyframes accordion-panel-exit {
188
+ from { block-size: var(--accordion-panel-height); } to { block-size: 0; padding-block: 0; }
189
+ }
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="alert"][data-part="root"] {
3
5
  --alert-tint: var(--color-info-soft);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="avatar"][data-part="root"] {
3
5
  --avatar-size: calc(var(--size-selector) * 10);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="badge"][data-part="root"] {
3
5
  --badge-dot: currentColor;
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="box"][data-part="root"] {
3
5
  --box-surface: var(--color-base-100);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="breadcrumbs"][data-part="root"] {
3
5
  --bc-accent: var(--color-base-content);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="button"][data-part="root"] {
3
5
  --btn-accent: var(--color-primary);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="card"][data-part="root"] {
3
5
  --card-pad: var(--space-xl);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="carousel"][data-part="root"] {
3
5
  --carousel-accent: var(--color-base-content);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="center"][data-part="root"] {
3
5
  --l-axis: center;
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="chat"][data-part="root"] {
3
5
  --chat-fill: var(--color-base-200);
@@ -0,0 +1,98 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
3
+ @layer zero.recipes {
4
+ [data-scope="checkbox-group"][data-part="root"] {
5
+ --checkbox-group-accent: var(--color-base-content);
6
+ }
7
+
8
+ [data-scope="checkbox-group"][data-part="root"] {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: var(--space-md);
12
+ }
13
+
14
+ [data-scope="checkbox-group"][data-part="root"][data-orientation="horizontal"] {
15
+ flex-direction: row;
16
+ flex-wrap: wrap;
17
+ column-gap: var(--space-lg);
18
+ }
19
+
20
+ [data-scope="checkbox-group"][data-part="label"] {
21
+ font-size: var(--text-sm);
22
+ font-weight: var(--weight-semibold);
23
+ color: var(--checkbox-group-accent);
24
+ }
25
+
26
+ [data-scope="checkbox-group"][data-part="label"][data-disabled] {
27
+ opacity: var(--disabled-opacity);
28
+ }
29
+
30
+ [data-scope="checkbox-group"][data-part="label"][data-required]::after {
31
+ content: " *";
32
+ color: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
33
+ }
34
+
35
+ [data-scope="checkbox-group"][data-part="root"][data-color="primary"] {
36
+ --checkbox-group-accent: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
37
+ }
38
+
39
+ [data-scope="checkbox-group"][data-part="root"][data-color="secondary"] {
40
+ --checkbox-group-accent: color-mix(in oklab, var(--color-secondary) 70%, var(--color-base-content));
41
+ }
42
+
43
+ [data-scope="checkbox-group"][data-part="root"][data-color="accent"] {
44
+ --checkbox-group-accent: color-mix(in oklab, var(--color-accent) 55%, var(--color-base-content));
45
+ }
46
+
47
+ [data-scope="checkbox-group"][data-part="root"][data-color="neutral"] {
48
+ --checkbox-group-accent: color-mix(in oklab, var(--color-neutral) 40%, var(--color-base-content));
49
+ }
50
+
51
+ [data-scope="checkbox-group"][data-part="root"][data-color="info"] {
52
+ --checkbox-group-accent: color-mix(in oklab, var(--color-info) 70%, var(--color-base-content));
53
+ }
54
+
55
+ [data-scope="checkbox-group"][data-part="root"][data-color="success"] {
56
+ --checkbox-group-accent: color-mix(in oklab, var(--color-success) 55%, var(--color-base-content));
57
+ }
58
+
59
+ [data-scope="checkbox-group"][data-part="root"][data-color="warning"] {
60
+ --checkbox-group-accent: color-mix(in oklab, var(--color-warning) 45%, var(--color-base-content));
61
+ }
62
+
63
+ [data-scope="checkbox-group"][data-part="root"][data-color="error"] {
64
+ --checkbox-group-accent: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
65
+ }
66
+
67
+ [data-scope="checkbox-group"][data-part="root"][data-size="xs"] {
68
+ gap: var(--space-sm);
69
+ }
70
+
71
+ [data-scope="checkbox-group"][data-part="root"][data-size="xl"] {
72
+ gap: var(--space-lg);
73
+ }
74
+
75
+ @scope ([data-scope="checkbox-group"][data-part="root"][data-size="xs"]) to ([data-scope="checkbox-group"][data-part="root"]) {
76
+ [data-scope="checkbox-group"][data-part="label"] {
77
+ font-size: var(--text-xs);
78
+ }
79
+ }
80
+
81
+ @scope ([data-scope="checkbox-group"][data-part="root"][data-size="sm"]) to ([data-scope="checkbox-group"][data-part="root"]) {
82
+ [data-scope="checkbox-group"][data-part="label"] {
83
+ font-size: var(--text-xs);
84
+ }
85
+ }
86
+
87
+ @scope ([data-scope="checkbox-group"][data-part="root"][data-size="lg"]) to ([data-scope="checkbox-group"][data-part="root"]) {
88
+ [data-scope="checkbox-group"][data-part="label"] {
89
+ font-size: var(--text-md);
90
+ }
91
+ }
92
+
93
+ @scope ([data-scope="checkbox-group"][data-part="root"][data-size="xl"]) to ([data-scope="checkbox-group"][data-part="root"]) {
94
+ [data-scope="checkbox-group"][data-part="label"] {
95
+ font-size: var(--text-lg);
96
+ }
97
+ }
98
+ }
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="checkbox"][data-part="root"] {
3
5
  --checkbox-size: calc(var(--size-selector) * 6);
@@ -13,6 +15,10 @@
13
15
  cursor: pointer;
14
16
  }
15
17
 
18
+ [data-scope="checkbox"][data-part="root"][data-readonly] {
19
+ cursor: default;
20
+ }
21
+
16
22
  [data-scope="checkbox"][data-part="root"][data-disabled] {
17
23
  opacity: var(--disabled-opacity);
18
24
  cursor: not-allowed;
@@ -55,6 +61,10 @@
55
61
  border-color: var(--color-error);
56
62
  }
57
63
 
64
+ [data-scope="checkbox"][data-part="control"][data-readonly] {
65
+ cursor: default;
66
+ }
67
+
58
68
  [data-scope="checkbox"][data-part="indicator"] {
59
69
  display: block;
60
70
  width: 100%;
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="collapsible"][data-part="root"] {
3
5
  --collapsible-accent: var(--color-base-content);
@@ -15,11 +17,11 @@
15
17
  [data-scope="collapsible"][data-part="root"]::details-content {
16
18
  block-size: 0;
17
19
  overflow: hidden;
18
- transition: block-size var(--duration-normal) var(--ease-standard), content-visibility var(--duration-normal) allow-discrete;
19
20
  }
20
21
 
21
22
  [data-scope="collapsible"][data-part="root"][open]::details-content {
22
23
  block-size: auto;
24
+ transition: block-size var(--duration-normal) var(--ease-standard), content-visibility var(--duration-normal) allow-discrete;
23
25
  }
24
26
 
25
27
  [data-scope="collapsible"][data-part="trigger"] {
@@ -69,6 +71,11 @@
69
71
  font-size: var(--text-md);
70
72
  }
71
73
 
74
+ [data-scope="collapsible"][data-part="panel"][data-state="closed"] {
75
+ box-sizing: border-box;
76
+ animation: collapsible-panel-exit var(--duration-normal) var(--ease-standard);
77
+ }
78
+
72
79
  [data-scope="collapsible"][data-part="root"][data-color="primary"] {
73
80
  --collapsible-accent: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
74
81
  }
@@ -150,8 +157,15 @@
150
157
  }
151
158
 
152
159
  @media (prefers-reduced-motion: reduce) {
153
- [data-scope="collapsible"][data-part="root"]::details-content {
160
+ [data-scope="collapsible"][data-part="root"][open]::details-content {
154
161
  transition: none;
155
162
  }
163
+
164
+ [data-scope="collapsible"][data-part="panel"][data-state="closed"] {
165
+ animation: none;
166
+ }
156
167
  }
157
168
  }
169
+ @keyframes collapsible-panel-exit {
170
+ from { block-size: var(--collapsible-panel-height); } to { block-size: 0; padding-block: 0; }
171
+ }
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="combobox"][data-part="root"] {
3
5
  --combobox-accent: var(--color-primary);
@@ -134,6 +136,23 @@
134
136
  cursor: not-allowed;
135
137
  }
136
138
 
139
+ [data-scope="combobox"][data-part="clear-trigger"] {
140
+ appearance: none;
141
+ border: none;
142
+ background: transparent;
143
+ color: inherit;
144
+ font: inherit;
145
+ opacity: 0.6;
146
+ padding: 0 var(--space-xs);
147
+ line-height: var(--leading-none);
148
+ cursor: pointer;
149
+ transition: opacity var(--duration-fast) var(--ease-standard);
150
+ }
151
+
152
+ [data-scope="combobox"][data-part="clear-trigger"]:hover:not([data-disabled]) {
153
+ opacity: 1;
154
+ }
155
+
137
156
  [data-scope="combobox"][data-part="popup"] {
138
157
  opacity: 0;
139
158
  transform: translateY(-4px);
@@ -144,7 +163,10 @@
144
163
  border-radius: var(--radius-box);
145
164
  box-shadow: var(--shadow-lg);
146
165
  padding: var(--space-md);
147
- min-width: 13rem;
166
+ min-width: var(--anchor-width, 13rem);
167
+ box-sizing: border-box;
168
+ max-height: min(20rem, var(--available-height, 20rem));
169
+ overflow-y: auto;
148
170
  }
149
171
 
150
172
  [data-scope="combobox"][data-part="popup"][data-state="open"] {
@@ -159,6 +181,13 @@
159
181
  opacity: 0.6;
160
182
  }
161
183
 
184
+ [data-scope="combobox"][data-part="group-heading"] {
185
+ padding: var(--space-md) var(--space-lg) var(--space-xs);
186
+ font-size: var(--text-xs);
187
+ font-weight: var(--weight-bold);
188
+ opacity: 0.6;
189
+ }
190
+
162
191
  [data-scope="combobox"][data-part="item"] {
163
192
  display: flex;
164
193
  align-items: center;
@@ -196,6 +225,19 @@
196
225
  opacity: 0.6;
197
226
  }
198
227
 
228
+ [data-scope="combobox"][data-part="loading"] {
229
+ padding: var(--space-lg);
230
+ font-size: var(--text-sm);
231
+ text-align: center;
232
+ opacity: 0.6;
233
+ }
234
+
235
+ [data-scope="combobox"][data-part="separator"] {
236
+ height: var(--border);
237
+ margin: var(--space-sm) var(--space-md);
238
+ background: var(--color-base-300);
239
+ }
240
+
199
241
  [data-scope="combobox"][data-part="root"][data-color="primary"] {
200
242
  --combobox-accent: var(--color-primary);
201
243
  }
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="container"][data-part="root"] {
3
5
  --l-measure: none;
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="countdown"][data-part="root"] {
3
5
  --countdown-ink: var(--color-base-content);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="dialog"][data-part="trigger"] {
3
5
  appearance: none;
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="diff"][data-part="root"] {
3
5
  --diff-accent: var(--color-base-content);
@@ -42,6 +44,11 @@
42
44
  outline-offset: 2px;
43
45
  }
44
46
 
47
+ [data-scope="diff"][data-part="handle"][data-disabled] {
48
+ opacity: var(--disabled-opacity);
49
+ cursor: not-allowed;
50
+ }
51
+
45
52
  [data-scope="diff"][data-part="handle"][data-pressed] {
46
53
  --diff-accent: color-mix(in oklab, var(--color-base-content) 85%, var(--color-base-100));
47
54
  }
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="divider"][data-part="root"] {
3
5
  --divider-ink: var(--color-base-300);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="drawer"][data-part="trigger"] {
3
5
  appearance: none;
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="empty-state"][data-part="root"] {
3
5
  --empty-accent: color-mix(in oklab, var(--color-base-content) 60%, transparent);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="field"][data-part="root"] {
3
5
  --field-accent: var(--color-base-content);
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="file-upload"][data-part="root"] {
3
5
  --fu-accent: var(--color-primary);
@@ -104,6 +106,11 @@
104
106
  opacity: var(--disabled-opacity);
105
107
  }
106
108
 
109
+ [data-scope="file-upload"][data-part="item"][data-invalid] {
110
+ border-color: var(--color-error);
111
+ background: color-mix(in oklab, var(--color-error) 8%, var(--color-base-100));
112
+ }
113
+
107
114
  [data-scope="file-upload"][data-part="item-name"] {
108
115
  flex: 1 1 auto;
109
116
  min-width: 0;
@@ -144,6 +151,33 @@
144
151
  outline-offset: 2px;
145
152
  }
146
153
 
154
+ [data-scope="file-upload"][data-part="clear-trigger"] {
155
+ appearance: none;
156
+ border: none;
157
+ background: transparent;
158
+ color: inherit;
159
+ border-radius: 9999px;
160
+ padding: var(--space-2xs) var(--space-sm);
161
+ font-size: var(--fu-font);
162
+ font-weight: var(--weight-semibold);
163
+ line-height: var(--leading-none);
164
+ cursor: pointer;
165
+ }
166
+
167
+ [data-scope="file-upload"][data-part="clear-trigger"]:hover:not([data-disabled]) {
168
+ background: var(--color-base-200);
169
+ }
170
+
171
+ [data-scope="file-upload"][data-part="clear-trigger"][data-disabled] {
172
+ opacity: var(--disabled-opacity);
173
+ cursor: not-allowed;
174
+ }
175
+
176
+ [data-scope="file-upload"][data-part="clear-trigger"][data-focus-visible] {
177
+ outline: 2px solid var(--color-base-content);
178
+ outline-offset: 2px;
179
+ }
180
+
147
181
  [data-scope="file-upload"][data-part="root"][data-color="primary"] {
148
182
  --fu-accent: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
149
183
  }
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="grid"][data-part="root"] {
3
5
  --l-cols: none;
@@ -1,3 +1,5 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
1
3
  @layer zero.recipes {
2
4
  [data-scope="indicator"][data-part="root"] {
3
5
  position: relative;