@sigx/zero-daisyui 0.2.0-beta.3 → 0.2.0-beta.5

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/README.md +8 -0
  2. package/dist/components.d.ts +3 -2
  3. package/dist/css/components/button.css +6 -0
  4. package/dist/css/components/tabs.css +191 -19
  5. package/dist/css/index.css +197 -19
  6. package/dist/lynx/components/alert.css +1 -1
  7. package/dist/lynx/components/avatar.css +22 -7
  8. package/dist/lynx/components/badge.css +1 -1
  9. package/dist/lynx/components/button.css +6 -1
  10. package/dist/lynx/components/checkbox.css +25 -10
  11. package/dist/lynx/components/combobox.css +2 -2
  12. package/dist/lynx/components/countdown.css +1 -1
  13. package/dist/lynx/components/dialog.css +3 -3
  14. package/dist/lynx/components/divider.css +18 -19
  15. package/dist/lynx/components/drawer.css +2 -2
  16. package/dist/lynx/components/file-upload.css +18 -7
  17. package/dist/lynx/components/indicator.css +1 -1
  18. package/dist/lynx/components/input.css +2 -2
  19. package/dist/lynx/components/join.css +1 -1
  20. package/dist/lynx/components/kbd.css +1 -1
  21. package/dist/lynx/components/menu.css +1 -1
  22. package/dist/lynx/components/native-select.css +1 -1
  23. package/dist/lynx/components/number-input.css +2 -2
  24. package/dist/lynx/components/pagination.css +92 -23
  25. package/dist/lynx/components/popover.css +2 -2
  26. package/dist/lynx/components/progress.css +17 -25
  27. package/dist/lynx/components/radial-progress.css +22 -24
  28. package/dist/lynx/components/radio-group.css +26 -11
  29. package/dist/lynx/components/rating-group.css +19 -23
  30. package/dist/lynx/components/select.css +2 -2
  31. package/dist/lynx/components/slider.css +3 -0
  32. package/dist/lynx/components/spinner.css +22 -19
  33. package/dist/lynx/components/status.css +27 -20
  34. package/dist/lynx/components/steps.css +67 -18
  35. package/dist/lynx/components/switch.css +79 -37
  36. package/dist/lynx/components/table.css +51 -8
  37. package/dist/lynx/components/tabs.css +383 -21
  38. package/dist/lynx/components/textarea.css +1 -1
  39. package/dist/lynx/components/timeline.css +27 -20
  40. package/dist/lynx/components/toggle-group.css +2 -2
  41. package/dist/lynx/components/toggle.css +1 -1
  42. package/dist/lynx/components/tooltip.css +1 -1
  43. package/dist/lynx/index.css +952 -321
  44. package/dist/lynx/manifest.json +33 -7
  45. package/dist/manifest.json +31 -5
  46. package/dist/recipes.d.ts +28 -0
  47. package/dist/recipes.d.ts.map +1 -1
  48. package/dist/recipes.js +522 -80
  49. package/dist/recipes.js.map +1 -1
  50. package/dist/register.d.ts +2 -3
  51. package/dist/report.json +401 -44
  52. package/dist/tokens.d.ts +17 -5
  53. package/dist/tokens.d.ts.map +1 -1
  54. package/dist/tokens.js +22 -8
  55. package/dist/tokens.js.map +1 -1
  56. package/package.json +4 -4
  57. package/src/recipes.ts +527 -81
  58. package/src/tokens.ts +24 -8
package/README.md CHANGED
@@ -70,6 +70,14 @@ modifiers as presence-only `data-mod-*`: `wide`, `block`, `square`, `circle`,
70
70
  daisy 4's `glass` is not carried: daisyUI 5 no longer documents it on any
71
71
  component, and the old library never exposed it either.
72
72
 
73
+ Tabs carry daisy 5's three flavors as their own `variant` vocabulary —
74
+ `border` (`tabs-border`, the underline that is daisy's default look and the
75
+ un-attributed render here too), `lift` (`tabs-lift`) and `box` (`tabs-box`,
76
+ the raised-pill look this package used to ship as its only one). `color` is
77
+ orthogonal: it inks the active tab — `border`'s underline follows via
78
+ `currentColor` — while `box` fills the active pill with the role and flips
79
+ its label to the `-content` pair, as daisy's own box examples do.
80
+
73
81
  The package declares an **api** (the `defineApi` layer, see
74
82
  `docs/architecture.md` §3.6), so beside `/register` it ships a generated
