@sigx/zero-daisyui 0.6.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.
@@ -20,6 +20,7 @@ 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';
24
25
  import type { CheckboxGroup as ZCheckboxGroup } from '@sigx/zero/checkbox-group';
25
26
  import type { RadioGroup as ZRadioGroup } from '@sigx/zero/radio-group';
@@ -165,6 +166,14 @@ type FieldProps = {
165
166
  type FieldAdapted = Adapted<typeof ZField, ZeroAxisProp, FieldProps>;
166
167
  export declare const Field: FieldAdapted & AdaptedStatics<typeof ZField> & { Root: FieldAdapted };
167
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
+
168
177
  /** checkbox — no vendor route; the wired surface keeps zero's names. */
169
178
  type CheckboxProps = {
170
179
  color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
@@ -45,6 +45,7 @@ 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';
49
50
  export { CheckboxGroup } from '@sigx/zero/checkbox-group';
50
51
  export { RadioGroup } from '@sigx/zero/radio-group';
@@ -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
+ }
@@ -56,6 +56,10 @@
56
56
  transform: none;
57
57
  }
58
58
 
59
+ [data-scope="menu"][data-part="popup"]:has(> [data-scope="menu"][data-part="arrow"]) {
60
+ overflow: visible;
61
+ }
62
+
59
63
  [data-scope="menu"][data-part="item"] {
60
64
  display: flex;
61
65
  align-items: center;
@@ -200,6 +204,68 @@
200
204
  background: var(--color-base-300);
201
205
  }
202
206
 
207
+ [data-scope="menu"][data-part="arrow"] {
208
+ display: none;
209
+ position: absolute;
210
+ box-sizing: border-box;
211
+ width: 0.625rem;
212
+ height: 0.625rem;
213
+ rotate: 45deg;
214
+ pointer-events: none;
215
+ background: var(--color-base-100);
216
+ border: var(--border) solid var(--color-base-300);
217
+ }
218
+
219
+ [data-scope="menu"][data-part="popup"][data-placement^="top"] > [data-scope="menu"][data-part="arrow"] {
220
+ display: block;
221
+ top: calc(100% - 0.625rem / 2);
222
+ left: var(--arrow-x, calc(50% - 0.625rem / 2));
223
+ clip-path: polygon(100% 0, 100% 100%, 0 100%);
224
+ }
225
+
226
+ [data-scope="menu"][data-part="popup"][data-placement^="bottom"] > [data-scope="menu"][data-part="arrow"] {
227
+ display: block;
228
+ top: calc(0.625rem / -2);
229
+ left: var(--arrow-x, calc(50% - 0.625rem / 2));
230
+ clip-path: polygon(0 0, 100% 0, 0 100%);
231
+ }
232
+
233
+ [data-scope="menu"][data-part="popup"][data-placement^="left"] > [data-scope="menu"][data-part="arrow"] {
234
+ display: block;
235
+ left: calc(100% - 0.625rem / 2);
236
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
237
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
238
+ }
239
+
240
+ [data-scope="menu"][data-part="popup"][data-placement^="right"] > [data-scope="menu"][data-part="arrow"] {
241
+ display: block;
242
+ left: calc(0.625rem / -2);
243
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
244
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
245
+ }
246
+
247
+ [data-scope="menu"][data-part="popup"][data-placement^="start"] > [data-scope="menu"][data-part="arrow"] {
248
+ display: block;
249
+ inset-inline-start: calc(100% - 0.625rem / 2);
250
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
251
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
252
+ }
253
+
254
+ [data-scope="menu"][data-part="popup"][data-placement^="end"] > [data-scope="menu"][data-part="arrow"] {
255
+ display: block;
256
+ inset-inline-start: calc(0.625rem / -2);
257
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
258
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
259
+ }
260
+
261
+ [data-scope="menu"][data-part="popup"][data-placement^="start"]:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) > [data-scope="menu"][data-part="arrow"] {
262
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
263
+ }
264
+
265
+ [data-scope="menu"][data-part="popup"][data-placement^="end"]:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) > [data-scope="menu"][data-part="arrow"] {
266
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
267
+ }
268
+
203
269
  [data-scope="menu"][data-part="trigger"][data-color="primary"] {
204
270
  background: var(--color-primary);
205
271
  color: var(--color-primary-content);
@@ -56,12 +56,22 @@
56
56
  transform: none;
57
57
  }
58
58
 
59
+ [data-scope="popover"][data-part="popup"]:has(> [data-scope="popover"][data-part="arrow"]) {
60
+ overflow: visible;
61
+ }
62
+
59
63
  [data-scope="popover"][data-part="title"] {
60
64
  margin: 0 0 var(--space-md);
61
65
  font-size: var(--text-md);
62
66
  font-weight: var(--weight-bold);
63
67
  }
64
68
 
69
+ [data-scope="popover"][data-part="description"] {
70
+ margin: 0 0 var(--space-lg);
71
+ font-size: var(--text-sm);
72
+ color: color-mix(in oklab, var(--color-base-content) 75%, transparent);
73
+ }
74
+
65
75
  [data-scope="popover"][data-part="close"] {
66
76
  appearance: none;
67
77
  display: inline-flex;
@@ -94,6 +104,68 @@
94
104
  outline-offset: 2px;
95
105
  }
