@zag-js/tabs 0.69.0 → 0.71.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.
- package/dist/index.d.mts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +66 -108
- package/dist/index.mjs +17 -34
- package/package.json +9 -10
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/src/index.ts +0 -15
- package/src/tabs.anatomy.ts +0 -4
- package/src/tabs.connect.ts +0 -201
- package/src/tabs.dom.ts +0 -56
- package/src/tabs.machine.ts +0 -279
- package/src/tabs.props.ts +0 -26
- package/src/tabs.types.ts +0 -210
package/dist/index.d.mts
CHANGED
|
@@ -67,6 +67,10 @@ interface PublicContext extends DirectionProperty, CommonProperties {
|
|
|
67
67
|
* Whether the tab is composite
|
|
68
68
|
*/
|
|
69
69
|
composite: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Whether the active tab can be deselected when clicking on it.
|
|
72
|
+
*/
|
|
73
|
+
deselectable?: boolean;
|
|
70
74
|
}
|
|
71
75
|
type UserDefinedContext = RequiredBy<PublicContext, "id">;
|
|
72
76
|
type ComputedContext = Readonly<{}>;
|
|
@@ -163,8 +167,8 @@ declare function connect<T extends PropTypes>(state: State, send: Send, normaliz
|
|
|
163
167
|
|
|
164
168
|
declare function machine(userContext: UserDefinedContext): _zag_js_core.Machine<MachineContext, MachineState, _zag_js_core.StateMachine.AnyEventObject>;
|
|
165
169
|
|
|
166
|
-
declare const props: ("value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite")[];
|
|
167
|
-
declare const splitProps: <Props extends Partial<UserDefinedContext>>(props: Props) => [Partial<UserDefinedContext>, Omit<Props, "value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite">];
|
|
170
|
+
declare const props: ("value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite" | "deselectable")[];
|
|
171
|
+
declare const splitProps: <Props extends Partial<UserDefinedContext>>(props: Props) => [Partial<UserDefinedContext>, Omit<Props, "value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite" | "deselectable">];
|
|
168
172
|
declare const triggerProps: (keyof TriggerProps)[];
|
|
169
173
|
declare const splitTriggerProps: <Props extends TriggerProps>(props: Props) => [TriggerProps, Omit<Props, keyof TriggerProps>];
|
|
170
174
|
declare const contentProps: "value"[];
|
package/dist/index.d.ts
CHANGED
|
@@ -67,6 +67,10 @@ interface PublicContext extends DirectionProperty, CommonProperties {
|
|
|
67
67
|
* Whether the tab is composite
|
|
68
68
|
*/
|
|
69
69
|
composite: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Whether the active tab can be deselected when clicking on it.
|
|
72
|
+
*/
|
|
73
|
+
deselectable?: boolean;
|
|
70
74
|
}
|
|
71
75
|
type UserDefinedContext = RequiredBy<PublicContext, "id">;
|
|
72
76
|
type ComputedContext = Readonly<{}>;
|
|
@@ -163,8 +167,8 @@ declare function connect<T extends PropTypes>(state: State, send: Send, normaliz
|
|
|
163
167
|
|
|
164
168
|
declare function machine(userContext: UserDefinedContext): _zag_js_core.Machine<MachineContext, MachineState, _zag_js_core.StateMachine.AnyEventObject>;
|
|
165
169
|
|
|
166
|
-
declare const props: ("value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite")[];
|
|
167
|
-
declare const splitProps: <Props extends Partial<UserDefinedContext>>(props: Props) => [Partial<UserDefinedContext>, Omit<Props, "value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite">];
|
|
170
|
+
declare const props: ("value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite" | "deselectable")[];
|
|
171
|
+
declare const splitProps: <Props extends Partial<UserDefinedContext>>(props: Props) => [Partial<UserDefinedContext>, Omit<Props, "value" | "dir" | "id" | "getRootNode" | "orientation" | "ids" | "translations" | "loopFocus" | "activationMode" | "onValueChange" | "onFocusChange" | "composite" | "deselectable">];
|
|
168
172
|
declare const triggerProps: (keyof TriggerProps)[];
|
|
169
173
|
declare const splitTriggerProps: <Props extends TriggerProps>(props: Props) => [TriggerProps, Omit<Props, keyof TriggerProps>];
|
|
170
174
|
declare const contentProps: "value"[];
|
package/dist/index.js
CHANGED
|
@@ -1,50 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
'use strict';
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
props: () => props,
|
|
28
|
-
splitContentProps: () => splitContentProps,
|
|
29
|
-
splitProps: () => splitProps,
|
|
30
|
-
splitTriggerProps: () => splitTriggerProps,
|
|
31
|
-
triggerProps: () => triggerProps
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(src_exports);
|
|
3
|
+
var anatomy$1 = require('@zag-js/anatomy');
|
|
4
|
+
var domEvent = require('@zag-js/dom-event');
|
|
5
|
+
var domQuery = require('@zag-js/dom-query');
|
|
6
|
+
var utils = require('@zag-js/utils');
|
|
7
|
+
var core = require('@zag-js/core');
|
|
8
|
+
var elementRect = require('@zag-js/element-rect');
|
|
9
|
+
var types = require('@zag-js/types');
|
|
34
10
|
|
|
35
11
|
// src/tabs.anatomy.ts
|
|
36
|
-
var
|
|
37
|
-
var anatomy = (0, import_anatomy.createAnatomy)("tabs").parts("root", "list", "trigger", "content", "indicator");
|
|
12
|
+
var anatomy = anatomy$1.createAnatomy("tabs").parts("root", "list", "trigger", "content", "indicator");
|
|
38
13
|
var parts = anatomy.build();
|
|
39
|
-
|
|
40
|
-
// src/tabs.connect.ts
|
|
41
|
-
var import_dom_event = require("@zag-js/dom-event");
|
|
42
|
-
var import_dom_query2 = require("@zag-js/dom-query");
|
|
43
|
-
|
|
44
|
-
// src/tabs.dom.ts
|
|
45
|
-
var import_dom_query = require("@zag-js/dom-query");
|
|
46
|
-
var import_utils = require("@zag-js/utils");
|
|
47
|
-
var dom = (0, import_dom_query.createScope)({
|
|
14
|
+
var dom = domQuery.createScope({
|
|
48
15
|
getRootId: (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`,
|
|
49
16
|
getListId: (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`,
|
|
50
17
|
getContentId: (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`,
|
|
@@ -57,12 +24,12 @@ var dom = (0, import_dom_query.createScope)({
|
|
|
57
24
|
getElements: (ctx) => {
|
|
58
25
|
const ownerId = CSS.escape(dom.getListId(ctx));
|
|
59
26
|
const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;
|
|
60
|
-
return
|
|
27
|
+
return domQuery.queryAll(dom.getListEl(ctx), selector);
|
|
61
28
|
},
|
|
62
|
-
getFirstTriggerEl: (ctx) =>
|
|
63
|
-
getLastTriggerEl: (ctx) =>
|
|
64
|
-
getNextTriggerEl: (ctx, id) =>
|
|
65
|
-
getPrevTriggerEl: (ctx, id) =>
|
|
29
|
+
getFirstTriggerEl: (ctx) => utils.first(dom.getElements(ctx)),
|
|
30
|
+
getLastTriggerEl: (ctx) => utils.last(dom.getElements(ctx)),
|
|
31
|
+
getNextTriggerEl: (ctx, id) => domQuery.nextById(dom.getElements(ctx), dom.getTriggerId(ctx, id), ctx.loopFocus),
|
|
32
|
+
getPrevTriggerEl: (ctx, id) => domQuery.prevById(dom.getElements(ctx), dom.getTriggerId(ctx, id), ctx.loopFocus),
|
|
66
33
|
getSelectedContentEl: (ctx) => {
|
|
67
34
|
if (!ctx.value) return;
|
|
68
35
|
return dom.getContentEl(ctx, ctx.value);
|
|
@@ -80,7 +47,7 @@ var dom = (0, import_dom_query.createScope)({
|
|
|
80
47
|
};
|
|
81
48
|
},
|
|
82
49
|
getRectById: (ctx, id) => {
|
|
83
|
-
const tab =
|
|
50
|
+
const tab = domQuery.itemById(dom.getElements(ctx), dom.getTriggerId(ctx, id));
|
|
84
51
|
return dom.resolveRect(dom.getOffsetRect(tab));
|
|
85
52
|
},
|
|
86
53
|
resolveRect: (rect) => ({
|
|
@@ -138,7 +105,7 @@ function connect(state, send, normalize) {
|
|
|
138
105
|
...parts.root.attrs,
|
|
139
106
|
id: dom.getRootId(state.context),
|
|
140
107
|
"data-orientation": state.context.orientation,
|
|
141
|
-
"data-focus":
|
|
108
|
+
"data-focus": domQuery.dataAttr(focused),
|
|
142
109
|
dir: state.context.dir
|
|
143
110
|
});
|
|
144
111
|
},
|
|
@@ -148,14 +115,14 @@ function connect(state, send, normalize) {
|
|
|
148
115
|
id: dom.getListId(state.context),
|
|
149
116
|
role: "tablist",
|
|
150
117
|
dir: state.context.dir,
|
|
151
|
-
"data-focus":
|
|
118
|
+
"data-focus": domQuery.dataAttr(focused),
|
|
152
119
|
"aria-orientation": state.context.orientation,
|
|
153
120
|
"data-orientation": state.context.orientation,
|
|
154
121
|
"aria-label": translations?.listLabel,
|
|
155
122
|
onKeyDown(event) {
|
|
156
123
|
if (event.defaultPrevented) return;
|
|
157
|
-
if (!
|
|
158
|
-
if (
|
|
124
|
+
if (!domQuery.isSelfTarget(event)) return;
|
|
125
|
+
if (domQuery.isComposingEvent(event)) return;
|
|
159
126
|
const keyMap = {
|
|
160
127
|
ArrowDown() {
|
|
161
128
|
if (isHorizontal) return;
|
|
@@ -183,7 +150,7 @@ function connect(state, send, normalize) {
|
|
|
183
150
|
send({ type: "ENTER" });
|
|
184
151
|
}
|
|
185
152
|
};
|
|
186
|
-
let key =
|
|
153
|
+
let key = domEvent.getEventKey(event, state.context);
|
|
187
154
|
const exec = keyMap[key];
|
|
188
155
|
if (exec) {
|
|
189
156
|
event.preventDefault();
|
|
@@ -203,15 +170,15 @@ function connect(state, send, normalize) {
|
|
|
203
170
|
disabled,
|
|
204
171
|
dir: state.context.dir,
|
|
205
172
|
"data-orientation": state.context.orientation,
|
|
206
|
-
"data-disabled":
|
|
173
|
+
"data-disabled": domQuery.dataAttr(disabled),
|
|
207
174
|
"aria-disabled": disabled,
|
|
208
175
|
"data-value": value,
|
|
209
176
|
"aria-selected": triggerState.selected,
|
|
210
|
-
"data-selected":
|
|
211
|
-
"data-focus":
|
|
177
|
+
"data-selected": domQuery.dataAttr(triggerState.selected),
|
|
178
|
+
"data-focus": domQuery.dataAttr(triggerState.focused),
|
|
212
179
|
"aria-controls": triggerState.selected ? dom.getContentId(state.context, value) : void 0,
|
|
213
180
|
"data-ownedby": dom.getListId(state.context),
|
|
214
|
-
"data-ssr":
|
|
181
|
+
"data-ssr": domQuery.dataAttr(state.context.ssr),
|
|
215
182
|
id: dom.getTriggerId(state.context, value),
|
|
216
183
|
tabIndex: triggerState.selected && composite ? 0 : -1,
|
|
217
184
|
onFocus() {
|
|
@@ -226,7 +193,7 @@ function connect(state, send, normalize) {
|
|
|
226
193
|
onClick(event) {
|
|
227
194
|
if (event.defaultPrevented) return;
|
|
228
195
|
if (disabled) return;
|
|
229
|
-
if (
|
|
196
|
+
if (domQuery.isSafari()) {
|
|
230
197
|
event.currentTarget.focus();
|
|
231
198
|
}
|
|
232
199
|
send({ type: "TAB_CLICK", value });
|
|
@@ -244,7 +211,7 @@ function connect(state, send, normalize) {
|
|
|
244
211
|
"aria-labelledby": dom.getTriggerId(state.context, value),
|
|
245
212
|
role: "tabpanel",
|
|
246
213
|
"data-ownedby": dom.getListId(state.context),
|
|
247
|
-
"data-selected":
|
|
214
|
+
"data-selected": domQuery.dataAttr(selected),
|
|
248
215
|
"data-orientation": state.context.orientation,
|
|
249
216
|
hidden: !selected
|
|
250
217
|
});
|
|
@@ -272,17 +239,10 @@ function connect(state, send, normalize) {
|
|
|
272
239
|
}
|
|
273
240
|
};
|
|
274
241
|
}
|
|
275
|
-
|
|
276
|
-
// src/tabs.machine.ts
|
|
277
|
-
var import_core = require("@zag-js/core");
|
|
278
|
-
var import_dom_event2 = require("@zag-js/dom-event");
|
|
279
|
-
var import_dom_query3 = require("@zag-js/dom-query");
|
|
280
|
-
var import_element_rect = require("@zag-js/element-rect");
|
|
281
|
-
var import_utils2 = require("@zag-js/utils");
|
|
282
|
-
var { not } = import_core.guards;
|
|
242
|
+
var { not } = core.guards;
|
|
283
243
|
function machine(userContext) {
|
|
284
|
-
const ctx =
|
|
285
|
-
return
|
|
244
|
+
const ctx = utils.compact(userContext);
|
|
245
|
+
return core.createMachine(
|
|
286
246
|
{
|
|
287
247
|
initial: "idle",
|
|
288
248
|
context: {
|
|
@@ -404,8 +364,10 @@ function machine(userContext) {
|
|
|
404
364
|
}
|
|
405
365
|
},
|
|
406
366
|
selectFocusedTab(ctx2) {
|
|
407
|
-
|
|
408
|
-
|
|
367
|
+
domQuery.raf(() => {
|
|
368
|
+
const nullable = ctx2.deselectable && ctx2.value === ctx2.focusedValue;
|
|
369
|
+
const value = nullable ? null : ctx2.focusedValue;
|
|
370
|
+
set.value(ctx2, value);
|
|
409
371
|
});
|
|
410
372
|
},
|
|
411
373
|
setFocusedValue(ctx2, evt) {
|
|
@@ -416,25 +378,27 @@ function machine(userContext) {
|
|
|
416
378
|
set.focusedValue(ctx2, null);
|
|
417
379
|
},
|
|
418
380
|
setValue(ctx2, evt) {
|
|
419
|
-
|
|
381
|
+
const nullable = ctx2.deselectable && ctx2.value === ctx2.focusedValue;
|
|
382
|
+
const value = nullable ? null : evt.value;
|
|
383
|
+
set.value(ctx2, value);
|
|
420
384
|
},
|
|
421
385
|
clearValue(ctx2) {
|
|
422
386
|
set.value(ctx2, null);
|
|
423
387
|
},
|
|
424
388
|
focusFirstTab(ctx2) {
|
|
425
|
-
|
|
389
|
+
domQuery.raf(() => {
|
|
426
390
|
dom.getFirstTriggerEl(ctx2)?.focus();
|
|
427
391
|
});
|
|
428
392
|
},
|
|
429
393
|
focusLastTab(ctx2) {
|
|
430
|
-
|
|
394
|
+
domQuery.raf(() => {
|
|
431
395
|
dom.getLastTriggerEl(ctx2)?.focus();
|
|
432
396
|
});
|
|
433
397
|
},
|
|
434
398
|
focusNextTab(ctx2) {
|
|
435
399
|
if (!ctx2.focusedValue) return;
|
|
436
400
|
const triggerEl = dom.getNextTriggerEl(ctx2, ctx2.focusedValue);
|
|
437
|
-
|
|
401
|
+
domQuery.raf(() => {
|
|
438
402
|
if (ctx2.composite) {
|
|
439
403
|
triggerEl?.focus();
|
|
440
404
|
} else if (triggerEl?.dataset.value != null) {
|
|
@@ -445,7 +409,7 @@ function machine(userContext) {
|
|
|
445
409
|
focusPrevTab(ctx2) {
|
|
446
410
|
if (!ctx2.focusedValue) return;
|
|
447
411
|
const triggerEl = dom.getPrevTriggerEl(ctx2, ctx2.focusedValue);
|
|
448
|
-
|
|
412
|
+
domQuery.raf(() => {
|
|
449
413
|
if (ctx2.composite) {
|
|
450
414
|
triggerEl?.focus();
|
|
451
415
|
} else if (triggerEl?.dataset.value != null) {
|
|
@@ -457,10 +421,10 @@ function machine(userContext) {
|
|
|
457
421
|
ctx2.indicatorState.rendered = !!dom.getIndicatorEl(ctx2);
|
|
458
422
|
},
|
|
459
423
|
syncTabIndex(ctx2) {
|
|
460
|
-
|
|
424
|
+
domQuery.raf(() => {
|
|
461
425
|
const contentEl = dom.getSelectedContentEl(ctx2);
|
|
462
426
|
if (!contentEl) return;
|
|
463
|
-
const focusables =
|
|
427
|
+
const focusables = domQuery.getFocusables(contentEl);
|
|
464
428
|
if (focusables.length > 0) {
|
|
465
429
|
contentEl.removeAttribute("tabindex");
|
|
466
430
|
} else {
|
|
@@ -480,7 +444,7 @@ function machine(userContext) {
|
|
|
480
444
|
const triggerEl = dom.getTriggerEl(ctx2, value);
|
|
481
445
|
if (!triggerEl) return;
|
|
482
446
|
ctx2.indicatorState.rect = dom.getRectById(ctx2, value);
|
|
483
|
-
|
|
447
|
+
domQuery.nextTick(() => {
|
|
484
448
|
ctx2.indicatorState.transition = false;
|
|
485
449
|
});
|
|
486
450
|
},
|
|
@@ -493,20 +457,20 @@ function machine(userContext) {
|
|
|
493
457
|
if (!ctx2.indicatorState.rendered || !value) return;
|
|
494
458
|
const triggerEl = dom.getSelectedTriggerEl(ctx2);
|
|
495
459
|
if (!triggerEl) return;
|
|
496
|
-
ctx2.indicatorCleanup =
|
|
460
|
+
ctx2.indicatorCleanup = elementRect.trackElementRect(triggerEl, {
|
|
497
461
|
getRect(el) {
|
|
498
462
|
return dom.getOffsetRect(el);
|
|
499
463
|
},
|
|
500
464
|
onChange(rect) {
|
|
501
465
|
ctx2.indicatorState.rect = dom.resolveRect(rect);
|
|
502
|
-
|
|
466
|
+
domQuery.nextTick(() => {
|
|
503
467
|
ctx2.indicatorState.transition = false;
|
|
504
468
|
});
|
|
505
469
|
}
|
|
506
470
|
});
|
|
507
471
|
},
|
|
508
472
|
clickIfLink(ctx2) {
|
|
509
|
-
|
|
473
|
+
domEvent.clickIfLink(dom.getSelectedTriggerEl(ctx2));
|
|
510
474
|
}
|
|
511
475
|
}
|
|
512
476
|
}
|
|
@@ -524,21 +488,17 @@ var invoke = {
|
|
|
524
488
|
};
|
|
525
489
|
var set = {
|
|
526
490
|
value: (ctx, value) => {
|
|
527
|
-
if (
|
|
491
|
+
if (utils.isEqual(value, ctx.value)) return;
|
|
528
492
|
ctx.value = value;
|
|
529
493
|
invoke.change(ctx);
|
|
530
494
|
},
|
|
531
495
|
focusedValue: (ctx, value) => {
|
|
532
|
-
if (
|
|
496
|
+
if (utils.isEqual(value, ctx.focusedValue)) return;
|
|
533
497
|
ctx.focusedValue = value;
|
|
534
498
|
invoke.focusChange(ctx);
|
|
535
499
|
}
|
|
536
500
|
};
|
|
537
|
-
|
|
538
|
-
// src/tabs.props.ts
|
|
539
|
-
var import_types = require("@zag-js/types");
|
|
540
|
-
var import_utils3 = require("@zag-js/utils");
|
|
541
|
-
var props = (0, import_types.createProps)()([
|
|
501
|
+
var props = types.createProps()([
|
|
542
502
|
"activationMode",
|
|
543
503
|
"composite",
|
|
544
504
|
"dir",
|
|
@@ -550,23 +510,21 @@ var props = (0, import_types.createProps)()([
|
|
|
550
510
|
"onValueChange",
|
|
551
511
|
"orientation",
|
|
552
512
|
"translations",
|
|
513
|
+
"deselectable",
|
|
553
514
|
"value"
|
|
554
515
|
]);
|
|
555
|
-
var splitProps =
|
|
556
|
-
var triggerProps =
|
|
557
|
-
var splitTriggerProps =
|
|
558
|
-
var contentProps =
|
|
559
|
-
var splitContentProps =
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
triggerProps
|
|
571
|
-
});
|
|
572
|
-
//# sourceMappingURL=index.js.map
|
|
516
|
+
var splitProps = utils.createSplitProps(props);
|
|
517
|
+
var triggerProps = types.createProps()(["disabled", "value"]);
|
|
518
|
+
var splitTriggerProps = utils.createSplitProps(triggerProps);
|
|
519
|
+
var contentProps = types.createProps()(["value"]);
|
|
520
|
+
var splitContentProps = utils.createSplitProps(contentProps);
|
|
521
|
+
|
|
522
|
+
exports.anatomy = anatomy;
|
|
523
|
+
exports.connect = connect;
|
|
524
|
+
exports.contentProps = contentProps;
|
|
525
|
+
exports.machine = machine;
|
|
526
|
+
exports.props = props;
|
|
527
|
+
exports.splitContentProps = splitContentProps;
|
|
528
|
+
exports.splitProps = splitProps;
|
|
529
|
+
exports.splitTriggerProps = splitTriggerProps;
|
|
530
|
+
exports.triggerProps = triggerProps;
|
package/dist/index.mjs
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
+
import { createAnatomy } from '@zag-js/anatomy';
|
|
2
|
+
import { getEventKey, clickIfLink } from '@zag-js/dom-event';
|
|
3
|
+
import { createScope, queryAll, nextById, prevById, itemById, dataAttr, isSelfTarget, isComposingEvent, isSafari, raf, getFocusables, nextTick } from '@zag-js/dom-query';
|
|
4
|
+
import { first, last, createSplitProps, compact, isEqual } from '@zag-js/utils';
|
|
5
|
+
import { createMachine, guards } from '@zag-js/core';
|
|
6
|
+
import { trackElementRect } from '@zag-js/element-rect';
|
|
7
|
+
import { createProps } from '@zag-js/types';
|
|
8
|
+
|
|
1
9
|
// src/tabs.anatomy.ts
|
|
2
|
-
import { createAnatomy } from "@zag-js/anatomy";
|
|
3
10
|
var anatomy = createAnatomy("tabs").parts("root", "list", "trigger", "content", "indicator");
|
|
4
11
|
var parts = anatomy.build();
|
|
5
|
-
|
|
6
|
-
// src/tabs.connect.ts
|
|
7
|
-
import { getEventKey } from "@zag-js/dom-event";
|
|
8
|
-
import { dataAttr, isComposingEvent, isSafari, isSelfTarget } from "@zag-js/dom-query";
|
|
9
|
-
|
|
10
|
-
// src/tabs.dom.ts
|
|
11
|
-
import { createScope, itemById, nextById, prevById, queryAll } from "@zag-js/dom-query";
|
|
12
|
-
import { first, last } from "@zag-js/utils";
|
|
13
12
|
var dom = createScope({
|
|
14
13
|
getRootId: (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`,
|
|
15
14
|
getListId: (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`,
|
|
@@ -238,13 +237,6 @@ function connect(state, send, normalize) {
|
|
|
238
237
|
}
|
|
239
238
|
};
|
|
240
239
|
}
|
|
241
|
-
|
|
242
|
-
// src/tabs.machine.ts
|
|
243
|
-
import { createMachine, guards } from "@zag-js/core";
|
|
244
|
-
import { clickIfLink } from "@zag-js/dom-event";
|
|
245
|
-
import { nextTick, raf, getFocusables } from "@zag-js/dom-query";
|
|
246
|
-
import { trackElementRect } from "@zag-js/element-rect";
|
|
247
|
-
import { compact, isEqual } from "@zag-js/utils";
|
|
248
240
|
var { not } = guards;
|
|
249
241
|
function machine(userContext) {
|
|
250
242
|
const ctx = compact(userContext);
|
|
@@ -371,7 +363,9 @@ function machine(userContext) {
|
|
|
371
363
|
},
|
|
372
364
|
selectFocusedTab(ctx2) {
|
|
373
365
|
raf(() => {
|
|
374
|
-
|
|
366
|
+
const nullable = ctx2.deselectable && ctx2.value === ctx2.focusedValue;
|
|
367
|
+
const value = nullable ? null : ctx2.focusedValue;
|
|
368
|
+
set.value(ctx2, value);
|
|
375
369
|
});
|
|
376
370
|
},
|
|
377
371
|
setFocusedValue(ctx2, evt) {
|
|
@@ -382,7 +376,9 @@ function machine(userContext) {
|
|
|
382
376
|
set.focusedValue(ctx2, null);
|
|
383
377
|
},
|
|
384
378
|
setValue(ctx2, evt) {
|
|
385
|
-
|
|
379
|
+
const nullable = ctx2.deselectable && ctx2.value === ctx2.focusedValue;
|
|
380
|
+
const value = nullable ? null : evt.value;
|
|
381
|
+
set.value(ctx2, value);
|
|
386
382
|
},
|
|
387
383
|
clearValue(ctx2) {
|
|
388
384
|
set.value(ctx2, null);
|
|
@@ -500,10 +496,6 @@ var set = {
|
|
|
500
496
|
invoke.focusChange(ctx);
|
|
501
497
|
}
|
|
502
498
|
};
|
|
503
|
-
|
|
504
|
-
// src/tabs.props.ts
|
|
505
|
-
import { createProps } from "@zag-js/types";
|
|
506
|
-
import { createSplitProps } from "@zag-js/utils";
|
|
507
499
|
var props = createProps()([
|
|
508
500
|
"activationMode",
|
|
509
501
|
"composite",
|
|
@@ -516,6 +508,7 @@ var props = createProps()([
|
|
|
516
508
|
"onValueChange",
|
|
517
509
|
"orientation",
|
|
518
510
|
"translations",
|
|
511
|
+
"deselectable",
|
|
519
512
|
"value"
|
|
520
513
|
]);
|
|
521
514
|
var splitProps = createSplitProps(props);
|
|
@@ -523,15 +516,5 @@ var triggerProps = createProps()(["disabled", "value"]);
|
|
|
523
516
|
var splitTriggerProps = createSplitProps(triggerProps);
|
|
524
517
|
var contentProps = createProps()(["value"]);
|
|
525
518
|
var splitContentProps = createSplitProps(contentProps);
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
connect,
|
|
529
|
-
contentProps,
|
|
530
|
-
machine,
|
|
531
|
-
props,
|
|
532
|
-
splitContentProps,
|
|
533
|
-
splitProps,
|
|
534
|
-
splitTriggerProps,
|
|
535
|
-
triggerProps
|
|
536
|
-
};
|
|
537
|
-
//# sourceMappingURL=index.mjs.map
|
|
519
|
+
|
|
520
|
+
export { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zag-js/tabs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"description": "Core logic for the tabs widget implemented as a state machine",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"js",
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
"repository": "https://github.com/chakra-ui/zag/tree/main/packages/tabs",
|
|
18
18
|
"sideEffects": false,
|
|
19
19
|
"files": [
|
|
20
|
-
"dist"
|
|
21
|
-
"src"
|
|
20
|
+
"dist"
|
|
22
21
|
],
|
|
23
22
|
"publishConfig": {
|
|
24
23
|
"access": "public"
|
|
@@ -27,13 +26,13 @@
|
|
|
27
26
|
"url": "https://github.com/chakra-ui/zag/issues"
|
|
28
27
|
},
|
|
29
28
|
"dependencies": {
|
|
30
|
-
"@zag-js/anatomy": "0.
|
|
31
|
-
"@zag-js/dom-query": "0.
|
|
32
|
-
"@zag-js/dom-event": "0.
|
|
33
|
-
"@zag-js/element-rect": "0.
|
|
34
|
-
"@zag-js/utils": "0.
|
|
35
|
-
"@zag-js/core": "0.
|
|
36
|
-
"@zag-js/types": "0.
|
|
29
|
+
"@zag-js/anatomy": "0.71.0",
|
|
30
|
+
"@zag-js/dom-query": "0.71.0",
|
|
31
|
+
"@zag-js/dom-event": "0.71.0",
|
|
32
|
+
"@zag-js/element-rect": "0.71.0",
|
|
33
|
+
"@zag-js/utils": "0.71.0",
|
|
34
|
+
"@zag-js/core": "0.71.0",
|
|
35
|
+
"@zag-js/types": "0.71.0"
|
|
37
36
|
},
|
|
38
37
|
"devDependencies": {
|
|
39
38
|
"clean-package": "2.2.0"
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/tabs.anatomy.ts","../src/tabs.connect.ts","../src/tabs.dom.ts","../src/tabs.machine.ts","../src/tabs.props.ts"],"sourcesContent":["export { anatomy } from \"./tabs.anatomy\"\nexport { connect } from \"./tabs.connect\"\nexport { machine } from \"./tabs.machine\"\nexport * from \"./tabs.props\"\nexport type {\n MachineApi as Api,\n ContentProps,\n UserDefinedContext as Context,\n ElementIds,\n FocusChangeDetails,\n IntlTranslations,\n Service,\n TriggerProps,\n ValueChangeDetails,\n} from \"./tabs.types\"\n","import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\")\nexport const parts = anatomy.build()\n","import { getEventKey, type EventKeyMap } from \"@zag-js/dom-event\"\nimport { dataAttr, isComposingEvent, isSafari, isSelfTarget } from \"@zag-js/dom-query\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { parts } from \"./tabs.anatomy\"\nimport { dom } from \"./tabs.dom\"\nimport type { MachineApi, Send, State, TriggerProps, TriggerState } from \"./tabs.types\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): MachineApi<T> {\n const translations = state.context.translations\n const focused = state.matches(\"focused\")\n\n const isVertical = state.context.orientation === \"vertical\"\n const isHorizontal = state.context.orientation === \"horizontal\"\n const composite = state.context.composite\n const indicator = state.context.indicatorState\n\n function getTriggerState(props: TriggerProps): TriggerState {\n return {\n selected: state.context.value === props.value,\n focused: state.context.focusedValue === props.value,\n disabled: !!props.disabled,\n }\n }\n\n return {\n value: state.context.value,\n focusedValue: state.context.focusedValue,\n setValue(value) {\n send({ type: \"SET_VALUE\", value })\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" })\n },\n setIndicatorRect(value) {\n const id = dom.getTriggerId(state.context, value)\n send({ type: \"SET_INDICATOR_RECT\", id })\n },\n syncTabIndex() {\n send(\"SYNC_TAB_INDEX\")\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" })\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" })\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" })\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" })\n },\n focus() {\n dom.getSelectedTriggerEl(state.context)?.focus()\n },\n\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: dom.getRootId(state.context),\n \"data-orientation\": state.context.orientation,\n \"data-focus\": dataAttr(focused),\n dir: state.context.dir,\n })\n },\n\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: dom.getListId(state.context),\n role: \"tablist\",\n dir: state.context.dir,\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": state.context.orientation,\n \"data-orientation\": state.context.orientation,\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return\n\n if (!isSelfTarget(event)) return\n if (isComposingEvent(event)) return\n\n const keyMap: EventKeyMap = {\n ArrowDown() {\n if (isHorizontal) return\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" })\n },\n ArrowUp() {\n if (isHorizontal) return\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" })\n },\n ArrowLeft() {\n if (isVertical) return\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" })\n },\n ArrowRight() {\n if (isVertical) return\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" })\n },\n Home() {\n send(\"HOME\")\n },\n End() {\n send(\"END\")\n },\n Enter() {\n send({ type: \"ENTER\" })\n },\n }\n\n let key = getEventKey(event, state.context)\n const exec = keyMap[key]\n\n if (exec) {\n event.preventDefault()\n exec(event)\n }\n },\n })\n },\n\n getTriggerState,\n\n getTriggerProps(props) {\n const { value, disabled } = props\n const triggerState = getTriggerState(props)\n\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: state.context.dir,\n \"data-orientation\": state.context.orientation,\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? dom.getContentId(state.context, value) : undefined,\n \"data-ownedby\": dom.getListId(state.context),\n \"data-ssr\": dataAttr(state.context.ssr),\n id: dom.getTriggerId(state.context, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value })\n },\n onBlur(event) {\n const target = event.relatedTarget as HTMLElement | null\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" })\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return\n if (disabled) return\n if (isSafari()) {\n event.currentTarget.focus()\n }\n send({ type: \"TAB_CLICK\", value })\n },\n })\n },\n\n getContentProps(props) {\n const { value } = props\n const selected = state.context.value === value\n return normalize.element({\n ...parts.content.attrs,\n dir: state.context.dir,\n id: dom.getContentId(state.context, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": dom.getTriggerId(state.context, value),\n role: \"tabpanel\",\n \"data-ownedby\": dom.getListId(state.context),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": state.context.orientation,\n hidden: !selected,\n })\n },\n\n getIndicatorProps() {\n return normalize.element({\n id: dom.getIndicatorId(state.context),\n ...parts.indicator.attrs,\n dir: state.context.dir,\n \"data-orientation\": state.context.orientation,\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicator.rect?.left,\n \"--top\": indicator.rect?.top,\n \"--width\": indicator.rect?.width,\n \"--height\": indicator.rect?.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicator.transition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\",\n },\n })\n },\n }\n}\n","import { createScope, itemById, nextById, prevById, queryAll } from \"@zag-js/dom-query\"\nimport { first, last } from \"@zag-js/utils\"\nimport type { MachineContext as Ctx } from \"./tabs.types\"\n\nexport const dom = createScope({\n getRootId: (ctx: Ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`,\n getListId: (ctx: Ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`,\n getContentId: (ctx: Ctx, id: string) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`,\n getTriggerId: (ctx: Ctx, id: string) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`,\n getIndicatorId: (ctx: Ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`,\n\n getListEl: (ctx: Ctx) => dom.getById(ctx, dom.getListId(ctx)),\n getContentEl: (ctx: Ctx, id: string) => dom.getById(ctx, dom.getContentId(ctx, id)),\n getTriggerEl: (ctx: Ctx, id: string) => dom.getById(ctx, dom.getTriggerId(ctx, id)),\n getIndicatorEl: (ctx: Ctx) => dom.getById(ctx, dom.getIndicatorId(ctx)),\n\n getElements: (ctx: Ctx) => {\n const ownerId = CSS.escape(dom.getListId(ctx))\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`\n return queryAll(dom.getListEl(ctx), selector)\n },\n\n getFirstTriggerEl: (ctx: Ctx) => first(dom.getElements(ctx)),\n getLastTriggerEl: (ctx: Ctx) => last(dom.getElements(ctx)),\n getNextTriggerEl: (ctx: Ctx, id: string) => nextById(dom.getElements(ctx), dom.getTriggerId(ctx, id), ctx.loopFocus),\n getPrevTriggerEl: (ctx: Ctx, id: string) => prevById(dom.getElements(ctx), dom.getTriggerId(ctx, id), ctx.loopFocus),\n getSelectedContentEl: (ctx: Ctx) => {\n if (!ctx.value) return\n return dom.getContentEl(ctx, ctx.value)\n },\n getSelectedTriggerEl: (ctx: Ctx) => {\n if (!ctx.value) return\n return dom.getTriggerEl(ctx, ctx.value)\n },\n\n getOffsetRect: (el: HTMLElement | undefined) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0,\n }\n },\n\n getRectById: (ctx: Ctx, id: string) => {\n const tab = itemById(dom.getElements(ctx), dom.getTriggerId(ctx, id))\n return dom.resolveRect(dom.getOffsetRect(tab))\n },\n\n resolveRect: (rect: Record<\"width\" | \"height\" | \"left\" | \"top\", number>) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`,\n }),\n})\n","import { createMachine, guards } from \"@zag-js/core\"\nimport { clickIfLink } from \"@zag-js/dom-event\"\nimport { nextTick, raf, getFocusables } from \"@zag-js/dom-query\"\nimport { trackElementRect } from \"@zag-js/element-rect\"\nimport { compact, isEqual } from \"@zag-js/utils\"\nimport { dom } from \"./tabs.dom\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./tabs.types\"\n\nconst { not } = guards\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n initial: \"idle\",\n\n context: {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n value: null,\n loopFocus: true,\n composite: true,\n ...ctx,\n focusedValue: ctx.value ?? null,\n ssr: true,\n indicatorState: {\n rendered: false,\n transition: false,\n rect: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" },\n },\n },\n\n watch: {\n value: [\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"clickIfLink\"],\n dir: [\"syncIndicatorRect\"],\n orientation: [\"syncIndicatorRect\"],\n },\n\n on: {\n SET_VALUE: {\n actions: \"setValue\",\n },\n CLEAR_VALUE: {\n actions: \"clearValue\",\n },\n SET_INDICATOR_RECT: {\n actions: \"setIndicatorRect\",\n },\n SYNC_TAB_INDEX: {\n actions: \"syncTabIndex\",\n },\n },\n\n created: [\"syncFocusedValue\"],\n\n entry: [\"checkRenderedElements\", \"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n\n exit: [\"cleanupObserver\"],\n\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: \"setFocusedValue\",\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"],\n },\n },\n },\n focused: {\n on: {\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"],\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"],\n },\n {\n actions: \"focusPrevTab\",\n },\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"],\n },\n {\n actions: \"focusNextTab\",\n },\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"],\n },\n {\n actions: \"focusFirstTab\",\n },\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"],\n },\n {\n actions: \"focusLastTab\",\n },\n ],\n ENTER: {\n guard: not(\"selectOnFocus\"),\n actions: \"selectFocusedTab\",\n },\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"],\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: \"clearFocusedValue\",\n },\n },\n },\n },\n },\n {\n guards: {\n selectOnFocus: (ctx) => ctx.activationMode === \"automatic\",\n },\n\n actions: {\n syncFocusedValue(ctx) {\n if (ctx.value != null && ctx.focusedValue == null) {\n ctx.focusedValue = ctx.value\n }\n },\n selectFocusedTab(ctx) {\n raf(() => {\n set.value(ctx, ctx.focusedValue)\n })\n },\n setFocusedValue(ctx, evt) {\n if (evt.value == null) return\n set.focusedValue(ctx, evt.value)\n },\n clearFocusedValue(ctx) {\n set.focusedValue(ctx, null)\n },\n setValue(ctx, evt) {\n set.value(ctx, evt.value)\n },\n clearValue(ctx) {\n set.value(ctx, null)\n },\n focusFirstTab(ctx) {\n raf(() => {\n dom.getFirstTriggerEl(ctx)?.focus()\n })\n },\n focusLastTab(ctx) {\n raf(() => {\n dom.getLastTriggerEl(ctx)?.focus()\n })\n },\n focusNextTab(ctx) {\n if (!ctx.focusedValue) return\n const triggerEl = dom.getNextTriggerEl(ctx, ctx.focusedValue)\n raf(() => {\n if (ctx.composite) {\n triggerEl?.focus()\n } else if (triggerEl?.dataset.value != null) {\n set.focusedValue(ctx, triggerEl.dataset.value)\n }\n })\n },\n focusPrevTab(ctx) {\n if (!ctx.focusedValue) return\n const triggerEl = dom.getPrevTriggerEl(ctx, ctx.focusedValue)\n raf(() => {\n if (ctx.composite) {\n triggerEl?.focus()\n } else if (triggerEl?.dataset.value != null) {\n set.focusedValue(ctx, triggerEl.dataset.value)\n }\n })\n },\n checkRenderedElements(ctx) {\n ctx.indicatorState.rendered = !!dom.getIndicatorEl(ctx)\n },\n syncTabIndex(ctx) {\n raf(() => {\n const contentEl = dom.getSelectedContentEl(ctx)\n if (!contentEl) return\n const focusables = getFocusables(contentEl)\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\")\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\")\n }\n })\n },\n cleanupObserver(ctx) {\n ctx.indicatorCleanup?.()\n },\n allowIndicatorTransition(ctx) {\n ctx.indicatorState.transition = true\n },\n setIndicatorRect(ctx, evt) {\n const value = evt.id ?? ctx.value\n if (!ctx.indicatorState.rendered || !value) return\n\n const triggerEl = dom.getTriggerEl(ctx, value)\n if (!triggerEl) return\n\n ctx.indicatorState.rect = dom.getRectById(ctx, value)\n nextTick(() => {\n ctx.indicatorState.transition = false\n })\n },\n syncSsr(ctx) {\n ctx.ssr = false\n },\n syncIndicatorRect(ctx) {\n ctx.indicatorCleanup?.()\n\n const value = ctx.value\n if (!ctx.indicatorState.rendered || !value) return\n\n const triggerEl = dom.getSelectedTriggerEl(ctx)\n if (!triggerEl) return\n\n ctx.indicatorCleanup = trackElementRect(triggerEl, {\n getRect(el) {\n return dom.getOffsetRect(el)\n },\n onChange(rect) {\n ctx.indicatorState.rect = dom.resolveRect(rect)\n nextTick(() => {\n ctx.indicatorState.transition = false\n })\n },\n })\n },\n clickIfLink(ctx) {\n clickIfLink(dom.getSelectedTriggerEl(ctx))\n },\n },\n },\n )\n}\n\nconst invoke = {\n change: (ctx: MachineContext) => {\n if (ctx.value == null) return\n ctx.onValueChange?.({ value: ctx.value })\n },\n focusChange: (ctx: MachineContext) => {\n if (ctx.focusedValue == null) return\n ctx.onFocusChange?.({ focusedValue: ctx.focusedValue })\n },\n}\n\nconst set = {\n value: (ctx: MachineContext, value: string | null) => {\n if (isEqual(value, ctx.value)) return\n ctx.value = value\n invoke.change(ctx)\n },\n focusedValue: (ctx: MachineContext, value: string | null) => {\n if (isEqual(value, ctx.focusedValue)) return\n ctx.focusedValue = value\n invoke.focusChange(ctx)\n },\n}\n","import { createProps } from \"@zag-js/types\"\nimport { createSplitProps } from \"@zag-js/utils\"\nimport type { ContentProps, TriggerProps, UserDefinedContext } from \"./tabs.types\"\n\nexport const props = createProps<UserDefinedContext>()([\n \"activationMode\",\n \"composite\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n])\n\nexport const splitProps = createSplitProps<Partial<UserDefinedContext>>(props)\n\nexport const triggerProps = createProps<TriggerProps>()([\"disabled\", \"value\"])\nexport const splitTriggerProps = createSplitProps<TriggerProps>(triggerProps)\n\nexport const contentProps = createProps<ContentProps>()([\"value\"])\nexport const splitContentProps = createSplitProps<ContentProps>(contentProps)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAA8B;AAEvB,IAAM,cAAU,8BAAc,MAAM,EAAE,MAAM,QAAQ,QAAQ,WAAW,WAAW,WAAW;AAC7F,IAAM,QAAQ,QAAQ,MAAM;;;ACHnC,uBAA8C;AAC9C,IAAAA,oBAAmE;;;ACDnE,uBAAoE;AACpE,mBAA4B;AAGrB,IAAM,UAAM,8BAAY;AAAA,EAC7B,WAAW,CAAC,QAAa,IAAI,KAAK,QAAQ,QAAQ,IAAI,EAAE;AAAA,EACxD,WAAW,CAAC,QAAa,IAAI,KAAK,QAAQ,QAAQ,IAAI,EAAE;AAAA,EACxD,cAAc,CAAC,KAAU,OAAe,IAAI,KAAK,WAAW,QAAQ,IAAI,EAAE,YAAY,EAAE;AAAA,EACxF,cAAc,CAAC,KAAU,OAAe,IAAI,KAAK,WAAW,QAAQ,IAAI,EAAE,YAAY,EAAE;AAAA,EACxF,gBAAgB,CAAC,QAAa,IAAI,KAAK,aAAa,QAAQ,IAAI,EAAE;AAAA,EAElE,WAAW,CAAC,QAAa,IAAI,QAAQ,KAAK,IAAI,UAAU,GAAG,CAAC;AAAA,EAC5D,cAAc,CAAC,KAAU,OAAe,IAAI,QAAQ,KAAK,IAAI,aAAa,KAAK,EAAE,CAAC;AAAA,EAClF,cAAc,CAAC,KAAU,OAAe,IAAI,QAAQ,KAAK,IAAI,aAAa,KAAK,EAAE,CAAC;AAAA,EAClF,gBAAgB,CAAC,QAAa,IAAI,QAAQ,KAAK,IAAI,eAAe,GAAG,CAAC;AAAA,EAEtE,aAAa,CAAC,QAAa;AACzB,UAAM,UAAU,IAAI,OAAO,IAAI,UAAU,GAAG,CAAC;AAC7C,UAAM,WAAW,4BAA4B,OAAO;AACpD,eAAO,2BAAS,IAAI,UAAU,GAAG,GAAG,QAAQ;AAAA,EAC9C;AAAA,EAEA,mBAAmB,CAAC,YAAa,oBAAM,IAAI,YAAY,GAAG,CAAC;AAAA,EAC3D,kBAAkB,CAAC,YAAa,mBAAK,IAAI,YAAY,GAAG,CAAC;AAAA,EACzD,kBAAkB,CAAC,KAAU,WAAe,2BAAS,IAAI,YAAY,GAAG,GAAG,IAAI,aAAa,KAAK,EAAE,GAAG,IAAI,SAAS;AAAA,EACnH,kBAAkB,CAAC,KAAU,WAAe,2BAAS,IAAI,YAAY,GAAG,GAAG,IAAI,aAAa,KAAK,EAAE,GAAG,IAAI,SAAS;AAAA,EACnH,sBAAsB,CAAC,QAAa;AAClC,QAAI,CAAC,IAAI,MAAO;AAChB,WAAO,IAAI,aAAa,KAAK,IAAI,KAAK;AAAA,EACxC;AAAA,EACA,sBAAsB,CAAC,QAAa;AAClC,QAAI,CAAC,IAAI,MAAO;AAChB,WAAO,IAAI,aAAa,KAAK,IAAI,KAAK;AAAA,EACxC;AAAA,EAEA,eAAe,CAAC,OAAgC;AAC9C,WAAO;AAAA,MACL,MAAM,IAAI,cAAc;AAAA,MACxB,KAAK,IAAI,aAAa;AAAA,MACtB,OAAO,IAAI,eAAe;AAAA,MAC1B,QAAQ,IAAI,gBAAgB;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,aAAa,CAAC,KAAU,OAAe;AACrC,UAAM,UAAM,2BAAS,IAAI,YAAY,GAAG,GAAG,IAAI,aAAa,KAAK,EAAE,CAAC;AACpE,WAAO,IAAI,YAAY,IAAI,cAAc,GAAG,CAAC;AAAA,EAC/C;AAAA,EAEA,aAAa,CAAC,UAA+D;AAAA,IAC3E,OAAO,GAAG,KAAK,KAAK;AAAA,IACpB,QAAQ,GAAG,KAAK,MAAM;AAAA,IACtB,MAAM,GAAG,KAAK,IAAI;AAAA,IAClB,KAAK,GAAG,KAAK,GAAG;AAAA,EAClB;AACF,CAAC;;;ADhDM,SAAS,QAA6B,OAAc,MAAY,WAA6C;AAClH,QAAM,eAAe,MAAM,QAAQ;AACnC,QAAM,UAAU,MAAM,QAAQ,SAAS;AAEvC,QAAM,aAAa,MAAM,QAAQ,gBAAgB;AACjD,QAAM,eAAe,MAAM,QAAQ,gBAAgB;AACnD,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,YAAY,MAAM,QAAQ;AAEhC,WAAS,gBAAgBC,QAAmC;AAC1D,WAAO;AAAA,MACL,UAAU,MAAM,QAAQ,UAAUA,OAAM;AAAA,MACxC,SAAS,MAAM,QAAQ,iBAAiBA,OAAM;AAAA,MAC9C,UAAU,CAAC,CAACA,OAAM;AAAA,IACpB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO,MAAM,QAAQ;AAAA,IACrB,cAAc,MAAM,QAAQ;AAAA,IAC5B,SAAS,OAAO;AACd,WAAK,EAAE,MAAM,aAAa,MAAM,CAAC;AAAA,IACnC;AAAA,IACA,aAAa;AACX,WAAK,EAAE,MAAM,cAAc,CAAC;AAAA,IAC9B;AAAA,IACA,iBAAiB,OAAO;AACtB,YAAM,KAAK,IAAI,aAAa,MAAM,SAAS,KAAK;AAChD,WAAK,EAAE,MAAM,sBAAsB,GAAG,CAAC;AAAA,IACzC;AAAA,IACA,eAAe;AACb,WAAK,gBAAgB;AAAA,IACvB;AAAA,IACA,WAAW,WAAW;AACpB,WAAK,EAAE,MAAM,aAAa,OAAO,WAAW,KAAK,aAAa,CAAC;AAC/D,WAAK,EAAE,MAAM,cAAc,KAAK,aAAa,CAAC;AAAA,IAChD;AAAA,IACA,WAAW,WAAW;AACpB,WAAK,EAAE,MAAM,aAAa,OAAO,WAAW,KAAK,aAAa,CAAC;AAC/D,WAAK,EAAE,MAAM,cAAc,KAAK,aAAa,CAAC;AAAA,IAChD;AAAA,IACA,QAAQ;AACN,UAAI,qBAAqB,MAAM,OAAO,GAAG,MAAM;AAAA,IACjD;AAAA,IAEA,eAAe;AACb,aAAO,UAAU,QAAQ;AAAA,QACvB,GAAG,MAAM,KAAK;AAAA,QACd,IAAI,IAAI,UAAU,MAAM,OAAO;AAAA,QAC/B,oBAAoB,MAAM,QAAQ;AAAA,QAClC,kBAAc,4BAAS,OAAO;AAAA,QAC9B,KAAK,MAAM,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,IAEA,eAAe;AACb,aAAO,UAAU,QAAQ;AAAA,QACvB,GAAG,MAAM,KAAK;AAAA,QACd,IAAI,IAAI,UAAU,MAAM,OAAO;AAAA,QAC/B,MAAM;AAAA,QACN,KAAK,MAAM,QAAQ;AAAA,QACnB,kBAAc,4BAAS,OAAO;AAAA,QAC9B,oBAAoB,MAAM,QAAQ;AAAA,QAClC,oBAAoB,MAAM,QAAQ;AAAA,QAClC,cAAc,cAAc;AAAA,QAC5B,UAAU,OAAO;AACf,cAAI,MAAM,iBAAkB;AAE5B,cAAI,KAAC,gCAAa,KAAK,EAAG;AAC1B,kBAAI,oCAAiB,KAAK,EAAG;AAE7B,gBAAM,SAAsB;AAAA,YAC1B,YAAY;AACV,kBAAI,aAAc;AAClB,mBAAK,EAAE,MAAM,cAAc,KAAK,YAAY,CAAC;AAAA,YAC/C;AAAA,YACA,UAAU;AACR,kBAAI,aAAc;AAClB,mBAAK,EAAE,MAAM,cAAc,KAAK,UAAU,CAAC;AAAA,YAC7C;AAAA,YACA,YAAY;AACV,kBAAI,WAAY;AAChB,mBAAK,EAAE,MAAM,cAAc,KAAK,YAAY,CAAC;AAAA,YAC/C;AAAA,YACA,aAAa;AACX,kBAAI,WAAY;AAChB,mBAAK,EAAE,MAAM,cAAc,KAAK,aAAa,CAAC;AAAA,YAChD;AAAA,YACA,OAAO;AACL,mBAAK,MAAM;AAAA,YACb;AAAA,YACA,MAAM;AACJ,mBAAK,KAAK;AAAA,YACZ;AAAA,YACA,QAAQ;AACN,mBAAK,EAAE,MAAM,QAAQ,CAAC;AAAA,YACxB;AAAA,UACF;AAEA,cAAI,UAAM,8BAAY,OAAO,MAAM,OAAO;AAC1C,gBAAM,OAAO,OAAO,GAAG;AAEvB,cAAI,MAAM;AACR,kBAAM,eAAe;AACrB,iBAAK,KAAK;AAAA,UACZ;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA;AAAA,IAEA,gBAAgBA,QAAO;AACrB,YAAM,EAAE,OAAO,SAAS,IAAIA;AAC5B,YAAM,eAAe,gBAAgBA,MAAK;AAE1C,aAAO,UAAU,OAAO;AAAA,QACtB,GAAG,MAAM,QAAQ;AAAA,QACjB,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,KAAK,MAAM,QAAQ;AAAA,QACnB,oBAAoB,MAAM,QAAQ;AAAA,QAClC,qBAAiB,4BAAS,QAAQ;AAAA,QAClC,iBAAiB;AAAA,QACjB,cAAc;AAAA,QACd,iBAAiB,aAAa;AAAA,QAC9B,qBAAiB,4BAAS,aAAa,QAAQ;AAAA,QAC/C,kBAAc,4BAAS,aAAa,OAAO;AAAA,QAC3C,iBAAiB,aAAa,WAAW,IAAI,aAAa,MAAM,SAAS,KAAK,IAAI;AAAA,QAClF,gBAAgB,IAAI,UAAU,MAAM,OAAO;AAAA,QAC3C,gBAAY,4BAAS,MAAM,QAAQ,GAAG;AAAA,QACtC,IAAI,IAAI,aAAa,MAAM,SAAS,KAAK;AAAA,QACzC,UAAU,aAAa,YAAY,YAAY,IAAI;AAAA,QACnD,UAAU;AACR,eAAK,EAAE,MAAM,aAAa,MAAM,CAAC;AAAA,QACnC;AAAA,QACA,OAAO,OAAO;AACZ,gBAAM,SAAS,MAAM;AACrB,cAAI,QAAQ,aAAa,MAAM,MAAM,OAAO;AAC1C,iBAAK,EAAE,MAAM,WAAW,CAAC;AAAA,UAC3B;AAAA,QACF;AAAA,QACA,QAAQ,OAAO;AACb,cAAI,MAAM,iBAAkB;AAC5B,cAAI,SAAU;AACd,kBAAI,4BAAS,GAAG;AACd,kBAAM,cAAc,MAAM;AAAA,UAC5B;AACA,eAAK,EAAE,MAAM,aAAa,MAAM,CAAC;AAAA,QACnC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,gBAAgBA,QAAO;AACrB,YAAM,EAAE,MAAM,IAAIA;AAClB,YAAM,WAAW,MAAM,QAAQ,UAAU;AACzC,aAAO,UAAU,QAAQ;AAAA,QACvB,GAAG,MAAM,QAAQ;AAAA,QACjB,KAAK,MAAM,QAAQ;AAAA,QACnB,IAAI,IAAI,aAAa,MAAM,SAAS,KAAK;AAAA,QACzC,UAAU,YAAY,IAAI;AAAA,QAC1B,mBAAmB,IAAI,aAAa,MAAM,SAAS,KAAK;AAAA,QACxD,MAAM;AAAA,QACN,gBAAgB,IAAI,UAAU,MAAM,OAAO;AAAA,QAC3C,qBAAiB,4BAAS,QAAQ;AAAA,QAClC,oBAAoB,MAAM,QAAQ;AAAA,QAClC,QAAQ,CAAC;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IAEA,oBAAoB;AAClB,aAAO,UAAU,QAAQ;AAAA,QACvB,IAAI,IAAI,eAAe,MAAM,OAAO;AAAA,QACpC,GAAG,MAAM,UAAU;AAAA,QACnB,KAAK,MAAM,QAAQ;AAAA,QACnB,oBAAoB,MAAM,QAAQ;AAAA,QAClC,OAAO;AAAA,UACL,yBAAyB;AAAA,UACzB,UAAU,UAAU,MAAM;AAAA,UAC1B,SAAS,UAAU,MAAM;AAAA,UACzB,WAAW,UAAU,MAAM;AAAA,UAC3B,YAAY,UAAU,MAAM;AAAA,UAC5B,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,oBAAoB;AAAA,UACpB,oBAAoB,UAAU,aAAa,sCAAsC;AAAA,UACjF,0BAA0B;AAAA,UAC1B,CAAC,eAAe,SAAS,KAAK,GAAG,eAAe,gBAAgB;AAAA,QAClE;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;AExMA,kBAAsC;AACtC,IAAAC,oBAA4B;AAC5B,IAAAC,oBAA6C;AAC7C,0BAAiC;AACjC,IAAAC,gBAAiC;AAIjC,IAAM,EAAE,IAAI,IAAI;AAET,SAAS,QAAQ,aAAiC;AACvD,QAAM,UAAM,uBAAQ,WAAW;AAC/B,aAAO;AAAA,IACL;AAAA,MACE,SAAS;AAAA,MAET,SAAS;AAAA,QACP,KAAK;AAAA,QACL,aAAa;AAAA,QACb,gBAAgB;AAAA,QAChB,OAAO;AAAA,QACP,WAAW;AAAA,QACX,WAAW;AAAA,QACX,GAAG;AAAA,QACH,cAAc,IAAI,SAAS;AAAA,QAC3B,KAAK;AAAA,QACL,gBAAgB;AAAA,UACd,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,MAAM,EAAE,MAAM,OAAO,KAAK,OAAO,OAAO,OAAO,QAAQ,MAAM;AAAA,QAC/D;AAAA,MACF;AAAA,MAEA,OAAO;AAAA,QACL,OAAO,CAAC,4BAA4B,qBAAqB,gBAAgB,aAAa;AAAA,QACtF,KAAK,CAAC,mBAAmB;AAAA,QACzB,aAAa,CAAC,mBAAmB;AAAA,MACnC;AAAA,MAEA,IAAI;AAAA,QACF,WAAW;AAAA,UACT,SAAS;AAAA,QACX;AAAA,QACA,aAAa;AAAA,UACX,SAAS;AAAA,QACX;AAAA,QACA,oBAAoB;AAAA,UAClB,SAAS;AAAA,QACX;AAAA,QACA,gBAAgB;AAAA,UACd,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MAEA,SAAS,CAAC,kBAAkB;AAAA,MAE5B,OAAO,CAAC,yBAAyB,qBAAqB,gBAAgB,SAAS;AAAA,MAE/E,MAAM,CAAC,iBAAiB;AAAA,MAExB,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,IAAI;AAAA,YACF,WAAW;AAAA,cACT,QAAQ;AAAA,cACR,SAAS;AAAA,YACX;AAAA,YACA,WAAW;AAAA,cACT,QAAQ;AAAA,cACR,SAAS,CAAC,mBAAmB,UAAU;AAAA,YACzC;AAAA,UACF;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,IAAI;AAAA,YACF,WAAW;AAAA,cACT,QAAQ;AAAA,cACR,SAAS,CAAC,mBAAmB,UAAU;AAAA,YACzC;AAAA,YACA,YAAY;AAAA,cACV;AAAA,gBACE,OAAO;AAAA,gBACP,SAAS,CAAC,gBAAgB,kBAAkB;AAAA,cAC9C;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,cACX;AAAA,YACF;AAAA,YACA,YAAY;AAAA,cACV;AAAA,gBACE,OAAO;AAAA,gBACP,SAAS,CAAC,gBAAgB,kBAAkB;AAAA,cAC9C;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,cACX;AAAA,YACF;AAAA,YACA,MAAM;AAAA,cACJ;AAAA,gBACE,OAAO;AAAA,gBACP,SAAS,CAAC,iBAAiB,kBAAkB;AAAA,cAC/C;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,cACX;AAAA,YACF;AAAA,YACA,KAAK;AAAA,cACH;AAAA,gBACE,OAAO;AAAA,gBACP,SAAS,CAAC,gBAAgB,kBAAkB;AAAA,cAC9C;AAAA,cACA;AAAA,gBACE,SAAS;AAAA,cACX;AAAA,YACF;AAAA,YACA,OAAO;AAAA,cACL,OAAO,IAAI,eAAe;AAAA,cAC1B,SAAS;AAAA,YACX;AAAA,YACA,WAAW;AAAA,cACT,SAAS,CAAC,iBAAiB;AAAA,YAC7B;AAAA,YACA,UAAU;AAAA,cACR,QAAQ;AAAA,cACR,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,QACN,eAAe,CAACC,SAAQA,KAAI,mBAAmB;AAAA,MACjD;AAAA,MAEA,SAAS;AAAA,QACP,iBAAiBA,MAAK;AACpB,cAAIA,KAAI,SAAS,QAAQA,KAAI,gBAAgB,MAAM;AACjD,YAAAA,KAAI,eAAeA,KAAI;AAAA,UACzB;AAAA,QACF;AAAA,QACA,iBAAiBA,MAAK;AACpB,qCAAI,MAAM;AACR,gBAAI,MAAMA,MAAKA,KAAI,YAAY;AAAA,UACjC,CAAC;AAAA,QACH;AAAA,QACA,gBAAgBA,MAAK,KAAK;AACxB,cAAI,IAAI,SAAS,KAAM;AACvB,cAAI,aAAaA,MAAK,IAAI,KAAK;AAAA,QACjC;AAAA,QACA,kBAAkBA,MAAK;AACrB,cAAI,aAAaA,MAAK,IAAI;AAAA,QAC5B;AAAA,QACA,SAASA,MAAK,KAAK;AACjB,cAAI,MAAMA,MAAK,IAAI,KAAK;AAAA,QAC1B;AAAA,QACA,WAAWA,MAAK;AACd,cAAI,MAAMA,MAAK,IAAI;AAAA,QACrB;AAAA,QACA,cAAcA,MAAK;AACjB,qCAAI,MAAM;AACR,gBAAI,kBAAkBA,IAAG,GAAG,MAAM;AAAA,UACpC,CAAC;AAAA,QACH;AAAA,QACA,aAAaA,MAAK;AAChB,qCAAI,MAAM;AACR,gBAAI,iBAAiBA,IAAG,GAAG,MAAM;AAAA,UACnC,CAAC;AAAA,QACH;AAAA,QACA,aAAaA,MAAK;AAChB,cAAI,CAACA,KAAI,aAAc;AACvB,gBAAM,YAAY,IAAI,iBAAiBA,MAAKA,KAAI,YAAY;AAC5D,qCAAI,MAAM;AACR,gBAAIA,KAAI,WAAW;AACjB,yBAAW,MAAM;AAAA,YACnB,WAAW,WAAW,QAAQ,SAAS,MAAM;AAC3C,kBAAI,aAAaA,MAAK,UAAU,QAAQ,KAAK;AAAA,YAC/C;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,aAAaA,MAAK;AAChB,cAAI,CAACA,KAAI,aAAc;AACvB,gBAAM,YAAY,IAAI,iBAAiBA,MAAKA,KAAI,YAAY;AAC5D,qCAAI,MAAM;AACR,gBAAIA,KAAI,WAAW;AACjB,yBAAW,MAAM;AAAA,YACnB,WAAW,WAAW,QAAQ,SAAS,MAAM;AAC3C,kBAAI,aAAaA,MAAK,UAAU,QAAQ,KAAK;AAAA,YAC/C;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,sBAAsBA,MAAK;AACzB,UAAAA,KAAI,eAAe,WAAW,CAAC,CAAC,IAAI,eAAeA,IAAG;AAAA,QACxD;AAAA,QACA,aAAaA,MAAK;AAChB,qCAAI,MAAM;AACR,kBAAM,YAAY,IAAI,qBAAqBA,IAAG;AAC9C,gBAAI,CAAC,UAAW;AAChB,kBAAM,iBAAa,iCAAc,SAAS;AAC1C,gBAAI,WAAW,SAAS,GAAG;AACzB,wBAAU,gBAAgB,UAAU;AAAA,YACtC,OAAO;AACL,wBAAU,aAAa,YAAY,GAAG;AAAA,YACxC;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,gBAAgBA,MAAK;AACnB,UAAAA,KAAI,mBAAmB;AAAA,QACzB;AAAA,QACA,yBAAyBA,MAAK;AAC5B,UAAAA,KAAI,eAAe,aAAa;AAAA,QAClC;AAAA,QACA,iBAAiBA,MAAK,KAAK;AACzB,gBAAM,QAAQ,IAAI,MAAMA,KAAI;AAC5B,cAAI,CAACA,KAAI,eAAe,YAAY,CAAC,MAAO;AAE5C,gBAAM,YAAY,IAAI,aAAaA,MAAK,KAAK;AAC7C,cAAI,CAAC,UAAW;AAEhB,UAAAA,KAAI,eAAe,OAAO,IAAI,YAAYA,MAAK,KAAK;AACpD,0CAAS,MAAM;AACb,YAAAA,KAAI,eAAe,aAAa;AAAA,UAClC,CAAC;AAAA,QACH;AAAA,QACA,QAAQA,MAAK;AACX,UAAAA,KAAI,MAAM;AAAA,QACZ;AAAA,QACA,kBAAkBA,MAAK;AACrB,UAAAA,KAAI,mBAAmB;AAEvB,gBAAM,QAAQA,KAAI;AAClB,cAAI,CAACA,KAAI,eAAe,YAAY,CAAC,MAAO;AAE5C,gBAAM,YAAY,IAAI,qBAAqBA,IAAG;AAC9C,cAAI,CAAC,UAAW;AAEhB,UAAAA,KAAI,uBAAmB,sCAAiB,WAAW;AAAA,YACjD,QAAQ,IAAI;AACV,qBAAO,IAAI,cAAc,EAAE;AAAA,YAC7B;AAAA,YACA,SAAS,MAAM;AACb,cAAAA,KAAI,eAAe,OAAO,IAAI,YAAY,IAAI;AAC9C,8CAAS,MAAM;AACb,gBAAAA,KAAI,eAAe,aAAa;AAAA,cAClC,CAAC;AAAA,YACH;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,YAAYA,MAAK;AACf,6CAAY,IAAI,qBAAqBA,IAAG,CAAC;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,SAAS;AAAA,EACb,QAAQ,CAAC,QAAwB;AAC/B,QAAI,IAAI,SAAS,KAAM;AACvB,QAAI,gBAAgB,EAAE,OAAO,IAAI,MAAM,CAAC;AAAA,EAC1C;AAAA,EACA,aAAa,CAAC,QAAwB;AACpC,QAAI,IAAI,gBAAgB,KAAM;AAC9B,QAAI,gBAAgB,EAAE,cAAc,IAAI,aAAa,CAAC;AAAA,EACxD;AACF;AAEA,IAAM,MAAM;AAAA,EACV,OAAO,CAAC,KAAqB,UAAyB;AACpD,YAAI,uBAAQ,OAAO,IAAI,KAAK,EAAG;AAC/B,QAAI,QAAQ;AACZ,WAAO,OAAO,GAAG;AAAA,EACnB;AAAA,EACA,cAAc,CAAC,KAAqB,UAAyB;AAC3D,YAAI,uBAAQ,OAAO,IAAI,YAAY,EAAG;AACtC,QAAI,eAAe;AACnB,WAAO,YAAY,GAAG;AAAA,EACxB;AACF;;;ACtRA,mBAA4B;AAC5B,IAAAC,gBAAiC;AAG1B,IAAM,YAAQ,0BAAgC,EAAE;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,iBAAa,gCAA8C,KAAK;AAEtE,IAAM,mBAAe,0BAA0B,EAAE,CAAC,YAAY,OAAO,CAAC;AACtE,IAAM,wBAAoB,gCAA+B,YAAY;AAErE,IAAM,mBAAe,0BAA0B,EAAE,CAAC,OAAO,CAAC;AAC1D,IAAM,wBAAoB,gCAA+B,YAAY;","names":["import_dom_query","props","import_dom_event","import_dom_query","import_utils","ctx","import_utils"]}
|