@zag-js/tabs 0.0.0-dev-20220413175519 → 0.0.0-dev-20220415160434

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.js CHANGED
@@ -1,7 +1,5 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
@@ -18,7 +16,6 @@ var __spreadValues = (a, b) => {
18
16
  }
19
17
  return a;
20
18
  };
21
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
19
  var __export = (target, all) => {
23
20
  for (var name in all)
24
21
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -41,101 +38,47 @@ __export(src_exports, {
41
38
  });
42
39
  module.exports = __toCommonJS(src_exports);
43
40
 
44
- // ../../utilities/dom/src/attrs.ts
41
+ // ../../utilities/dom/dist/index.mjs
45
42
  var dataAttr = (guard) => {
46
43
  return guard ? "" : void 0;
47
44
  };
48
-
49
- // ../../utilities/dom/src/computed-style.ts
50
- var styleCache = /* @__PURE__ */ new WeakMap();
51
- function getComputedStyle(el) {
45
+ function getStyleCache() {
46
+ ;
47
+ globalThis.__styleCache__ = globalThis.__styleCache__ || /* @__PURE__ */ new WeakMap();
48
+ return globalThis.__styleCache__;
49
+ }
50
+ function getComputedStyle2(el) {
52
51
  var _a;
53
52
  if (!el)
54
53
  return {};
55
- let style = styleCache.get(el);
54
+ const cache = getStyleCache();
55
+ let style = cache.get(el);
56
56
  if (!style) {
57
57
  const win = (_a = el == null ? void 0 : el.ownerDocument.defaultView) != null ? _a : window;
58
58
  style = win.getComputedStyle(el);
59
- styleCache.set(el, style);
59
+ cache.set(el, style);
60
60
  }
61
61
  return style;
62
62
  }
63
-
64
- // ../../utilities/dom/src/next-tick.ts
65
63
  function nextTick(fn) {
66
64
  const set = /* @__PURE__ */ new Set();
67
- function raf(fn2) {
65
+ function raf2(fn2) {
68
66
  const id = globalThis.requestAnimationFrame(fn2);
69
67
  set.add(() => globalThis.cancelAnimationFrame(id));
70
68
  }
71
- raf(() => raf(fn));
69
+ raf2(() => raf2(fn));
72
70
  return function cleanup() {
73
71
  set.forEach(function(fn2) {
74
72
  fn2();
75
73
  });
76
74
  };
77
75
  }
78
-
79
- // ../../utilities/core/src/array.ts
80
- var first = (v) => v[0];
81
- var last = (v) => v[v.length - 1];
82
- function clear(v) {
83
- while (v.length > 0)
84
- v.pop();
85
- return v;
86
- }
87
-
88
- // ../../utilities/core/src/functions.ts
89
- var runIfFn = (v, ...a) => {
90
- const res = typeof v === "function" ? v(...a) : v;
91
- return res != null ? res : void 0;
92
- };
93
- var cast = (v) => v;
94
- var noop = () => {
95
- };
96
- var uuid = /* @__PURE__ */ (() => {
97
- let id = 0;
98
- return () => {
99
- id++;
100
- return id.toString(36);
101
- };
102
- })();
103
-
104
- // ../../utilities/core/src/guard.ts
105
- var ua = (v) => isDom() && v.test(navigator.userAgent);
106
- var isDom = () => !!(typeof window !== "undefined");
107
- var isSafari = () => ua(/^((?!chrome|android).)*safari/i);
108
- var isArray = (v) => Array.isArray(v);
109
- var isObject = (v) => !(v == null || typeof v !== "object" || isArray(v));
110
- var isNumber = (v) => typeof v === "number" && !Number.isNaN(v);
111
- var isString = (v) => typeof v === "string";
112
- var isFunction = (v) => typeof v === "function";
113
-
114
- // ../../utilities/core/src/warning.ts
115
- function warn(...a) {
116
- const m = a.length === 1 ? a[0] : a[1];
117
- const c = a.length === 2 ? a[0] : true;
118
- if (c && void 0 !== "production") {
119
- console.warn(m);
120
- }
121
- }
122
- function invariant(...a) {
123
- const m = a.length === 1 ? a[0] : a[1];
124
- const c = a.length === 2 ? a[0] : true;
125
- if (c && void 0 !== "production") {
126
- throw new Error(m);
127
- }
128
- }
129
-
130
- // ../../utilities/dom/src/query.ts
131
76
  function isHTMLElement(v) {
132
77
  return typeof v === "object" && (v == null ? void 0 : v.nodeType) === Node.ELEMENT_NODE && typeof (v == null ? void 0 : v.nodeName) === "string";
133
78
  }
134
79
  var isDisabled = (el) => {
135
80
  return (el == null ? void 0 : el.getAttribute("disabled")) != null || !!(el == null ? void 0 : el.getAttribute("aria-disabled")) === true;
136
81
  };
137
-
138
- // ../../utilities/dom/src/focusable.ts
139
82
  var focusableSelector = /* @__PURE__ */ [
140
83
  "input:not([disabled]):not([type=hidden])",
141
84
  "select:not([disabled])",
@@ -154,7 +97,7 @@ var focusableSelector = /* @__PURE__ */ [
154
97
  "details > summary:first-of-type"
155
98
  ].join(",");
156
99
  function isHidden(el, until) {
157
- const style = getComputedStyle(el);
100
+ const style = getComputedStyle2(el);
158
101
  if (!el || style.getPropertyValue("visibility") === "hidden")
159
102
  return true;
160
103
  while (el) {
@@ -180,8 +123,6 @@ var isFocusable = (el) => {
180
123
  return false;
181
124
  return el == null ? void 0 : el.matches(focusableSelector);
182
125
  };
183
-
184
- // ../../utilities/dom/src/keyboard-event.ts
185
126
  var rtlKeyMap = {
186
127
  ArrowLeft: "ArrowRight",
187
128
  ArrowRight: "ArrowLeft",
@@ -208,8 +149,6 @@ function getEventKey(event, options = {}) {
208
149
  }
209
150
  return key;
210
151
  }
211
-
212
- // ../../utilities/dom/src/nodelist.ts
213
152
  function queryAll(root, selector) {
214
153
  var _a;
215
154
  return Array.from((_a = root == null ? void 0 : root.querySelectorAll(selector)) != null ? _a : []);
@@ -234,12 +173,19 @@ function prevById(v, id, loop = true) {
234
173
  return v[idx];
235
174
  }
236
175
 
237
- // ../../types/src/prop-types.ts
176
+ // ../../types/dist/index.mjs
238
177
  function createNormalizer(fn) {
239
178
  return { button: fn, label: fn, input: fn, output: fn, element: fn };
240
179
  }
241
180
  var normalizeProp = createNormalizer((v) => v);
242
181
 
182
+ // ../../utilities/core/dist/index.mjs
183
+ var first = (v) => v[0];
184
+ var last = (v) => v[v.length - 1];
185
+ var ua = (v) => isDom() && v.test(navigator.userAgent);
186
+ var isDom = () => !!(typeof window !== "undefined");
187
+ var isSafari = () => ua(/^((?!chrome|android).)*safari/i);
188
+
243
189
  // src/tabs.dom.ts
244
190
  var dom = {
245
191
  getDoc: (ctx) => {
@@ -439,715 +385,10 @@ function connect(state, send, normalize = normalizeProp) {
439
385
  };
440
386
  }
441
387
 
442
- // ../../../node_modules/@zag-js/core/src/index.ts
443
- var import_vanilla3 = require("valtio/vanilla");
444
-
445
- // ../../core/src/action-utils.ts
446
- function isGuardHelper(value) {
447
- return isObject(value) && value.predicate != null;
448
- }
449
- function determineActionsFn(values, guardMap) {
450
- return (context, event) => {
451
- if (isGuardHelper(values))
452
- return values.predicate(guardMap != null ? guardMap : {})(context, event);
453
- return values;
454
- };
455
- }
456
-
457
- // ../../core/src/guard-utils.ts
458
- function or(...conditions) {
459
- return {
460
- predicate: (guards2) => (ctx, event) => conditions.map((condition) => {
461
- var _a;
462
- if (isString(condition)) {
463
- return !!((_a = guards2[condition]) == null ? void 0 : _a.call(guards2, ctx, event));
464
- }
465
- if (isFunction(condition)) {
466
- return condition(ctx, event);
467
- }
468
- return condition.predicate(guards2)(ctx, event);
469
- }).some(Boolean)
470
- };
471
- }
472
- function and(...conditions) {
473
- return {
474
- predicate: (guards2) => (ctx, event) => conditions.map((condition) => {
475
- var _a;
476
- if (isString(condition)) {
477
- return !!((_a = guards2[condition]) == null ? void 0 : _a.call(guards2, ctx, event));
478
- }
479
- if (isFunction(condition)) {
480
- return condition(ctx, event);
481
- }
482
- return condition.predicate(guards2)(ctx, event);
483
- }).every(Boolean)
484
- };
485
- }
486
- function not(condition) {
487
- return {
488
- predicate: (guardMap) => (ctx, event) => {
489
- var _a;
490
- if (isString(condition)) {
491
- return !((_a = guardMap[condition]) == null ? void 0 : _a.call(guardMap, ctx, event));
492
- }
493
- if (isFunction(condition)) {
494
- return !condition(ctx, event);
495
- }
496
- return !condition.predicate(guardMap)(ctx, event);
497
- }
498
- };
499
- }
500
- var guards = { or, and, not };
501
- function isGuardHelper2(value) {
502
- return isObject(value) && value.predicate != null;
503
- }
504
- var TruthyGuard = () => true;
505
- function determineGuardFn(guard, guardMap) {
506
- guard = guard != null ? guard : TruthyGuard;
507
- return (context, event) => {
508
- if (isString(guard)) {
509
- const value = guardMap == null ? void 0 : guardMap[guard];
510
- return isFunction(value) ? value(context, event) : value;
511
- }
512
- if (isGuardHelper2(guard)) {
513
- return guard.predicate(guardMap != null ? guardMap : {})(context, event);
514
- }
515
- return guard == null ? void 0 : guard(context, event);
516
- };
517
- }
518
-
519
- // ../../../node_modules/klona/json/index.mjs
520
- function klona(val) {
521
- var k, out, tmp;
522
- if (Array.isArray(val)) {
523
- out = Array(k = val.length);
524
- while (k--)
525
- out[k] = (tmp = val[k]) && typeof tmp === "object" ? klona(tmp) : tmp;
526
- return out;
527
- }
528
- if (Object.prototype.toString.call(val) === "[object Object]") {
529
- out = {};
530
- for (k in val) {
531
- if (k === "__proto__") {
532
- Object.defineProperty(out, k, {
533
- value: klona(val[k]),
534
- configurable: true,
535
- enumerable: true,
536
- writable: true
537
- });
538
- } else {
539
- out[k] = (tmp = val[k]) && typeof tmp === "object" ? klona(tmp) : tmp;
540
- }
541
- }
542
- return out;
543
- }
544
- return val;
545
- }
546
-
547
- // ../../core/src/machine.ts
548
- var import_utils11 = require("valtio/utils");
549
- var import_vanilla2 = require("valtio/vanilla");
550
-
551
- // ../../core/src/create-proxy.ts
552
- var import_vanilla = require("valtio/vanilla");
553
- function createProxy(config) {
554
- var _a;
555
- const state = (0, import_vanilla.proxy)({
556
- value: "",
557
- previousValue: "",
558
- event: cast({}),
559
- context: (_a = config.context) != null ? _a : cast({}),
560
- done: false,
561
- tags: [],
562
- hasTag(tag) {
563
- return this.tags.includes(tag);
564
- },
565
- matches(...value) {
566
- return value.includes(this.value);
567
- },
568
- can(event) {
569
- return cast(this).nextEvents.includes(event);
570
- },
571
- get nextEvents() {
572
- var _a2, _b, _c, _d;
573
- const stateEvents = (_c = (_b = (_a2 = config.states) == null ? void 0 : _a2[this.value]) == null ? void 0 : _b["on"]) != null ? _c : {};
574
- const globalEvents = (_d = config == null ? void 0 : config.on) != null ? _d : {};
575
- return Object.keys(__spreadValues(__spreadValues({}, stateEvents), globalEvents));
576
- },
577
- get changed() {
578
- if (this.event.value === "machine.init" /* Init */ || !this.previousValue)
579
- return false;
580
- return this.value !== this.previousValue;
581
- }
582
- });
583
- return cast(state);
584
- }
585
-
586
- // ../../core/src/delay-utils.ts
587
- function determineDelayFn(delay, delaysMap) {
588
- return (context, event) => {
589
- if (isNumber(delay))
590
- return delay;
591
- if (isFunction(delay)) {
592
- return delay(context, event);
593
- }
594
- if (isString(delay)) {
595
- const value = Number.parseFloat(delay);
596
- if (!Number.isNaN(value)) {
597
- return value;
598
- }
599
- if (delaysMap) {
600
- const valueOrFn = delaysMap == null ? void 0 : delaysMap[delay];
601
- if (valueOrFn == null) {
602
- const msg = `[machine] Cannot determine delay for ${delay}. It doesn't exist in options.delays`;
603
- throw new Error(msg);
604
- }
605
- return isFunction(valueOrFn) ? valueOrFn(context, event) : valueOrFn;
606
- }
607
- }
608
- };
609
- }
610
-
611
- // ../../core/src/utils.ts
612
- function toEvent(event) {
613
- const obj = isString(event) ? { type: event } : event;
614
- return obj;
615
- }
616
- function toArray(value) {
617
- if (!value)
618
- return [];
619
- return isArray(value) ? value : [value];
620
- }
621
-
622
- // ../../core/src/transition-utils.ts
623
- function toTarget(target) {
624
- return isString(target) ? { target } : target;
625
- }
626
- function determineTransitionFn(transitions, guardMap) {
627
- return (context, event) => {
628
- return toArray(transitions).map(toTarget).find((transition) => {
629
- var _a;
630
- const determineGuard = determineGuardFn(transition.guard, guardMap);
631
- const guard = determineGuard(context, event);
632
- return (_a = guard != null ? guard : transition.target) != null ? _a : transition.actions;
633
- });
634
- };
635
- }
636
- function toTransition(transition, current) {
637
- const _transition = isString(transition) ? toTarget(transition) : transition;
638
- const fn = (t) => {
639
- const isTargetless = t.actions && !t.target;
640
- if (isTargetless && current)
641
- t.target = current;
642
- return t;
643
- };
644
- if (isArray(_transition)) {
645
- return _transition.map(fn);
646
- }
647
- if (isObject(_transition)) {
648
- return fn(cast(_transition));
649
- }
650
- }
651
-
652
- // ../../core/src/machine.ts
653
- var Machine = class {
654
- constructor(config, options) {
655
- this.config = config;
656
- this.status = "Not Started" /* NotStarted */;
657
- this.type = "machine" /* Machine */;
658
- this.activityEvents = /* @__PURE__ */ new Map();
659
- this.delayedEvents = /* @__PURE__ */ new Map();
660
- this.stateListeners = /* @__PURE__ */ new Set();
661
- this.eventListeners = /* @__PURE__ */ new Set();
662
- this.doneListeners = /* @__PURE__ */ new Set();
663
- this.contextWatchers = /* @__PURE__ */ new Set();
664
- this.removeStateListener = noop;
665
- this.removeEventListener = noop;
666
- this.children = /* @__PURE__ */ new Map();
667
- this.start = (init) => {
668
- if (this.status === "Running" /* Running */) {
669
- return this;
670
- }
671
- this.status = "Running" /* Running */;
672
- const event = toEvent("machine.init" /* Init */);
673
- if (init) {
674
- const resolved = isObject(init) ? init : { context: this.config.context, value: init };
675
- this.setState(resolved.value);
676
- this.setContext(resolved.context);
677
- }
678
- const transition = {
679
- target: !!init ? void 0 : this.config.initial
680
- };
681
- const info = this.getNextStateInfo(transition, event);
682
- info.target = cast(info.target || transition.target);
683
- this.initialState = info;
684
- this.performStateChangeEffects(info.target, info, event);
685
- this.removeStateListener = (0, import_vanilla2.subscribe)(this.state, () => {
686
- this.stateListeners.forEach((listener) => {
687
- listener(this.stateSnapshot);
688
- });
689
- }, this.sync);
690
- this.removeEventListener = (0, import_utils11.subscribeKey)(this.state, "event", (value) => {
691
- if (this.config.onEvent) {
692
- this.executeActions(this.config.onEvent, value);
693
- }
694
- for (const listener of this.eventListeners) {
695
- listener(value);
696
- }
697
- });
698
- this.setupContextWatchers();
699
- this.executeActivities(toEvent("machine.start" /* Start */), toArray(this.config.activities), "machine.start" /* Start */);
700
- this.executeActions(this.config.entry, toEvent("machine.start" /* Start */));
701
- return this;
702
- };
703
- this.setupContextWatchers = () => {
704
- var _a;
705
- for (const [key, fn] of Object.entries((_a = this.config.watch) != null ? _a : {})) {
706
- this.contextWatchers.add((0, import_utils11.subscribeKey)(this.state.context, key, () => {
707
- this.executeActions(fn, this.state.event);
708
- }));
709
- }
710
- };
711
- this.setupComputed = () => {
712
- var _a;
713
- const computed = cast((_a = this.config.computed) != null ? _a : {});
714
- const deriveFns = Object.fromEntries(Object.entries(computed).map(([key, fn]) => [key, (get) => fn(get(this.state.context))]));
715
- (0, import_utils11.derive)(deriveFns, { proxy: this.state.context });
716
- };
717
- this.detachComputed = () => {
718
- (0, import_utils11.underive)(this.state.context, { delete: true });
719
- };
720
- this.stop = () => {
721
- if (this.status === "Stopped" /* Stopped */)
722
- return;
723
- this.setState(null);
724
- this.setEvent("machine.stop" /* Stop */);
725
- if (this.config.context) {
726
- this.setContext(this.config.context);
727
- }
728
- this.stopStateListeners();
729
- this.stopChildren();
730
- this.stopActivities();
731
- this.stopDelayedEvents();
732
- this.stopContextWatchers();
733
- this.stopEventListeners();
734
- this.detachComputed();
735
- this.status = "Stopped" /* Stopped */;
736
- this.executeActions(this.config.exit, toEvent("machine.stop" /* Stop */));
737
- return this;
738
- };
739
- this.stopEventListeners = () => {
740
- this.eventListeners.clear();
741
- this.removeEventListener();
742
- };
743
- this.stopStateListeners = () => {
744
- this.removeStateListener();
745
- this.stateListeners.clear();
746
- };
747
- this.stopContextWatchers = () => {
748
- this.contextWatchers.forEach((fn) => fn());
749
- this.contextWatchers.clear();
750
- };
751
- this.stopDelayedEvents = () => {
752
- this.delayedEvents.forEach((state) => {
753
- state.forEach((stop) => stop());
754
- });
755
- this.delayedEvents.clear();
756
- };
757
- this.stopActivities = (state) => {
758
- var _a, _b;
759
- if (state) {
760
- (_a = this.activityEvents.get(state)) == null ? void 0 : _a.forEach((stop) => stop());
761
- (_b = this.activityEvents.get(state)) == null ? void 0 : _b.clear();
762
- this.activityEvents.delete(state);
763
- } else {
764
- this.activityEvents.forEach((state2) => {
765
- state2.forEach((stop) => stop());
766
- state2.clear();
767
- });
768
- this.activityEvents.clear();
769
- }
770
- };
771
- this.sendChild = (evt, to) => {
772
- const event = toEvent(evt);
773
- const id = runIfFn(to, this.contextSnapshot);
774
- const child = this.children.get(id);
775
- if (!child) {
776
- invariant(`[machine/send-child] Cannot send '${event.type}' event to unknown child`);
777
- }
778
- child.send(event);
779
- };
780
- this.stopChild = (id) => {
781
- if (!this.children.has(id)) {
782
- invariant("[machine/stop-child] Cannot stop unknown child");
783
- }
784
- this.children.get(id).stop();
785
- this.children.delete(id);
786
- };
787
- this.removeChild = (id) => {
788
- this.children.delete(id);
789
- };
790
- this.stopChildren = () => {
791
- this.children.forEach((child) => child.stop());
792
- this.children.clear();
793
- };
794
- this.setParent = (parent) => {
795
- this.parent = parent;
796
- };
797
- this.spawn = (src, id) => {
798
- const actor = runIfFn(src);
799
- if (id)
800
- actor.id = id;
801
- actor.type = "machine.actor" /* Actor */;
802
- actor.setParent(this);
803
- this.children.set(actor.id, cast(actor));
804
- actor.onDone(() => {
805
- this.removeChild(actor.id);
806
- }).start();
807
- return cast((0, import_vanilla2.ref)(actor));
808
- };
809
- this.addActivityCleanup = (state, cleanup) => {
810
- var _a;
811
- if (!state)
812
- return;
813
- if (!this.activityEvents.has(state)) {
814
- this.activityEvents.set(state, /* @__PURE__ */ new Set([cleanup]));
815
- } else {
816
- (_a = this.activityEvents.get(state)) == null ? void 0 : _a.add(cleanup);
817
- }
818
- };
819
- this.setState = (target) => {
820
- this.state.previousValue = this.state.value;
821
- this.state.value = target;
822
- const stateNode = this.getStateNode(target);
823
- if (target == null) {
824
- clear(this.state.tags);
825
- } else {
826
- this.state.tags = toArray(stateNode == null ? void 0 : stateNode.tags);
827
- }
828
- };
829
- this.setContext = (context) => {
830
- for (const key in context) {
831
- this.state.context[key] = context[key];
832
- }
833
- };
834
- this.withContext = (context) => {
835
- this.detachComputed();
836
- const newContext = __spreadValues(__spreadValues({}, this.config.context), context);
837
- return new Machine(__spreadProps(__spreadValues({}, this.config), { context: newContext }), this.options);
838
- };
839
- this.withOptions = (options) => {
840
- this.detachComputed();
841
- return new Machine(this.config, __spreadValues(__spreadValues({}, this.options), options));
842
- };
843
- this.setActions = (actions) => {
844
- this.actionMap = __spreadValues(__spreadValues({}, this.actionMap), actions);
845
- };
846
- this.clone = () => {
847
- this.detachComputed();
848
- return new Machine(this.config, this.options);
849
- };
850
- this.getStateNode = (state) => {
851
- var _a;
852
- if (!state)
853
- return;
854
- return (_a = this.config.states) == null ? void 0 : _a[state];
855
- };
856
- this.getNextStateInfo = (transitions, event) => {
857
- var _a;
858
- const transition = this.determineTransition(transitions, event);
859
- const target = (_a = transition == null ? void 0 : transition.target) != null ? _a : this.state.value;
860
- const stateNode = this.getStateNode(target);
861
- return {
862
- transition,
863
- stateNode,
864
- target
865
- };
866
- };
867
- this.getActionFromDelayedTransition = (transition) => {
868
- const event = toEvent("machine.after" /* After */);
869
- const determineDelay = determineDelayFn(transition.delay, this.delayMap);
870
- const delay = determineDelay(this.contextSnapshot, event);
871
- let id;
872
- return {
873
- entry: () => {
874
- id = globalThis.setTimeout(() => {
875
- const current = this.state.value;
876
- const next = this.getNextStateInfo(transition, event);
877
- this.performStateChangeEffects(current, next, event);
878
- }, delay);
879
- },
880
- exit: () => {
881
- globalThis.clearTimeout(id);
882
- }
883
- };
884
- };
885
- this.getDelayedEventActions = (state) => {
886
- const stateNode = this.getStateNode(state);
887
- const event = toEvent("machine.after" /* After */);
888
- if (!stateNode || !stateNode.after)
889
- return;
890
- const entries = [];
891
- const exits = [];
892
- if (isArray(stateNode.after)) {
893
- const transition = this.determineTransition(stateNode.after, event);
894
- if (!transition)
895
- return;
896
- const actions = this.getActionFromDelayedTransition(transition);
897
- entries.push(actions.entry);
898
- exits.push(actions.exit);
899
- } else if (isObject(stateNode.after)) {
900
- for (const delay in stateNode.after) {
901
- const transition = stateNode.after[delay];
902
- let resolvedTransition = {};
903
- if (isArray(transition)) {
904
- const picked = this.determineTransition(transition, event);
905
- if (picked)
906
- resolvedTransition = picked;
907
- } else if (isString(transition)) {
908
- resolvedTransition = { target: transition, delay };
909
- } else {
910
- resolvedTransition = __spreadProps(__spreadValues({}, transition), { delay });
911
- }
912
- const actions = this.getActionFromDelayedTransition(resolvedTransition);
913
- entries.push(actions.entry);
914
- exits.push(actions.exit);
915
- }
916
- }
917
- return { entries, exits };
918
- };
919
- this.executeActions = (actions, event) => {
920
- var _a;
921
- const _actions = determineActionsFn(actions, this.guardMap)(this.contextSnapshot, event);
922
- for (const action of toArray(_actions)) {
923
- const fn = isString(action) ? (_a = this.actionMap) == null ? void 0 : _a[action] : action;
924
- warn(isString(action) && !fn, `[machine/exec-action] No implementation found for action: \`${action}\``);
925
- fn == null ? void 0 : fn(this.state.context, event, this.meta);
926
- }
927
- };
928
- this.executeActivities = (event, activities, state) => {
929
- var _a;
930
- for (const activity of activities) {
931
- const fn = isString(activity) ? (_a = this.activityMap) == null ? void 0 : _a[activity] : activity;
932
- if (!fn) {
933
- warn(`[machine/exec-activity] No implementation found for activity: \`${activity}\``);
934
- continue;
935
- }
936
- const cleanup = fn(this.state.context, event, this.meta);
937
- if (cleanup) {
938
- this.addActivityCleanup(state != null ? state : this.state.value, cleanup);
939
- }
940
- }
941
- };
942
- this.createEveryActivities = (every, callbackfn) => {
943
- if (!every)
944
- return;
945
- const event = toEvent("machine.every" /* Every */);
946
- if (isArray(every)) {
947
- const picked = toArray(every).find((t) => {
948
- const determineDelay2 = determineDelayFn(t.delay, this.delayMap);
949
- t.delay = determineDelay2(this.contextSnapshot, event);
950
- const determineGuard = determineGuardFn(t.guard, this.guardMap);
951
- const guard = determineGuard(this.contextSnapshot, event);
952
- return guard != null ? guard : t.delay;
953
- });
954
- if (!picked)
955
- return;
956
- const determineDelay = determineDelayFn(picked.delay, this.delayMap);
957
- const delay = determineDelay(this.contextSnapshot, event);
958
- const activity = () => {
959
- const id = globalThis.setInterval(() => {
960
- this.executeActions(picked.actions, event);
961
- }, delay);
962
- return () => {
963
- globalThis.clearInterval(id);
964
- };
965
- };
966
- callbackfn(activity);
967
- } else {
968
- for (const interval in every) {
969
- const actions = every == null ? void 0 : every[interval];
970
- const determineDelay = determineDelayFn(interval, this.delayMap);
971
- const delay = determineDelay(this.contextSnapshot, event);
972
- const activity = () => {
973
- const id = globalThis.setInterval(() => {
974
- this.executeActions(actions, event);
975
- }, delay);
976
- return () => {
977
- globalThis.clearInterval(id);
978
- };
979
- };
980
- callbackfn(activity);
981
- }
982
- }
983
- };
984
- this.setEvent = (event) => {
985
- this.state.event = (0, import_vanilla2.ref)(toEvent(event));
986
- };
987
- this.performExitEffects = (current, event) => {
988
- const currentState = this.state.value;
989
- const stateNode = current ? this.getStateNode(current) : void 0;
990
- this.stopActivities(currentState);
991
- const _exit = determineActionsFn(stateNode == null ? void 0 : stateNode.exit, this.guardMap)(this.contextSnapshot, event);
992
- const exitActions = toArray(_exit);
993
- const afterExitActions = this.delayedEvents.get(currentState);
994
- if (afterExitActions) {
995
- exitActions.push(...afterExitActions);
996
- }
997
- this.executeActions(exitActions, event);
998
- this.eventListeners.clear();
999
- };
1000
- this.performEntryEffects = (next, event) => {
1001
- const stateNode = this.getStateNode(next);
1002
- const activities = toArray(stateNode == null ? void 0 : stateNode.activities);
1003
- this.createEveryActivities(stateNode == null ? void 0 : stateNode.every, (activity) => {
1004
- activities.unshift(activity);
1005
- });
1006
- if (activities.length > 0) {
1007
- this.executeActivities(event, activities);
1008
- }
1009
- const _entry = determineActionsFn(stateNode == null ? void 0 : stateNode.entry, this.guardMap)(this.contextSnapshot, event);
1010
- const entryActions = toArray(_entry);
1011
- const afterActions = this.getDelayedEventActions(next);
1012
- if ((stateNode == null ? void 0 : stateNode.after) && afterActions) {
1013
- this.delayedEvents.set(next, afterActions == null ? void 0 : afterActions.exits);
1014
- entryActions.push(...afterActions.entries);
1015
- }
1016
- this.executeActions(entryActions, event);
1017
- if ((stateNode == null ? void 0 : stateNode.type) === "final") {
1018
- this.state.done = true;
1019
- this.doneListeners.forEach((listener) => {
1020
- listener(this.stateSnapshot);
1021
- });
1022
- this.stop();
1023
- }
1024
- };
1025
- this.performTransitionEffects = (transition, event) => {
1026
- const t = this.determineTransition(transition, event);
1027
- this.executeActions(t == null ? void 0 : t.actions, event);
1028
- };
1029
- this.performStateChangeEffects = (current, next, event) => {
1030
- var _a, _b;
1031
- this.setEvent(event);
1032
- next.target = (_b = (_a = next.target) != null ? _a : this.state.value) != null ? _b : void 0;
1033
- const ok = next.target && next.target !== this.state.value;
1034
- if (ok) {
1035
- this.performExitEffects(current, event);
1036
- }
1037
- this.performTransitionEffects(next == null ? void 0 : next.transition, event);
1038
- this.setState(next.target);
1039
- if (ok) {
1040
- this.performEntryEffects(next.target, event);
1041
- }
1042
- };
1043
- this.determineTransition = (transition, event) => {
1044
- const fn = determineTransitionFn(transition, this.guardMap);
1045
- return fn == null ? void 0 : fn(this.contextSnapshot, event);
1046
- };
1047
- this.sendParent = (evt) => {
1048
- var _a;
1049
- if (!this.parent) {
1050
- invariant("[machine/send-parent] Cannot send event to an unknown parent");
1051
- }
1052
- const event = toEvent(evt);
1053
- (_a = this.parent) == null ? void 0 : _a.send(event);
1054
- };
1055
- this.send = (evt) => {
1056
- const event = toEvent(evt);
1057
- this.transition(this.state.value, event);
1058
- };
1059
- this.transition = (state, evt) => {
1060
- var _a, _b, _c;
1061
- const stateNode = isString(state) ? this.getStateNode(state) : state == null ? void 0 : state.stateNode;
1062
- const event = toEvent(evt);
1063
- if (!stateNode && !this.config.on) {
1064
- const msg = this.status === "Stopped" /* Stopped */ ? "[machine/transition] Cannot transition a stopped machine" : "[machine/transition] State does not have a definition";
1065
- warn(msg);
1066
- return;
1067
- }
1068
- const transitionConfig = (_c = (_a = stateNode == null ? void 0 : stateNode.on) == null ? void 0 : _a[event.type]) != null ? _c : (_b = this.config.on) == null ? void 0 : _b[event.type];
1069
- const transition = toTransition(transitionConfig, this.state.value);
1070
- if (!transition)
1071
- return;
1072
- const info = this.getNextStateInfo(transition, event);
1073
- this.performStateChangeEffects(this.state.value, info, event);
1074
- return info.stateNode;
1075
- };
1076
- this.subscribe = (listener) => {
1077
- this.stateListeners.add(listener);
1078
- if (this.status === "Running" /* Running */) {
1079
- listener(this.stateSnapshot);
1080
- }
1081
- return () => {
1082
- this.stateListeners.delete(listener);
1083
- };
1084
- };
1085
- this.onDone = (listener) => {
1086
- this.doneListeners.add(listener);
1087
- return this;
1088
- };
1089
- this.onTransition = (listener) => {
1090
- this.stateListeners.add(listener);
1091
- if (this.status === "Running" /* Running */) {
1092
- listener(this.stateSnapshot);
1093
- }
1094
- return this;
1095
- };
1096
- this.onEvent = (listener) => {
1097
- listener(this.state.event);
1098
- this.eventListeners.add(listener);
1099
- return this;
1100
- };
1101
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
1102
- this.options = klona(options);
1103
- this.id = (_a = config.id) != null ? _a : `machine-${uuid()}`;
1104
- this.guardMap = (_c = (_b = this.options) == null ? void 0 : _b.guards) != null ? _c : {};
1105
- this.actionMap = (_e = (_d = this.options) == null ? void 0 : _d.actions) != null ? _e : {};
1106
- this.delayMap = (_g = (_f = this.options) == null ? void 0 : _f.delays) != null ? _g : {};
1107
- this.activityMap = (_i = (_h = this.options) == null ? void 0 : _h.activities) != null ? _i : {};
1108
- this.sync = (_k = (_j = this.options) == null ? void 0 : _j.sync) != null ? _k : false;
1109
- this.state = createProxy(klona(config));
1110
- this.setupComputed();
1111
- const event = toEvent("machine.created" /* Created */);
1112
- this.executeActions(config == null ? void 0 : config.created, event);
1113
- }
1114
- get stateSnapshot() {
1115
- return cast((0, import_vanilla2.snapshot)(this.state));
1116
- }
1117
- get contextSnapshot() {
1118
- return this.stateSnapshot.context;
1119
- }
1120
- get self() {
1121
- const _self = this;
1122
- return {
1123
- id: this.id,
1124
- send: this.send.bind(this),
1125
- sendParent: this.sendParent.bind(this),
1126
- sendChild: this.sendChild.bind(this),
1127
- stop: this.stop.bind(this),
1128
- stopChild: this.stopChild.bind(this),
1129
- spawn: this.spawn.bind(this),
1130
- get state() {
1131
- return _self.stateSnapshot;
1132
- }
1133
- };
1134
- }
1135
- get meta() {
1136
- return {
1137
- state: this.stateSnapshot,
1138
- guards: this.guardMap,
1139
- send: this.send.bind(this),
1140
- listen: this.onEvent.bind(this),
1141
- self: this.self,
1142
- getState: () => this.stateSnapshot
1143
- };
1144
- }
1145
- };
1146
- var createMachine = (config, options) => new Machine(config, options);
1147
-
1148
388
  // src/tabs.machine.ts
1149
- var { not: not2 } = guards;
1150
- var machine = createMachine({
389
+ var import_core = require("@zag-js/core");
390
+ var { not } = import_core.guards;
391
+ var machine = (0, import_core.createMachine)({
1151
392
  initial: "unknown",
1152
393
  context: {
1153
394
  dir: "ltr",
@@ -1232,7 +473,7 @@ var machine = createMachine({
1232
473
  actions: "focusLastTab"
1233
474
  },
1234
475
  ENTER: {
1235
- guard: not2("selectOnFocus"),
476
+ guard: not("selectOnFocus"),
1236
477
  actions: "setValue"
1237
478
  },
1238
479
  TAB_FOCUS: [
@@ -1259,7 +500,7 @@ var machine = createMachine({
1259
500
  setupDocument(ctx, evt) {
1260
501
  ctx.uid = evt.id;
1261
502
  if (evt.doc)
1262
- ctx.doc = (0, import_vanilla3.ref)(evt.doc);
503
+ ctx.doc = (0, import_core.ref)(evt.doc);
1263
504
  },
1264
505
  setFocusedValue(ctx, evt) {
1265
506
  ctx.focusedValue = evt.value;