@zag-js/tabs 0.2.1 → 0.2.3

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.
package/dist/index.d.ts CHANGED
@@ -2,6 +2,855 @@ import { RequiredBy, DirectionProperty, CommonProperties, Context, PropTypes, No
2
2
  import * as _zag_js_core from '@zag-js/core';
3
3
  import { StateMachine } from '@zag-js/core';
4
4
 
5
+ declare const anatomy: Omit<{
6
+ parts: <U extends string>(...parts: U[]) => Omit<{
7
+ parts: any;
8
+ extend: <V extends string>(...parts: V[]) => Omit<{
9
+ parts: any;
10
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
11
+ parts: any;
12
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
13
+ parts: any;
14
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
15
+ parts: any;
16
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
17
+ parts: any;
18
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
19
+ parts: any;
20
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
21
+ parts: any;
22
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
23
+ parts: any;
24
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
25
+ parts: any;
26
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
27
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
28
+ selector: string;
29
+ attrs: Record<"data-scope" | "data-part", string>;
30
+ }>;
31
+ }, "parts">;
32
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
33
+ selector: string;
34
+ attrs: Record<"data-scope" | "data-part", string>;
35
+ }>;
36
+ }, "parts">;
37
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
38
+ selector: string;
39
+ attrs: Record<"data-scope" | "data-part", string>;
40
+ }>;
41
+ }, "parts">;
42
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
43
+ selector: string;
44
+ attrs: Record<"data-scope" | "data-part", string>;
45
+ }>;
46
+ }, "parts">;
47
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
48
+ selector: string;
49
+ attrs: Record<"data-scope" | "data-part", string>;
50
+ }>;
51
+ }, "parts">;
52
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
53
+ selector: string;
54
+ attrs: Record<"data-scope" | "data-part", string>;
55
+ }>;
56
+ }, "parts">;
57
+ build: () => Record<U | V | V_1 | V_2, {
58
+ selector: string;
59
+ attrs: Record<"data-scope" | "data-part", string>;
60
+ }>;
61
+ }, "parts">;
62
+ build: () => Record<U | V | V_1, {
63
+ selector: string;
64
+ attrs: Record<"data-scope" | "data-part", string>;
65
+ }>;
66
+ }, "parts">;
67
+ build: () => Record<U | V, {
68
+ selector: string;
69
+ attrs: Record<"data-scope" | "data-part", string>;
70
+ }>;
71
+ }, "parts">;
72
+ build: () => Record<U, {
73
+ selector: string;
74
+ attrs: Record<"data-scope" | "data-part", string>;
75
+ }>;
76
+ }, "parts">;
77
+ extend: <V_10 extends string>(...parts: V_10[]) => Omit<{
78
+ parts: <U extends string>(...parts: U[]) => Omit<{
79
+ parts: any;
80
+ extend: <V extends string>(...parts: V[]) => Omit<{
81
+ parts: any;
82
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
83
+ parts: any;
84
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
85
+ parts: any;
86
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
87
+ parts: any;
88
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
89
+ parts: any;
90
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
91
+ parts: any;
92
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
93
+ parts: any;
94
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
95
+ parts: any;
96
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
97
+ parts: any;
98
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
99
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
100
+ selector: string;
101
+ attrs: Record<"data-scope" | "data-part", string>;
102
+ }>;
103
+ }, "parts">;
104
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
105
+ selector: string;
106
+ attrs: Record<"data-scope" | "data-part", string>;
107
+ }>;
108
+ }, "parts">;
109
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
110
+ selector: string;
111
+ attrs: Record<"data-scope" | "data-part", string>;
112
+ }>;
113
+ }, "parts">;
114
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
115
+ selector: string;
116
+ attrs: Record<"data-scope" | "data-part", string>;
117
+ }>;
118
+ }, "parts">;
119
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
120
+ selector: string;
121
+ attrs: Record<"data-scope" | "data-part", string>;
122
+ }>;
123
+ }, "parts">;
124
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
125
+ selector: string;
126
+ attrs: Record<"data-scope" | "data-part", string>;
127
+ }>;
128
+ }, "parts">;
129
+ build: () => Record<U | V | V_1 | V_2, {
130
+ selector: string;
131
+ attrs: Record<"data-scope" | "data-part", string>;
132
+ }>;
133
+ }, "parts">;
134
+ build: () => Record<U | V | V_1, {
135
+ selector: string;
136
+ attrs: Record<"data-scope" | "data-part", string>;
137
+ }>;
138
+ }, "parts">;
139
+ build: () => Record<U | V, {
140
+ selector: string;
141
+ attrs: Record<"data-scope" | "data-part", string>;
142
+ }>;
143
+ }, "parts">;
144
+ build: () => Record<U, {
145
+ selector: string;
146
+ attrs: Record<"data-scope" | "data-part", string>;
147
+ }>;
148
+ }, "parts">;
149
+ extend: <V_11 extends string>(...parts: V_11[]) => Omit<{
150
+ parts: <U extends string>(...parts: U[]) => Omit<{
151
+ parts: any;
152
+ extend: <V extends string>(...parts: V[]) => Omit<{
153
+ parts: any;
154
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
155
+ parts: any;
156
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
157
+ parts: any;
158
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
159
+ parts: any;
160
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
161
+ parts: any;
162
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
163
+ parts: any;
164
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
165
+ parts: any;
166
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
167
+ parts: any;
168
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
169
+ parts: any;
170
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
171
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
172
+ selector: string;
173
+ attrs: Record<"data-scope" | "data-part", string>;
174
+ }>;
175
+ }, "parts">;
176
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
177
+ selector: string;
178
+ attrs: Record<"data-scope" | "data-part", string>;
179
+ }>;
180
+ }, "parts">;
181
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
182
+ selector: string;
183
+ attrs: Record<"data-scope" | "data-part", string>;
184
+ }>;
185
+ }, "parts">;
186
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
187
+ selector: string;
188
+ attrs: Record<"data-scope" | "data-part", string>;
189
+ }>;
190
+ }, "parts">;
191
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
192
+ selector: string;
193
+ attrs: Record<"data-scope" | "data-part", string>;
194
+ }>;
195
+ }, "parts">;
196
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
197
+ selector: string;
198
+ attrs: Record<"data-scope" | "data-part", string>;
199
+ }>;
200
+ }, "parts">;
201
+ build: () => Record<U | V | V_1 | V_2, {
202
+ selector: string;
203
+ attrs: Record<"data-scope" | "data-part", string>;
204
+ }>;
205
+ }, "parts">;
206
+ build: () => Record<U | V | V_1, {
207
+ selector: string;
208
+ attrs: Record<"data-scope" | "data-part", string>;
209
+ }>;
210
+ }, "parts">;
211
+ build: () => Record<U | V, {
212
+ selector: string;
213
+ attrs: Record<"data-scope" | "data-part", string>;
214
+ }>;
215
+ }, "parts">;
216
+ build: () => Record<U, {
217
+ selector: string;
218
+ attrs: Record<"data-scope" | "data-part", string>;
219
+ }>;
220
+ }, "parts">;
221
+ extend: <V_12 extends string>(...parts: V_12[]) => Omit<{
222
+ parts: <U extends string>(...parts: U[]) => Omit<{
223
+ parts: any;
224
+ extend: <V extends string>(...parts: V[]) => Omit<{
225
+ parts: any;
226
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
227
+ parts: any;
228
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
229
+ parts: any;
230
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
231
+ parts: any;
232
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
233
+ parts: any;
234
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
235
+ parts: any;
236
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
237
+ parts: any;
238
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
239
+ parts: any;
240
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
241
+ parts: any;
242
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
243
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
244
+ selector: string;
245
+ attrs: Record<"data-scope" | "data-part", string>;
246
+ }>;
247
+ }, "parts">;
248
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
249
+ selector: string;
250
+ attrs: Record<"data-scope" | "data-part", string>;
251
+ }>;
252
+ }, "parts">;
253
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
254
+ selector: string;
255
+ attrs: Record<"data-scope" | "data-part", string>;
256
+ }>;
257
+ }, "parts">;
258
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
259
+ selector: string;
260
+ attrs: Record<"data-scope" | "data-part", string>;
261
+ }>;
262
+ }, "parts">;
263
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
264
+ selector: string;
265
+ attrs: Record<"data-scope" | "data-part", string>;
266
+ }>;
267
+ }, "parts">;
268
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
269
+ selector: string;
270
+ attrs: Record<"data-scope" | "data-part", string>;
271
+ }>;
272
+ }, "parts">;
273
+ build: () => Record<U | V | V_1 | V_2, {
274
+ selector: string;
275
+ attrs: Record<"data-scope" | "data-part", string>;
276
+ }>;
277
+ }, "parts">;
278
+ build: () => Record<U | V | V_1, {
279
+ selector: string;
280
+ attrs: Record<"data-scope" | "data-part", string>;
281
+ }>;
282
+ }, "parts">;
283
+ build: () => Record<U | V, {
284
+ selector: string;
285
+ attrs: Record<"data-scope" | "data-part", string>;
286
+ }>;
287
+ }, "parts">;
288
+ build: () => Record<U, {
289
+ selector: string;
290
+ attrs: Record<"data-scope" | "data-part", string>;
291
+ }>;
292
+ }, "parts">;
293
+ extend: <V_13 extends string>(...parts: V_13[]) => Omit<{
294
+ parts: <U extends string>(...parts: U[]) => Omit<{
295
+ parts: any;
296
+ extend: <V extends string>(...parts: V[]) => Omit<{
297
+ parts: any;
298
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
299
+ parts: any;
300
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
301
+ parts: any;
302
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
303
+ parts: any;
304
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
305
+ parts: any;
306
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
307
+ parts: any;
308
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
309
+ parts: any;
310
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
311
+ parts: any;
312
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
313
+ parts: any;
314
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
315
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
316
+ selector: string;
317
+ attrs: Record<"data-scope" | "data-part", string>;
318
+ }>;
319
+ }, "parts">;
320
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
321
+ selector: string;
322
+ attrs: Record<"data-scope" | "data-part", string>;
323
+ }>;
324
+ }, "parts">;
325
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
326
+ selector: string;
327
+ attrs: Record<"data-scope" | "data-part", string>;
328
+ }>;
329
+ }, "parts">;
330
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
331
+ selector: string;
332
+ attrs: Record<"data-scope" | "data-part", string>;
333
+ }>;
334
+ }, "parts">;
335
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
336
+ selector: string;
337
+ attrs: Record<"data-scope" | "data-part", string>;
338
+ }>;
339
+ }, "parts">;
340
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
341
+ selector: string;
342
+ attrs: Record<"data-scope" | "data-part", string>;
343
+ }>;
344
+ }, "parts">;
345
+ build: () => Record<U | V | V_1 | V_2, {
346
+ selector: string;
347
+ attrs: Record<"data-scope" | "data-part", string>;
348
+ }>;
349
+ }, "parts">;
350
+ build: () => Record<U | V | V_1, {
351
+ selector: string;
352
+ attrs: Record<"data-scope" | "data-part", string>;
353
+ }>;
354
+ }, "parts">;
355
+ build: () => Record<U | V, {
356
+ selector: string;
357
+ attrs: Record<"data-scope" | "data-part", string>;
358
+ }>;
359
+ }, "parts">;
360
+ build: () => Record<U, {
361
+ selector: string;
362
+ attrs: Record<"data-scope" | "data-part", string>;
363
+ }>;
364
+ }, "parts">;
365
+ extend: <V_14 extends string>(...parts: V_14[]) => Omit<{
366
+ parts: <U extends string>(...parts: U[]) => Omit<{
367
+ parts: any;
368
+ extend: <V extends string>(...parts: V[]) => Omit<{
369
+ parts: any;
370
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
371
+ parts: any;
372
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
373
+ parts: any;
374
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
375
+ parts: any;
376
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
377
+ parts: any;
378
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
379
+ parts: any;
380
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
381
+ parts: any;
382
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
383
+ parts: any;
384
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
385
+ parts: any;
386
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
387
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
388
+ selector: string;
389
+ attrs: Record<"data-scope" | "data-part", string>;
390
+ }>;
391
+ }, "parts">;
392
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
393
+ selector: string;
394
+ attrs: Record<"data-scope" | "data-part", string>;
395
+ }>;
396
+ }, "parts">;
397
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
398
+ selector: string;
399
+ attrs: Record<"data-scope" | "data-part", string>;
400
+ }>;
401
+ }, "parts">;
402
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
403
+ selector: string;
404
+ attrs: Record<"data-scope" | "data-part", string>;
405
+ }>;
406
+ }, "parts">;
407
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
408
+ selector: string;
409
+ attrs: Record<"data-scope" | "data-part", string>;
410
+ }>;
411
+ }, "parts">;
412
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
413
+ selector: string;
414
+ attrs: Record<"data-scope" | "data-part", string>;
415
+ }>;
416
+ }, "parts">;
417
+ build: () => Record<U | V | V_1 | V_2, {
418
+ selector: string;
419
+ attrs: Record<"data-scope" | "data-part", string>;
420
+ }>;
421
+ }, "parts">;
422
+ build: () => Record<U | V | V_1, {
423
+ selector: string;
424
+ attrs: Record<"data-scope" | "data-part", string>;
425
+ }>;
426
+ }, "parts">;
427
+ build: () => Record<U | V, {
428
+ selector: string;
429
+ attrs: Record<"data-scope" | "data-part", string>;
430
+ }>;
431
+ }, "parts">;
432
+ build: () => Record<U, {
433
+ selector: string;
434
+ attrs: Record<"data-scope" | "data-part", string>;
435
+ }>;
436
+ }, "parts">;
437
+ extend: <V_15 extends string>(...parts: V_15[]) => Omit<{
438
+ parts: <U extends string>(...parts: U[]) => Omit<{
439
+ parts: any;
440
+ extend: <V extends string>(...parts: V[]) => Omit<{
441
+ parts: any;
442
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
443
+ parts: any;
444
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
445
+ parts: any;
446
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
447
+ parts: any;
448
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
449
+ parts: any;
450
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
451
+ parts: any;
452
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
453
+ parts: any;
454
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
455
+ parts: any;
456
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
457
+ parts: any;
458
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
459
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
460
+ selector: string;
461
+ attrs: Record<"data-scope" | "data-part", string>;
462
+ }>;
463
+ }, "parts">;
464
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
465
+ selector: string;
466
+ attrs: Record<"data-scope" | "data-part", string>;
467
+ }>;
468
+ }, "parts">;
469
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
470
+ selector: string;
471
+ attrs: Record<"data-scope" | "data-part", string>;
472
+ }>;
473
+ }, "parts">;
474
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
475
+ selector: string;
476
+ attrs: Record<"data-scope" | "data-part", string>;
477
+ }>;
478
+ }, "parts">;
479
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
480
+ selector: string;
481
+ attrs: Record<"data-scope" | "data-part", string>;
482
+ }>;
483
+ }, "parts">;
484
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
485
+ selector: string;
486
+ attrs: Record<"data-scope" | "data-part", string>;
487
+ }>;
488
+ }, "parts">;
489
+ build: () => Record<U | V | V_1 | V_2, {
490
+ selector: string;
491
+ attrs: Record<"data-scope" | "data-part", string>;
492
+ }>;
493
+ }, "parts">;
494
+ build: () => Record<U | V | V_1, {
495
+ selector: string;
496
+ attrs: Record<"data-scope" | "data-part", string>;
497
+ }>;
498
+ }, "parts">;
499
+ build: () => Record<U | V, {
500
+ selector: string;
501
+ attrs: Record<"data-scope" | "data-part", string>;
502
+ }>;
503
+ }, "parts">;
504
+ build: () => Record<U, {
505
+ selector: string;
506
+ attrs: Record<"data-scope" | "data-part", string>;
507
+ }>;
508
+ }, "parts">;
509
+ extend: <V_16 extends string>(...parts: V_16[]) => Omit<{
510
+ parts: <U extends string>(...parts: U[]) => Omit<{
511
+ parts: any;
512
+ extend: <V extends string>(...parts: V[]) => Omit<{
513
+ parts: any;
514
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
515
+ parts: any;
516
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
517
+ parts: any;
518
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
519
+ parts: any;
520
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
521
+ parts: any;
522
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
523
+ parts: any;
524
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
525
+ parts: any;
526
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
527
+ parts: any;
528
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
529
+ parts: any;
530
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
531
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
532
+ selector: string;
533
+ attrs: Record<"data-scope" | "data-part", string>;
534
+ }>;
535
+ }, "parts">;
536
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
537
+ selector: string;
538
+ attrs: Record<"data-scope" | "data-part", string>;
539
+ }>;
540
+ }, "parts">;
541
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
542
+ selector: string;
543
+ attrs: Record<"data-scope" | "data-part", string>;
544
+ }>;
545
+ }, "parts">;
546
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
547
+ selector: string;
548
+ attrs: Record<"data-scope" | "data-part", string>;
549
+ }>;
550
+ }, "parts">;
551
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
552
+ selector: string;
553
+ attrs: Record<"data-scope" | "data-part", string>;
554
+ }>;
555
+ }, "parts">;
556
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
557
+ selector: string;
558
+ attrs: Record<"data-scope" | "data-part", string>;
559
+ }>;
560
+ }, "parts">;
561
+ build: () => Record<U | V | V_1 | V_2, {
562
+ selector: string;
563
+ attrs: Record<"data-scope" | "data-part", string>;
564
+ }>;
565
+ }, "parts">;
566
+ build: () => Record<U | V | V_1, {
567
+ selector: string;
568
+ attrs: Record<"data-scope" | "data-part", string>;
569
+ }>;
570
+ }, "parts">;
571
+ build: () => Record<U | V, {
572
+ selector: string;
573
+ attrs: Record<"data-scope" | "data-part", string>;
574
+ }>;
575
+ }, "parts">;
576
+ build: () => Record<U, {
577
+ selector: string;
578
+ attrs: Record<"data-scope" | "data-part", string>;
579
+ }>;
580
+ }, "parts">;
581
+ extend: <V_17 extends string>(...parts: V_17[]) => Omit<{
582
+ parts: <U extends string>(...parts: U[]) => Omit<{
583
+ parts: any;
584
+ extend: <V extends string>(...parts: V[]) => Omit<{
585
+ parts: any;
586
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
587
+ parts: any;
588
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
589
+ parts: any;
590
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
591
+ parts: any;
592
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
593
+ parts: any;
594
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
595
+ parts: any;
596
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
597
+ parts: any;
598
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
599
+ parts: any;
600
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
601
+ parts: any;
602
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
603
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
604
+ selector: string;
605
+ attrs: Record<"data-scope" | "data-part", string>;
606
+ }>;
607
+ }, "parts">;
608
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
609
+ selector: string;
610
+ attrs: Record<"data-scope" | "data-part", string>;
611
+ }>;
612
+ }, "parts">;
613
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
614
+ selector: string;
615
+ attrs: Record<"data-scope" | "data-part", string>;
616
+ }>;
617
+ }, "parts">;
618
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
619
+ selector: string;
620
+ attrs: Record<"data-scope" | "data-part", string>;
621
+ }>;
622
+ }, "parts">;
623
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
624
+ selector: string;
625
+ attrs: Record<"data-scope" | "data-part", string>;
626
+ }>;
627
+ }, "parts">;
628
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
629
+ selector: string;
630
+ attrs: Record<"data-scope" | "data-part", string>;
631
+ }>;
632
+ }, "parts">;
633
+ build: () => Record<U | V | V_1 | V_2, {
634
+ selector: string;
635
+ attrs: Record<"data-scope" | "data-part", string>;
636
+ }>;
637
+ }, "parts">;
638
+ build: () => Record<U | V | V_1, {
639
+ selector: string;
640
+ attrs: Record<"data-scope" | "data-part", string>;
641
+ }>;
642
+ }, "parts">;
643
+ build: () => Record<U | V, {
644
+ selector: string;
645
+ attrs: Record<"data-scope" | "data-part", string>;
646
+ }>;
647
+ }, "parts">;
648
+ build: () => Record<U, {
649
+ selector: string;
650
+ attrs: Record<"data-scope" | "data-part", string>;
651
+ }>;
652
+ }, "parts">;
653
+ extend: <V_18 extends string>(...parts: V_18[]) => Omit<{
654
+ parts: <U extends string>(...parts: U[]) => Omit<{
655
+ parts: any;
656
+ extend: <V extends string>(...parts: V[]) => Omit<{
657
+ parts: any;
658
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
659
+ parts: any;
660
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
661
+ parts: any;
662
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
663
+ parts: any;
664
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
665
+ parts: any;
666
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
667
+ parts: any;
668
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
669
+ parts: any;
670
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
671
+ parts: any;
672
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
673
+ parts: any;
674
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
675
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
676
+ selector: string;
677
+ attrs: Record<"data-scope" | "data-part", string>;
678
+ }>;
679
+ }, "parts">;
680
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
681
+ selector: string;
682
+ attrs: Record<"data-scope" | "data-part", string>;
683
+ }>;
684
+ }, "parts">;
685
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
686
+ selector: string;
687
+ attrs: Record<"data-scope" | "data-part", string>;
688
+ }>;
689
+ }, "parts">;
690
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
691
+ selector: string;
692
+ attrs: Record<"data-scope" | "data-part", string>;
693
+ }>;
694
+ }, "parts">;
695
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
696
+ selector: string;
697
+ attrs: Record<"data-scope" | "data-part", string>;
698
+ }>;
699
+ }, "parts">;
700
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
701
+ selector: string;
702
+ attrs: Record<"data-scope" | "data-part", string>;
703
+ }>;
704
+ }, "parts">;
705
+ build: () => Record<U | V | V_1 | V_2, {
706
+ selector: string;
707
+ attrs: Record<"data-scope" | "data-part", string>;
708
+ }>;
709
+ }, "parts">;
710
+ build: () => Record<U | V | V_1, {
711
+ selector: string;
712
+ attrs: Record<"data-scope" | "data-part", string>;
713
+ }>;
714
+ }, "parts">;
715
+ build: () => Record<U | V, {
716
+ selector: string;
717
+ attrs: Record<"data-scope" | "data-part", string>;
718
+ }>;
719
+ }, "parts">;
720
+ build: () => Record<U, {
721
+ selector: string;
722
+ attrs: Record<"data-scope" | "data-part", string>;
723
+ }>;
724
+ }, "parts">;
725
+ extend: <V_19 extends string>(...parts: V_19[]) => Omit<{
726
+ parts: <U extends string>(...parts: U[]) => Omit<{
727
+ parts: any;
728
+ extend: <V extends string>(...parts: V[]) => Omit<{
729
+ parts: any;
730
+ extend: <V_1 extends string>(...parts: V_1[]) => Omit<{
731
+ parts: any;
732
+ extend: <V_2 extends string>(...parts: V_2[]) => Omit<{
733
+ parts: any;
734
+ extend: <V_3 extends string>(...parts: V_3[]) => Omit<{
735
+ parts: any;
736
+ extend: <V_4 extends string>(...parts: V_4[]) => Omit<{
737
+ parts: any;
738
+ extend: <V_5 extends string>(...parts: V_5[]) => Omit<{
739
+ parts: any;
740
+ extend: <V_6 extends string>(...parts: V_6[]) => Omit<{
741
+ parts: any;
742
+ extend: <V_7 extends string>(...parts: V_7[]) => Omit<{
743
+ parts: any;
744
+ extend: <V_8 extends string>(...parts: V_8[]) => Omit<{
745
+ parts: any;
746
+ extend: <V_9 extends string>(...parts: V_9[]) => Omit<any, "parts">;
747
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7 | V_8, {
748
+ selector: string;
749
+ attrs: Record<"data-scope" | "data-part", string>;
750
+ }>;
751
+ }, "parts">;
752
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6 | V_7, {
753
+ selector: string;
754
+ attrs: Record<"data-scope" | "data-part", string>;
755
+ }>;
756
+ }, "parts">;
757
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5 | V_6, {
758
+ selector: string;
759
+ attrs: Record<"data-scope" | "data-part", string>;
760
+ }>;
761
+ }, "parts">;
762
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4 | V_5, {
763
+ selector: string;
764
+ attrs: Record<"data-scope" | "data-part", string>;
765
+ }>;
766
+ }, "parts">;
767
+ build: () => Record<U | V | V_1 | V_2 | V_3 | V_4, {
768
+ selector: string;
769
+ attrs: Record<"data-scope" | "data-part", string>;
770
+ }>;
771
+ }, "parts">;
772
+ build: () => Record<U | V | V_1 | V_2 | V_3, {
773
+ selector: string;
774
+ attrs: Record<"data-scope" | "data-part", string>;
775
+ }>;
776
+ }, "parts">;
777
+ build: () => Record<U | V | V_1 | V_2, {
778
+ selector: string;
779
+ attrs: Record<"data-scope" | "data-part", string>;
780
+ }>;
781
+ }, "parts">;
782
+ build: () => Record<U | V | V_1, {
783
+ selector: string;
784
+ attrs: Record<"data-scope" | "data-part", string>;
785
+ }>;
786
+ }, "parts">;
787
+ build: () => Record<U | V, {
788
+ selector: string;
789
+ attrs: Record<"data-scope" | "data-part", string>;
790
+ }>;
791
+ }, "parts">;
792
+ build: () => Record<U, {
793
+ selector: string;
794
+ attrs: Record<"data-scope" | "data-part", string>;
795
+ }>;
796
+ }, "parts">;
797
+ extend: <V_20 extends string>(...parts: V_20[]) => Omit<any, "parts">;
798
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12 | V_13 | V_14 | V_15 | V_16 | V_17 | V_18 | V_19, {
799
+ selector: string;
800
+ attrs: Record<"data-scope" | "data-part", string>;
801
+ }>;
802
+ }, "parts">;
803
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12 | V_13 | V_14 | V_15 | V_16 | V_17 | V_18, {
804
+ selector: string;
805
+ attrs: Record<"data-scope" | "data-part", string>;
806
+ }>;
807
+ }, "parts">;
808
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12 | V_13 | V_14 | V_15 | V_16 | V_17, {
809
+ selector: string;
810
+ attrs: Record<"data-scope" | "data-part", string>;
811
+ }>;
812
+ }, "parts">;
813
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12 | V_13 | V_14 | V_15 | V_16, {
814
+ selector: string;
815
+ attrs: Record<"data-scope" | "data-part", string>;
816
+ }>;
817
+ }, "parts">;
818
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12 | V_13 | V_14 | V_15, {
819
+ selector: string;
820
+ attrs: Record<"data-scope" | "data-part", string>;
821
+ }>;
822
+ }, "parts">;
823
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12 | V_13 | V_14, {
824
+ selector: string;
825
+ attrs: Record<"data-scope" | "data-part", string>;
826
+ }>;
827
+ }, "parts">;
828
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12 | V_13, {
829
+ selector: string;
830
+ attrs: Record<"data-scope" | "data-part", string>;
831
+ }>;
832
+ }, "parts">;
833
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11 | V_12, {
834
+ selector: string;
835
+ attrs: Record<"data-scope" | "data-part", string>;
836
+ }>;
837
+ }, "parts">;
838
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10 | V_11, {
839
+ selector: string;
840
+ attrs: Record<"data-scope" | "data-part", string>;
841
+ }>;
842
+ }, "parts">;
843
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator" | V_10, {
844
+ selector: string;
845
+ attrs: Record<"data-scope" | "data-part", string>;
846
+ }>;
847
+ }, "parts">;
848
+ build: () => Record<"root" | "triggerGroup" | "trigger" | "contentGroup" | "content" | "deleteButton" | "indicator", {
849
+ selector: string;
850
+ attrs: Record<"data-scope" | "data-part", string>;
851
+ }>;
852
+ }, "parts">;
853
+
5
854
  declare type IntlTranslations = {
6
855
  tablistLabel?: string;
7
856
  deleteLabel?(value: string): string;
@@ -99,6 +948,7 @@ declare function connect<T extends PropTypes>(state: State, send: Send, normaliz
99
948
  focusedValue: string | null;
100
949
  previousValues: string[];
101
950
  setValue(value: string): void;
951
+ clearValue(): void;
102
952
  rootProps: T["element"];
103
953
  triggerGroupProps: T["element"];
104
954
  getTriggerProps(props: TabProps): T["button"];
@@ -112,4 +962,4 @@ declare function connect<T extends PropTypes>(state: State, send: Send, normaliz
112
962
 
113
963
  declare function machine(userContext: UserDefinedContext): _zag_js_core.Machine<MachineContext, MachineState, _zag_js_core.StateMachine.AnyEventObject>;
114
964
 
115
- export { UserDefinedContext as Context, connect, machine };
965
+ export { UserDefinedContext as Context, anatomy, connect, machine };
package/dist/index.js CHANGED
@@ -20,11 +20,25 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
+ anatomy: () => anatomy,
23
24
  connect: () => connect,
24
25
  machine: () => machine
25
26
  });
26
27
  module.exports = __toCommonJS(src_exports);
27
28
 
29
+ // src/tabs.anatomy.ts
30
+ var import_anatomy = require("@zag-js/anatomy");
31
+ var anatomy = (0, import_anatomy.createAnatomy)("tabs").parts(
32
+ "root",
33
+ "triggerGroup",
34
+ "trigger",
35
+ "contentGroup",
36
+ "content",
37
+ "deleteButton",
38
+ "indicator"
39
+ );
40
+ var parts = anatomy.build();
41
+
28
42
  // ../../utilities/dom/dist/index.mjs
29
43
  var dataAttr = (guard) => {
30
44
  return guard ? "" : void 0;
@@ -279,15 +293,18 @@ function connect(state, send, normalize) {
279
293
  setValue(value) {
280
294
  send({ type: "SET_VALUE", value });
281
295
  },
296
+ clearValue() {
297
+ send({ type: "CLEAR_VALUE" });
298
+ },
282
299
  rootProps: normalize.element({
283
- "data-part": "root",
300
+ ...parts.root.attrs,
284
301
  id: dom.getRootId(state.context),
285
302
  "data-orientation": state.context.orientation,
286
303
  "data-focus": dataAttr(isFocused),
287
304
  dir: state.context.dir
288
305
  }),
289
306
  triggerGroupProps: normalize.element({
290
- "data-part": "trigger-group",
307
+ ...parts.triggerGroup.attrs,
291
308
  id: dom.getTriggerGroupId(state.context),
292
309
  role: "tablist",
293
310
  "data-focus": dataAttr(isFocused),
@@ -330,7 +347,7 @@ function connect(state, send, normalize) {
330
347
  const { value, disabled } = props;
331
348
  const selected = state.context.value === value;
332
349
  return normalize.button({
333
- "data-part": "trigger",
350
+ ...parts.trigger.attrs,
334
351
  role: "tab",
335
352
  type: "button",
336
353
  disabled,
@@ -364,14 +381,14 @@ function connect(state, send, normalize) {
364
381
  });
365
382
  },
366
383
  contentGroupProps: normalize.element({
367
- "data-part": "content-group",
384
+ ...parts.contentGroup.attrs,
368
385
  id: dom.getContentGroupId(state.context),
369
386
  "data-orientation": state.context.orientation
370
387
  }),
371
388
  getContentProps({ value }) {
372
389
  const selected = state.context.value === value;
373
390
  return normalize.element({
374
- "data-part": "content",
391
+ ...parts.content.attrs,
375
392
  id: dom.getContentId(state.context, value),
376
393
  tabIndex: 0,
377
394
  "aria-labelledby": dom.getTriggerId(state.context, value),
@@ -383,7 +400,7 @@ function connect(state, send, normalize) {
383
400
  getDeleteButtonProps({ value, disabled }) {
384
401
  var _a;
385
402
  return normalize.button({
386
- "data-part": "delete-button",
403
+ ...parts.deleteButton.attrs,
387
404
  type: "button",
388
405
  tabIndex: -1,
389
406
  "aria-label": (_a = translations.deleteLabel) == null ? void 0 : _a.call(translations, value),
@@ -395,7 +412,7 @@ function connect(state, send, normalize) {
395
412
  },
396
413
  indicatorProps: normalize.element({
397
414
  id: dom.getIndicatorId(state.context),
398
- "data-part": "indicator",
415
+ ...parts.indicator.attrs,
399
416
  "data-orientation": state.context.orientation,
400
417
  style: {
401
418
  "--transition-duration": "200ms",
@@ -447,8 +464,8 @@ function machine(userContext) {
447
464
  SET_VALUE: {
448
465
  actions: "setValue"
449
466
  },
450
- DELETE: {
451
- actions: "deleteValue"
467
+ CLEAR_VALUE: {
468
+ actions: "clearValue"
452
469
  }
453
470
  },
454
471
  states: {
@@ -536,6 +553,9 @@ function machine(userContext) {
536
553
  setValue(ctx2, evt) {
537
554
  ctx2.value = evt.value;
538
555
  },
556
+ clearValue(ctx2) {
557
+ ctx2.value = null;
558
+ },
539
559
  invokeOnDelete(ctx2, evt) {
540
560
  var _a;
541
561
  (_a = ctx2.onDelete) == null ? void 0 : _a.call(ctx2, { value: evt.value });
@@ -592,8 +612,7 @@ function machine(userContext) {
592
612
  },
593
613
  setPrevSelectedTabs(ctx2) {
594
614
  if (ctx2.value != null) {
595
- const newSelected = Array.from(ctx2.previousValues).concat(ctx2.value);
596
- ctx2.previousValues = Array.from(new Set(newSelected));
615
+ ctx2.previousValues = pushUnique(Array.from(ctx2.previousValues), ctx2.value);
597
616
  }
598
617
  },
599
618
  setContentTabIndex(ctx2) {
@@ -613,8 +632,18 @@ function machine(userContext) {
613
632
  }
614
633
  );
615
634
  }
635
+ function pushUnique(arr, value) {
636
+ const newArr = arr.slice();
637
+ const index = newArr.indexOf(value);
638
+ if (index > -1) {
639
+ newArr.splice(index, 1);
640
+ }
641
+ newArr.push(value);
642
+ return newArr;
643
+ }
616
644
  // Annotate the CommonJS export names for ESM import in node:
617
645
  0 && (module.exports = {
646
+ anatomy,
618
647
  connect,
619
648
  machine
620
649
  });
package/dist/index.mjs CHANGED
@@ -1,3 +1,16 @@
1
+ // src/tabs.anatomy.ts
2
+ import { createAnatomy } from "@zag-js/anatomy";
3
+ var anatomy = createAnatomy("tabs").parts(
4
+ "root",
5
+ "triggerGroup",
6
+ "trigger",
7
+ "contentGroup",
8
+ "content",
9
+ "deleteButton",
10
+ "indicator"
11
+ );
12
+ var parts = anatomy.build();
13
+
1
14
  // ../../utilities/dom/dist/index.mjs
2
15
  var dataAttr = (guard) => {
3
16
  return guard ? "" : void 0;
@@ -252,15 +265,18 @@ function connect(state, send, normalize) {
252
265
  setValue(value) {
253
266
  send({ type: "SET_VALUE", value });
254
267
  },
268
+ clearValue() {
269
+ send({ type: "CLEAR_VALUE" });
270
+ },
255
271
  rootProps: normalize.element({
256
- "data-part": "root",
272
+ ...parts.root.attrs,
257
273
  id: dom.getRootId(state.context),
258
274
  "data-orientation": state.context.orientation,
259
275
  "data-focus": dataAttr(isFocused),
260
276
  dir: state.context.dir
261
277
  }),
262
278
  triggerGroupProps: normalize.element({
263
- "data-part": "trigger-group",
279
+ ...parts.triggerGroup.attrs,
264
280
  id: dom.getTriggerGroupId(state.context),
265
281
  role: "tablist",
266
282
  "data-focus": dataAttr(isFocused),
@@ -303,7 +319,7 @@ function connect(state, send, normalize) {
303
319
  const { value, disabled } = props;
304
320
  const selected = state.context.value === value;
305
321
  return normalize.button({
306
- "data-part": "trigger",
322
+ ...parts.trigger.attrs,
307
323
  role: "tab",
308
324
  type: "button",
309
325
  disabled,
@@ -337,14 +353,14 @@ function connect(state, send, normalize) {
337
353
  });
338
354
  },
339
355
  contentGroupProps: normalize.element({
340
- "data-part": "content-group",
356
+ ...parts.contentGroup.attrs,
341
357
  id: dom.getContentGroupId(state.context),
342
358
  "data-orientation": state.context.orientation
343
359
  }),
344
360
  getContentProps({ value }) {
345
361
  const selected = state.context.value === value;
346
362
  return normalize.element({
347
- "data-part": "content",
363
+ ...parts.content.attrs,
348
364
  id: dom.getContentId(state.context, value),
349
365
  tabIndex: 0,
350
366
  "aria-labelledby": dom.getTriggerId(state.context, value),
@@ -356,7 +372,7 @@ function connect(state, send, normalize) {
356
372
  getDeleteButtonProps({ value, disabled }) {
357
373
  var _a;
358
374
  return normalize.button({
359
- "data-part": "delete-button",
375
+ ...parts.deleteButton.attrs,
360
376
  type: "button",
361
377
  tabIndex: -1,
362
378
  "aria-label": (_a = translations.deleteLabel) == null ? void 0 : _a.call(translations, value),
@@ -368,7 +384,7 @@ function connect(state, send, normalize) {
368
384
  },
369
385
  indicatorProps: normalize.element({
370
386
  id: dom.getIndicatorId(state.context),
371
- "data-part": "indicator",
387
+ ...parts.indicator.attrs,
372
388
  "data-orientation": state.context.orientation,
373
389
  style: {
374
390
  "--transition-duration": "200ms",
@@ -420,8 +436,8 @@ function machine(userContext) {
420
436
  SET_VALUE: {
421
437
  actions: "setValue"
422
438
  },
423
- DELETE: {
424
- actions: "deleteValue"
439
+ CLEAR_VALUE: {
440
+ actions: "clearValue"
425
441
  }
426
442
  },
427
443
  states: {
@@ -509,6 +525,9 @@ function machine(userContext) {
509
525
  setValue(ctx2, evt) {
510
526
  ctx2.value = evt.value;
511
527
  },
528
+ clearValue(ctx2) {
529
+ ctx2.value = null;
530
+ },
512
531
  invokeOnDelete(ctx2, evt) {
513
532
  var _a;
514
533
  (_a = ctx2.onDelete) == null ? void 0 : _a.call(ctx2, { value: evt.value });
@@ -565,8 +584,7 @@ function machine(userContext) {
565
584
  },
566
585
  setPrevSelectedTabs(ctx2) {
567
586
  if (ctx2.value != null) {
568
- const newSelected = Array.from(ctx2.previousValues).concat(ctx2.value);
569
- ctx2.previousValues = Array.from(new Set(newSelected));
587
+ ctx2.previousValues = pushUnique(Array.from(ctx2.previousValues), ctx2.value);
570
588
  }
571
589
  },
572
590
  setContentTabIndex(ctx2) {
@@ -586,7 +604,17 @@ function machine(userContext) {
586
604
  }
587
605
  );
588
606
  }
607
+ function pushUnique(arr, value) {
608
+ const newArr = arr.slice();
609
+ const index = newArr.indexOf(value);
610
+ if (index > -1) {
611
+ newArr.splice(index, 1);
612
+ }
613
+ newArr.push(value);
614
+ return newArr;
615
+ }
589
616
  export {
617
+ anatomy,
590
618
  connect,
591
619
  machine
592
620
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/tabs",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Core logic for the tabs widget implemented as a state machine",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -29,12 +29,13 @@
29
29
  "url": "https://github.com/chakra-ui/zag/issues"
30
30
  },
31
31
  "dependencies": {
32
- "@zag-js/core": "0.2.1",
33
- "@zag-js/types": "0.3.0"
32
+ "@zag-js/anatomy": "0.1.1",
33
+ "@zag-js/core": "0.2.2",
34
+ "@zag-js/types": "0.3.1"
34
35
  },
35
36
  "devDependencies": {
36
- "@zag-js/dom-utils": "0.2.0",
37
- "@zag-js/utils": "0.3.0"
37
+ "@zag-js/dom-utils": "0.2.1",
38
+ "@zag-js/utils": "0.3.1"
38
39
  },
39
40
  "scripts": {
40
41
  "build-fast": "tsup src/index.ts --format=esm,cjs",