75
83
  `./components` module — the daisy-native, single-import, fully-typed surface:
@@ -60,12 +60,13 @@ import type { Diff as ZDiff } from '@sigx/zero/diff';
60
60
 
61
61
  type ZeroAxisProp = 'color' | 'size' | 'variant' | 'axes' | 'mods';
62
62
 
63
- /** tabs — no vendor route; the wired surface keeps zero's names. */
63
+ /** tabs — variant ← variant. Attributes stay zero-spelled. */
64
64
  type TabsProps = {
65
65
  color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';
66
66
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
67
+ 'variant'?: 'border' | 'lift' | 'box';
67
68
  };
68
- type TabsAdapted = Adapted<typeof ZTabs, ZeroAxisProp, TabsProps>;
69
+ type TabsAdapted = Adapted<typeof ZTabs, ZeroAxisProp | 'variant', TabsProps>;
69
70
  export declare const Tabs: TabsAdapted & AdaptedStatics<typeof ZTabs> & { Root: TabsAdapted };
70
71
 
71
72
  /** collapsible — no vendor route; the wired surface keeps zero's names. */
@@ -170,31 +170,37 @@
170
170
  }
171
171
 
172
172
  [data-scope="button"][data-part="root"][data-size="xs"] {
173
+ height: calc(var(--size-field) * 6);
173
174
  padding: var(--space-2xs) var(--space-xs);
174
175
  font-size: var(--text-xs);
175
176
  }
176
177
 
177
178
  [data-scope="button"][data-part="root"][data-size="sm"] {
179
+ height: calc(var(--size-field) * 8);
178
180
  padding: var(--space-xs) var(--space-sm);
179
181
  font-size: var(--text-sm);
180
182
  }
181
183
 
182
184
  [data-scope="button"][data-part="root"][data-size="md"] {
185
+ height: calc(var(--size-field) * 10);
183
186
  padding: var(--space-sm) var(--space-lg);
184
187
  font-size: var(--text-md);
185
188
  }
186
189
 
187
190
  [data-scope="button"][data-part="root"]:not([data-size]) {
191
+ height: calc(var(--size-field) * 10);
188
192
  padding: var(--space-sm) var(--space-lg);
189
193
  font-size: var(--text-md);
190
194
  }
191
195
 
192
196
  [data-scope="button"][data-part="root"][data-size="lg"] {
197
+ height: calc(var(--size-field) * 12);
193
198
  padding: var(--space-md) var(--space-xl);
194
199
  font-size: var(--text-lg);
195
200
  }
196
201
 
197
202
  [data-scope="button"][data-part="root"][data-size="xl"] {
203
+ height: calc(var(--size-field) * 14);
198
204
  padding: var(--space-lg) var(--space-2xl);
199
205
  font-size: var(--text-xl);
200
206
  }
@@ -8,22 +8,21 @@
8
8
  [data-scope="tabs"][data-part="list"] {
9
9
  display: inline-flex;
10
10
  align-self: flex-start;
11
- padding: var(--space-xs);
12
- gap: var(--space-xs);
13
- background: var(--color-base-200);
14
- border-radius: var(--radius-field);
15
11
  }
16
12
 
17
13
  [data-scope="tabs"][data-part="tab"] {
18
14
  appearance: none;
19
15
  border: none;
20
16
  background: transparent;
21
- padding: var(--space-sm) var(--space-xl);
17
+ --tab-py: var(--space-sm);
18
+ --tab-px: var(--space-xl);
19
+ --tab-radius-min: calc(0.75rem - var(--border));
20
+ padding: var(--tab-py) var(--tab-px);
22
21
  font-size: var(--text-sm);
23
22
  font-weight: var(--weight-semibold);
24
23
  color: color-mix(in oklab, var(--color-base-content) 60%, transparent);
25
- border-radius: calc(var(--radius-field) - 0.25rem);
26
24
  cursor: pointer;
25
+ position: relative;
27
26
  transition: background var(--duration-normal) var(--ease-standard), color var(--duration-normal) var(--ease-standard);
28
27
  }
29
28
 
@@ -32,9 +31,7 @@
32
31
  }
33
32
 
34
33
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
35
- background: var(--color-base-100);
36
34
  color: var(--color-base-content);