96
106
 
107
+ [data-scope="popover"][data-part="arrow"] {
108
+ display: none;
109
+ position: absolute;
110
+ box-sizing: border-box;
111
+ width: 0.625rem;
112
+ height: 0.625rem;
113
+ rotate: 45deg;
114
+ pointer-events: none;
115
+ background: var(--color-base-100);
116
+ border: var(--border) solid var(--color-base-300);
117
+ }
118
+
119
+ [data-scope="popover"][data-part="popup"][data-placement^="top"] > [data-scope="popover"][data-part="arrow"] {
120
+ display: block;
121
+ top: calc(100% - 0.625rem / 2);
122
+ left: var(--arrow-x, calc(50% - 0.625rem / 2));
123
+ clip-path: polygon(100% 0, 100% 100%, 0 100%);
124
+ }
125
+
126
+ [data-scope="popover"][data-part="popup"][data-placement^="bottom"] > [data-scope="popover"][data-part="arrow"] {
127
+ display: block;
128
+ top: calc(0.625rem / -2);
129
+ left: var(--arrow-x, calc(50% - 0.625rem / 2));
130
+ clip-path: polygon(0 0, 100% 0, 0 100%);
131
+ }
132
+
133
+ [data-scope="popover"][data-part="popup"][data-placement^="left"] > [data-scope="popover"][data-part="arrow"] {
134
+ display: block;
135
+ left: calc(100% - 0.625rem / 2);
136
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
137
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
138
+ }
139
+
140
+ [data-scope="popover"][data-part="popup"][data-placement^="right"] > [data-scope="popover"][data-part="arrow"] {
141
+ display: block;
142
+ left: calc(0.625rem / -2);
143
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
144
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
145
+ }
146
+
147
+ [data-scope="popover"][data-part="popup"][data-placement^="start"] > [data-scope="popover"][data-part="arrow"] {
148
+ display: block;
149
+ inset-inline-start: calc(100% - 0.625rem / 2);
150
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
151
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
152
+ }
153
+
154
+ [data-scope="popover"][data-part="popup"][data-placement^="end"] > [data-scope="popover"][data-part="arrow"] {
155
+ display: block;
156
+ inset-inline-start: calc(0.625rem / -2);
157
+ top: var(--arrow-y, calc(50% - 0.625rem / 2));
158
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
159
+ }
160
+
161
+ [data-scope="popover"][data-part="popup"][data-placement^="start"]:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) > [data-scope="popover"][data-part="arrow"] {
162
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
163
+ }
164
+
165
+ [data-scope="popover"][data-part="popup"][data-placement^="end"]:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) > [data-scope="popover"][data-part="arrow"] {
166
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
167
+ }
168
+
97
169
  [data-scope="popover"][data-part="trigger"][data-color="primary"] {
98
170
  background: var(--color-primary);
99
171
  color: var(--color-primary-content);
@@ -33,10 +33,6 @@
33
33
  transition: width var(--duration-slow) var(--ease-standard);
34
34
  }
35
35
 
36
- [data-scope="progress"][data-part="range"][data-state="complete"] {
37
- background: color-mix(in oklab, var(--color-success) 55%, var(--color-success-content));
38
- }
39
-
40
36
  [data-scope="progress"][data-part="range"][data-state="indeterminate"] {
41
37
  width: 40%;
42
38
  animation: zero-daisy-indeterminate 1.2s ease-in-out infinite;
@@ -57,6 +57,66 @@
57
57
  color: color-mix(in oklab, var(--table-accent) 60%, transparent);
58
58
  }
59
59
 
60
+ [data-scope="table"][data-part="sort-trigger"] {
61
+ appearance: none;
62
+ display: inline-flex;
63
+ align-items: center;
64
+ margin: 0;
65
+ border: 0;
66
+ font: inherit;
67
+ letter-spacing: inherit;
68
+ text-transform: inherit;
69
+ text-align: inherit;
70
+ cursor: pointer;
71
+ gap: var(--space-2xs);
72
+ padding: 0;
73
+ border-radius: var(--radius-selector);
74
+ background: transparent;
75
+ color: inherit;
76
+ transition: color var(--duration-fast) var(--ease-standard);
77
+ }
78
+
79
+ [data-scope="table"][data-part="sort-trigger"][data-state="ascending"] {
80
+ color: var(--table-accent);
81
+ }
82
+
83
+ [data-scope="table"][data-part="sort-trigger"][data-state="descending"] {
84
+ color: var(--table-accent);
85
+ }
86
+
87
+ [data-scope="table"][data-part="sort-trigger"]:hover:not([data-disabled]) {
88
+ color: var(--table-accent);
89
+ }
90
+
91
+ [data-scope="table"][data-part="sort-trigger"][data-disabled] {
92
+ cursor: not-allowed;
93
+ opacity: var(--disabled-opacity);
94
+ }
95
+
96
+ [data-scope="table"][data-part="sort-trigger"][data-focus-visible] {
97
+ outline: 2px solid var(--color-base-content);
98
+ outline-offset: 2px;
99
+ }
100
+
101
+ [data-scope="table"][data-part="sort-indicator"] {
102
+ display: inline-block;
103
+ font-size: 0.75em;
104
+ line-height: 1;
105
+ transition: transform var(--duration-fast) var(--ease-standard), opacity var(--duration-fast) var(--ease-standard);
106
+ }
107
+
108
+ [data-scope="table"][data-part="sort-indicator"][data-state="descending"] {
109
+ transform: rotate(180deg);
110
+ }
111
+
112
+ [data-scope="table"][data-part="sort-indicator"][data-state="none"] {
113
+ opacity: 0;
114
+ }
115
+
116
+ [data-scope="table"][data-part="sort-trigger"]:is(:hover, [data-focus-visible]) > [data-scope="table"][data-part="sort-indicator"][data-state="none"] {
117
+ opacity: 0.6;
118
+ }
119
+
60
120
  [data-scope="table"][data-part="cell"] {
61
121
  padding: var(--table-pad-block) var(--table-pad-inline);
62
122
  text-align: var(--table-cell-align);
@@ -246,6 +306,16 @@
246
306
  padding-block: var(--space-xs);
247
307
  }
