@sigx/zero-daisyui 0.5.0 → 0.7.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 (111) hide show
  1. package/README.md +62 -3
  2. package/dist/audit.json +8018 -2748
  3. package/dist/components.d.ts +23 -2
  4. package/dist/components.js +2 -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 +36 -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/fieldset.css +91 -0
  29. package/dist/css/components/file-upload.css +34 -0
  30. package/dist/css/components/grid.css +2 -0
  31. package/dist/css/components/indicator.css +2 -0
  32. package/dist/css/components/input.css +137 -0
  33. package/dist/css/components/join.css +2 -0
  34. package/dist/css/components/kbd.css +2 -0
  35. package/dist/css/components/menu.css +68 -0
  36. package/dist/css/components/nav-list.css +2 -0
  37. package/dist/css/components/navbar.css +2 -0
  38. package/dist/css/components/number-input.css +2 -0
  39. package/dist/css/components/pagination.css +6 -0
  40. package/dist/css/components/popover.css +74 -0
  41. package/dist/css/components/progress.css +2 -4
  42. package/dist/css/components/radial-progress.css +2 -0
  43. package/dist/css/components/radio-group.css +10 -4
  44. package/dist/css/components/rating-group.css +2 -0
  45. package/dist/css/components/select.css +54 -1
  46. package/dist/css/components/skeleton.css +2 -0
  47. package/dist/css/components/slider.css +154 -25
  48. package/dist/css/components/spacer.css +2 -0
  49. package/dist/css/components/spinner.css +2 -0
  50. package/dist/css/components/stack.css +2 -0
  51. package/dist/css/components/stats.css +68 -16
  52. package/dist/css/components/status.css +2 -0
  53. package/dist/css/components/steps.css +2 -0
  54. package/dist/css/components/swap.css +2 -0
  55. package/dist/css/components/switch.css +23 -0
  56. package/dist/css/components/table.css +77 -0
  57. package/dist/css/components/tabs.css +15 -0
  58. package/dist/css/components/textarea.css +2 -0
  59. package/dist/css/components/timeline.css +3 -0
  60. package/dist/css/components/toast.css +2 -0
  61. package/dist/css/components/toggle-group.css +2 -0
  62. package/dist/css/components/toggle.css +2 -0
  63. package/dist/css/components/tooltip.css +67 -0
  64. package/dist/css/components/tree-view.css +6 -0
  65. package/dist/css/index.css +1053 -70
  66. package/dist/css/tokens.css +13 -13
  67. package/dist/lynx/components/accordion.css +9 -0
  68. package/dist/lynx/components/alert.css +20 -0
  69. package/dist/lynx/components/button.css +58 -1
  70. package/dist/lynx/components/checkbox-group.css +209 -0
  71. package/dist/lynx/components/checkbox.css +8 -0
  72. package/dist/lynx/components/combobox.css +46 -0
  73. package/dist/lynx/components/dialog.css +19 -0
  74. package/dist/lynx/components/diff.css +5 -0
  75. package/dist/lynx/components/drawer.css +4 -0
  76. package/dist/lynx/components/fieldset.css +219 -0
  77. package/dist/lynx/components/file-upload.css +47 -0
  78. package/dist/lynx/components/input.css +178 -0
  79. package/dist/lynx/components/number-input.css +8 -0
  80. package/dist/lynx/components/pagination.css +16 -0
  81. package/dist/lynx/components/popover.css +37 -0
  82. package/dist/lynx/components/progress.css +4 -24
  83. package/dist/lynx/components/radio-group.css +8 -0
  84. package/dist/lynx/components/rating-group.css +3 -3
  85. package/dist/lynx/components/select.css +70 -1
  86. package/dist/lynx/components/slider.css +391 -28
  87. package/dist/lynx/components/stats.css +146 -16
  88. package/dist/lynx/components/steps.css +4 -0
  89. package/dist/lynx/components/switch.css +6 -0
  90. package/dist/lynx/components/table.css +57 -0
  91. package/dist/lynx/components/tabs.css +115 -93
  92. package/dist/lynx/components/timeline.css +84 -1
  93. package/dist/lynx/components/toast.css +41 -6
  94. package/dist/lynx/components/toggle.css +5 -0
  95. package/dist/lynx/components/tree-view.css +4 -0
  96. package/dist/lynx/index.css +1912 -262
  97. package/dist/lynx/manifest.json +67 -5
  98. package/dist/lynx/tokens.css +4 -4
  99. package/dist/manifest.json +65 -3
  100. package/dist/recipes.d.ts +17 -0
  101. package/dist/recipes.d.ts.map +1 -1
  102. package/dist/recipes.js +1141 -110
  103. package/dist/recipes.js.map +1 -1
  104. package/dist/register.d.ts +18 -0
  105. package/dist/report.json +902 -270
  106. package/dist/tokens.d.ts.map +1 -1
  107. package/dist/tokens.js +18 -4
  108. package/dist/tokens.js.map +1 -1
  109. package/package.json +5 -5
  110. package/src/recipes.ts +1156 -111
  111. package/src/tokens.ts +18 -4