37
- box-shadow: var(--shadow-sm);
38
35
  }
39
36
 
40
37
  [data-scope="tabs"][data-part="tab"][data-disabled] {
@@ -54,81 +51,256 @@
54
51
  @scope ([data-scope="tabs"][data-part="root"][data-size="xs"]) to ([data-scope="tabs"][data-part="root"]) {
55
52
  [data-scope="tabs"][data-part="tab"] {
56
53
  font-size: var(--text-xs);
57
- padding: var(--space-2xs) var(--space-md);
54
+ --tab-py: var(--space-2xs);
55
+ --tab-px: var(--space-md);
56
+ --tab-radius-min: calc(0.5rem - var(--border));
58
57
  }
59
58
  }
60
59
 
61
60
  @scope ([data-scope="tabs"][data-part="root"][data-size="sm"]) to ([data-scope="tabs"][data-part="root"]) {
62
61
  [data-scope="tabs"][data-part="tab"] {
63
62
  font-size: var(--text-xs);
64
- padding: var(--space-xs) var(--space-lg);
63
+ --tab-py: var(--space-xs);
64
+ --tab-px: var(--space-lg);
65
+ --tab-radius-min: calc(0.5rem - var(--border));
65
66
  }
66
67
  }
67
68
 
68
69
  @scope ([data-scope="tabs"][data-part="root"][data-size="lg"]) to ([data-scope="tabs"][data-part="root"]) {
69
70
  [data-scope="tabs"][data-part="tab"] {
70
71
  font-size: var(--text-md);
71
- padding: var(--space-md) var(--space-2xl);
72
+ --tab-py: var(--space-md);
73
+ --tab-px: var(--space-2xl);
74
+ --tab-radius-min: calc(1.5rem - var(--border));
72
75
  }
73
76
  }
74
77
 
75
78
  @scope ([data-scope="tabs"][data-part="root"][data-size="xl"]) to ([data-scope="tabs"][data-part="root"]) {
76
79
  [data-scope="tabs"][data-part="tab"] {
77
80
  font-size: var(--text-lg);
78
- padding: var(--space-lg) var(--space-2xl);
81
+ --tab-py: var(--space-lg);
82
+ --tab-px: var(--space-2xl);
83
+ --tab-radius-min: calc(2rem - var(--border));
79
84
  }
80
85
  }
81
86
 
82
87
  @scope ([data-scope="tabs"][data-part="root"][data-color="primary"]) to ([data-scope="tabs"][data-part="root"]) {
88
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
89
+ color: color-mix(in oklab, var(--color-primary) 95%, var(--color-base-content));
90
+ }
91
+ }
92
+
93
+ @scope ([data-scope="tabs"][data-part="root"][data-color="secondary"]) to ([data-scope="tabs"][data-part="root"]) {
94
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
95
+ color: color-mix(in oklab, var(--color-secondary) 70%, var(--color-base-content));
96
+ }
97
+ }
98
+
99
+ @scope ([data-scope="tabs"][data-part="root"][data-color="accent"]) to ([data-scope="tabs"][data-part="root"]) {
100
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
101
+ color: color-mix(in oklab, var(--color-accent) 55%, var(--color-base-content));
102
+ }
103
+ }
104
+
105
+ @scope ([data-scope="tabs"][data-part="root"][data-color="neutral"]) to ([data-scope="tabs"][data-part="root"]) {
106
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
107
+ color: color-mix(in oklab, var(--color-neutral) 40%, var(--color-base-content));
108
+ }
109
+ }
110
+
111
+ @scope ([data-scope="tabs"][data-part="root"][data-color="info"]) to ([data-scope="tabs"][data-part="root"]) {
112
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
113
+ color: color-mix(in oklab, var(--color-info) 70%, var(--color-base-content));
114
+ }
115
+ }
116
+
117
+ @scope ([data-scope="tabs"][data-part="root"][data-color="success"]) to ([data-scope="tabs"][data-part="root"]) {
118
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
119
+ color: color-mix(in oklab, var(--color-success) 55%, var(--color-base-content));
120
+ }
121
+ }
122
+
123
+ @scope ([data-scope="tabs"][data-part="root"][data-color="warning"]) to ([data-scope="tabs"][data-part="root"]) {
124
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
125
+ color: color-mix(in oklab, var(--color-warning) 45%, var(--color-base-content));
126
+ }
127
+ }
128
+
129
+ @scope ([data-scope="tabs"][data-part="root"][data-color="error"]) to ([data-scope="tabs"][data-part="root"]) {
130
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
131
+ color: color-mix(in oklab, var(--color-error) 85%, var(--color-base-content));
132
+ }
133
+ }
134
+
135
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="border"]) to ([data-scope="tabs"][data-part="root"]) {
136
+ [data-scope="tabs"][data-part="tab"] {
137
+ border-radius: var(--radius-field);
138
+ }
139
+
140
+ [data-scope="tabs"][data-part="tab"]::before {
141
+ content: "";
142
+ position: absolute;
143
+ bottom: 0;
144
+ inset-inline-start: 10%;
145
+ width: 80%;
146
+ box-sizing: border-box;
147
+ height: 3px;
148
+ border-radius: var(--radius-field);
149
+ background-color: transparent;
150
+ transition: background-color var(--duration-normal) var(--ease-standard);
151
+ }
152
+
153
+ [data-scope="tabs"][data-part="tab"][data-state="active"]:not([data-disabled])::before {
154
+ background-color: currentColor;
155
+ border-top: 3px solid;
156
+ }
157
+ }
158
+
159
+ @scope ([data-scope="tabs"][data-part="root"]:not([data-variant])) to ([data-scope="tabs"][data-part="root"]) {
160
+ [data-scope="tabs"][data-part="tab"] {
161
+ border-radius: var(--radius-field);
162
+ }
163
+
164
+ [data-scope="tabs"][data-part="tab"]::before {
165
+ content: "";
166
+ position: absolute;
167
+ bottom: 0;
168
+ inset-inline-start: 10%;
169
+ width: 80%;
170
+ box-sizing: border-box;
171
+ height: 3px;
172
+ border-radius: var(--radius-field);
173
+ background-color: transparent;
174
+ transition: background-color var(--duration-normal) var(--ease-standard);
175
+ }
176
+
177
+ [data-scope="tabs"][data-part="tab"][data-state="active"]:not([data-disabled])::before {
178
+ background-color: currentColor;
179
+ border-top: 3px solid;
180
+ }
181
+ }
182
+
183
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="lift"]) to ([data-scope="tabs"][data-part="root"]) {
184
+ [data-scope="tabs"][data-part="tab"] {
185
+ --tab-radius-limit: min(var(--radius-field), var(--tab-radius-min));
186
+ border-start-start-radius: var(--tab-radius-limit);
187
+ border-start-end-radius: var(--tab-radius-limit);
188
+ border-width: 0 0 var(--border) 0;
189
+ border-style: solid;
190
+ border-color: var(--color-base-300);
191
+ padding: calc(var(--tab-py) + var(--border)) var(--tab-px) var(--tab-py);
192
+ }
193
+
194
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
195
+ background: var(--color-base-100);
196
+ border-width: var(--border) var(--border) 0 var(--border);
197
+ padding: var(--tab-py) calc(var(--tab-px) - var(--border)) calc(var(--tab-py) + var(--border));
198
+ }
199
+
200
+ [data-scope="tabs"][data-part="tab"][data-state="active"]::before {
201
+ --tab-grad: #0000 calc(69% - var(--border)), var(--color-base-300) calc(69% - var(--border) + 0.25px), var(--color-base-300) 69%, var(--color-base-100) calc(69% + 0.25px);
202
+ content: "";
203
+ position: absolute;
204
+ z-index: 1;
205
+ bottom: 0;
206
+ inset-inline-start: calc(var(--tab-radius-limit) * -1);
207
+ width: calc(100% + var(--tab-radius-limit) * 2);
208
+ height: var(--tab-radius-limit);
209
+ background-image: radial-gradient(circle at top left, var(--tab-grad)), radial-gradient(circle at top right, var(--tab-grad));
210
+ background-position: top left, top right;
211
+ background-size: var(--tab-radius-limit) var(--tab-radius-limit);
212
+ background-repeat: no-repeat;
213
+ }
214
+
215
+ [data-scope="tabs"][data-part="tab"][data-state="active"]:first-child::before {
216
+ background-image: none, radial-gradient(circle at top right, var(--tab-grad));
217
+ }
218
+
219
+ [data-scope="tabs"][data-part="tab"][data-state="active"]:last-child::before {
220
+ background-image: radial-gradient(circle at top left, var(--tab-grad)), none;
221
+ }
222
+
223
+ [data-scope="tabs"][data-part="tab"][data-state="active"]:only-child::before {
224
+ background-image: none;
225
+ }
226
+
227
+ [data-scope="tabs"][data-part="tab"][data-state="active"]:first-child:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *)::before {
228
+ transform: rotateY(180deg);
229
+ }
230
+
231
+ [data-scope="tabs"][data-part="tab"][data-state="active"]:last-child:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *)::before {
232
+ transform: rotateY(180deg);
233
+ }
234
+ }
235
+
236
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"]) to ([data-scope="tabs"][data-part="root"]) {
237
+ [data-scope="tabs"][data-part="list"] {
238
+ padding: var(--space-xs);
239
+ gap: var(--space-xs);
240
+ background: var(--color-base-200);
241
+ border-radius: var(--radius-field);
242
+ }
243
+
244
+ [data-scope="tabs"][data-part="tab"] {
245
+ border-radius: calc(var(--radius-field) - 0.25rem);
246
+ }
247
+
248
+ [data-scope="tabs"][data-part="tab"][data-state="active"] {
249
+ background: var(--color-base-100);
250
+ box-shadow: var(--shadow-sm);
251
+ }
252
+ }
253
+
254
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="primary"]) to ([data-scope="tabs"][data-part="root"]) {
83
255
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
84
256
  background: var(--color-primary);
85
257
  color: var(--color-primary-content);
86
258
  }