248
308
  }
309
+
310
+ @media (prefers-reduced-motion: reduce) {
311
+ [data-scope="table"][data-part="sort-trigger"] {
312
+ transition: none;
313
+ }
314
+
315
+ [data-scope="table"][data-part="sort-indicator"] {
316
+ transition: none;
317
+ }
318
+ }
249
319
  }
250
320
 
251
321
  @layer zero.structure {
@@ -57,6 +57,71 @@
57
57
  transform: none;
58
58
  }
59
59
 
60
+ [data-scope="tooltip"][data-part="popup"]:has(> [data-scope="tooltip"][data-part="arrow"]) {
61
+ overflow: visible;
62
+ }
63
+
64
+ [data-scope="tooltip"][data-part="arrow"] {
65
+ display: none;
66
+ position: absolute;
67
+ box-sizing: border-box;
68
+ width: 0.5rem;
69
+ height: 0.5rem;
70
+ rotate: 45deg;
71
+ pointer-events: none;
72
+ background: var(--color-neutral);
73
+ }
74
+
75
+ [data-scope="tooltip"][data-part="popup"][data-placement^="top"] > [data-scope="tooltip"][data-part="arrow"] {
76
+ display: block;
77
+ top: calc(100% - 0.5rem / 2);
78
+ left: var(--arrow-x, calc(50% - 0.5rem / 2));
79
+ clip-path: polygon(100% 0, 100% 100%, 0 100%);
80
+ }
81
+
82
+ [data-scope="tooltip"][data-part="popup"][data-placement^="bottom"] > [data-scope="tooltip"][data-part="arrow"] {
83
+ display: block;
84
+ top: calc(0.5rem / -2);
85
+ left: var(--arrow-x, calc(50% - 0.5rem / 2));
86
+ clip-path: polygon(0 0, 100% 0, 0 100%);
87
+ }
88
+
89
+ [data-scope="tooltip"][data-part="popup"][data-placement^="left"] > [data-scope="tooltip"][data-part="arrow"] {
90
+ display: block;
91
+ left: calc(100% - 0.5rem / 2);
92
+ top: var(--arrow-y, calc(50% - 0.5rem / 2));
93
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
94
+ }
95
+
96
+ [data-scope="tooltip"][data-part="popup"][data-placement^="right"] > [data-scope="tooltip"][data-part="arrow"] {
97
+ display: block;
98
+ left: calc(0.5rem / -2);
99
+ top: var(--arrow-y, calc(50% - 0.5rem / 2));
100
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
101
+ }
102
+
103
+ [data-scope="tooltip"][data-part="popup"][data-placement^="start"] > [data-scope="tooltip"][data-part="arrow"] {
104
+ display: block;
105
+ inset-inline-start: calc(100% - 0.5rem / 2);
106
+ top: var(--arrow-y, calc(50% - 0.5rem / 2));
107
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
108
+ }
109
+
110
+ [data-scope="tooltip"][data-part="popup"][data-placement^="end"] > [data-scope="tooltip"][data-part="arrow"] {
111
+ display: block;
112
+ inset-inline-start: calc(0.5rem / -2);
113
+ top: var(--arrow-y, calc(50% - 0.5rem / 2));
114
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
115
+ }
116
+
117
+ [data-scope="tooltip"][data-part="popup"][data-placement^="start"]:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) > [data-scope="tooltip"][data-part="arrow"] {
118
+ clip-path: polygon(0 0, 100% 100%, 0 100%);
119
+ }
120
+
121
+ [data-scope="tooltip"][data-part="popup"][data-placement^="end"]:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) > [data-scope="tooltip"][data-part="arrow"] {
122
+ clip-path: polygon(0 0, 100% 0, 100% 100%);
123
+ }
124
+
60
125
  [data-scope="tooltip"][data-part="trigger"][data-color="primary"] {
61
126
  background: var(--color-primary);
62
127
  color: var(--color-primary-content);