@zag-js/splitter 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.js +36 -82
- package/dist/index.mjs +9 -30
- package/package.json +9 -10
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/src/index.ts +0 -14
- package/src/splitter.anatomy.ts +0 -5
- package/src/splitter.connect.ts +0 -179
- package/src/splitter.dom.ts +0 -61
- package/src/splitter.machine.ts +0 -285
- package/src/splitter.props.ts +0 -22
- package/src/splitter.types.ts +0 -156
- package/src/splitter.utils.ts +0 -143
package/dist/index.js
CHANGED
|
@@ -1,49 +1,16 @@
|
|
|
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
|
-
panelProps: () => panelProps,
|
|
27
|
-
props: () => props,
|
|
28
|
-
resizeTriggerProps: () => resizeTriggerProps,
|
|
29
|
-
splitPanelProps: () => splitPanelProps,
|
|
30
|
-
splitProps: () => splitProps,
|
|
31
|
-
splitResizeTriggerProps: () => splitResizeTriggerProps
|
|
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 core = require('@zag-js/core');
|
|
7
|
+
var utils = require('@zag-js/utils');
|
|
8
|
+
var types = require('@zag-js/types');
|
|
34
9
|
|
|
35
10
|
// src/splitter.anatomy.ts
|
|
36
|
-
var
|
|
37
|
-
var anatomy = (0, import_anatomy.createAnatomy)("splitter").parts("root", "panel", "resizeTrigger");
|
|
11
|
+
var anatomy = anatomy$1.createAnatomy("splitter").parts("root", "panel", "resizeTrigger");
|
|
38
12
|
var parts = anatomy.build();
|
|
39
|
-
|
|
40
|
-
// src/splitter.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/splitter.dom.ts
|
|
45
|
-
var import_dom_query = require("@zag-js/dom-query");
|
|
46
|
-
var dom = (0, import_dom_query.createScope)({
|
|
13
|
+
var dom = domQuery.createScope({
|
|
47
14
|
getRootId: (ctx) => ctx.ids?.root ?? `splitter:${ctx.id}`,
|
|
48
15
|
getResizeTriggerId: (ctx, id) => ctx.ids?.resizeTrigger?.(id) ?? `splitter:${ctx.id}:splitter:${id}`,
|
|
49
16
|
getLabelId: (ctx) => ctx.ids?.label ?? `splitter:${ctx.id}:label`,
|
|
@@ -75,7 +42,7 @@ var dom = (0, import_dom_query.createScope)({
|
|
|
75
42
|
},
|
|
76
43
|
getResizeTriggerEls(ctx) {
|
|
77
44
|
const ownerId = CSS.escape(dom.getRootId(ctx));
|
|
78
|
-
return
|
|
45
|
+
return domQuery.queryAll(dom.getRootEl(ctx), `[role=separator][data-ownedby='${ownerId}']`);
|
|
79
46
|
},
|
|
80
47
|
setupGlobalCursor(ctx) {
|
|
81
48
|
const styleEl = dom.getById(ctx, dom.getGlobalCursorId(ctx));
|
|
@@ -290,8 +257,8 @@ function connect(state, send, normalize) {
|
|
|
290
257
|
"data-orientation": state.context.orientation,
|
|
291
258
|
"aria-orientation": state.context.orientation,
|
|
292
259
|
"aria-controls": triggerState.panelIds.join(" "),
|
|
293
|
-
"data-focus":
|
|
294
|
-
"data-disabled":
|
|
260
|
+
"data-focus": domQuery.dataAttr(triggerState.focused),
|
|
261
|
+
"data-disabled": domQuery.dataAttr(disabled),
|
|
295
262
|
style: {
|
|
296
263
|
touchAction: "none",
|
|
297
264
|
userSelect: "none",
|
|
@@ -338,7 +305,7 @@ function connect(state, send, normalize) {
|
|
|
338
305
|
onKeyDown(event) {
|
|
339
306
|
if (event.defaultPrevented) return;
|
|
340
307
|
if (disabled) return;
|
|
341
|
-
const moveStep =
|
|
308
|
+
const moveStep = domEvent.getEventStep(event) * step;
|
|
342
309
|
const keyMap = {
|
|
343
310
|
Enter() {
|
|
344
311
|
send("ENTER");
|
|
@@ -362,7 +329,7 @@ function connect(state, send, normalize) {
|
|
|
362
329
|
send("END");
|
|
363
330
|
}
|
|
364
331
|
};
|
|
365
|
-
const key =
|
|
332
|
+
const key = domEvent.getEventKey(event, state.context);
|
|
366
333
|
const exec = keyMap[key];
|
|
367
334
|
if (exec) {
|
|
368
335
|
exec(event);
|
|
@@ -373,15 +340,9 @@ function connect(state, send, normalize) {
|
|
|
373
340
|
}
|
|
374
341
|
};
|
|
375
342
|
}
|
|
376
|
-
|
|
377
|
-
// src/splitter.machine.ts
|
|
378
|
-
var import_core = require("@zag-js/core");
|
|
379
|
-
var import_dom_event2 = require("@zag-js/dom-event");
|
|
380
|
-
var import_dom_query3 = require("@zag-js/dom-query");
|
|
381
|
-
var import_utils = require("@zag-js/utils");
|
|
382
343
|
function machine(userContext) {
|
|
383
|
-
const ctx =
|
|
384
|
-
return
|
|
344
|
+
const ctx = utils.compact(userContext);
|
|
345
|
+
return core.createMachine(
|
|
385
346
|
{
|
|
386
347
|
id: "splitter",
|
|
387
348
|
initial: "idle",
|
|
@@ -505,7 +466,7 @@ function machine(userContext) {
|
|
|
505
466
|
activities: {
|
|
506
467
|
trackPointerMove: (ctx2, _evt, { send }) => {
|
|
507
468
|
const doc = dom.getDoc(ctx2);
|
|
508
|
-
return
|
|
469
|
+
return domEvent.trackPointerMove(doc, {
|
|
509
470
|
onPointerMove(info) {
|
|
510
471
|
send({ type: "POINTER_MOVE", point: info.point });
|
|
511
472
|
},
|
|
@@ -592,12 +553,12 @@ function machine(userContext) {
|
|
|
592
553
|
ctx2.size[after.index].size = ctx2.initialSize[after.index].size;
|
|
593
554
|
},
|
|
594
555
|
focusResizeHandle(ctx2) {
|
|
595
|
-
|
|
556
|
+
domQuery.raf(() => {
|
|
596
557
|
dom.getActiveHandleEl(ctx2)?.focus({ preventScroll: true });
|
|
597
558
|
});
|
|
598
559
|
},
|
|
599
560
|
blurResizeHandle(ctx2) {
|
|
600
|
-
|
|
561
|
+
domQuery.raf(() => {
|
|
601
562
|
dom.getActiveHandleEl(ctx2)?.blur();
|
|
602
563
|
});
|
|
603
564
|
},
|
|
@@ -619,7 +580,7 @@ function machine(userContext) {
|
|
|
619
580
|
if (!panels || !bounds) return;
|
|
620
581
|
const rootEl = dom.getRootEl(ctx2);
|
|
621
582
|
if (!rootEl) return;
|
|
622
|
-
const relativePoint =
|
|
583
|
+
const relativePoint = domEvent.getRelativePoint(evt.point, rootEl);
|
|
623
584
|
const percentValue = relativePoint.getPercentValue({
|
|
624
585
|
dir: ctx2.dir,
|
|
625
586
|
orientation: ctx2.orientation
|
|
@@ -639,11 +600,7 @@ function machine(userContext) {
|
|
|
639
600
|
}
|
|
640
601
|
);
|
|
641
602
|
}
|
|
642
|
-
|
|
643
|
-
// src/splitter.props.ts
|
|
644
|
-
var import_types = require("@zag-js/types");
|
|
645
|
-
var import_utils2 = require("@zag-js/utils");
|
|
646
|
-
var props = (0, import_types.createProps)()([
|
|
603
|
+
var props = types.createProps()([
|
|
647
604
|
"dir",
|
|
648
605
|
"getRootNode",
|
|
649
606
|
"id",
|
|
@@ -653,21 +610,18 @@ var props = (0, import_types.createProps)()([
|
|
|
653
610
|
"orientation",
|
|
654
611
|
"size"
|
|
655
612
|
]);
|
|
656
|
-
var splitProps =
|
|
657
|
-
var panelProps =
|
|
658
|
-
var splitPanelProps =
|
|
659
|
-
var resizeTriggerProps =
|
|
660
|
-
var splitResizeTriggerProps =
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
splitResizeTriggerProps
|
|
672
|
-
});
|
|
673
|
-
//# sourceMappingURL=index.js.map
|
|
613
|
+
var splitProps = utils.createSplitProps(props);
|
|
614
|
+
var panelProps = types.createProps()(["id", "snapSize"]);
|
|
615
|
+
var splitPanelProps = utils.createSplitProps(panelProps);
|
|
616
|
+
var resizeTriggerProps = types.createProps()(["disabled", "id", "step"]);
|
|
617
|
+
var splitResizeTriggerProps = utils.createSplitProps(resizeTriggerProps);
|
|
618
|
+
|
|
619
|
+
exports.anatomy = anatomy;
|
|
620
|
+
exports.connect = connect;
|
|
621
|
+
exports.machine = machine;
|
|
622
|
+
exports.panelProps = panelProps;
|
|
623
|
+
exports.props = props;
|
|
624
|
+
exports.resizeTriggerProps = resizeTriggerProps;
|
|
625
|
+
exports.splitPanelProps = splitPanelProps;
|
|
626
|
+
exports.splitProps = splitProps;
|
|
627
|
+
exports.splitResizeTriggerProps = splitResizeTriggerProps;
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
+
import { createAnatomy } from '@zag-js/anatomy';
|
|
2
|
+
import { getEventStep, getEventKey, trackPointerMove, getRelativePoint } from '@zag-js/dom-event';
|
|
3
|
+
import { createScope, queryAll, dataAttr, raf } from '@zag-js/dom-query';
|
|
4
|
+
import { createMachine } from '@zag-js/core';
|
|
5
|
+
import { createSplitProps, compact } from '@zag-js/utils';
|
|
6
|
+
import { createProps } from '@zag-js/types';
|
|
7
|
+
|
|
1
8
|
// src/splitter.anatomy.ts
|
|
2
|
-
import { createAnatomy } from "@zag-js/anatomy";
|
|
3
9
|
var anatomy = createAnatomy("splitter").parts("root", "panel", "resizeTrigger");
|
|
4
10
|
var parts = anatomy.build();
|
|
5
|
-
|
|
6
|
-
// src/splitter.connect.ts
|
|
7
|
-
import { getEventKey, getEventStep } from "@zag-js/dom-event";
|
|
8
|
-
import { dataAttr } from "@zag-js/dom-query";
|
|
9
|
-
|
|
10
|
-
// src/splitter.dom.ts
|
|
11
|
-
import { createScope, queryAll } from "@zag-js/dom-query";
|
|
12
11
|
var dom = createScope({
|
|
13
12
|
getRootId: (ctx) => ctx.ids?.root ?? `splitter:${ctx.id}`,
|
|
14
13
|
getResizeTriggerId: (ctx, id) => ctx.ids?.resizeTrigger?.(id) ?? `splitter:${ctx.id}:splitter:${id}`,
|
|
@@ -339,12 +338,6 @@ function connect(state, send, normalize) {
|
|
|
339
338
|
}
|
|
340
339
|
};
|
|
341
340
|
}
|
|
342
|
-
|
|
343
|
-
// src/splitter.machine.ts
|
|
344
|
-
import { createMachine } from "@zag-js/core";
|
|
345
|
-
import { getRelativePoint, trackPointerMove } from "@zag-js/dom-event";
|
|
346
|
-
import { raf } from "@zag-js/dom-query";
|
|
347
|
-
import { compact } from "@zag-js/utils";
|
|
348
341
|
function machine(userContext) {
|
|
349
342
|
const ctx = compact(userContext);
|
|
350
343
|
return createMachine(
|
|
@@ -605,10 +598,6 @@ function machine(userContext) {
|
|
|
605
598
|
}
|
|
606
599
|
);
|
|
607
600
|
}
|
|
608
|
-
|
|
609
|
-
// src/splitter.props.ts
|
|
610
|
-
import { createProps } from "@zag-js/types";
|
|
611
|
-
import { createSplitProps } from "@zag-js/utils";
|
|
612
601
|
var props = createProps()([
|
|
613
602
|
"dir",
|
|
614
603
|
"getRootNode",
|
|
@@ -624,15 +613,5 @@ var panelProps = createProps()(["id", "snapSize"]);
|
|
|
624
613
|
var splitPanelProps = createSplitProps(panelProps);
|
|
625
614
|
var resizeTriggerProps = createProps()(["disabled", "id", "step"]);
|
|
626
615
|
var splitResizeTriggerProps = createSplitProps(resizeTriggerProps);
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
connect,
|
|
630
|
-
machine,
|
|
631
|
-
panelProps,
|
|
632
|
-
props,
|
|
633
|
-
resizeTriggerProps,
|
|
634
|
-
splitPanelProps,
|
|
635
|
-
splitProps,
|
|
636
|
-
splitResizeTriggerProps
|
|
637
|
-
};
|
|
638
|
-
//# sourceMappingURL=index.mjs.map
|
|
616
|
+
|
|
617
|
+
export { anatomy, connect, machine, panelProps, props, resizeTriggerProps, splitPanelProps, splitProps, splitResizeTriggerProps };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zag-js/splitter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"description": "Core logic for the splitter widget implemented as a state machine",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"js",
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
"repository": "https://github.com/chakra-ui/zag/tree/main/packages/splitter",
|
|
19
19
|
"sideEffects": false,
|
|
20
20
|
"files": [
|
|
21
|
-
"dist"
|
|
22
|
-
"src"
|
|
21
|
+
"dist"
|
|
23
22
|
],
|
|
24
23
|
"publishConfig": {
|
|
25
24
|
"access": "public"
|
|
@@ -28,13 +27,13 @@
|
|
|
28
27
|
"url": "https://github.com/chakra-ui/zag/issues"
|
|
29
28
|
},
|
|
30
29
|
"dependencies": {
|
|
31
|
-
"@zag-js/anatomy": "0.
|
|
32
|
-
"@zag-js/core": "0.
|
|
33
|
-
"@zag-js/types": "0.
|
|
34
|
-
"@zag-js/dom-query": "0.
|
|
35
|
-
"@zag-js/dom-event": "0.
|
|
36
|
-
"@zag-js/number-utils": "0.
|
|
37
|
-
"@zag-js/utils": "0.
|
|
30
|
+
"@zag-js/anatomy": "0.71.0",
|
|
31
|
+
"@zag-js/core": "0.71.0",
|
|
32
|
+
"@zag-js/types": "0.71.0",
|
|
33
|
+
"@zag-js/dom-query": "0.71.0",
|
|
34
|
+
"@zag-js/dom-event": "0.71.0",
|
|
35
|
+
"@zag-js/number-utils": "0.71.0",
|
|
36
|
+
"@zag-js/utils": "0.71.0"
|
|
38
37
|
},
|
|
39
38
|
"devDependencies": {
|
|
40
39
|
"clean-package": "2.2.0"
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/splitter.anatomy.ts","../src/splitter.connect.ts","../src/splitter.dom.ts","../src/splitter.utils.ts","../src/splitter.machine.ts","../src/splitter.props.ts"],"sourcesContent":["export { anatomy } from \"./splitter.anatomy\"\nexport { connect } from \"./splitter.connect\"\nexport { machine } from \"./splitter.machine\"\nexport * from \"./splitter.props\"\nexport type {\n MachineApi as Api,\n UserDefinedContext as Context,\n MachineState,\n PanelProps,\n PanelSizeData,\n ResizeTriggerProps,\n Service,\n SizeChangeDetails,\n} from \"./splitter.types\"\n","import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"splitter\").parts(\"root\", \"panel\", \"resizeTrigger\")\n\nexport const parts = anatomy.build()\n","import { getEventKey, getEventStep, type EventKeyMap } from \"@zag-js/dom-event\"\nimport { dataAttr } from \"@zag-js/dom-query\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { parts } from \"./splitter.anatomy\"\nimport { dom } from \"./splitter.dom\"\nimport type { MachineApi, ResizeTriggerProps, ResizeTriggerState, Send, State } from \"./splitter.types\"\nimport { getHandleBounds } from \"./splitter.utils\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): MachineApi<T> {\n const horizontal = state.context.isHorizontal\n const focused = state.hasTag(\"focus\")\n const dragging = state.matches(\"dragging\")\n const panels = state.context.panels\n\n function getResizeTriggerState(props: ResizeTriggerProps): ResizeTriggerState {\n const { id, disabled } = props\n const ids = id.split(\":\")\n const panelIds = ids.map((id) => dom.getPanelId(state.context, id))\n const panels = getHandleBounds(state.context, id)\n\n return {\n disabled: !!disabled,\n focused: state.context.activeResizeId === id && focused,\n panelIds,\n min: panels?.min,\n max: panels?.max,\n value: 0,\n }\n }\n\n return {\n focused: focused,\n dragging: dragging,\n getResizeTriggerState,\n bounds: getHandleBounds(state.context),\n setToMinSize(id) {\n const panel = panels.find((panel) => panel.id === id)\n send({ type: \"SET_PANEL_SIZE\", id, size: panel?.minSize, src: \"setToMinSize\" })\n },\n setToMaxSize(id) {\n const panel = panels.find((panel) => panel.id === id)\n send({ type: \"SET_PANEL_SIZE\", id, size: panel?.maxSize, src: \"setToMaxSize\" })\n },\n setSize(id, size) {\n send({ type: \"SET_PANEL_SIZE\", id, size })\n },\n\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n \"data-orientation\": state.context.orientation,\n id: dom.getRootId(state.context),\n dir: state.context.dir,\n style: {\n display: \"flex\",\n flexDirection: horizontal ? \"row\" : \"column\",\n height: \"100%\",\n width: \"100%\",\n overflow: \"hidden\",\n },\n })\n },\n\n getPanelProps(props) {\n const { id } = props\n return normalize.element({\n ...parts.panel.attrs,\n \"data-orientation\": state.context.orientation,\n dir: state.context.dir,\n id: dom.getPanelId(state.context, id),\n \"data-ownedby\": dom.getRootId(state.context),\n style: dom.getPanelStyle(state.context, id),\n })\n },\n\n getResizeTriggerProps(props) {\n const { id, disabled, step = 1 } = props\n const triggerState = getResizeTriggerState(props)\n\n return normalize.element({\n ...parts.resizeTrigger.attrs,\n dir: state.context.dir,\n id: dom.getResizeTriggerId(state.context, id),\n role: \"separator\",\n \"data-ownedby\": dom.getRootId(state.context),\n tabIndex: disabled ? undefined : 0,\n \"aria-valuenow\": triggerState.value,\n \"aria-valuemin\": triggerState.min,\n \"aria-valuemax\": triggerState.max,\n \"data-orientation\": state.context.orientation,\n \"aria-orientation\": state.context.orientation,\n \"aria-controls\": triggerState.panelIds.join(\" \"),\n \"data-focus\": dataAttr(triggerState.focused),\n \"data-disabled\": dataAttr(disabled),\n style: {\n touchAction: \"none\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n flex: \"0 0 auto\",\n pointerEvents: dragging && !triggerState.focused ? \"none\" : undefined,\n cursor: horizontal ? \"col-resize\" : \"row-resize\",\n [horizontal ? \"minHeight\" : \"minWidth\"]: \"0\",\n },\n onPointerDown(event) {\n if (disabled) {\n event.preventDefault()\n return\n }\n send({ type: \"POINTER_DOWN\", id })\n event.currentTarget.setPointerCapture(event.pointerId)\n event.preventDefault()\n event.stopPropagation()\n },\n onPointerUp(event) {\n if (disabled) return\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId)\n }\n },\n onPointerOver() {\n if (disabled) return\n send({ type: \"POINTER_OVER\", id })\n },\n onPointerLeave() {\n if (disabled) return\n send({ type: \"POINTER_LEAVE\", id })\n },\n onBlur() {\n send(\"BLUR\")\n },\n onFocus() {\n send({ type: \"FOCUS\", id })\n },\n onDoubleClick() {\n if (disabled) return\n send({ type: \"DOUBLE_CLICK\", id })\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return\n if (disabled) return\n\n const moveStep = getEventStep(event) * step\n\n const keyMap: EventKeyMap = {\n Enter() {\n send(\"ENTER\")\n },\n ArrowUp() {\n send({ type: \"ARROW_UP\", step: moveStep })\n },\n ArrowDown() {\n send({ type: \"ARROW_DOWN\", step: moveStep })\n },\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\", step: moveStep })\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\", step: moveStep })\n },\n Home() {\n send(\"HOME\")\n },\n End() {\n send(\"END\")\n },\n }\n\n const key = getEventKey(event, state.context)\n const exec = keyMap[key]\n\n if (exec) {\n exec(event)\n event.preventDefault()\n }\n },\n })\n },\n }\n}\n","import { createScope, queryAll } from \"@zag-js/dom-query\"\nimport type { JSX, Style } from \"@zag-js/types\"\nimport type { MachineContext as Ctx, PanelId } from \"./splitter.types\"\n\nexport const dom = createScope({\n getRootId: (ctx: Ctx) => ctx.ids?.root ?? `splitter:${ctx.id}`,\n getResizeTriggerId: (ctx: Ctx, id: string) => ctx.ids?.resizeTrigger?.(id) ?? `splitter:${ctx.id}:splitter:${id}`,\n getLabelId: (ctx: Ctx) => ctx.ids?.label ?? `splitter:${ctx.id}:label`,\n getPanelId: (ctx: Ctx, id: string | number) => ctx.ids?.panel?.(id) ?? `splitter:${ctx.id}:panel:${id}`,\n getGlobalCursorId: (ctx: Ctx) => `splitter:${ctx.id}:global-cursor`,\n\n getRootEl: (ctx: Ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getResizeTriggerEl: (ctx: Ctx, id: string) => dom.getById(ctx, dom.getResizeTriggerId(ctx, id)),\n getPanelEl: (ctx: Ctx, id: string | number) => dom.getById(ctx, dom.getPanelId(ctx, id)),\n\n getCursor(ctx: Ctx) {\n const x = ctx.isHorizontal\n let cursor: Style[\"cursor\"] = x ? \"col-resize\" : \"row-resize\"\n if (ctx.activeResizeState.isAtMin) cursor = x ? \"e-resize\" : \"s-resize\"\n if (ctx.activeResizeState.isAtMax) cursor = x ? \"w-resize\" : \"n-resize\"\n return cursor\n },\n\n getPanelStyle(ctx: Ctx, id: PanelId): JSX.CSSProperties {\n const flexGrow = ctx.panels.find((panel) => panel.id === id)?.size ?? \"0\"\n return {\n flexBasis: 0,\n flexGrow,\n flexShrink: 1,\n overflow: \"hidden\",\n }\n },\n\n getActiveHandleEl(ctx: Ctx) {\n const activeId = ctx.activeResizeId\n if (activeId == null) return\n return dom.getById(ctx, dom.getResizeTriggerId(ctx, activeId))\n },\n\n getResizeTriggerEls(ctx: Ctx) {\n const ownerId = CSS.escape(dom.getRootId(ctx))\n return queryAll(dom.getRootEl(ctx), `[role=separator][data-ownedby='${ownerId}']`)\n },\n\n setupGlobalCursor(ctx: Ctx) {\n const styleEl = dom.getById(ctx, dom.getGlobalCursorId(ctx))\n const textContent = `* { cursor: ${dom.getCursor(ctx)} !important; }`\n if (styleEl) {\n styleEl.textContent = textContent\n } else {\n const style = dom.getDoc(ctx).createElement(\"style\")\n style.id = dom.getGlobalCursorId(ctx)\n style.textContent = textContent\n dom.getDoc(ctx).head.appendChild(style)\n }\n },\n\n removeGlobalCursor(ctx: Ctx) {\n dom.getById(ctx, dom.getGlobalCursorId(ctx))?.remove()\n },\n})\n","import type { MachineContext as Ctx, NormalizedPanelData } from \"./splitter.types\"\n\nfunction validateSize(key: string, size: number) {\n if (Math.floor(size) > 100) {\n throw new Error(`Total ${key} of panels cannot be greater than 100`)\n }\n}\n\nexport function getNormalizedPanels(ctx: Ctx): NormalizedPanelData {\n let numOfPanelsWithoutSize = 0\n let totalSize = 0\n let totalMinSize = 0\n\n const panels = ctx.size.map((panel) => {\n const minSize = panel.minSize ?? 0\n const maxSize = panel.maxSize ?? 100\n\n totalMinSize += minSize\n\n if (panel.size == null) {\n numOfPanelsWithoutSize++\n } else {\n totalSize += panel.size\n }\n\n return {\n ...panel,\n minSize,\n maxSize,\n }\n })\n\n validateSize(\"minSize\", totalMinSize)\n validateSize(\"size\", totalSize)\n\n let end = 0\n let remainingSize = 0\n\n const result = panels.map((panel) => {\n let start = end\n\n if (panel.size != null) {\n end += panel.size\n remainingSize = panel.size - panel.minSize\n return {\n ...panel,\n start,\n end,\n remainingSize,\n }\n }\n\n const size = (100 - totalSize) / numOfPanelsWithoutSize\n end += size\n remainingSize = size - panel.minSize\n\n return { ...panel, size, start, end, remainingSize }\n })\n\n return result as NormalizedPanelData\n}\n\nexport function getHandlePanels(ctx: Ctx, id = ctx.activeResizeId) {\n const [beforeId, afterId] = id?.split(\":\") ?? []\n if (!beforeId || !afterId) return\n\n const beforeIndex = ctx.previousPanels.findIndex((panel) => panel.id === beforeId)\n const afterIndex = ctx.previousPanels.findIndex((panel) => panel.id === afterId)\n if (beforeIndex === -1 || afterIndex === -1) return\n\n const before = ctx.previousPanels[beforeIndex]\n const after = ctx.previousPanels[afterIndex]\n\n return {\n before: {\n ...before,\n index: beforeIndex,\n },\n after: {\n ...after,\n index: afterIndex,\n },\n }\n}\n\nexport function getHandleBounds(ctx: Ctx, id = ctx.activeResizeId) {\n const panels = getHandlePanels(ctx, id)\n if (!panels) return\n\n const { before, after } = panels\n\n return {\n min: Math.max(before.start + before.minSize, after.end - after.maxSize),\n max: Math.min(after.end - after.minSize, before.maxSize + before.start),\n }\n}\n\nexport function getPanelBounds(ctx: Ctx, id?: string | null) {\n const bounds = getHandleBounds(ctx, id)\n const panels = getHandlePanels(ctx, id)\n\n if (!bounds || !panels) return\n const { before, after } = panels\n\n const beforeMin = Math.abs(before.start - bounds.min)\n const afterMin = after.size + (before.size - beforeMin)\n\n const beforeMax = Math.abs(before.start - bounds.max)\n const afterMax = after.size - (beforeMax - before.size)\n\n return {\n before: {\n index: before.index,\n min: beforeMin,\n max: beforeMax,\n isAtMin: beforeMin === before.size,\n isAtMax: beforeMax === before.size,\n up(step: number) {\n return Math.min(before.size + step, beforeMax)\n },\n down(step: number) {\n return Math.max(before.size - step, beforeMin)\n },\n },\n after: {\n index: after.index,\n min: afterMin,\n max: afterMax,\n isAtMin: afterMin === after.size,\n isAtMax: afterMax === after.size,\n up(step: number) {\n return Math.min(after.size + step, afterMin)\n },\n down(step: number) {\n return Math.max(after.size - step, afterMax)\n },\n },\n }\n}\n\nexport function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n","import { createMachine } from \"@zag-js/core\"\nimport { getRelativePoint, trackPointerMove } from \"@zag-js/dom-event\"\nimport { raf } from \"@zag-js/dom-query\"\nimport { compact } from \"@zag-js/utils\"\nimport { dom } from \"./splitter.dom\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./splitter.types\"\nimport { clamp, getHandleBounds, getHandlePanels, getNormalizedPanels, getPanelBounds } from \"./splitter.utils\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"splitter\",\n initial: \"idle\",\n context: {\n orientation: \"horizontal\",\n activeResizeId: null,\n previousPanels: [],\n size: [],\n initialSize: [],\n activeResizeState: {\n isAtMin: false,\n isAtMax: false,\n },\n ...ctx,\n },\n\n created: [\"setPreviousPanels\", \"setInitialSize\"],\n\n watch: {\n size: [\"setActiveResizeState\"],\n },\n\n computed: {\n isHorizontal: (ctx) => ctx.orientation === \"horizontal\",\n panels: (ctx) => getNormalizedPanels(ctx),\n },\n\n on: {\n SET_PANEL_SIZE: {\n actions: \"setPanelSize\",\n },\n },\n states: {\n idle: {\n entry: [\"clearActiveHandleId\"],\n on: {\n POINTER_OVER: {\n target: \"hover:temp\",\n actions: [\"setActiveHandleId\"],\n },\n FOCUS: {\n target: \"focused\",\n actions: [\"setActiveHandleId\"],\n },\n DOUBLE_CLICK: {\n actions: [\"resetStartPanel\", \"setPreviousPanels\"],\n },\n },\n },\n\n \"hover:temp\": {\n after: {\n HOVER_DELAY: \"hover\",\n },\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setActiveHandleId\"],\n },\n POINTER_LEAVE: \"idle\",\n },\n },\n\n hover: {\n tags: [\"focus\"],\n on: {\n POINTER_DOWN: \"dragging\",\n POINTER_LEAVE: \"idle\",\n },\n },\n\n focused: {\n tags: [\"focus\"],\n on: {\n BLUR: \"idle\",\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setActiveHandleId\"],\n },\n ARROW_LEFT: {\n guard: \"isHorizontal\",\n actions: [\"shrinkStartPanel\", \"setPreviousPanels\"],\n },\n ARROW_RIGHT: {\n guard: \"isHorizontal\",\n actions: [\"expandStartPanel\", \"setPreviousPanels\"],\n },\n ARROW_UP: {\n guard: \"isVertical\",\n actions: [\"shrinkStartPanel\", \"setPreviousPanels\"],\n },\n ARROW_DOWN: {\n guard: \"isVertical\",\n actions: [\"expandStartPanel\", \"setPreviousPanels\"],\n },\n ENTER: [\n {\n guard: \"isStartPanelAtMax\",\n actions: [\"setStartPanelToMin\", \"setPreviousPanels\"],\n },\n { actions: [\"setStartPanelToMax\", \"setPreviousPanels\"] },\n ],\n HOME: {\n actions: [\"setStartPanelToMin\", \"setPreviousPanels\"],\n },\n END: {\n actions: [\"setStartPanelToMax\", \"setPreviousPanels\"],\n },\n },\n },\n\n dragging: {\n tags: [\"focus\"],\n entry: \"focusResizeHandle\",\n activities: [\"trackPointerMove\"],\n on: {\n POINTER_MOVE: {\n actions: [\"setPointerValue\", \"setGlobalCursor\", \"invokeOnResize\"],\n },\n POINTER_UP: {\n target: \"focused\",\n actions: [\"setPreviousPanels\", \"clearGlobalCursor\", \"blurResizeHandle\", \"invokeOnResizeEnd\"],\n },\n },\n },\n },\n },\n {\n activities: {\n trackPointerMove: (ctx, _evt, { send }) => {\n const doc = dom.getDoc(ctx)\n return trackPointerMove(doc, {\n onPointerMove(info) {\n send({ type: \"POINTER_MOVE\", point: info.point })\n },\n onPointerUp() {\n send(\"POINTER_UP\")\n },\n })\n },\n },\n guards: {\n isStartPanelAtMin: (ctx) => ctx.activeResizeState.isAtMin,\n isStartPanelAtMax: (ctx) => ctx.activeResizeState.isAtMax,\n isHorizontal: (ctx) => ctx.isHorizontal,\n isVertical: (ctx) => !ctx.isHorizontal,\n },\n delays: {\n HOVER_DELAY: 250,\n },\n actions: {\n setGlobalCursor(ctx) {\n dom.setupGlobalCursor(ctx)\n },\n clearGlobalCursor(ctx) {\n dom.removeGlobalCursor(ctx)\n },\n invokeOnResize(ctx) {\n ctx.onSizeChange?.({ size: Array.from(ctx.size), activeHandleId: ctx.activeResizeId })\n },\n invokeOnResizeEnd(ctx) {\n ctx.onSizeChangeEnd?.({ size: Array.from(ctx.size), activeHandleId: ctx.activeResizeId })\n },\n setActiveHandleId(ctx, evt) {\n ctx.activeResizeId = evt.id\n },\n clearActiveHandleId(ctx) {\n ctx.activeResizeId = null\n },\n setInitialSize(ctx) {\n ctx.initialSize = ctx.panels.slice().map((panel) => ({\n id: panel.id,\n size: panel.size,\n }))\n },\n setPanelSize(ctx, evt) {\n const { id, size } = evt\n ctx.size = ctx.size.map((panel) => {\n const panelSize = clamp(size, panel.minSize ?? 0, panel.maxSize ?? 100)\n return panel.id === id ? { ...panel, size: panelSize } : panel\n })\n },\n setStartPanelToMin(ctx) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.min\n ctx.size[after.index].size = after.min\n },\n setStartPanelToMax(ctx) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.max\n ctx.size[after.index].size = after.max\n },\n expandStartPanel(ctx, evt) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.up(evt.step)\n ctx.size[after.index].size = after.down(evt.step)\n },\n shrinkStartPanel(ctx, evt) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.down(evt.step)\n ctx.size[after.index].size = after.up(evt.step)\n },\n resetStartPanel(ctx, evt) {\n const bounds = getPanelBounds(ctx, evt.id)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = ctx.initialSize[before.index].size\n ctx.size[after.index].size = ctx.initialSize[after.index].size\n },\n focusResizeHandle(ctx) {\n raf(() => {\n dom.getActiveHandleEl(ctx)?.focus({ preventScroll: true })\n })\n },\n blurResizeHandle(ctx) {\n raf(() => {\n dom.getActiveHandleEl(ctx)?.blur()\n })\n },\n setPreviousPanels(ctx) {\n ctx.previousPanels = ctx.panels.slice()\n },\n setActiveResizeState(ctx) {\n const panels = getPanelBounds(ctx)\n if (!panels) return\n const { before } = panels\n ctx.activeResizeState = {\n isAtMin: before.isAtMin,\n isAtMax: before.isAtMax,\n }\n },\n setPointerValue(ctx, evt) {\n const panels = getHandlePanels(ctx)\n const bounds = getHandleBounds(ctx)\n\n if (!panels || !bounds) return\n\n const rootEl = dom.getRootEl(ctx)\n if (!rootEl) return\n\n const relativePoint = getRelativePoint(evt.point, rootEl)\n const percentValue = relativePoint.getPercentValue({\n dir: ctx.dir,\n orientation: ctx.orientation,\n })\n\n let pointValue = percentValue * 100\n\n // update active resize state here because we use `previousPanels` in the calculations\n ctx.activeResizeState = {\n isAtMin: pointValue < bounds.min,\n isAtMax: pointValue > bounds.max,\n }\n\n pointValue = clamp(pointValue, bounds.min, bounds.max)\n\n const { before, after } = panels\n\n const offset = pointValue - before.end\n ctx.size[before.index].size = before.size + offset\n ctx.size[after.index].size = after.size - offset\n },\n },\n },\n )\n}\n","import { createProps } from \"@zag-js/types\"\nimport { createSplitProps } from \"@zag-js/utils\"\nimport type { PanelProps, ResizeTriggerProps, UserDefinedContext } from \"./splitter.types\"\n\nexport const props = createProps<UserDefinedContext>()([\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"onSizeChange\",\n \"onSizeChangeEnd\",\n \"orientation\",\n \"size\",\n])\n\nexport const splitProps = createSplitProps<Partial<UserDefinedContext>>(props)\n\nexport const panelProps = createProps<PanelProps>()([\"id\", \"snapSize\"])\nexport const splitPanelProps = createSplitProps<PanelProps>(panelProps)\n\nexport const resizeTriggerProps = createProps<ResizeTriggerProps>()([\"disabled\", \"id\", \"step\"])\nexport const splitResizeTriggerProps = createSplitProps<ResizeTriggerProps>(resizeTriggerProps)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAA8B;AAEvB,IAAM,cAAU,8BAAc,UAAU,EAAE,MAAM,QAAQ,SAAS,eAAe;AAEhF,IAAM,QAAQ,QAAQ,MAAM;;;ACJnC,uBAA4D;AAC5D,IAAAA,oBAAyB;;;ACDzB,uBAAsC;AAI/B,IAAM,UAAM,8BAAY;AAAA,EAC7B,WAAW,CAAC,QAAa,IAAI,KAAK,QAAQ,YAAY,IAAI,EAAE;AAAA,EAC5D,oBAAoB,CAAC,KAAU,OAAe,IAAI,KAAK,gBAAgB,EAAE,KAAK,YAAY,IAAI,EAAE,aAAa,EAAE;AAAA,EAC/G,YAAY,CAAC,QAAa,IAAI,KAAK,SAAS,YAAY,IAAI,EAAE;AAAA,EAC9D,YAAY,CAAC,KAAU,OAAwB,IAAI,KAAK,QAAQ,EAAE,KAAK,YAAY,IAAI,EAAE,UAAU,EAAE;AAAA,EACrG,mBAAmB,CAAC,QAAa,YAAY,IAAI,EAAE;AAAA,EAEnD,WAAW,CAAC,QAAa,IAAI,QAAQ,KAAK,IAAI,UAAU,GAAG,CAAC;AAAA,EAC5D,oBAAoB,CAAC,KAAU,OAAe,IAAI,QAAQ,KAAK,IAAI,mBAAmB,KAAK,EAAE,CAAC;AAAA,EAC9F,YAAY,CAAC,KAAU,OAAwB,IAAI,QAAQ,KAAK,IAAI,WAAW,KAAK,EAAE,CAAC;AAAA,EAEvF,UAAU,KAAU;AAClB,UAAM,IAAI,IAAI;AACd,QAAI,SAA0B,IAAI,eAAe;AACjD,QAAI,IAAI,kBAAkB,QAAS,UAAS,IAAI,aAAa;AAC7D,QAAI,IAAI,kBAAkB,QAAS,UAAS,IAAI,aAAa;AAC7D,WAAO;AAAA,EACT;AAAA,EAEA,cAAc,KAAU,IAAgC;AACtD,UAAM,WAAW,IAAI,OAAO,KAAK,CAAC,UAAU,MAAM,OAAO,EAAE,GAAG,QAAQ;AACtE,WAAO;AAAA,MACL,WAAW;AAAA,MACX;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,kBAAkB,KAAU;AAC1B,UAAM,WAAW,IAAI;AACrB,QAAI,YAAY,KAAM;AACtB,WAAO,IAAI,QAAQ,KAAK,IAAI,mBAAmB,KAAK,QAAQ,CAAC;AAAA,EAC/D;AAAA,EAEA,oBAAoB,KAAU;AAC5B,UAAM,UAAU,IAAI,OAAO,IAAI,UAAU,GAAG,CAAC;AAC7C,eAAO,2BAAS,IAAI,UAAU,GAAG,GAAG,kCAAkC,OAAO,IAAI;AAAA,EACnF;AAAA,EAEA,kBAAkB,KAAU;AAC1B,UAAM,UAAU,IAAI,QAAQ,KAAK,IAAI,kBAAkB,GAAG,CAAC;AAC3D,UAAM,cAAc,eAAe,IAAI,UAAU,GAAG,CAAC;AACrD,QAAI,SAAS;AACX,cAAQ,cAAc;AAAA,IACxB,OAAO;AACL,YAAM,QAAQ,IAAI,OAAO,GAAG,EAAE,cAAc,OAAO;AACnD,YAAM,KAAK,IAAI,kBAAkB,GAAG;AACpC,YAAM,cAAc;AACpB,UAAI,OAAO,GAAG,EAAE,KAAK,YAAY,KAAK;AAAA,IACxC;AAAA,EACF;AAAA,EAEA,mBAAmB,KAAU;AAC3B,QAAI,QAAQ,KAAK,IAAI,kBAAkB,GAAG,CAAC,GAAG,OAAO;AAAA,EACvD;AACF,CAAC;;;AC1DD,SAAS,aAAa,KAAa,MAAc;AAC/C,MAAI,KAAK,MAAM,IAAI,IAAI,KAAK;AAC1B,UAAM,IAAI,MAAM,SAAS,GAAG,uCAAuC;AAAA,EACrE;AACF;AAEO,SAAS,oBAAoB,KAA+B;AACjE,MAAI,yBAAyB;AAC7B,MAAI,YAAY;AAChB,MAAI,eAAe;AAEnB,QAAM,SAAS,IAAI,KAAK,IAAI,CAAC,UAAU;AACrC,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,UAAU,MAAM,WAAW;AAEjC,oBAAgB;AAEhB,QAAI,MAAM,QAAQ,MAAM;AACtB;AAAA,IACF,OAAO;AACL,mBAAa,MAAM;AAAA,IACrB;AAEA,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AAED,eAAa,WAAW,YAAY;AACpC,eAAa,QAAQ,SAAS;AAE9B,MAAI,MAAM;AACV,MAAI,gBAAgB;AAEpB,QAAM,SAAS,OAAO,IAAI,CAAC,UAAU;AACnC,QAAI,QAAQ;AAEZ,QAAI,MAAM,QAAQ,MAAM;AACtB,aAAO,MAAM;AACb,sBAAgB,MAAM,OAAO,MAAM;AACnC,aAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,QAAQ,MAAM,aAAa;AACjC,WAAO;AACP,oBAAgB,OAAO,MAAM;AAE7B,WAAO,EAAE,GAAG,OAAO,MAAM,OAAO,KAAK,cAAc;AAAA,EACrD,CAAC;AAED,SAAO;AACT;AAEO,SAAS,gBAAgB,KAAU,KAAK,IAAI,gBAAgB;AACjE,QAAM,CAAC,UAAU,OAAO,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;AAC/C,MAAI,CAAC,YAAY,CAAC,QAAS;AAE3B,QAAM,cAAc,IAAI,eAAe,UAAU,CAAC,UAAU,MAAM,OAAO,QAAQ;AACjF,QAAM,aAAa,IAAI,eAAe,UAAU,CAAC,UAAU,MAAM,OAAO,OAAO;AAC/E,MAAI,gBAAgB,MAAM,eAAe,GAAI;AAE7C,QAAM,SAAS,IAAI,eAAe,WAAW;AAC7C,QAAM,QAAQ,IAAI,eAAe,UAAU;AAE3C,SAAO;AAAA,IACL,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,OAAO;AAAA,IACT;AAAA,IACA,OAAO;AAAA,MACL,GAAG;AAAA,MACH,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,SAAS,gBAAgB,KAAU,KAAK,IAAI,gBAAgB;AACjE,QAAM,SAAS,gBAAgB,KAAK,EAAE;AACtC,MAAI,CAAC,OAAQ;AAEb,QAAM,EAAE,QAAQ,MAAM,IAAI;AAE1B,SAAO;AAAA,IACL,KAAK,KAAK,IAAI,OAAO,QAAQ,OAAO,SAAS,MAAM,MAAM,MAAM,OAAO;AAAA,IACtE,KAAK,KAAK,IAAI,MAAM,MAAM,MAAM,SAAS,OAAO,UAAU,OAAO,KAAK;AAAA,EACxE;AACF;AAEO,SAAS,eAAe,KAAU,IAAoB;AAC3D,QAAM,SAAS,gBAAgB,KAAK,EAAE;AACtC,QAAM,SAAS,gBAAgB,KAAK,EAAE;AAEtC,MAAI,CAAC,UAAU,CAAC,OAAQ;AACxB,QAAM,EAAE,QAAQ,MAAM,IAAI;AAE1B,QAAM,YAAY,KAAK,IAAI,OAAO,QAAQ,OAAO,GAAG;AACpD,QAAM,WAAW,MAAM,QAAQ,OAAO,OAAO;AAE7C,QAAM,YAAY,KAAK,IAAI,OAAO,QAAQ,OAAO,GAAG;AACpD,QAAM,WAAW,MAAM,QAAQ,YAAY,OAAO;AAElD,SAAO;AAAA,IACL,QAAQ;AAAA,MACN,OAAO,OAAO;AAAA,MACd,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,cAAc,OAAO;AAAA,MAC9B,SAAS,cAAc,OAAO;AAAA,MAC9B,GAAG,MAAc;AACf,eAAO,KAAK,IAAI,OAAO,OAAO,MAAM,SAAS;AAAA,MAC/C;AAAA,MACA,KAAK,MAAc;AACjB,eAAO,KAAK,IAAI,OAAO,OAAO,MAAM,SAAS;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,OAAO,MAAM;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,aAAa,MAAM;AAAA,MAC5B,SAAS,aAAa,MAAM;AAAA,MAC5B,GAAG,MAAc;AACf,eAAO,KAAK,IAAI,MAAM,OAAO,MAAM,QAAQ;AAAA,MAC7C;AAAA,MACA,KAAK,MAAc;AACjB,eAAO,KAAK,IAAI,MAAM,OAAO,MAAM,QAAQ;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,MAAM,OAAe,KAAa,KAAa;AAC7D,SAAO,KAAK,IAAI,KAAK,IAAI,OAAO,GAAG,GAAG,GAAG;AAC3C;;;AFtIO,SAAS,QAA6B,OAAc,MAAY,WAA6C;AAClH,QAAM,aAAa,MAAM,QAAQ;AACjC,QAAM,UAAU,MAAM,OAAO,OAAO;AACpC,QAAM,WAAW,MAAM,QAAQ,UAAU;AACzC,QAAM,SAAS,MAAM,QAAQ;AAE7B,WAAS,sBAAsBC,QAA+C;AAC5E,UAAM,EAAE,IAAI,SAAS,IAAIA;AACzB,UAAM,MAAM,GAAG,MAAM,GAAG;AACxB,UAAM,WAAW,IAAI,IAAI,CAACC,QAAO,IAAI,WAAW,MAAM,SAASA,GAAE,CAAC;AAClE,UAAMC,UAAS,gBAAgB,MAAM,SAAS,EAAE;AAEhD,WAAO;AAAA,MACL,UAAU,CAAC,CAAC;AAAA,MACZ,SAAS,MAAM,QAAQ,mBAAmB,MAAM;AAAA,MAChD;AAAA,MACA,KAAKA,SAAQ;AAAA,MACb,KAAKA,SAAQ;AAAA,MACb,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,gBAAgB,MAAM,OAAO;AAAA,IACrC,aAAa,IAAI;AACf,YAAM,QAAQ,OAAO,KAAK,CAACC,WAAUA,OAAM,OAAO,EAAE;AACpD,WAAK,EAAE,MAAM,kBAAkB,IAAI,MAAM,OAAO,SAAS,KAAK,eAAe,CAAC;AAAA,IAChF;AAAA,IACA,aAAa,IAAI;AACf,YAAM,QAAQ,OAAO,KAAK,CAACA,WAAUA,OAAM,OAAO,EAAE;AACpD,WAAK,EAAE,MAAM,kBAAkB,IAAI,MAAM,OAAO,SAAS,KAAK,eAAe,CAAC;AAAA,IAChF;AAAA,IACA,QAAQ,IAAI,MAAM;AAChB,WAAK,EAAE,MAAM,kBAAkB,IAAI,KAAK,CAAC;AAAA,IAC3C;AAAA,IAEA,eAAe;AACb,aAAO,UAAU,QAAQ;AAAA,QACvB,GAAG,MAAM,KAAK;AAAA,QACd,oBAAoB,MAAM,QAAQ;AAAA,QAClC,IAAI,IAAI,UAAU,MAAM,OAAO;AAAA,QAC/B,KAAK,MAAM,QAAQ;AAAA,QACnB,OAAO;AAAA,UACL,SAAS;AAAA,UACT,eAAe,aAAa,QAAQ;AAAA,UACpC,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAEA,cAAcH,QAAO;AACnB,YAAM,EAAE,GAAG,IAAIA;AACf,aAAO,UAAU,QAAQ;AAAA,QACvB,GAAG,MAAM,MAAM;AAAA,QACf,oBAAoB,MAAM,QAAQ;AAAA,QAClC,KAAK,MAAM,QAAQ;AAAA,QACnB,IAAI,IAAI,WAAW,MAAM,SAAS,EAAE;AAAA,QACpC,gBAAgB,IAAI,UAAU,MAAM,OAAO;AAAA,QAC3C,OAAO,IAAI,cAAc,MAAM,SAAS,EAAE;AAAA,MAC5C,CAAC;AAAA,IACH;AAAA,IAEA,sBAAsBA,QAAO;AAC3B,YAAM,EAAE,IAAI,UAAU,OAAO,EAAE,IAAIA;AACnC,YAAM,eAAe,sBAAsBA,MAAK;AAEhD,aAAO,UAAU,QAAQ;AAAA,QACvB,GAAG,MAAM,cAAc;AAAA,QACvB,KAAK,MAAM,QAAQ;AAAA,QACnB,IAAI,IAAI,mBAAmB,MAAM,SAAS,EAAE;AAAA,QAC5C,MAAM;AAAA,QACN,gBAAgB,IAAI,UAAU,MAAM,OAAO;AAAA,QAC3C,UAAU,WAAW,SAAY;AAAA,QACjC,iBAAiB,aAAa;AAAA,QAC9B,iBAAiB,aAAa;AAAA,QAC9B,iBAAiB,aAAa;AAAA,QAC9B,oBAAoB,MAAM,QAAQ;AAAA,QAClC,oBAAoB,MAAM,QAAQ;AAAA,QAClC,iBAAiB,aAAa,SAAS,KAAK,GAAG;AAAA,QAC/C,kBAAc,4BAAS,aAAa,OAAO;AAAA,QAC3C,qBAAiB,4BAAS,QAAQ;AAAA,QAClC,OAAO;AAAA,UACL,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,kBAAkB;AAAA,UAClB,MAAM;AAAA,UACN,eAAe,YAAY,CAAC,aAAa,UAAU,SAAS;AAAA,UAC5D,QAAQ,aAAa,eAAe;AAAA,UACpC,CAAC,aAAa,cAAc,UAAU,GAAG;AAAA,QAC3C;AAAA,QACA,cAAc,OAAO;AACnB,cAAI,UAAU;AACZ,kBAAM,eAAe;AACrB;AAAA,UACF;AACA,eAAK,EAAE,MAAM,gBAAgB,GAAG,CAAC;AACjC,gBAAM,cAAc,kBAAkB,MAAM,SAAS;AACrD,gBAAM,eAAe;AACrB,gBAAM,gBAAgB;AAAA,QACxB;AAAA,QACA,YAAY,OAAO;AACjB,cAAI,SAAU;AACd,cAAI,MAAM,cAAc,kBAAkB,MAAM,SAAS,GAAG;AAC1D,kBAAM,cAAc,sBAAsB,MAAM,SAAS;AAAA,UAC3D;AAAA,QACF;AAAA,QACA,gBAAgB;AACd,cAAI,SAAU;AACd,eAAK,EAAE,MAAM,gBAAgB,GAAG,CAAC;AAAA,QACnC;AAAA,QACA,iBAAiB;AACf,cAAI,SAAU;AACd,eAAK,EAAE,MAAM,iBAAiB,GAAG,CAAC;AAAA,QACpC;AAAA,QACA,SAAS;AACP,eAAK,MAAM;AAAA,QACb;AAAA,QACA,UAAU;AACR,eAAK,EAAE,MAAM,SAAS,GAAG,CAAC;AAAA,QAC5B;AAAA,QACA,gBAAgB;AACd,cAAI,SAAU;AACd,eAAK,EAAE,MAAM,gBAAgB,GAAG,CAAC;AAAA,QACnC;AAAA,QACA,UAAU,OAAO;AACf,cAAI,MAAM,iBAAkB;AAC5B,cAAI,SAAU;AAEd,gBAAM,eAAW,+BAAa,KAAK,IAAI;AAEvC,gBAAM,SAAsB;AAAA,YAC1B,QAAQ;AACN,mBAAK,OAAO;AAAA,YACd;AAAA,YACA,UAAU;AACR,mBAAK,EAAE,MAAM,YAAY,MAAM,SAAS,CAAC;AAAA,YAC3C;AAAA,YACA,YAAY;AACV,mBAAK,EAAE,MAAM,cAAc,MAAM,SAAS,CAAC;AAAA,YAC7C;AAAA,YACA,YAAY;AACV,mBAAK,EAAE,MAAM,cAAc,MAAM,SAAS,CAAC;AAAA,YAC7C;AAAA,YACA,aAAa;AACX,mBAAK,EAAE,MAAM,eAAe,MAAM,SAAS,CAAC;AAAA,YAC9C;AAAA,YACA,OAAO;AACL,mBAAK,MAAM;AAAA,YACb;AAAA,YACA,MAAM;AACJ,mBAAK,KAAK;AAAA,YACZ;AAAA,UACF;AAEA,gBAAM,UAAM,8BAAY,OAAO,MAAM,OAAO;AAC5C,gBAAM,OAAO,OAAO,GAAG;AAEvB,cAAI,MAAM;AACR,iBAAK,KAAK;AACV,kBAAM,eAAe;AAAA,UACvB;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;AGlLA,kBAA8B;AAC9B,IAAAI,oBAAmD;AACnD,IAAAC,oBAAoB;AACpB,mBAAwB;AAKjB,SAAS,QAAQ,aAAiC;AACvD,QAAM,UAAM,sBAAQ,WAAW;AAC/B,aAAO;AAAA,IACL;AAAA,MACE,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,SAAS;AAAA,QACP,aAAa;AAAA,QACb,gBAAgB;AAAA,QAChB,gBAAgB,CAAC;AAAA,QACjB,MAAM,CAAC;AAAA,QACP,aAAa,CAAC;AAAA,QACd,mBAAmB;AAAA,UACjB,SAAS;AAAA,UACT,SAAS;AAAA,QACX;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MAEA,SAAS,CAAC,qBAAqB,gBAAgB;AAAA,MAE/C,OAAO;AAAA,QACL,MAAM,CAAC,sBAAsB;AAAA,MAC/B;AAAA,MAEA,UAAU;AAAA,QACR,cAAc,CAACC,SAAQA,KAAI,gBAAgB;AAAA,QAC3C,QAAQ,CAACA,SAAQ,oBAAoBA,IAAG;AAAA,MAC1C;AAAA,MAEA,IAAI;AAAA,QACF,gBAAgB;AAAA,UACd,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,QACN,MAAM;AAAA,UACJ,OAAO,CAAC,qBAAqB;AAAA,UAC7B,IAAI;AAAA,YACF,cAAc;AAAA,cACZ,QAAQ;AAAA,cACR,SAAS,CAAC,mBAAmB;AAAA,YAC/B;AAAA,YACA,OAAO;AAAA,cACL,QAAQ;AAAA,cACR,SAAS,CAAC,mBAAmB;AAAA,YAC/B;AAAA,YACA,cAAc;AAAA,cACZ,SAAS,CAAC,mBAAmB,mBAAmB;AAAA,YAClD;AAAA,UACF;AAAA,QACF;AAAA,QAEA,cAAc;AAAA,UACZ,OAAO;AAAA,YACL,aAAa;AAAA,UACf;AAAA,UACA,IAAI;AAAA,YACF,cAAc;AAAA,cACZ,QAAQ;AAAA,cACR,SAAS,CAAC,mBAAmB;AAAA,YAC/B;AAAA,YACA,eAAe;AAAA,UACjB;AAAA,QACF;AAAA,QAEA,OAAO;AAAA,UACL,MAAM,CAAC,OAAO;AAAA,UACd,IAAI;AAAA,YACF,cAAc;AAAA,YACd,eAAe;AAAA,UACjB;AAAA,QACF;AAAA,QAEA,SAAS;AAAA,UACP,MAAM,CAAC,OAAO;AAAA,UACd,IAAI;AAAA,YACF,MAAM;AAAA,YACN,cAAc;AAAA,cACZ,QAAQ;AAAA,cACR,SAAS,CAAC,mBAAmB;AAAA,YAC/B;AAAA,YACA,YAAY;AAAA,cACV,OAAO;AAAA,cACP,SAAS,CAAC,oBAAoB,mBAAmB;AAAA,YACnD;AAAA,YACA,aAAa;AAAA,cACX,OAAO;AAAA,cACP,SAAS,CAAC,oBAAoB,mBAAmB;AAAA,YACnD;AAAA,YACA,UAAU;AAAA,cACR,OAAO;AAAA,cACP,SAAS,CAAC,oBAAoB,mBAAmB;AAAA,YACnD;AAAA,YACA,YAAY;AAAA,cACV,OAAO;AAAA,cACP,SAAS,CAAC,oBAAoB,mBAAmB;AAAA,YACnD;AAAA,YACA,OAAO;AAAA,cACL;AAAA,gBACE,OAAO;AAAA,gBACP,SAAS,CAAC,sBAAsB,mBAAmB;AAAA,cACrD;AAAA,cACA,EAAE,SAAS,CAAC,sBAAsB,mBAAmB,EAAE;AAAA,YACzD;AAAA,YACA,MAAM;AAAA,cACJ,SAAS,CAAC,sBAAsB,mBAAmB;AAAA,YACrD;AAAA,YACA,KAAK;AAAA,cACH,SAAS,CAAC,sBAAsB,mBAAmB;AAAA,YACrD;AAAA,UACF;AAAA,QACF;AAAA,QAEA,UAAU;AAAA,UACR,MAAM,CAAC,OAAO;AAAA,UACd,OAAO;AAAA,UACP,YAAY,CAAC,kBAAkB;AAAA,UAC/B,IAAI;AAAA,YACF,cAAc;AAAA,cACZ,SAAS,CAAC,mBAAmB,mBAAmB,gBAAgB;AAAA,YAClE;AAAA,YACA,YAAY;AAAA,cACV,QAAQ;AAAA,cACR,SAAS,CAAC,qBAAqB,qBAAqB,oBAAoB,mBAAmB;AAAA,YAC7F;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,YAAY;AAAA,QACV,kBAAkB,CAACA,MAAK,MAAM,EAAE,KAAK,MAAM;AACzC,gBAAM,MAAM,IAAI,OAAOA,IAAG;AAC1B,qBAAO,oCAAiB,KAAK;AAAA,YAC3B,cAAc,MAAM;AAClB,mBAAK,EAAE,MAAM,gBAAgB,OAAO,KAAK,MAAM,CAAC;AAAA,YAClD;AAAA,YACA,cAAc;AACZ,mBAAK,YAAY;AAAA,YACnB;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,MACA,QAAQ;AAAA,QACN,mBAAmB,CAACA,SAAQA,KAAI,kBAAkB;AAAA,QAClD,mBAAmB,CAACA,SAAQA,KAAI,kBAAkB;AAAA,QAClD,cAAc,CAACA,SAAQA,KAAI;AAAA,QAC3B,YAAY,CAACA,SAAQ,CAACA,KAAI;AAAA,MAC5B;AAAA,MACA,QAAQ;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,SAAS;AAAA,QACP,gBAAgBA,MAAK;AACnB,cAAI,kBAAkBA,IAAG;AAAA,QAC3B;AAAA,QACA,kBAAkBA,MAAK;AACrB,cAAI,mBAAmBA,IAAG;AAAA,QAC5B;AAAA,QACA,eAAeA,MAAK;AAClB,UAAAA,KAAI,eAAe,EAAE,MAAM,MAAM,KAAKA,KAAI,IAAI,GAAG,gBAAgBA,KAAI,eAAe,CAAC;AAAA,QACvF;AAAA,QACA,kBAAkBA,MAAK;AACrB,UAAAA,KAAI,kBAAkB,EAAE,MAAM,MAAM,KAAKA,KAAI,IAAI,GAAG,gBAAgBA,KAAI,eAAe,CAAC;AAAA,QAC1F;AAAA,QACA,kBAAkBA,MAAK,KAAK;AAC1B,UAAAA,KAAI,iBAAiB,IAAI;AAAA,QAC3B;AAAA,QACA,oBAAoBA,MAAK;AACvB,UAAAA,KAAI,iBAAiB;AAAA,QACvB;AAAA,QACA,eAAeA,MAAK;AAClB,UAAAA,KAAI,cAAcA,KAAI,OAAO,MAAM,EAAE,IAAI,CAAC,WAAW;AAAA,YACnD,IAAI,MAAM;AAAA,YACV,MAAM,MAAM;AAAA,UACd,EAAE;AAAA,QACJ;AAAA,QACA,aAAaA,MAAK,KAAK;AACrB,gBAAM,EAAE,IAAI,KAAK,IAAI;AACrB,UAAAA,KAAI,OAAOA,KAAI,KAAK,IAAI,CAAC,UAAU;AACjC,kBAAM,YAAY,MAAM,MAAM,MAAM,WAAW,GAAG,MAAM,WAAW,GAAG;AACtE,mBAAO,MAAM,OAAO,KAAK,EAAE,GAAG,OAAO,MAAM,UAAU,IAAI;AAAA,UAC3D,CAAC;AAAA,QACH;AAAA,QACA,mBAAmBA,MAAK;AACtB,gBAAM,SAAS,eAAeA,IAAG;AACjC,cAAI,CAAC,OAAQ;AACb,gBAAM,EAAE,QAAQ,MAAM,IAAI;AAC1B,UAAAA,KAAI,KAAK,OAAO,KAAK,EAAE,OAAO,OAAO;AACrC,UAAAA,KAAI,KAAK,MAAM,KAAK,EAAE,OAAO,MAAM;AAAA,QACrC;AAAA,QACA,mBAAmBA,MAAK;AACtB,gBAAM,SAAS,eAAeA,IAAG;AACjC,cAAI,CAAC,OAAQ;AACb,gBAAM,EAAE,QAAQ,MAAM,IAAI;AAC1B,UAAAA,KAAI,KAAK,OAAO,KAAK,EAAE,OAAO,OAAO;AACrC,UAAAA,KAAI,KAAK,MAAM,KAAK,EAAE,OAAO,MAAM;AAAA,QACrC;AAAA,QACA,iBAAiBA,MAAK,KAAK;AACzB,gBAAM,SAAS,eAAeA,IAAG;AACjC,cAAI,CAAC,OAAQ;AACb,gBAAM,EAAE,QAAQ,MAAM,IAAI;AAC1B,UAAAA,KAAI,KAAK,OAAO,KAAK,EAAE,OAAO,OAAO,GAAG,IAAI,IAAI;AAChD,UAAAA,KAAI,KAAK,MAAM,KAAK,EAAE,OAAO,MAAM,KAAK,IAAI,IAAI;AAAA,QAClD;AAAA,QACA,iBAAiBA,MAAK,KAAK;AACzB,gBAAM,SAAS,eAAeA,IAAG;AACjC,cAAI,CAAC,OAAQ;AACb,gBAAM,EAAE,QAAQ,MAAM,IAAI;AAC1B,UAAAA,KAAI,KAAK,OAAO,KAAK,EAAE,OAAO,OAAO,KAAK,IAAI,IAAI;AAClD,UAAAA,KAAI,KAAK,MAAM,KAAK,EAAE,OAAO,MAAM,GAAG,IAAI,IAAI;AAAA,QAChD;AAAA,QACA,gBAAgBA,MAAK,KAAK;AACxB,gBAAM,SAAS,eAAeA,MAAK,IAAI,EAAE;AACzC,cAAI,CAAC,OAAQ;AACb,gBAAM,EAAE,QAAQ,MAAM,IAAI;AAC1B,UAAAA,KAAI,KAAK,OAAO,KAAK,EAAE,OAAOA,KAAI,YAAY,OAAO,KAAK,EAAE;AAC5D,UAAAA,KAAI,KAAK,MAAM,KAAK,EAAE,OAAOA,KAAI,YAAY,MAAM,KAAK,EAAE;AAAA,QAC5D;AAAA,QACA,kBAAkBA,MAAK;AACrB,qCAAI,MAAM;AACR,gBAAI,kBAAkBA,IAAG,GAAG,MAAM,EAAE,eAAe,KAAK,CAAC;AAAA,UAC3D,CAAC;AAAA,QACH;AAAA,QACA,iBAAiBA,MAAK;AACpB,qCAAI,MAAM;AACR,gBAAI,kBAAkBA,IAAG,GAAG,KAAK;AAAA,UACnC,CAAC;AAAA,QACH;AAAA,QACA,kBAAkBA,MAAK;AACrB,UAAAA,KAAI,iBAAiBA,KAAI,OAAO,MAAM;AAAA,QACxC;AAAA,QACA,qBAAqBA,MAAK;AACxB,gBAAM,SAAS,eAAeA,IAAG;AACjC,cAAI,CAAC,OAAQ;AACb,gBAAM,EAAE,OAAO,IAAI;AACnB,UAAAA,KAAI,oBAAoB;AAAA,YACtB,SAAS,OAAO;AAAA,YAChB,SAAS,OAAO;AAAA,UAClB;AAAA,QACF;AAAA,QACA,gBAAgBA,MAAK,KAAK;AACxB,gBAAM,SAAS,gBAAgBA,IAAG;AAClC,gBAAM,SAAS,gBAAgBA,IAAG;AAElC,cAAI,CAAC,UAAU,CAAC,OAAQ;AAExB,gBAAM,SAAS,IAAI,UAAUA,IAAG;AAChC,cAAI,CAAC,OAAQ;AAEb,gBAAM,oBAAgB,oCAAiB,IAAI,OAAO,MAAM;AACxD,gBAAM,eAAe,cAAc,gBAAgB;AAAA,YACjD,KAAKA,KAAI;AAAA,YACT,aAAaA,KAAI;AAAA,UACnB,CAAC;AAED,cAAI,aAAa,eAAe;AAGhC,UAAAA,KAAI,oBAAoB;AAAA,YACtB,SAAS,aAAa,OAAO;AAAA,YAC7B,SAAS,aAAa,OAAO;AAAA,UAC/B;AAEA,uBAAa,MAAM,YAAY,OAAO,KAAK,OAAO,GAAG;AAErD,gBAAM,EAAE,QAAQ,MAAM,IAAI;AAE1B,gBAAM,SAAS,aAAa,OAAO;AACnC,UAAAA,KAAI,KAAK,OAAO,KAAK,EAAE,OAAO,OAAO,OAAO;AAC5C,UAAAA,KAAI,KAAK,MAAM,KAAK,EAAE,OAAO,MAAM,OAAO;AAAA,QAC5C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AC5RA,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;AACF,CAAC;AAEM,IAAM,iBAAa,gCAA8C,KAAK;AAEtE,IAAM,iBAAa,0BAAwB,EAAE,CAAC,MAAM,UAAU,CAAC;AAC/D,IAAM,sBAAkB,gCAA6B,UAAU;AAE/D,IAAM,yBAAqB,0BAAgC,EAAE,CAAC,YAAY,MAAM,MAAM,CAAC;AACvF,IAAM,8BAA0B,gCAAqC,kBAAkB;","names":["import_dom_query","props","id","panels","panel","import_dom_event","import_dom_query","ctx","import_utils"]}
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/splitter.anatomy.ts","../src/splitter.connect.ts","../src/splitter.dom.ts","../src/splitter.utils.ts","../src/splitter.machine.ts","../src/splitter.props.ts"],"sourcesContent":["import { createAnatomy } from \"@zag-js/anatomy\"\n\nexport const anatomy = createAnatomy(\"splitter\").parts(\"root\", \"panel\", \"resizeTrigger\")\n\nexport const parts = anatomy.build()\n","import { getEventKey, getEventStep, type EventKeyMap } from \"@zag-js/dom-event\"\nimport { dataAttr } from \"@zag-js/dom-query\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\nimport { parts } from \"./splitter.anatomy\"\nimport { dom } from \"./splitter.dom\"\nimport type { MachineApi, ResizeTriggerProps, ResizeTriggerState, Send, State } from \"./splitter.types\"\nimport { getHandleBounds } from \"./splitter.utils\"\n\nexport function connect<T extends PropTypes>(state: State, send: Send, normalize: NormalizeProps<T>): MachineApi<T> {\n const horizontal = state.context.isHorizontal\n const focused = state.hasTag(\"focus\")\n const dragging = state.matches(\"dragging\")\n const panels = state.context.panels\n\n function getResizeTriggerState(props: ResizeTriggerProps): ResizeTriggerState {\n const { id, disabled } = props\n const ids = id.split(\":\")\n const panelIds = ids.map((id) => dom.getPanelId(state.context, id))\n const panels = getHandleBounds(state.context, id)\n\n return {\n disabled: !!disabled,\n focused: state.context.activeResizeId === id && focused,\n panelIds,\n min: panels?.min,\n max: panels?.max,\n value: 0,\n }\n }\n\n return {\n focused: focused,\n dragging: dragging,\n getResizeTriggerState,\n bounds: getHandleBounds(state.context),\n setToMinSize(id) {\n const panel = panels.find((panel) => panel.id === id)\n send({ type: \"SET_PANEL_SIZE\", id, size: panel?.minSize, src: \"setToMinSize\" })\n },\n setToMaxSize(id) {\n const panel = panels.find((panel) => panel.id === id)\n send({ type: \"SET_PANEL_SIZE\", id, size: panel?.maxSize, src: \"setToMaxSize\" })\n },\n setSize(id, size) {\n send({ type: \"SET_PANEL_SIZE\", id, size })\n },\n\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n \"data-orientation\": state.context.orientation,\n id: dom.getRootId(state.context),\n dir: state.context.dir,\n style: {\n display: \"flex\",\n flexDirection: horizontal ? \"row\" : \"column\",\n height: \"100%\",\n width: \"100%\",\n overflow: \"hidden\",\n },\n })\n },\n\n getPanelProps(props) {\n const { id } = props\n return normalize.element({\n ...parts.panel.attrs,\n \"data-orientation\": state.context.orientation,\n dir: state.context.dir,\n id: dom.getPanelId(state.context, id),\n \"data-ownedby\": dom.getRootId(state.context),\n style: dom.getPanelStyle(state.context, id),\n })\n },\n\n getResizeTriggerProps(props) {\n const { id, disabled, step = 1 } = props\n const triggerState = getResizeTriggerState(props)\n\n return normalize.element({\n ...parts.resizeTrigger.attrs,\n dir: state.context.dir,\n id: dom.getResizeTriggerId(state.context, id),\n role: \"separator\",\n \"data-ownedby\": dom.getRootId(state.context),\n tabIndex: disabled ? undefined : 0,\n \"aria-valuenow\": triggerState.value,\n \"aria-valuemin\": triggerState.min,\n \"aria-valuemax\": triggerState.max,\n \"data-orientation\": state.context.orientation,\n \"aria-orientation\": state.context.orientation,\n \"aria-controls\": triggerState.panelIds.join(\" \"),\n \"data-focus\": dataAttr(triggerState.focused),\n \"data-disabled\": dataAttr(disabled),\n style: {\n touchAction: \"none\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n flex: \"0 0 auto\",\n pointerEvents: dragging && !triggerState.focused ? \"none\" : undefined,\n cursor: horizontal ? \"col-resize\" : \"row-resize\",\n [horizontal ? \"minHeight\" : \"minWidth\"]: \"0\",\n },\n onPointerDown(event) {\n if (disabled) {\n event.preventDefault()\n return\n }\n send({ type: \"POINTER_DOWN\", id })\n event.currentTarget.setPointerCapture(event.pointerId)\n event.preventDefault()\n event.stopPropagation()\n },\n onPointerUp(event) {\n if (disabled) return\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId)\n }\n },\n onPointerOver() {\n if (disabled) return\n send({ type: \"POINTER_OVER\", id })\n },\n onPointerLeave() {\n if (disabled) return\n send({ type: \"POINTER_LEAVE\", id })\n },\n onBlur() {\n send(\"BLUR\")\n },\n onFocus() {\n send({ type: \"FOCUS\", id })\n },\n onDoubleClick() {\n if (disabled) return\n send({ type: \"DOUBLE_CLICK\", id })\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return\n if (disabled) return\n\n const moveStep = getEventStep(event) * step\n\n const keyMap: EventKeyMap = {\n Enter() {\n send(\"ENTER\")\n },\n ArrowUp() {\n send({ type: \"ARROW_UP\", step: moveStep })\n },\n ArrowDown() {\n send({ type: \"ARROW_DOWN\", step: moveStep })\n },\n ArrowLeft() {\n send({ type: \"ARROW_LEFT\", step: moveStep })\n },\n ArrowRight() {\n send({ type: \"ARROW_RIGHT\", step: moveStep })\n },\n Home() {\n send(\"HOME\")\n },\n End() {\n send(\"END\")\n },\n }\n\n const key = getEventKey(event, state.context)\n const exec = keyMap[key]\n\n if (exec) {\n exec(event)\n event.preventDefault()\n }\n },\n })\n },\n }\n}\n","import { createScope, queryAll } from \"@zag-js/dom-query\"\nimport type { JSX, Style } from \"@zag-js/types\"\nimport type { MachineContext as Ctx, PanelId } from \"./splitter.types\"\n\nexport const dom = createScope({\n getRootId: (ctx: Ctx) => ctx.ids?.root ?? `splitter:${ctx.id}`,\n getResizeTriggerId: (ctx: Ctx, id: string) => ctx.ids?.resizeTrigger?.(id) ?? `splitter:${ctx.id}:splitter:${id}`,\n getLabelId: (ctx: Ctx) => ctx.ids?.label ?? `splitter:${ctx.id}:label`,\n getPanelId: (ctx: Ctx, id: string | number) => ctx.ids?.panel?.(id) ?? `splitter:${ctx.id}:panel:${id}`,\n getGlobalCursorId: (ctx: Ctx) => `splitter:${ctx.id}:global-cursor`,\n\n getRootEl: (ctx: Ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getResizeTriggerEl: (ctx: Ctx, id: string) => dom.getById(ctx, dom.getResizeTriggerId(ctx, id)),\n getPanelEl: (ctx: Ctx, id: string | number) => dom.getById(ctx, dom.getPanelId(ctx, id)),\n\n getCursor(ctx: Ctx) {\n const x = ctx.isHorizontal\n let cursor: Style[\"cursor\"] = x ? \"col-resize\" : \"row-resize\"\n if (ctx.activeResizeState.isAtMin) cursor = x ? \"e-resize\" : \"s-resize\"\n if (ctx.activeResizeState.isAtMax) cursor = x ? \"w-resize\" : \"n-resize\"\n return cursor\n },\n\n getPanelStyle(ctx: Ctx, id: PanelId): JSX.CSSProperties {\n const flexGrow = ctx.panels.find((panel) => panel.id === id)?.size ?? \"0\"\n return {\n flexBasis: 0,\n flexGrow,\n flexShrink: 1,\n overflow: \"hidden\",\n }\n },\n\n getActiveHandleEl(ctx: Ctx) {\n const activeId = ctx.activeResizeId\n if (activeId == null) return\n return dom.getById(ctx, dom.getResizeTriggerId(ctx, activeId))\n },\n\n getResizeTriggerEls(ctx: Ctx) {\n const ownerId = CSS.escape(dom.getRootId(ctx))\n return queryAll(dom.getRootEl(ctx), `[role=separator][data-ownedby='${ownerId}']`)\n },\n\n setupGlobalCursor(ctx: Ctx) {\n const styleEl = dom.getById(ctx, dom.getGlobalCursorId(ctx))\n const textContent = `* { cursor: ${dom.getCursor(ctx)} !important; }`\n if (styleEl) {\n styleEl.textContent = textContent\n } else {\n const style = dom.getDoc(ctx).createElement(\"style\")\n style.id = dom.getGlobalCursorId(ctx)\n style.textContent = textContent\n dom.getDoc(ctx).head.appendChild(style)\n }\n },\n\n removeGlobalCursor(ctx: Ctx) {\n dom.getById(ctx, dom.getGlobalCursorId(ctx))?.remove()\n },\n})\n","import type { MachineContext as Ctx, NormalizedPanelData } from \"./splitter.types\"\n\nfunction validateSize(key: string, size: number) {\n if (Math.floor(size) > 100) {\n throw new Error(`Total ${key} of panels cannot be greater than 100`)\n }\n}\n\nexport function getNormalizedPanels(ctx: Ctx): NormalizedPanelData {\n let numOfPanelsWithoutSize = 0\n let totalSize = 0\n let totalMinSize = 0\n\n const panels = ctx.size.map((panel) => {\n const minSize = panel.minSize ?? 0\n const maxSize = panel.maxSize ?? 100\n\n totalMinSize += minSize\n\n if (panel.size == null) {\n numOfPanelsWithoutSize++\n } else {\n totalSize += panel.size\n }\n\n return {\n ...panel,\n minSize,\n maxSize,\n }\n })\n\n validateSize(\"minSize\", totalMinSize)\n validateSize(\"size\", totalSize)\n\n let end = 0\n let remainingSize = 0\n\n const result = panels.map((panel) => {\n let start = end\n\n if (panel.size != null) {\n end += panel.size\n remainingSize = panel.size - panel.minSize\n return {\n ...panel,\n start,\n end,\n remainingSize,\n }\n }\n\n const size = (100 - totalSize) / numOfPanelsWithoutSize\n end += size\n remainingSize = size - panel.minSize\n\n return { ...panel, size, start, end, remainingSize }\n })\n\n return result as NormalizedPanelData\n}\n\nexport function getHandlePanels(ctx: Ctx, id = ctx.activeResizeId) {\n const [beforeId, afterId] = id?.split(\":\") ?? []\n if (!beforeId || !afterId) return\n\n const beforeIndex = ctx.previousPanels.findIndex((panel) => panel.id === beforeId)\n const afterIndex = ctx.previousPanels.findIndex((panel) => panel.id === afterId)\n if (beforeIndex === -1 || afterIndex === -1) return\n\n const before = ctx.previousPanels[beforeIndex]\n const after = ctx.previousPanels[afterIndex]\n\n return {\n before: {\n ...before,\n index: beforeIndex,\n },\n after: {\n ...after,\n index: afterIndex,\n },\n }\n}\n\nexport function getHandleBounds(ctx: Ctx, id = ctx.activeResizeId) {\n const panels = getHandlePanels(ctx, id)\n if (!panels) return\n\n const { before, after } = panels\n\n return {\n min: Math.max(before.start + before.minSize, after.end - after.maxSize),\n max: Math.min(after.end - after.minSize, before.maxSize + before.start),\n }\n}\n\nexport function getPanelBounds(ctx: Ctx, id?: string | null) {\n const bounds = getHandleBounds(ctx, id)\n const panels = getHandlePanels(ctx, id)\n\n if (!bounds || !panels) return\n const { before, after } = panels\n\n const beforeMin = Math.abs(before.start - bounds.min)\n const afterMin = after.size + (before.size - beforeMin)\n\n const beforeMax = Math.abs(before.start - bounds.max)\n const afterMax = after.size - (beforeMax - before.size)\n\n return {\n before: {\n index: before.index,\n min: beforeMin,\n max: beforeMax,\n isAtMin: beforeMin === before.size,\n isAtMax: beforeMax === before.size,\n up(step: number) {\n return Math.min(before.size + step, beforeMax)\n },\n down(step: number) {\n return Math.max(before.size - step, beforeMin)\n },\n },\n after: {\n index: after.index,\n min: afterMin,\n max: afterMax,\n isAtMin: afterMin === after.size,\n isAtMax: afterMax === after.size,\n up(step: number) {\n return Math.min(after.size + step, afterMin)\n },\n down(step: number) {\n return Math.max(after.size - step, afterMax)\n },\n },\n }\n}\n\nexport function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n","import { createMachine } from \"@zag-js/core\"\nimport { getRelativePoint, trackPointerMove } from \"@zag-js/dom-event\"\nimport { raf } from \"@zag-js/dom-query\"\nimport { compact } from \"@zag-js/utils\"\nimport { dom } from \"./splitter.dom\"\nimport type { MachineContext, MachineState, UserDefinedContext } from \"./splitter.types\"\nimport { clamp, getHandleBounds, getHandlePanels, getNormalizedPanels, getPanelBounds } from \"./splitter.utils\"\n\nexport function machine(userContext: UserDefinedContext) {\n const ctx = compact(userContext)\n return createMachine<MachineContext, MachineState>(\n {\n id: \"splitter\",\n initial: \"idle\",\n context: {\n orientation: \"horizontal\",\n activeResizeId: null,\n previousPanels: [],\n size: [],\n initialSize: [],\n activeResizeState: {\n isAtMin: false,\n isAtMax: false,\n },\n ...ctx,\n },\n\n created: [\"setPreviousPanels\", \"setInitialSize\"],\n\n watch: {\n size: [\"setActiveResizeState\"],\n },\n\n computed: {\n isHorizontal: (ctx) => ctx.orientation === \"horizontal\",\n panels: (ctx) => getNormalizedPanels(ctx),\n },\n\n on: {\n SET_PANEL_SIZE: {\n actions: \"setPanelSize\",\n },\n },\n states: {\n idle: {\n entry: [\"clearActiveHandleId\"],\n on: {\n POINTER_OVER: {\n target: \"hover:temp\",\n actions: [\"setActiveHandleId\"],\n },\n FOCUS: {\n target: \"focused\",\n actions: [\"setActiveHandleId\"],\n },\n DOUBLE_CLICK: {\n actions: [\"resetStartPanel\", \"setPreviousPanels\"],\n },\n },\n },\n\n \"hover:temp\": {\n after: {\n HOVER_DELAY: \"hover\",\n },\n on: {\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setActiveHandleId\"],\n },\n POINTER_LEAVE: \"idle\",\n },\n },\n\n hover: {\n tags: [\"focus\"],\n on: {\n POINTER_DOWN: \"dragging\",\n POINTER_LEAVE: \"idle\",\n },\n },\n\n focused: {\n tags: [\"focus\"],\n on: {\n BLUR: \"idle\",\n POINTER_DOWN: {\n target: \"dragging\",\n actions: [\"setActiveHandleId\"],\n },\n ARROW_LEFT: {\n guard: \"isHorizontal\",\n actions: [\"shrinkStartPanel\", \"setPreviousPanels\"],\n },\n ARROW_RIGHT: {\n guard: \"isHorizontal\",\n actions: [\"expandStartPanel\", \"setPreviousPanels\"],\n },\n ARROW_UP: {\n guard: \"isVertical\",\n actions: [\"shrinkStartPanel\", \"setPreviousPanels\"],\n },\n ARROW_DOWN: {\n guard: \"isVertical\",\n actions: [\"expandStartPanel\", \"setPreviousPanels\"],\n },\n ENTER: [\n {\n guard: \"isStartPanelAtMax\",\n actions: [\"setStartPanelToMin\", \"setPreviousPanels\"],\n },\n { actions: [\"setStartPanelToMax\", \"setPreviousPanels\"] },\n ],\n HOME: {\n actions: [\"setStartPanelToMin\", \"setPreviousPanels\"],\n },\n END: {\n actions: [\"setStartPanelToMax\", \"setPreviousPanels\"],\n },\n },\n },\n\n dragging: {\n tags: [\"focus\"],\n entry: \"focusResizeHandle\",\n activities: [\"trackPointerMove\"],\n on: {\n POINTER_MOVE: {\n actions: [\"setPointerValue\", \"setGlobalCursor\", \"invokeOnResize\"],\n },\n POINTER_UP: {\n target: \"focused\",\n actions: [\"setPreviousPanels\", \"clearGlobalCursor\", \"blurResizeHandle\", \"invokeOnResizeEnd\"],\n },\n },\n },\n },\n },\n {\n activities: {\n trackPointerMove: (ctx, _evt, { send }) => {\n const doc = dom.getDoc(ctx)\n return trackPointerMove(doc, {\n onPointerMove(info) {\n send({ type: \"POINTER_MOVE\", point: info.point })\n },\n onPointerUp() {\n send(\"POINTER_UP\")\n },\n })\n },\n },\n guards: {\n isStartPanelAtMin: (ctx) => ctx.activeResizeState.isAtMin,\n isStartPanelAtMax: (ctx) => ctx.activeResizeState.isAtMax,\n isHorizontal: (ctx) => ctx.isHorizontal,\n isVertical: (ctx) => !ctx.isHorizontal,\n },\n delays: {\n HOVER_DELAY: 250,\n },\n actions: {\n setGlobalCursor(ctx) {\n dom.setupGlobalCursor(ctx)\n },\n clearGlobalCursor(ctx) {\n dom.removeGlobalCursor(ctx)\n },\n invokeOnResize(ctx) {\n ctx.onSizeChange?.({ size: Array.from(ctx.size), activeHandleId: ctx.activeResizeId })\n },\n invokeOnResizeEnd(ctx) {\n ctx.onSizeChangeEnd?.({ size: Array.from(ctx.size), activeHandleId: ctx.activeResizeId })\n },\n setActiveHandleId(ctx, evt) {\n ctx.activeResizeId = evt.id\n },\n clearActiveHandleId(ctx) {\n ctx.activeResizeId = null\n },\n setInitialSize(ctx) {\n ctx.initialSize = ctx.panels.slice().map((panel) => ({\n id: panel.id,\n size: panel.size,\n }))\n },\n setPanelSize(ctx, evt) {\n const { id, size } = evt\n ctx.size = ctx.size.map((panel) => {\n const panelSize = clamp(size, panel.minSize ?? 0, panel.maxSize ?? 100)\n return panel.id === id ? { ...panel, size: panelSize } : panel\n })\n },\n setStartPanelToMin(ctx) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.min\n ctx.size[after.index].size = after.min\n },\n setStartPanelToMax(ctx) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.max\n ctx.size[after.index].size = after.max\n },\n expandStartPanel(ctx, evt) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.up(evt.step)\n ctx.size[after.index].size = after.down(evt.step)\n },\n shrinkStartPanel(ctx, evt) {\n const bounds = getPanelBounds(ctx)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = before.down(evt.step)\n ctx.size[after.index].size = after.up(evt.step)\n },\n resetStartPanel(ctx, evt) {\n const bounds = getPanelBounds(ctx, evt.id)\n if (!bounds) return\n const { before, after } = bounds\n ctx.size[before.index].size = ctx.initialSize[before.index].size\n ctx.size[after.index].size = ctx.initialSize[after.index].size\n },\n focusResizeHandle(ctx) {\n raf(() => {\n dom.getActiveHandleEl(ctx)?.focus({ preventScroll: true })\n })\n },\n blurResizeHandle(ctx) {\n raf(() => {\n dom.getActiveHandleEl(ctx)?.blur()\n })\n },\n setPreviousPanels(ctx) {\n ctx.previousPanels = ctx.panels.slice()\n },\n setActiveResizeState(ctx) {\n const panels = getPanelBounds(ctx)\n if (!panels) return\n const { before } = panels\n ctx.activeResizeState = {\n isAtMin: before.isAtMin,\n isAtMax: before.isAtMax,\n }\n },\n setPointerValue(ctx, evt) {\n const panels = getHandlePanels(ctx)\n const bounds = getHandleBounds(ctx)\n\n if (!panels || !bounds) return\n\n const rootEl = dom.getRootEl(ctx)\n if (!rootEl) return\n\n const relativePoint = getRelativePoint(evt.point, rootEl)\n const percentValue = relativePoint.getPercentValue({\n dir: ctx.dir,\n orientation: ctx.orientation,\n })\n\n let pointValue = percentValue * 100\n\n // update active resize state here because we use `previousPanels` in the calculations\n ctx.activeResizeState = {\n isAtMin: pointValue < bounds.min,\n isAtMax: pointValue > bounds.max,\n }\n\n pointValue = clamp(pointValue, bounds.min, bounds.max)\n\n const { before, after } = panels\n\n const offset = pointValue - before.end\n ctx.size[before.index].size = before.size + offset\n ctx.size[after.index].size = after.size - offset\n },\n },\n },\n )\n}\n","import { createProps } from \"@zag-js/types\"\nimport { createSplitProps } from \"@zag-js/utils\"\nimport type { PanelProps, ResizeTriggerProps, UserDefinedContext } from \"./splitter.types\"\n\nexport const props = createProps<UserDefinedContext>()([\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"onSizeChange\",\n \"onSizeChangeEnd\",\n \"orientation\",\n \"size\",\n])\n\nexport const splitProps = createSplitProps<Partial<UserDefinedContext>>(props)\n\nexport const panelProps = createProps<PanelProps>()([\"id\", \"snapSize\"])\nexport const splitPanelProps = createSplitProps<PanelProps>(panelProps)\n\nexport const resizeTriggerProps = createProps<ResizeTriggerProps>()([\"disabled\", \"id\", \"step\"])\nexport const splitResizeTriggerProps = createSplitProps<ResizeTriggerProps>(resizeTriggerProps)\n"],"mappings":"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","names":["props","id","panels","panel","ctx"]}
|
package/src/index.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export { anatomy } from "./splitter.anatomy"
|
|
2
|
-
export { connect } from "./splitter.connect"
|
|
3
|
-
export { machine } from "./splitter.machine"
|
|
4
|
-
export * from "./splitter.props"
|
|
5
|
-
export type {
|
|
6
|
-
MachineApi as Api,
|
|
7
|
-
UserDefinedContext as Context,
|
|
8
|
-
MachineState,
|
|
9
|
-
PanelProps,
|
|
10
|
-
PanelSizeData,
|
|
11
|
-
ResizeTriggerProps,
|
|
12
|
-
Service,
|
|
13
|
-
SizeChangeDetails,
|
|
14
|
-
} from "./splitter.types"
|