87
259
  }
88
260
 
89
- @scope ([data-scope="tabs"][data-part="root"][data-color="secondary"]) to ([data-scope="tabs"][data-part="root"]) {
261
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="secondary"]) to ([data-scope="tabs"][data-part="root"]) {
90
262
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
91
263
  background: var(--color-secondary);
92
264
  color: var(--color-secondary-content);
93
265
  }
94
266
  }
95
267
 
96
- @scope ([data-scope="tabs"][data-part="root"][data-color="accent"]) to ([data-scope="tabs"][data-part="root"]) {
268
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="accent"]) to ([data-scope="tabs"][data-part="root"]) {
97
269
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
98
270
  background: var(--color-accent);
99
271
  color: var(--color-accent-content);
100
272
  }
101
273
  }
102
274
 
103
- @scope ([data-scope="tabs"][data-part="root"][data-color="neutral"]) to ([data-scope="tabs"][data-part="root"]) {
275
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="neutral"]) to ([data-scope="tabs"][data-part="root"]) {
104
276
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
105
277
  background: var(--color-neutral);
106
278
  color: var(--color-neutral-content);
107
279
  }
108
280
  }
109
281
 
110
- @scope ([data-scope="tabs"][data-part="root"][data-color="info"]) to ([data-scope="tabs"][data-part="root"]) {
282
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="info"]) to ([data-scope="tabs"][data-part="root"]) {
111
283
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
112
284
  background: var(--color-info);
113
285
  color: var(--color-info-content);
114
286
  }
115
287
  }
116
288
 
117
- @scope ([data-scope="tabs"][data-part="root"][data-color="success"]) to ([data-scope="tabs"][data-part="root"]) {
289
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="success"]) to ([data-scope="tabs"][data-part="root"]) {
118
290
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
119
291
  background: var(--color-success);
120
292
  color: var(--color-success-content);
121
293
  }
122
294
  }
123
295
 
124
- @scope ([data-scope="tabs"][data-part="root"][data-color="warning"]) to ([data-scope="tabs"][data-part="root"]) {
296
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="warning"]) to ([data-scope="tabs"][data-part="root"]) {
125
297
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
126
298
  background: var(--color-warning);
127
299
  color: var(--color-warning-content);
128
300
  }
129
301
  }
130
302
 
131
- @scope ([data-scope="tabs"][data-part="root"][data-color="error"]) to ([data-scope="tabs"][data-part="root"]) {
303
+ @scope ([data-scope="tabs"][data-part="root"][data-variant="box"][data-color="error"]) to ([data-scope="tabs"][data-part="root"]) {
132
304
  [data-scope="tabs"][data-part="tab"][data-state="active"] {
133
305
  background: var(--color-error);
134
306
  color: var(--color-error-content);