@@ -20,7 +20,9 @@ import type { Popover as ZPopover } from '@sigx/zero/popover';
20
20
  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
+ import type { Fieldset as ZFieldset } from '@sigx/zero/fieldset';
23
24
  import type { Checkbox as ZCheckbox } from '@sigx/zero/checkbox';
25
+ import type { CheckboxGroup as ZCheckboxGroup } from '@sigx/zero/checkbox-group';
24
26
  import type { RadioGroup as ZRadioGroup } from '@sigx/zero/radio-group';
25
27
  import type { Progress as ZProgress } from '@sigx/zero/progress';
26
28
  import type { Slider as ZSlider } from '@sigx/zero/slider';
@@ -164,6 +166,14 @@ type FieldProps = {
164
166
  type FieldAdapted = Adapted<typeof ZField, ZeroAxisProp, FieldProps>;
165
167
  export declare const Field: FieldAdapted & AdaptedStatics<typeof ZField> & { Root: FieldAdapted };
166
168
 
169
+ /** fieldset — no vendor route; the wired surface keeps zero's names. */
170
+ type FieldsetProps = {
171
+ color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
172
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
173
+ };
174
+ type FieldsetAdapted = Adapted<typeof ZFieldset, ZeroAxisProp, FieldsetProps>;
175
+ export declare const Fieldset: FieldsetAdapted & AdaptedStatics<typeof ZFieldset> & { Root: FieldsetAdapted };
176
+
167
177
  /** checkbox — no vendor route; the wired surface keeps zero's names. */
168
178
  type CheckboxProps = {
169
179
  color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
@@ -172,6 +182,14 @@ type CheckboxProps = {
172
182
  type CheckboxAdapted = Adapted<typeof ZCheckbox, ZeroAxisProp, CheckboxProps>;
173
183
  export declare const Checkbox: CheckboxAdapted & AdaptedStatics<typeof ZCheckbox> & { Root: CheckboxAdapted };
174
184
 
185
+ /** checkbox-group — no vendor route; the wired surface keeps zero's names. */
186
+ type CheckboxGroupProps = {
187
+ color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
188
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
189
+ };
190
+ type CheckboxGroupAdapted = Adapted<typeof ZCheckboxGroup, ZeroAxisProp, CheckboxGroupProps>;
191
+ export declare const CheckboxGroup: CheckboxGroupAdapted & AdaptedStatics<typeof ZCheckboxGroup> & { Root: CheckboxGroupAdapted };
192
+
175
193
  /** radio-group — no vendor route; the wired surface keeps zero's names. */
176
194
  type RadioGroupProps = {
177
195
  color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
@@ -364,7 +382,7 @@ type SpinnerProps = {
364
382
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
365
383
  };
366
384
  type SpinnerAdapted = Adapted<typeof ZSpinner, ZeroAxisProp, SpinnerProps>;
367
- export declare const Spinner: SpinnerAdapted & { Root: SpinnerAdapted };
385
+ export declare const Spinner: SpinnerAdapted & AdaptedStatics<typeof ZSpinner> & { Root: SpinnerAdapted };
368
386
 
369
387
  /** kbd — no vendor route; the wired surface keeps zero's names. */
370
388
  type KbdProps = {
@@ -396,7 +414,10 @@ type StatsProps = {
396
414
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
397
415
  };
398
416
  type StatsAdapted = Adapted<typeof ZStats, ZeroAxisProp, StatsProps>;
399
- export declare const Stats: StatsAdapted & AdaptedStatics<typeof ZStats> & { Root: StatsAdapted };
417
+ type StatsItemAdapted = Adapted<typeof ZStats.Item, 'color', {
418
+ color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
419
+ }>;
420
+ export declare const Stats: StatsAdapted & Omit<AdaptedStatics<typeof ZStats>, 'Item'> & { Root: StatsAdapted; Item: StatsItemAdapted };
400
421
 
401
422
  /** timeline — no vendor route; the wired surface keeps zero's names. */
402
423
  type TimelineProps = {
@@ -45,7 +45,9 @@ export { Popover } from '@sigx/zero/popover';
45
45
  export { Tooltip } from '@sigx/zero/tooltip';
46
46
  export { Menu } from '@sigx/zero/menu';
47
47
  export { Field } from '@sigx/zero/field';
48
+ export { Fieldset } from '@sigx/zero/fieldset';
48
49
  export { Checkbox } from '@sigx/zero/checkbox';
50
+ export { CheckboxGroup } from '@sigx/zero/checkbox-group';
49
51
  export { RadioGroup } from '@sigx/zero/radio-group';
50
52
  export { Progress } from '@sigx/zero/progress';
51
53
  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"] {
@@ -203,6 +225,19 @@
203
225
  opacity: 0.6;
204
226
  }
205
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
+
206
241
  [data-scope="combobox"][data-part="root"][data-color="primary"] {
207
242
  --combobox-accent: var(--color-primary);
208
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);
@@ -0,0 +1,91 @@
1
+ @layer zero.fallback, zero.tokens, zero.recipes, zero.structure;
2
+
3
+ @layer zero.recipes {
4
+ [data-scope="fieldset"][data-part="root"] {
5
+ --fieldset-accent: var(--color-base-content);
6
+ }
7
+
8
+ [data-scope="fieldset"][data-part="root"] {
9
+ display: grid;
10
+ grid-template-columns: 1fr;
11
+ grid-auto-rows: max-content;
12
+ gap: var(--space-sm);
13
+ min-inline-size: 0;
14
+ margin: 0;
15
+ padding-block: var(--space-xs);
16
+ padding-inline: 0;
17
+ border: none;
18
+ }
19
+
20
+ [data-scope="fieldset"][data-part="legend"] {
21
+ padding-block: var(--space-sm);
22
+ padding-inline: 0;
23
+ font-size: var(--text-sm);
24
+ font-weight: var(--weight-semibold);
25
+ color: var(--fieldset-accent);
26
+ }
27
+
28
+ [data-scope="fieldset"][data-part="legend"][data-disabled] {
29
+ opacity: var(--disabled-opacity);
30
+ }
31
+
32
+ [data-scope="fieldset"][data-part="legend"][data-invalid] {
33
+ color: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
34
+ }
35
+
36
+ [data-scope="fieldset"][data-part="root"][data-color="primary"] {
37
+ --fieldset-accent: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
38
+ }
39
+
40
+ [data-scope="fieldset"][data-part="root"][data-color="secondary"] {
41
+ --fieldset-accent: color-mix(in oklab, var(--color-secondary) 70%, var(--color-base-content));
42
+ }
43
+
44
+ [data-scope="fieldset"][data-part="root"][data-color="accent"] {
45
+ --fieldset-accent: color-mix(in oklab, var(--color-accent) 55%, var(--color-base-content));
46
+ }
47
+
48
+ [data-scope="fieldset"][data-part="root"][data-color="neutral"] {
49
+ --fieldset-accent: color-mix(in oklab, var(--color-neutral) 40%, var(--color-base-content));
50
+ }
51
+
52
+ [data-scope="fieldset"][data-part="root"][data-color="info"] {
53
+ --fieldset-accent: color-mix(in oklab, var(--color-info) 70%, var(--color-base-content));
54
+ }
55
+
56
+ [data-scope="fieldset"][data-part="root"][data-color="success"] {
57
+ --fieldset-accent: color-mix(in oklab, var(--color-success) 55%, var(--color-base-content));
58
+ }
59
+
60
+ [data-scope="fieldset"][data-part="root"][data-color="warning"] {
61
+ --fieldset-accent: color-mix(in oklab, var(--color-warning) 45%, var(--color-base-content));
62
+ }
63
+
64
+ [data-scope="fieldset"][data-part="root"][data-color="error"] {
65
+ --fieldset-accent: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
66
+ }
67
+
68
+ @scope ([data-scope="fieldset"][data-part="root"][data-size="xs"]) to ([data-scope="fieldset"][data-part="root"]) {
69
+ [data-scope="fieldset"][data-part="legend"] {
70
+ font-size: var(--text-xs);
71
+ }
72
+ }
73
+
74
+ @scope ([data-scope="fieldset"][data-part="root"][data-size="sm"]) to ([data-scope="fieldset"][data-part="root"]) {
75
+ [data-scope="fieldset"][data-part="legend"] {
76
+ font-size: var(--text-xs);
77
+ }
78
+ }
79
+
80
+ @scope ([data-scope="fieldset"][data-part="root"][data-size="lg"]) to ([data-scope="fieldset"][data-part="root"]) {
81
+ [data-scope="fieldset"][data-part="legend"] {
82
+ font-size: var(--text-md);
83
+ }
84
+ }
85
+
86
+ @scope ([data-scope="fieldset"][data-part="root"][data-size="xl"]) to ([data-scope="fieldset"][data-part="root"]) {
87
+ [data-scope="fieldset"][data-part="legend"] {
88
+ font-size: var(--text-lg);
89
+ }
90
+ }
91
+ }
@@ -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;