@ixfx/components 0.8.2 → 0.8.4
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/bundle/index.d.ts +274 -93
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +2135 -637
- package/bundle/index.js.map +1 -1
- package/dist/ac-text.js +2 -2
- package/dist/ac-token.js +2 -2
- package/dist/checkbox.js +1 -1
- package/dist/{colour-picker-Ddsk-7E_.js → colour-picker-CSxwUmtE.js} +2 -2
- package/dist/{colour-picker-Ddsk-7E_.js.map → colour-picker-CSxwUmtE.js.map} +1 -1
- package/dist/colour-picker.js +1 -1
- package/dist/crumbs.js +2 -2
- package/dist/data-display.js +1 -1
- package/dist/data-grid-D-z7bx5-.d.ts.map +1 -1
- package/dist/data-grid.js +7 -4
- package/dist/data-grid.js.map +1 -1
- package/dist/detail-list-_ZJHYEBr.d.ts.map +1 -1
- package/dist/detail-list.js +67 -4
- package/dist/detail-list.js.map +1 -1
- package/dist/editable-label.js +1 -1
- package/dist/{fallbacks-DNI9xt0F.js → fallbacks-BcKGq-2F.js} +17 -1
- package/dist/{fallbacks-DNI9xt0F.js.map → fallbacks-BcKGq-2F.js.map} +1 -1
- package/dist/{grid-list-bmBWq6P-.js → grid-list-BXfY3XXX.js} +486 -13
- package/dist/grid-list-BXfY3XXX.js.map +1 -0
- package/dist/{grid-list-C1T6WlEp.d.ts → grid-list-x550wJ0X.d.ts} +97 -2
- package/dist/grid-list-x550wJ0X.d.ts.map +1 -0
- package/dist/grid-list.d.ts +2 -2
- package/dist/grid-list.js +1 -1
- package/dist/handle-BPOxBOKf.js +219 -0
- package/dist/handle-BPOxBOKf.js.map +1 -0
- package/dist/{icon-DcEEGQa_.js → icon-Dy33gu4Z.js} +2 -2
- package/dist/{icon-DcEEGQa_.js.map → icon-Dy33gu4Z.js.map} +1 -1
- package/dist/icons.js +1 -1
- package/dist/{index-BeuCXtiO.d.ts → index-DV3iaUBW.d.ts} +2 -2
- package/dist/{index-BeuCXtiO.d.ts.map → index-DV3iaUBW.d.ts.map} +1 -1
- package/dist/index.d.ts +130 -48
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +551 -203
- package/dist/index.js.map +1 -1
- package/dist/labelled-radial-input.js +2 -2
- package/dist/{labelled-slider-input-BInB5GKL.js → labelled-slider-input-BCH9968c.js} +3 -3
- package/dist/{labelled-slider-input-BInB5GKL.js.map → labelled-slider-input-BCH9968c.js.map} +1 -1
- package/dist/labelled-slider-input.js +1 -1
- package/dist/list-selection-controller-SA4piSBi.js +589 -0
- package/dist/list-selection-controller-SA4piSBi.js.map +1 -0
- package/dist/{menu-BDrTh6oo.js → menu-HMoxCPY2.js} +4 -4
- package/dist/{menu-BDrTh6oo.js.map → menu-HMoxCPY2.js.map} +1 -1
- package/dist/{menu-item-B6pKg2Qq.js → menu-item-BQDYxk5A.js} +3 -3
- package/dist/{menu-item-B6pKg2Qq.js.map → menu-item-BQDYxk5A.js.map} +1 -1
- package/dist/menu.js +2 -2
- package/dist/miller.js +1 -1
- package/dist/narrowed-text.js +1 -1
- package/dist/notifier.js +1 -1
- package/dist/panel.d.ts +1 -1
- package/dist/panel.js +1 -1
- package/dist/polar-pad.js +1 -1
- package/dist/{radial-input-BfA3GO0H.js → radial-input-DyxfbNzD.js} +2 -2
- package/dist/{radial-input-BfA3GO0H.js.map → radial-input-DyxfbNzD.js.map} +1 -1
- package/dist/radial-input.js +1 -1
- package/dist/range-input.js +1 -1
- package/dist/range.js +1 -1
- package/dist/select-horiz.js +1 -1
- package/dist/{slider-input-Bl1hFE89.js → slider-input-WR8_RwHg.js} +2 -2
- package/dist/{slider-input-Bl1hFE89.js.map → slider-input-WR8_RwHg.js.map} +1 -1
- package/dist/slider-input.js +1 -1
- package/dist/snackbar.js +1 -1
- package/dist/{split-layout-BFSbUZQv.js → split-layout-CA5jbNbG.js} +22 -33
- package/dist/split-layout-CA5jbNbG.js.map +1 -0
- package/dist/split-layout-JK3xWVX2.d.ts.map +1 -1
- package/dist/split-layout.js +1 -1
- package/dist/swipe.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{timeline-B2fgDL4U.js → timeline-THyvH8xy.js} +14 -8
- package/dist/timeline-THyvH8xy.js.map +1 -0
- package/dist/timeline.d.ts +1 -1
- package/dist/timeline.js +1 -1
- package/dist/{titlebar-YQ-jVQoS.d.ts → titlebar-Tqu-VvMU.d.ts} +5 -1
- package/dist/titlebar-Tqu-VvMU.d.ts.map +1 -0
- package/dist/titlebar.d.ts +1 -1
- package/dist/titlebar.js +5 -3
- package/dist/titlebar.js.map +1 -1
- package/dist/{tree-4Jv28Nig.js → tree-DTQon838.js} +2 -2
- package/dist/{tree-4Jv28Nig.js.map → tree-DTQon838.js.map} +1 -1
- package/dist/tree.js +1 -1
- package/dist/vertical-list-CFuFDygi.d.ts.map +1 -1
- package/dist/vertical-list.js +67 -3
- package/dist/vertical-list.js.map +1 -1
- package/dist/xy-pad.js +1 -1
- package/docs-user/data-grid.md +1 -1
- package/docs-user/detail-list.md +4 -0
- package/docs-user/dock.md +33 -8
- package/docs-user/grid-list.md +5 -0
- package/docs-user/index.json +2 -2
- package/docs-user/split-layout.md +2 -4
- package/docs-user/twosplit-layout.md +14 -16
- package/docs-user/vertical-list.md +4 -0
- package/package.json +1 -1
- package/dist/grid-list-C1T6WlEp.d.ts.map +0 -1
- package/dist/grid-list-bmBWq6P-.js.map +0 -1
- package/dist/list-selection-controller-DTFI40li.js +0 -264
- package/dist/list-selection-controller-DTFI40li.js.map +0 -1
- package/dist/split-layout-BFSbUZQv.js.map +0 -1
- package/dist/timeline-B2fgDL4U.js.map +0 -1
- package/dist/titlebar-YQ-jVQoS.d.ts.map +0 -1
package/dist/slider-input.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SliderInputElement } from "./slider-input-
|
|
1
|
+
import { t as SliderInputElement } from "./slider-input-WR8_RwHg.js";
|
|
2
2
|
export { SliderInputElement };
|
package/dist/snackbar.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as themeFallbacks } from "./fallbacks-
|
|
1
|
+
import { t as themeFallbacks } from "./fallbacks-BcKGq-2F.js";
|
|
2
2
|
import { t as popupSurfaceStyles } from "./popup-D80sj2QC.js";
|
|
3
3
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
4
4
|
import { LitElement, css, html } from "lit";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { t as themeFallbacks } from "./fallbacks-
|
|
1
|
+
import { t as themeFallbacks } from "./fallbacks-BcKGq-2F.js";
|
|
2
2
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
3
|
+
import { t as handleStyles } from "./handle-BPOxBOKf.js";
|
|
3
4
|
import { LitElement, css, html, nothing } from "lit";
|
|
4
5
|
import { property, query, state } from "lit/decorators.js";
|
|
5
6
|
//#region src/split-layout/split-drag.ts
|
|
@@ -837,16 +838,20 @@ let SplitLayoutElement = class SplitLayoutElement extends LitElement {
|
|
|
837
838
|
style="cursor: ${cursor}; grid-column: ${gridColumn}; grid-row: ${gridRow};"
|
|
838
839
|
@pointerdown=${(e) => this._onGutterPointerDown(e, groupId, index)}
|
|
839
840
|
>
|
|
840
|
-
<
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
841
|
+
<span
|
|
842
|
+
class="ixfx-handle"
|
|
843
|
+
part="grip"
|
|
844
|
+
data-handle="dimpled"
|
|
845
|
+
data-shape=${isRow ? `vertical` : `horizontal`}
|
|
846
|
+
></span>
|
|
845
847
|
</div>
|
|
846
848
|
`;
|
|
847
849
|
}
|
|
848
850
|
static {
|
|
849
|
-
this.styles = [
|
|
851
|
+
this.styles = [
|
|
852
|
+
themeFallbacks,
|
|
853
|
+
handleStyles,
|
|
854
|
+
css`
|
|
850
855
|
:host {
|
|
851
856
|
display: block;
|
|
852
857
|
width: 100%;
|
|
@@ -857,10 +862,10 @@ let SplitLayoutElement = class SplitLayoutElement extends LitElement {
|
|
|
857
862
|
--split-gutter-active-color: var(--accent);
|
|
858
863
|
--split-collapsed-size: 0px;
|
|
859
864
|
--split-snap: 24px;
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
--
|
|
863
|
-
--
|
|
865
|
+
|
|
866
|
+
/* Gutter grip — shared handle primitive (docs/infra-handle.md). */
|
|
867
|
+
--ixfx-handle-length: 16px;
|
|
868
|
+
--ixfx-handle-thickness: 8px;
|
|
864
869
|
}
|
|
865
870
|
|
|
866
871
|
* {
|
|
@@ -922,31 +927,15 @@ let SplitLayoutElement = class SplitLayoutElement extends LitElement {
|
|
|
922
927
|
user-select: none;
|
|
923
928
|
}
|
|
924
929
|
|
|
925
|
-
.
|
|
926
|
-
width: var(--split-grab-dot-size);
|
|
927
|
-
height: var(--split-grab-dot-size);
|
|
928
|
-
border-radius: 50%;
|
|
929
|
-
background: var(--split-grab-color);
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
:host([direction="row"]) .grab-handle {
|
|
933
|
-
flex-direction: column;
|
|
934
|
-
gap: var(--split-grab-dot-size);
|
|
935
|
-
}
|
|
936
|
-
|
|
937
|
-
:host([direction="column"]) .grab-handle {
|
|
938
|
-
flex-direction: row;
|
|
939
|
-
gap: var(--split-grab-dot-size);
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
:host([data-dragging]) .grab-handle {
|
|
930
|
+
:host([data-dragging]) .gutter .ixfx-handle {
|
|
943
931
|
display: none;
|
|
944
932
|
}
|
|
945
933
|
|
|
946
|
-
:host(:not([data-dragging])) .gutter:hover .
|
|
947
|
-
display:
|
|
934
|
+
:host(:not([data-dragging])) .gutter:hover .ixfx-handle {
|
|
935
|
+
display: none;
|
|
948
936
|
}
|
|
949
|
-
`
|
|
937
|
+
`
|
|
938
|
+
];
|
|
950
939
|
}
|
|
951
940
|
};
|
|
952
941
|
__decorate([property({
|
|
@@ -966,4 +955,4 @@ SplitLayoutElement = __decorate([safeCustomElement(`ixfx-split-layout`)], SplitL
|
|
|
966
955
|
//#endregion
|
|
967
956
|
export { distribute as a, toSnapshot as c, buildModel as i, walk as l, SplitPanelElement as n, normalise as o, applySnapshot as r, resolveTracks as s, SplitLayoutElement as t };
|
|
968
957
|
|
|
969
|
-
//# sourceMappingURL=split-layout-
|
|
958
|
+
//# sourceMappingURL=split-layout-CA5jbNbG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-layout-CA5jbNbG.js","names":["customElement","customElement"],"sources":["../src/split-layout/split-drag.ts","../src/split-layout/split-model.ts","../src/split-layout/split-panel.ts","../src/split-layout/split-layout.ts"],"sourcesContent":["import type { DistributeResult } from './split-model.js';\n\nexport interface DragState {\n isDragging: boolean;\n groupId: string;\n gutterIndex: number;\n startPointerX: number;\n startPointerY: number;\n containerRect: DOMRect;\n trackSizes: number[];\n minConstraints: number[];\n maxConstraints: Array<number | null>;\n fixedConstraints: Array<number | null>;\n whenSmallConstraints: string[];\n}\n\nexport interface DragHandlers {\n onDragStart: (state: DragState) => void;\n onDragMove: (state: DragState, deltaX: number, deltaY: number) => void;\n onDragEnd: (state: DragState) => void;\n distribute: (\n sizesPx: number[],\n gutterIndex: number,\n deltaPx: number,\n constraints: Array<{ minPx: number; maxPx: number | null; fixedPx: number | null; whenSmall: string }>,\n ) => DistributeResult;\n}\n\nexport function createDragMachine(handlers: DragHandlers) {\n let state: DragState | null = null;\n let rafId: number | null = null;\n let pendingMove: { deltaX: number; deltaY: number } | null = null;\n\n function startGutterDrag(\n groupId: string,\n gutterIndex: number,\n _pointerId: number,\n clientX: number,\n clientY: number,\n containerRect: DOMRect,\n trackSizes: number[],\n constraints: Array<{ minPx: number; maxPx: number | null; fixedPx: number | null; whenSmall: string }>,\n ) {\n state = {\n isDragging: true,\n groupId,\n gutterIndex,\n startPointerX: clientX,\n startPointerY: clientY,\n containerRect,\n trackSizes,\n minConstraints: constraints.map(c => c.minPx),\n maxConstraints: constraints.map(c => c.maxPx),\n fixedConstraints: constraints.map(c => c.fixedPx),\n whenSmallConstraints: constraints.map(c => c.whenSmall),\n };\n\n handlers.onDragStart(state);\n }\n\n function move(pointerEvent: PointerEvent) {\n if (!state || !state.isDragging)\n return;\n\n const deltaX = pointerEvent.clientX - state.startPointerX;\n const deltaY = pointerEvent.clientY - state.startPointerY;\n\n pendingMove = { deltaX, deltaY };\n\n if (rafId === null) {\n rafId = requestAnimationFrame(flushMove);\n }\n }\n\n function flushMove() {\n if (!state || !pendingMove) {\n rafId = null;\n return;\n }\n\n const { deltaX, deltaY } = pendingMove;\n pendingMove = null;\n rafId = null;\n\n handlers.onDragMove(state, deltaX, deltaY);\n }\n\n function end(_pointerEvent: PointerEvent) {\n if (!state || !state.isDragging)\n return;\n\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n\n pendingMove = null;\n handlers.onDragEnd(state);\n state = null;\n }\n\n return {\n startGutterDrag,\n move,\n end,\n getState: () => state,\n };\n}\n","import type {\n Axis,\n GroupNode,\n LayoutNode,\n LayoutSnapshot,\n PanelNode,\n SnapshotNode,\n WhenSmall,\n} from './types.js';\n\nlet panelIdCounter = 0;\nlet groupIdCounter = 0;\n\nfunction generatePanelId(): string {\n return `p-${++panelIdCounter}`;\n}\n\nfunction generateGroupId(): string {\n return `g-${++groupIdCounter}`;\n}\n\nfunction resetIdCounters(): void {\n panelIdCounter = 0;\n groupIdCounter = 0;\n}\n\n// A child's own `size`/`weight` attribute takes precedence over the parent's\n// positional `sizes` list. Both are read so hand-authored markup can use\n// either form.\nfunction readOwnWeight(el: HTMLElement): number | undefined {\n const attr = el.getAttribute(`size`) ?? el.getAttribute(`weight`);\n if (attr === null)\n return undefined;\n const value = Number.parseFloat(attr);\n return Number.isNaN(value) ? undefined : value;\n}\n\nexport function buildModel(rootEl: HTMLElement): GroupNode {\n resetIdCounters();\n return buildGroupFromElement(rootEl, null);\n}\n\nfunction buildGroupFromElement(el: HTMLElement, _parentAxis: Axis | null): GroupNode {\n const isNestedLayout = el.tagName === `IXFX-SPLIT-LAYOUT`;\n const directionAttr = el.getAttribute(`direction`);\n const axis: Axis = directionAttr === `column` ? `column` : `row`;\n\n const group: GroupNode = {\n kind: `group`,\n id: el.id || generateGroupId(),\n el: isNestedLayout ? el : null,\n axis,\n children: [],\n weight: readOwnWeight(el) ?? 1,\n fixedPx: null,\n };\n\n const sizesAttr = el.getAttribute(`sizes`);\n const sizes = sizesAttr ? sizesAttr.split(/\\s+/).map(s => Number.parseFloat(s)).filter(n => !Number.isNaN(n)) : [];\n\n const childNodes = Array.from(el.children);\n let sizeIndex = 0;\n\n for (const child of childNodes) {\n // Every child consumes a positional size; a child's own `size`/`weight`\n // attribute (read inside each builder) takes precedence over it.\n const positional = sizeIndex < sizes.length ? sizes[sizeIndex] : undefined;\n sizeIndex++;\n if (child.tagName === `IXFX-SPLIT-LAYOUT`) {\n group.children.push(buildGroupFromElement(child as HTMLElement, axis));\n } else if (child.tagName === `IXFX-SPLIT-PANEL`) {\n group.children.push(buildPanelNode(child as HTMLElement, positional));\n } else {\n const wrapper = createImplicitPanel(child as HTMLElement, positional);\n group.children.push(wrapper);\n }\n }\n\n if (group.children.length === 0) {\n const implicitPanel = createImplicitPanelWithoutId();\n group.children.push(implicitPanel);\n }\n\n return group;\n}\n\nfunction createImplicitPanel(el: HTMLElement, size?: number): PanelNode {\n const minAttr = el.getAttribute(`min`);\n const maxAttr = el.getAttribute(`max`);\n const whenSmallAttr = el.getAttribute(`when-small`) as WhenSmall | null;\n const fixedAttr = el.getAttribute(`fixed`);\n const collapsedAttr = el.hasAttribute(`collapsed`);\n\n let minPx = 0;\n if (minAttr) {\n minPx = parseLength(minAttr, 0);\n }\n\n let maxPx: number | null = null;\n if (maxAttr) {\n maxPx = parseLength(maxAttr, 0);\n }\n\n let fixedPx: number | null = null;\n if (fixedAttr) {\n fixedPx = fixedAttr === `` ? 100 : parseLength(fixedAttr, 100);\n }\n\n const weight = readOwnWeight(el) ?? size ?? 1;\n\n return {\n kind: `panel`,\n id: el.id || generatePanelId(),\n el,\n weight,\n fixedPx,\n minPx,\n maxPx,\n whenSmall: whenSmallAttr || `prevent`,\n collapsed: collapsedAttr,\n restoreWeight: weight,\n };\n}\n\nfunction createImplicitPanelWithoutId(size?: number): PanelNode {\n return {\n kind: `panel`,\n id: generatePanelId(),\n el: document.createElement(`div`),\n weight: size ?? 1,\n fixedPx: null,\n minPx: 0,\n maxPx: null,\n whenSmall: `prevent`,\n collapsed: false,\n restoreWeight: size ?? 1,\n };\n}\n\nfunction buildPanelNode(el: HTMLElement, size?: number): PanelNode {\n const sizeAttr = el.getAttribute(`size`) || el.getAttribute(`weight`);\n const minAttr = el.getAttribute(`min`);\n const maxAttr = el.getAttribute(`max`);\n const whenSmallAttr = el.getAttribute(`when-small`) as WhenSmall | null;\n const fixedAttr = el.getAttribute(`fixed`);\n const collapsedAttr = el.hasAttribute(`collapsed`);\n\n let weight = size ?? 1;\n if (sizeAttr) {\n weight = Number.parseFloat(sizeAttr);\n }\n\n let minPx = 0;\n if (minAttr) {\n minPx = parseLength(minAttr, 0);\n }\n\n let maxPx: number | null = null;\n if (maxAttr) {\n maxPx = parseLength(maxAttr, 0);\n }\n\n let fixedPx: number | null = null;\n if (fixedAttr) {\n fixedPx = fixedAttr === `` ? 100 : parseLength(fixedAttr, 100);\n }\n\n return {\n kind: `panel`,\n id: el.id || generatePanelId(),\n el,\n weight,\n fixedPx,\n minPx,\n maxPx,\n whenSmall: whenSmallAttr || `prevent`,\n collapsed: collapsedAttr,\n restoreWeight: weight,\n };\n}\n\nfunction parseLength(value: string, fallback: number): number {\n if (value.endsWith(`px`)) {\n return Number.parseFloat(value.replace(`px`, ``));\n }\n if (value.endsWith(`%`)) {\n return fallback;\n }\n const num = Number.parseFloat(value);\n return Number.isNaN(num) ? fallback : num;\n}\n\nexport function normalise(group: GroupNode): GroupNode {\n const flexibleWeights: number[] = [];\n let totalFlexibleWeight = 0;\n\n for (const child of group.children) {\n if (child.kind === `panel`) {\n if (child.fixedPx !== null) {\n // fixed-size panels sit outside the weighted flow\n } else if (!child.collapsed) {\n flexibleWeights.push(child.weight);\n totalFlexibleWeight += child.weight;\n }\n } else {\n flexibleWeights.push(child.weight);\n totalFlexibleWeight += child.weight;\n }\n }\n\n if (totalFlexibleWeight === 0) {\n totalFlexibleWeight = 1;\n }\n\n const normalizedChildren: LayoutNode[] = [];\n for (let i = 0; i < group.children.length; i++) {\n const child = group.children[i];\n if (child.kind === `panel`) {\n if (child.fixedPx === null && !child.collapsed) {\n normalizedChildren.push({\n ...child,\n weight: child.weight / totalFlexibleWeight,\n });\n } else {\n normalizedChildren.push(child);\n }\n } else {\n normalizedChildren.push({\n ...child,\n weight: child.weight / totalFlexibleWeight,\n });\n }\n }\n\n return {\n ...group,\n children: normalizedChildren,\n };\n}\n\nexport interface DistributeResult {\n sizesPx: number[];\n belowMin: number[];\n}\n\nexport function distribute(\n sizesPx: number[],\n gutterIndex: number,\n deltaPx: number,\n constraints: Array<{ minPx: number; maxPx: number | null; fixedPx: number | null; whenSmall: WhenSmall }>,\n): DistributeResult {\n const result = [...sizesPx];\n const belowMin: number[] = [];\n\n if (deltaPx === 0) {\n return { sizesPx: result, belowMin };\n }\n\n const growSide = deltaPx > 0 ? gutterIndex : gutterIndex + 1;\n const shrinkSide = deltaPx > 0 ? gutterIndex + 1 : gutterIndex;\n\n let remaining = Math.abs(deltaPx);\n\n for (let i = shrinkSide; i >= 0 && remaining > 0; i--) {\n const c = constraints[i];\n if (c.fixedPx !== null)\n continue;\n\n const currentSize = result[i];\n const room = currentSize - c.minPx;\n\n if (room > 0) {\n const take = Math.min(room, remaining);\n result[i] -= take;\n remaining -= take;\n if (c.whenSmall !== `prevent` && result[i] <= c.minPx && result[i] > 0) {\n belowMin.push(i);\n break;\n }\n } else if (c.whenSmall !== `prevent` && currentSize > 0) {\n const take = Math.min(currentSize, remaining);\n result[i] -= take;\n remaining -= take;\n if (result[i] <= c.minPx) {\n belowMin.push(i);\n break;\n }\n }\n }\n\n const actualMoved = Math.abs(deltaPx) - remaining;\n if (actualMoved > 0) {\n result[growSide] += actualMoved;\n remaining = 0;\n }\n\n if (remaining > 0) {\n for (let i = growSide; i < result.length && remaining > 0; i++) {\n const c = constraints[i];\n if (c.fixedPx !== null)\n continue;\n\n const maxRoom = c.maxPx !== null ? c.maxPx - result[i] : Infinity;\n if (maxRoom <= 0)\n continue;\n\n const give = Math.min(maxRoom, remaining);\n result[i] += give;\n remaining -= give;\n }\n }\n\n return { sizesPx: result, belowMin };\n}\n\nexport function resolveTracks(group: GroupNode, _containerPx: number): string {\n const parts: string[] = [];\n\n const gutterSize = `var(--split-gutter-size, 6px)`;\n\n for (let i = 0; i < group.children.length; i++) {\n const child = group.children[i];\n let track: string;\n\n if (child.kind === `panel`) {\n if (child.collapsed) {\n track = `var(--split-collapsed-size, 0px)`;\n } else if (child.fixedPx !== null) {\n track = `${child.fixedPx}px`;\n } else {\n const min = child.minPx > 0 ? `${child.minPx}px` : `0px`;\n track = `minmax(${min}, var(--s${i}))`;\n }\n } else {\n track = `minmax(0, var(--s${i}))`;\n }\n\n parts.push(track);\n\n if (i < group.children.length - 1) {\n parts.push(gutterSize);\n }\n }\n\n return parts.join(` `);\n}\n\nexport function toSnapshot(group: GroupNode): LayoutSnapshot {\n const root = snapshotNode(group);\n return {\n version: 1,\n root,\n };\n}\n\nfunction snapshotNode(node: LayoutNode): SnapshotNode {\n if (node.kind === `panel`) {\n return {\n kind: `panel`,\n id: node.id,\n weight: node.weight,\n collapsed: node.collapsed,\n };\n }\n\n const children = node.children.map(c => snapshotNode(c));\n return {\n kind: `group`,\n id: node.id,\n weight: node.weight,\n children,\n };\n}\n\nexport function applySnapshot(group: GroupNode, snapshot: LayoutSnapshot): GroupNode {\n return applySnapshotToGroup(group, snapshot.root);\n}\n\nfunction applySnapshotToGroup(group: GroupNode, snapshot: SnapshotNode): GroupNode {\n if (snapshot.kind !== `group`) {\n return group;\n }\n\n const weightMap = new Map<string, number>();\n const collapsedMap = new Map<string, boolean>();\n\n collectWeights(snapshot, weightMap, collapsedMap);\n\n const newChildren: LayoutNode[] = [];\n\n for (const child of group.children) {\n if (child.kind === `panel`) {\n const newWeight = weightMap.get(child.id);\n const collapsed = collapsedMap.get(child.id);\n\n newChildren.push({\n ...child,\n weight: newWeight !== undefined ? newWeight : child.weight,\n collapsed: collapsed !== undefined ? collapsed : child.collapsed,\n });\n } else {\n const childSnapshot = snapshot.children?.find(c => c.id === child.id);\n if (childSnapshot) {\n newChildren.push(applySnapshotToGroup(child, childSnapshot));\n } else {\n newChildren.push(child);\n }\n }\n }\n\n return {\n ...group,\n children: newChildren,\n };\n}\n\nfunction collectWeights(snapshot: SnapshotNode, weights: Map<string, number>, collapsed: Map<string, boolean>): void {\n if (snapshot.kind === `panel`) {\n weights.set(snapshot.id, snapshot.weight ?? 1);\n if (snapshot.collapsed !== undefined) {\n collapsed.set(snapshot.id, snapshot.collapsed);\n }\n } else if (snapshot.children) {\n for (const child of snapshot.children) {\n collectWeights(child, weights, collapsed);\n }\n }\n}\n\nexport function walk(group: GroupNode, visitor: (node: LayoutNode, path: number[]) => void): void {\n walkInner(group, [], visitor);\n}\n\nfunction walkInner(node: LayoutNode, path: number[], visitor: (node: LayoutNode, path: number[]) => void): void {\n visitor(node, path);\n\n if (node.kind === `group`) {\n for (let i = 0; i < node.children.length; i++) {\n walkInner(node.children[i], [...path, i], visitor);\n }\n }\n}\n","import { css, html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { themeFallbacks } from '../styles/fallbacks.js';\nimport { safeCustomElement as customElement } from '../util/custom-elements.js';\n\n@customElement(`ixfx-split-panel`)\nexport class SplitPanelElement extends LitElement {\n @property({ type: String, reflect: true })\n id = ``;\n\n @property({ type: String })\n size = ``;\n\n @property({ type: String })\n weight = ``;\n\n @property({ type: String })\n fixed = ``;\n\n @property({ type: String })\n min = ``;\n\n @property({ type: String })\n max = ``;\n\n @property({ type: String, attribute: `when-small` })\n whenSmall = `prevent`;\n\n @property({ type: Boolean, reflect: true })\n collapsed = false;\n\n @property({ type: String })\n snap = ``;\n\n override render() {\n return html`<slot></slot>`;\n }\n\n static override styles = [\n themeFallbacks,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n :host([collapsed]) {\n visibility: hidden;\n }\n `,\n ];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ixfx-split-panel': SplitPanelElement;\n }\n}\n","import type { DragState } from './split-drag.js';\nimport type { Axis, GroupNode, LayoutSnapshot, PanelInfo, SplitChangeDetail, SplitCloseDetail, SplitCollapseDetail, SplitExpandDetail, SplitResizeDetail } from './types.js';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { themeFallbacks } from '../styles/fallbacks.js';\nimport { handleStyles } from '../styles/handle.js';\nimport { safeCustomElement as customElement } from '../util/custom-elements.js';\nimport { createDragMachine } from './split-drag.js';\nimport { applySnapshot, buildModel, distribute, normalise, toSnapshot, walk } from './split-model.js';\nimport './split-panel.js';\n\n@customElement(`ixfx-split-layout`)\nexport class SplitLayoutElement extends LitElement {\n @property({ type: String, reflect: true })\n direction: Axis = `row`;\n\n @property({ type: String })\n sizes = ``;\n\n @property({ type: String, attribute: `gutter-size` })\n gutterSize = ``;\n\n @property({ type: String })\n snap = ``;\n\n @state()\n private _model: GroupNode | null = null;\n\n @state()\n private _resizing = false;\n\n @query(`.grid`)\n private _groupEl?: HTMLElement;\n\n private _observer: MutationObserver | null = null;\n private _applyingOwnMutation = false;\n private _dragStructurallyChanged = false;\n private _dragMachine = createDragMachine({\n onDragStart: state => this._handleDragStart(state),\n onDragMove: (state, deltaX, deltaY) => this._handleDragMove(state, deltaX, deltaY),\n onDragEnd: state => this._handleDragEnd(state),\n distribute: (sizes, idx, delta, constraints) => {\n return distribute(sizes, idx, delta, constraints as any);\n },\n });\n\n override connectedCallback() {\n super.connectedCallback();\n this._setupObserver();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this._observer?.disconnect();\n }\n\n override firstUpdated() {\n this._rebuildModel();\n }\n\n private _setupObserver() {\n this._observer = new MutationObserver(() => {\n if (!this._applyingOwnMutation) {\n Promise.resolve().then(() => this._rebuildModel());\n }\n });\n\n this._observer.observe(this, {\n childList: true,\n subtree: true,\n attributeFilter: [`size`, `weight`, `min`, `max`, `when-small`, `fixed`, `direction`, `collapsed`, `sizes`],\n });\n }\n\n private _rebuildModel() {\n // Named slots are always rendered as `panel-0`..`panel-(n-1)`, so every\n // light-DOM child must carry the matching `slot`. Re-assert this on every\n // rebuild: children may have been added (with a stale/ad-hoc slot name) or\n // removed since the model was last built, which would otherwise leave an\n // orphaned child projected nowhere and an empty grid track.\n this._reindexSlots();\n const model = buildModel(this);\n const normalized = normalise(model);\n this._model = normalized;\n this.requestUpdate();\n }\n\n get panels(): PanelInfo[] {\n if (!this._model)\n return [];\n\n const panels: PanelInfo[] = [];\n walk(this._model, (node, path) => {\n if (node.kind === `panel`) {\n panels.push({\n id: node.id,\n el: node.el,\n index: path[path.length - 1],\n path: path.join(`-`),\n weight: node.weight,\n collapsed: node.collapsed,\n min: node.minPx,\n max: node.maxPx,\n whenSmall: node.whenSmall,\n });\n }\n });\n return panels;\n }\n\n getLayout(): LayoutSnapshot | null {\n if (!this._model)\n return null;\n return toSnapshot(this._model);\n }\n\n setLayout(s: LayoutSnapshot): void {\n if (!this._model)\n return;\n this._applyingOwnMutation = true;\n this._model = applySnapshot(this._model, s);\n this.requestUpdate();\n this._applyingOwnMutation = false;\n this._emitChange();\n }\n\n getSizes(_groupId?: string): Record<string, number> {\n if (!this._model)\n return {};\n const result: Record<string, number> = {};\n if (this._model.children) {\n this._model.children.forEach((child) => {\n result[child.id] = child.weight;\n });\n }\n return result;\n }\n\n setSizes(weights: number[] | Record<string, number>, _groupId?: string): void {\n if (!this._model)\n return;\n\n this._applyingOwnMutation = true;\n\n if (Array.isArray(weights)) {\n this._model.children.forEach((child, i) => {\n if (i < weights.length) {\n child.weight = weights[i];\n }\n });\n } else {\n for (const [id, weight] of Object.entries(weights)) {\n const child = this._model.children.find(c => c.id === id);\n if (child) {\n child.weight = weight;\n }\n }\n }\n\n this._model = normalise(this._model);\n this.requestUpdate();\n this._applyingOwnMutation = false;\n this._emitResize();\n this._emitChange();\n }\n\n collapse(idOrEl: string | HTMLElement): void {\n this._setCollapsedState(idOrEl, true);\n }\n\n expand(idOrEl: string | HTMLElement): void {\n this._setCollapsedState(idOrEl, false);\n }\n\n toggle(idOrEl: string | HTMLElement): void {\n const panel = this._findPanel(idOrEl);\n if (panel) {\n this._setCollapsedState(panel.id, !panel.collapsed);\n }\n }\n\n closePanel(idOrEl: string | HTMLElement): boolean {\n const panel = this._findPanel(idOrEl);\n if (!panel)\n return false;\n\n const event = new CustomEvent<SplitCloseDetail>(`ixfx-split-close`, {\n detail: { id: panel.id, index: panel.index },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n\n this.dispatchEvent(event);\n if (event.defaultPrevented)\n return false;\n\n this._applyingOwnMutation = true;\n panel.el.remove();\n this._rebuildModel();\n // Discard the records for our own mutations: the observer callback runs in a\n // microtask, by which point the flag below is already cleared, so without\n // this it would schedule a redundant rebuild from the DOM.\n this._observer?.takeRecords();\n this._applyingOwnMutation = false;\n\n this._emitResize();\n this._emitChange();\n return true;\n }\n\n /**\n * Bounding rects of the gutter elements, in gutter index order. lets\n * callers (e.g. dock junction handles) hit-test gutters without reaching\n * into the shadow DOM.\n */\n getGutterRects(): DOMRect[] {\n const gutters = this.shadowRoot?.querySelectorAll<HTMLElement>(`.gutter`);\n if (gutters === undefined || gutters === null)\n return [];\n return Array.from(gutters, g => g.getBoundingClientRect());\n }\n\n /**\n * Programmatically begin dragging the gutter at `gutterIndex`, as if the\n * user had pressed on it at (`clientX`, `clientY`). The drag then follows\n * the pointer `pointerId` until pointerup, exactly like a native gutter\n * drag. Returns false when the index is out of range or the layout isn't\n * ready. Intended for composite resize affordances — e.g. a junction handle\n * that starts this drag alongside perpendicular drags on other layouts.\n */\n beginGutterDrag(gutterIndex: number, pointerId: number, clientX: number, clientY: number): boolean {\n if (!this._groupEl || !this._model)\n return false;\n if (gutterIndex < 0 || gutterIndex >= this._model.children.length - 1)\n return false;\n\n const { rect, trackSizes, constraints } = this._snapshotTracks();\n\n this._dragMachine.startGutterDrag(\n this._model.id,\n gutterIndex,\n pointerId,\n clientX,\n clientY,\n rect,\n trackSizes,\n constraints,\n );\n\n window.addEventListener(`pointermove`, this._onPointerMove);\n window.addEventListener(`pointerup`, this._onPointerUp);\n return true;\n }\n\n private _setCollapsedState(idOrEl: string | HTMLElement, collapsed: boolean, revealWeight?: number): void {\n const panel = this._findPanel(idOrEl);\n if (!panel || panel.collapsed === collapsed)\n return;\n\n this._applyingOwnMutation = true;\n\n if (collapsed) {\n panel.el.setAttribute(`collapsed`, ``);\n panel.el.setAttribute(`data-collapsed`, ``);\n } else {\n panel.el.removeAttribute(`collapsed`);\n panel.el.removeAttribute(`data-collapsed`);\n }\n\n this._rebuildModel();\n if (!collapsed && revealWeight !== undefined) {\n this._setFlexibleWeight(panel.id, revealWeight);\n }\n this.requestUpdate();\n // The observer callback runs in a microtask, after the flag below is\n // cleared; draining our own records stops it rebuilding from the DOM and\n // wiping the weights just set (e.g. the drag-to-reveal size).\n this._observer?.takeRecords();\n this._applyingOwnMutation = false;\n\n if (collapsed) {\n this.dispatchEvent(new CustomEvent<SplitCollapseDetail>(`ixfx-split-collapse`, {\n detail: { id: panel.id, index: panel.index },\n bubbles: true,\n composed: true,\n }));\n } else {\n this.dispatchEvent(new CustomEvent<SplitExpandDetail>(`ixfx-split-expand`, {\n detail: { id: panel.id, index: panel.index },\n bubbles: true,\n composed: true,\n }));\n }\n\n this._emitResize();\n this._emitChange();\n }\n\n // Force every direct child onto the slot the renderer expects for its\n // position (`panel-<domIndex>`). Callers may append children with any slot\n // name (or none), and removals leave gaps; this keeps projection in sync\n // with the `panel-0`..`panel-(n-1)` slots `render()` emits. `slot` is not in\n // the observer's attributeFilter, so this does not re-trigger a rebuild.\n private _reindexSlots(): void {\n Array.from(this.children).forEach((child, i) => {\n const name = `panel-${i}`;\n if (child.getAttribute(`slot`) !== name)\n child.setAttribute(`slot`, name);\n });\n }\n\n private _findPanel(idOrEl: string | HTMLElement): PanelInfo | undefined {\n const id = typeof idOrEl === `string` ? idOrEl : idOrEl.id;\n return this.panels.find(p => p.id === id);\n }\n\n // Give one flexible child a target share of the weighted flow, shrinking the\n // other flexible children proportionally to make room.\n private _setFlexibleWeight(id: string, weight: number): void {\n if (!this._model)\n return;\n\n const isFlexible = (c: GroupNode[`children`][number]) =>\n c.kind === `group` || (c.fixedPx === null && !c.collapsed);\n const flexible = this._model.children.filter(isFlexible);\n const target = flexible.find(c => c.id === id);\n if (!target)\n return;\n\n const t = Math.min(Math.max(weight, 0), 0.9);\n const others = flexible.filter(c => c !== target);\n const othersTotal = others.reduce((sum, c) => sum + c.weight, 0) || 1;\n const scale = (1 - t) / othersTotal;\n for (const c of others) {\n c.weight *= scale;\n }\n target.weight = t;\n\n this._model = normalise(this._model);\n }\n\n // Pixel drag distance past a collapsed panel's gutter before it re-expands.\n private _snapPx(): number {\n const fromProp = Number.parseFloat(this.snap);\n if (!Number.isNaN(fromProp))\n return fromProp;\n const fromVar = Number.parseFloat(getComputedStyle(this).getPropertyValue(`--split-snap`));\n return Number.isNaN(fromVar) ? 24 : fromVar;\n }\n\n private _collapsedPx(): number {\n const v = Number.parseFloat(getComputedStyle(this).getPropertyValue(`--split-collapsed-size`));\n return Number.isNaN(v) ? 0 : v;\n }\n\n private _handleDragStart(_state: DragState) {\n this._resizing = true;\n this._dragStructurallyChanged = false;\n this.setAttribute(`data-dragging`, ``);\n }\n\n private _handleDragMove(state: DragState, deltaX: number, deltaY: number) {\n if (!this._model)\n return;\n\n // A panel was closed/collapsed on an earlier frame of this drag. The\n // captured drag state (track sizes, constraints, gutter index) no longer\n // lines up with the model, so continuing would operate on the wrong\n // panels and cascade. Ignore further movement until the pointer is released.\n if (this._dragStructurallyChanged)\n return;\n\n const axis = this.direction;\n const delta = axis === `row` ? deltaX : deltaY;\n const gutterIndex = state.gutterIndex;\n\n // Dragging a gutter away from a collapsed neighbour re-expands it.\n // Collapsed panels are outside the normal size-distribution flow, so this\n // has to be handled before `distribute`. The panel stays hidden until the\n // drag has travelled far enough to reveal it at its `min` size (it may not\n // render well any smaller); without a `min`, the snap threshold is used.\n const growSide = delta > 0 ? gutterIndex : gutterIndex + 1;\n const growNeighbour = this._model.children[growSide];\n if (growNeighbour?.kind === `panel` && growNeighbour.collapsed) {\n const revealPx = growNeighbour.minPx > 0 ? growNeighbour.minPx : this._snapPx();\n if (Math.abs(delta) >= revealPx) {\n const axisPx = axis === `row` ? state.containerRect.width : state.containerRect.height;\n this._setCollapsedState(growNeighbour.id, false, axisPx > 0 ? revealPx / axisPx : undefined);\n // Re-anchor the drag to the current pointer position and the new layout\n // so the same gesture keeps growing the panel past its min size.\n this._reseedDragState(state, state.startPointerX + deltaX, state.startPointerY + deltaY);\n }\n return;\n }\n\n const constraints = state.minConstraints.map((min, i) => ({\n minPx: min,\n maxPx: state.maxConstraints[i],\n fixedPx: state.fixedConstraints[i],\n whenSmall: state.whenSmallConstraints[i] as any,\n }));\n\n const result = distribute(\n state.trackSizes,\n gutterIndex,\n delta,\n constraints,\n );\n\n const totalSize = state.trackSizes.reduce((a, b) => a + b, 0);\n result.sizesPx.forEach((size, i) => {\n const child = this._model!.children[i];\n if (child && child.kind === `panel`) {\n child.weight = size / totalSize;\n }\n });\n\n if (result.belowMin.length > 0) {\n let processed = false;\n for (const idx of result.belowMin) {\n if (processed)\n break;\n const child = this._model!.children[idx];\n if (child && child.kind === `panel`) {\n const whenSmall = child.whenSmall;\n if (whenSmall === `collapse` && !child.collapsed) {\n this._setCollapsedState(child.id, true);\n processed = true;\n this._dragStructurallyChanged = true;\n } else if (whenSmall === `close`) {\n this.closePanel(child.id);\n processed = true;\n this._dragStructurallyChanged = true;\n }\n }\n }\n }\n\n this._model = normalise(this._model);\n this.requestUpdate();\n }\n\n private _handleDragEnd(_state: DragState) {\n this._resizing = false;\n this.removeAttribute(`data-dragging`);\n this._emitResize();\n this._emitChange();\n }\n\n // Snapshot of the current gutter geometry, used to seed (and mid-drag\n // re-seed) the drag machine. Collapsed / fixed panels sit outside the\n // weighted flow, so their raw `weight` is meaningless — use their real\n // rendered track size instead.\n private _snapshotTracks() {\n const rect = this._groupEl!.getBoundingClientRect();\n const axisSize = this.direction === `row` ? rect.width : rect.height;\n const collapsedPx = this._collapsedPx();\n const children = this._model!.children;\n\n const trackSizes = children.map((c) => {\n if (c.kind === `panel` && c.collapsed)\n return collapsedPx;\n if (c.kind === `panel` && c.fixedPx !== null)\n return c.fixedPx;\n return c.weight * axisSize;\n });\n const constraints = children.map((c) => {\n if (c.kind === `panel`) {\n return { minPx: c.minPx, maxPx: c.maxPx, fixedPx: c.fixedPx, whenSmall: c.whenSmall };\n }\n return { minPx: 0, maxPx: null as number | null, fixedPx: null as number | null, whenSmall: `prevent` as const };\n });\n\n return { rect, trackSizes, constraints };\n }\n\n private _reseedDragState(state: DragState, pointerX: number, pointerY: number): void {\n if (!this._groupEl || !this._model)\n return;\n\n const { rect, trackSizes, constraints } = this._snapshotTracks();\n state.startPointerX = pointerX;\n state.startPointerY = pointerY;\n state.containerRect = rect;\n state.trackSizes = trackSizes;\n state.minConstraints = constraints.map(c => c.minPx);\n state.maxConstraints = constraints.map(c => c.maxPx);\n state.fixedConstraints = constraints.map(c => c.fixedPx);\n state.whenSmallConstraints = constraints.map(c => c.whenSmall);\n }\n\n private _onGutterPointerDown = (e: PointerEvent, groupId: string, gutterIndex: number) => {\n e.preventDefault();\n if (!this._groupEl || !this._model)\n return;\n\n const { rect, trackSizes, constraints } = this._snapshotTracks();\n\n this._dragMachine.startGutterDrag(\n groupId,\n gutterIndex,\n e.pointerId,\n e.clientX,\n e.clientY,\n rect,\n trackSizes,\n constraints,\n );\n\n window.addEventListener(`pointermove`, this._onPointerMove);\n window.addEventListener(`pointerup`, this._onPointerUp);\n };\n\n private _onPointerMove = (e: PointerEvent) => {\n this._dragMachine.move(e);\n };\n\n private _onPointerUp = (e: PointerEvent) => {\n this._dragMachine.end(e);\n window.removeEventListener(`pointermove`, this._onPointerMove);\n window.removeEventListener(`pointerup`, this._onPointerUp);\n };\n\n private _emitResize() {\n if (!this._model)\n return;\n const detail: SplitResizeDetail = {\n sizes: this.getSizes(),\n groupId: this._model.id,\n };\n this.dispatchEvent(new CustomEvent<SplitResizeDetail>(`ixfx-split-resize`, {\n detail,\n bubbles: true,\n composed: true,\n }));\n }\n\n private _emitChange() {\n const layout = this.getLayout();\n if (!layout)\n return;\n const detail: SplitChangeDetail = { layout };\n this.dispatchEvent(new CustomEvent<SplitChangeDetail>(`ixfx-split-change`, {\n detail,\n bubbles: true,\n composed: true,\n }));\n }\n\n protected override render() {\n if (!this._model)\n return nothing;\n\n const isRow = this._model.axis === `row`;\n const trackSizes = this._resolveTracks(this._model);\n\n const cssVars = this._model.children.map((child, i) => {\n return `--s${i}: ${child.weight * 100}%`;\n }).join(`; `);\n\n const gridStyle = isRow\n ? `grid-template-columns: ${trackSizes}; grid-template-rows: 1fr; ${cssVars}`\n : `grid-template-rows: ${trackSizes}; grid-template-columns: 1fr; ${cssVars}`;\n\n return html`\n <div class=\"grid\" style=\"${gridStyle}\">\n ${this._model.children.map((_, i) => html`\n <div part=\"panel\" style=\"grid-column: ${isRow ? i * 2 + 1 : 1}; grid-row: ${isRow ? 1 : i * 2 + 1}; display: flex; flex-direction: ${isRow ? `row` : `column`}; overflow: hidden;\">\n <slot name=\"panel-${i}\"></slot>\n </div>\n `)}\n ${this._model.children.slice(0, -1).map((_, i) => this._renderGutter(this._model!.id, i, isRow))}\n </div>\n `;\n }\n\n private _getTrackSizes(count: number): string[] {\n const sizes: string[] = [];\n for (let i = 0; i < count; i++) {\n sizes.push(`var(--s${i}, 1fr)`);\n }\n return sizes;\n }\n\n private _resolveTracks(model: GroupNode): string {\n const _isRow = model.axis === `row`;\n const parts: string[] = [];\n const gutterSize = `var(--split-gutter-size, 6px)`;\n\n for (let i = 0; i < model.children.length; i++) {\n const child = model.children[i];\n let track: string;\n\n if (child.kind === `panel`) {\n if (child.collapsed) {\n track = `var(--split-collapsed-size, 0px)`;\n } else if (child.fixedPx !== null) {\n track = `${child.fixedPx}px`;\n } else {\n const min = child.minPx > 0 ? `${child.minPx}px` : `0px`;\n track = `minmax(${min}, var(--s${i}, 1fr))`;\n }\n } else {\n track = `minmax(0, var(--s${i}, 1fr))`;\n }\n\n parts.push(track);\n\n if (i < model.children.length - 1) {\n parts.push(gutterSize);\n }\n }\n\n return parts.join(` `);\n }\n\n private _renderGutter(groupId: string, index: number, isRow: boolean) {\n const cursor = isRow ? `ew-resize` : `ns-resize`;\n const gridColumn = isRow ? `${(index + 1) * 2}` : `1`;\n const gridRow = isRow ? `1` : `${(index + 1) * 2}`;\n\n return html`\n <div\n class=\"gutter\"\n data-group=\"${groupId}\"\n data-index=\"${index}\"\n style=\"cursor: ${cursor}; grid-column: ${gridColumn}; grid-row: ${gridRow};\"\n @pointerdown=${(e: PointerEvent) => this._onGutterPointerDown(e, groupId, index)}\n >\n <span\n class=\"ixfx-handle\"\n part=\"grip\"\n data-handle=\"dimpled\"\n data-shape=${isRow ? `vertical` : `horizontal`}\n ></span>\n </div>\n `;\n }\n\n static override styles = [\n themeFallbacks,\n handleStyles,\n css`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n --split-gutter-size: 6px;\n --split-gutter-color: transparent;\n --split-gutter-hover-color: var(--surface-6);\n --split-gutter-active-color: var(--accent);\n --split-collapsed-size: 0px;\n --split-snap: 24px;\n\n /* Gutter grip — shared handle primitive (docs/infra-handle.md). */\n --ixfx-handle-length: 16px;\n --ixfx-handle-thickness: 8px;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .grid {\n display: grid;\n width: 100%;\n height: 100%;\n }\n\n .grid slot {\n display: block;\n min-width: 0;\n min-height: 0;\n width: 100%;\n height: 100%;\n }\n\n ::part(panel) {\n width: 100%;\n height: 100%;\n }\n\n .gutter {\n z-index: 2;\n background: var(--split-gutter-color);\n transition: background-color var(--transition, 0.2s);\n pointer-events: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n :host([direction=\"row\"]) .gutter {\n width: var(--split-gutter-size);\n cursor: ew-resize;\n min-height: 100%;\n }\n\n :host([direction=\"column\"]) .gutter {\n height: var(--split-gutter-size);\n cursor: ns-resize;\n min-width: 100%;\n }\n\n .gutter:hover,\n .gutter[data-active] {\n background: var(--split-gutter-hover-color);\n }\n\n :host([data-dragging]) .gutter {\n background: var(--split-gutter-active-color);\n }\n\n :host([data-dragging]) * {\n transition: none !important;\n user-select: none;\n }\n\n :host([data-dragging]) .gutter .ixfx-handle {\n display: none;\n }\n\n :host(:not([data-dragging])) .gutter:hover .ixfx-handle {\n display: none;\n }\n `,\n ];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ixfx-split-layout': SplitLayoutElement;\n }\n\n interface HTMLElementEventMap {\n 'ixfx-split-resize': CustomEvent<SplitResizeDetail>;\n 'ixfx-split-collapse': CustomEvent<SplitCollapseDetail>;\n 'ixfx-split-expand': CustomEvent<SplitExpandDetail>;\n 'ixfx-split-close': CustomEvent<SplitCloseDetail>;\n 'ixfx-split-change': CustomEvent<SplitChangeDetail>;\n }\n}\n"],"mappings":";;;;;;AA4BA,SAAgB,kBAAkB,UAAwB;CACxD,IAAI,QAA0B;CAC9B,IAAI,QAAuB;CAC3B,IAAI,cAAyD;CAE7D,SAAS,gBACP,SACA,aACA,YACA,SACA,SACA,eACA,YACA,aACA;EACA,QAAQ;GACN,YAAY;GACZ;GACA;GACA,eAAe;GACf,eAAe;GACf;GACA;GACA,gBAAgB,YAAY,KAAI,MAAK,EAAE,KAAK;GAC5C,gBAAgB,YAAY,KAAI,MAAK,EAAE,KAAK;GAC5C,kBAAkB,YAAY,KAAI,MAAK,EAAE,OAAO;GAChD,sBAAsB,YAAY,KAAI,MAAK,EAAE,SAAS;EACxD;EAEA,SAAS,YAAY,KAAK;CAC5B;CAEA,SAAS,KAAK,cAA4B;EACxC,IAAI,CAAC,SAAS,CAAC,MAAM,YACnB;EAKF,cAAc;GAAE,QAHD,aAAa,UAAU,MAAM;GAGpB,QAFT,aAAa,UAAU,MAAM;EAEb;EAE/B,IAAI,UAAU,MACZ,QAAQ,sBAAsB,SAAS;CAE3C;CAEA,SAAS,YAAY;EACnB,IAAI,CAAC,SAAS,CAAC,aAAa;GAC1B,QAAQ;GACR;EACF;EAEA,MAAM,EAAE,QAAQ,WAAW;EAC3B,cAAc;EACd,QAAQ;EAER,SAAS,WAAW,OAAO,QAAQ,MAAM;CAC3C;CAEA,SAAS,IAAI,eAA6B;EACxC,IAAI,CAAC,SAAS,CAAC,MAAM,YACnB;EAEF,IAAI,UAAU,MAAM;GAClB,qBAAqB,KAAK;GAC1B,QAAQ;EACV;EAEA,cAAc;EACd,SAAS,UAAU,KAAK;EACxB,QAAQ;CACV;CAEA,OAAO;EACL;EACA;EACA;EACA,gBAAgB;CAClB;AACF;;;ACjGA,IAAI,iBAAiB;AACrB,IAAI,iBAAiB;AAErB,SAAS,kBAA0B;CACjC,OAAO,KAAK,EAAE;AAChB;AAEA,SAAS,kBAA0B;CACjC,OAAO,KAAK,EAAE;AAChB;AAEA,SAAS,kBAAwB;CAC/B,iBAAiB;CACjB,iBAAiB;AACnB;AAKA,SAAS,cAAc,IAAqC;CAC1D,MAAM,OAAO,GAAG,aAAa,MAAM,KAAK,GAAG,aAAa,QAAQ;CAChE,IAAI,SAAS,MACX,OAAO,KAAA;CACT,MAAM,QAAQ,OAAO,WAAW,IAAI;CACpC,OAAO,OAAO,MAAM,KAAK,IAAI,KAAA,IAAY;AAC3C;AAEA,SAAgB,WAAW,QAAgC;CACzD,gBAAgB;CAChB,OAAO,sBAAsB,QAAQ,IAAI;AAC3C;AAEA,SAAS,sBAAsB,IAAiB,aAAqC;CACnF,MAAM,iBAAiB,GAAG,YAAY;CAEtC,MAAM,OADgB,GAAG,aAAa,WACP,MAAM,WAAW,WAAW;CAE3D,MAAM,QAAmB;EACvB,MAAM;EACN,IAAI,GAAG,MAAM,gBAAgB;EAC7B,IAAI,iBAAiB,KAAK;EAC1B;EACA,UAAU,CAAC;EACX,QAAQ,cAAc,EAAE,KAAK;EAC7B,SAAS;CACX;CAEA,MAAM,YAAY,GAAG,aAAa,OAAO;CACzC,MAAM,QAAQ,YAAY,UAAU,MAAM,KAAK,CAAC,CAAC,KAAI,MAAK,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAO,MAAK,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC;CAEjH,MAAM,aAAa,MAAM,KAAK,GAAG,QAAQ;CACzC,IAAI,YAAY;CAEhB,KAAK,MAAM,SAAS,YAAY;EAG9B,MAAM,aAAa,YAAY,MAAM,SAAS,MAAM,aAAa,KAAA;EACjE;EACA,IAAI,MAAM,YAAY,qBACpB,MAAM,SAAS,KAAK,sBAAsB,OAAsB,IAAI,CAAC;OAChE,IAAI,MAAM,YAAY,oBAC3B,MAAM,SAAS,KAAK,eAAe,OAAsB,UAAU,CAAC;OAC/D;GACL,MAAM,UAAU,oBAAoB,OAAsB,UAAU;GACpE,MAAM,SAAS,KAAK,OAAO;EAC7B;CACF;CAEA,IAAI,MAAM,SAAS,WAAW,GAAG;EAC/B,MAAM,gBAAgB,6BAA6B;EACnD,MAAM,SAAS,KAAK,aAAa;CACnC;CAEA,OAAO;AACT;AAEA,SAAS,oBAAoB,IAAiB,MAA0B;CACtE,MAAM,UAAU,GAAG,aAAa,KAAK;CACrC,MAAM,UAAU,GAAG,aAAa,KAAK;CACrC,MAAM,gBAAgB,GAAG,aAAa,YAAY;CAClD,MAAM,YAAY,GAAG,aAAa,OAAO;CACzC,MAAM,gBAAgB,GAAG,aAAa,WAAW;CAEjD,IAAI,QAAQ;CACZ,IAAI,SACF,QAAQ,YAAY,SAAS,CAAC;CAGhC,IAAI,QAAuB;CAC3B,IAAI,SACF,QAAQ,YAAY,SAAS,CAAC;CAGhC,IAAI,UAAyB;CAC7B,IAAI,WACF,UAAU,cAAc,KAAK,MAAM,YAAY,WAAW,GAAG;CAG/D,MAAM,SAAS,cAAc,EAAE,KAAK,QAAQ;CAE5C,OAAO;EACL,MAAM;EACN,IAAI,GAAG,MAAM,gBAAgB;EAC7B;EACA;EACA;EACA;EACA;EACA,WAAW,iBAAiB;EAC5B,WAAW;EACX,eAAe;CACjB;AACF;AAEA,SAAS,6BAA6B,MAA0B;CAC9D,OAAO;EACL,MAAM;EACN,IAAI,gBAAgB;EACpB,IAAI,SAAS,cAAc,KAAK;EAChC,QAAQ,QAAQ;EAChB,SAAS;EACT,OAAO;EACP,OAAO;EACP,WAAW;EACX,WAAW;EACX,eAAe,QAAQ;CACzB;AACF;AAEA,SAAS,eAAe,IAAiB,MAA0B;CACjE,MAAM,WAAW,GAAG,aAAa,MAAM,KAAK,GAAG,aAAa,QAAQ;CACpE,MAAM,UAAU,GAAG,aAAa,KAAK;CACrC,MAAM,UAAU,GAAG,aAAa,KAAK;CACrC,MAAM,gBAAgB,GAAG,aAAa,YAAY;CAClD,MAAM,YAAY,GAAG,aAAa,OAAO;CACzC,MAAM,gBAAgB,GAAG,aAAa,WAAW;CAEjD,IAAI,SAAS,QAAQ;CACrB,IAAI,UACF,SAAS,OAAO,WAAW,QAAQ;CAGrC,IAAI,QAAQ;CACZ,IAAI,SACF,QAAQ,YAAY,SAAS,CAAC;CAGhC,IAAI,QAAuB;CAC3B,IAAI,SACF,QAAQ,YAAY,SAAS,CAAC;CAGhC,IAAI,UAAyB;CAC7B,IAAI,WACF,UAAU,cAAc,KAAK,MAAM,YAAY,WAAW,GAAG;CAG/D,OAAO;EACL,MAAM;EACN,IAAI,GAAG,MAAM,gBAAgB;EAC7B;EACA;EACA;EACA;EACA;EACA,WAAW,iBAAiB;EAC5B,WAAW;EACX,eAAe;CACjB;AACF;AAEA,SAAS,YAAY,OAAe,UAA0B;CAC5D,IAAI,MAAM,SAAS,IAAI,GACrB,OAAO,OAAO,WAAW,MAAM,QAAQ,MAAM,EAAE,CAAC;CAElD,IAAI,MAAM,SAAS,GAAG,GACpB,OAAO;CAET,MAAM,MAAM,OAAO,WAAW,KAAK;CACnC,OAAO,OAAO,MAAM,GAAG,IAAI,WAAW;AACxC;AAEA,SAAgB,UAAU,OAA6B;CACrD,MAAM,kBAA4B,CAAC;CACnC,IAAI,sBAAsB;CAE1B,KAAK,MAAM,SAAS,MAAM,UACxB,IAAI,MAAM,SAAS,SAAS;EAC1B,IAAI,MAAM,YAAY,MAAM,CAE5B,OAAO,IAAI,CAAC,MAAM,WAAW;GAC3B,gBAAgB,KAAK,MAAM,MAAM;GACjC,uBAAuB,MAAM;EAC/B;CACF,OAAO;EACL,gBAAgB,KAAK,MAAM,MAAM;EACjC,uBAAuB,MAAM;CAC/B;CAGF,IAAI,wBAAwB,GAC1B,sBAAsB;CAGxB,MAAM,qBAAmC,CAAC;CAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,QAAQ,KAAK;EAC9C,MAAM,QAAQ,MAAM,SAAS;EAC7B,IAAI,MAAM,SAAS,SAAS;GAC1B,IAAI,MAAM,YAAY,QAAQ,CAAC,MAAM,WACnC,mBAAmB,KAAK;IACtB,GAAG;IACH,QAAQ,MAAM,SAAS;GACzB,CAAC;QAED,mBAAmB,KAAK,KAAK;EAEjC,OACE,mBAAmB,KAAK;GACtB,GAAG;GACH,QAAQ,MAAM,SAAS;EACzB,CAAC;CAEL;CAEA,OAAO;EACL,GAAG;EACH,UAAU;CACZ;AACF;AAOA,SAAgB,WACd,SACA,aACA,SACA,aACkB;CAClB,MAAM,SAAS,CAAC,GAAG,OAAO;CAC1B,MAAM,WAAqB,CAAC;CAE5B,IAAI,YAAY,GACd,OAAO;EAAE,SAAS;EAAQ;CAAS;CAGrC,MAAM,WAAW,UAAU,IAAI,cAAc,cAAc;CAC3D,MAAM,aAAa,UAAU,IAAI,cAAc,IAAI;CAEnD,IAAI,YAAY,KAAK,IAAI,OAAO;CAEhC,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,YAAY,GAAG,KAAK;EACrD,MAAM,IAAI,YAAY;EACtB,IAAI,EAAE,YAAY,MAChB;EAEF,MAAM,cAAc,OAAO;EAC3B,MAAM,OAAO,cAAc,EAAE;EAE7B,IAAI,OAAO,GAAG;GACZ,MAAM,OAAO,KAAK,IAAI,MAAM,SAAS;GACrC,OAAO,MAAM;GACb,aAAa;GACb,IAAI,EAAE,cAAc,aAAa,OAAO,MAAM,EAAE,SAAS,OAAO,KAAK,GAAG;IACtE,SAAS,KAAK,CAAC;IACf;GACF;EACF,OAAO,IAAI,EAAE,cAAc,aAAa,cAAc,GAAG;GACvD,MAAM,OAAO,KAAK,IAAI,aAAa,SAAS;GAC5C,OAAO,MAAM;GACb,aAAa;GACb,IAAI,OAAO,MAAM,EAAE,OAAO;IACxB,SAAS,KAAK,CAAC;IACf;GACF;EACF;CACF;CAEA,MAAM,cAAc,KAAK,IAAI,OAAO,IAAI;CACxC,IAAI,cAAc,GAAG;EACnB,OAAO,aAAa;EACpB,YAAY;CACd;CAEA,IAAI,YAAY,GACd,KAAK,IAAI,IAAI,UAAU,IAAI,OAAO,UAAU,YAAY,GAAG,KAAK;EAC9D,MAAM,IAAI,YAAY;EACtB,IAAI,EAAE,YAAY,MAChB;EAEF,MAAM,UAAU,EAAE,UAAU,OAAO,EAAE,QAAQ,OAAO,KAAK;EACzD,IAAI,WAAW,GACb;EAEF,MAAM,OAAO,KAAK,IAAI,SAAS,SAAS;EACxC,OAAO,MAAM;EACb,aAAa;CACf;CAGF,OAAO;EAAE,SAAS;EAAQ;CAAS;AACrC;AAEA,SAAgB,cAAc,OAAkB,cAA8B;CAC5E,MAAM,QAAkB,CAAC;CAEzB,MAAM,aAAa;CAEnB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,QAAQ,KAAK;EAC9C,MAAM,QAAQ,MAAM,SAAS;EAC7B,IAAI;EAEJ,IAAI,MAAM,SAAS,SAAS;GAC1B,IAAI,MAAM,WACR,QAAQ;QACH,IAAI,MAAM,YAAY,MAC3B,QAAQ,GAAG,MAAM,QAAQ;QAGzB,QAAQ,UADI,MAAM,QAAQ,IAAI,GAAG,MAAM,MAAM,MAAM,MAC7B,WAAW,EAAE;EAEvC,OACE,QAAQ,oBAAoB,EAAE;EAGhC,MAAM,KAAK,KAAK;EAEhB,IAAI,IAAI,MAAM,SAAS,SAAS,GAC9B,MAAM,KAAK,UAAU;CAEzB;CAEA,OAAO,MAAM,KAAK,GAAG;AACvB;AAEA,SAAgB,WAAW,OAAkC;CAE3D,OAAO;EACL,SAAS;EACT,MAHW,aAAa,KAGrB;CACL;AACF;AAEA,SAAS,aAAa,MAAgC;CACpD,IAAI,KAAK,SAAS,SAChB,OAAO;EACL,MAAM;EACN,IAAI,KAAK;EACT,QAAQ,KAAK;EACb,WAAW,KAAK;CAClB;CAGF,MAAM,WAAW,KAAK,SAAS,KAAI,MAAK,aAAa,CAAC,CAAC;CACvD,OAAO;EACL,MAAM;EACN,IAAI,KAAK;EACT,QAAQ,KAAK;EACb;CACF;AACF;AAEA,SAAgB,cAAc,OAAkB,UAAqC;CACnF,OAAO,qBAAqB,OAAO,SAAS,IAAI;AAClD;AAEA,SAAS,qBAAqB,OAAkB,UAAmC;CACjF,IAAI,SAAS,SAAS,SACpB,OAAO;CAGT,MAAM,4BAAY,IAAI,IAAoB;CAC1C,MAAM,+BAAe,IAAI,IAAqB;CAE9C,eAAe,UAAU,WAAW,YAAY;CAEhD,MAAM,cAA4B,CAAC;CAEnC,KAAK,MAAM,SAAS,MAAM,UACxB,IAAI,MAAM,SAAS,SAAS;EAC1B,MAAM,YAAY,UAAU,IAAI,MAAM,EAAE;EACxC,MAAM,YAAY,aAAa,IAAI,MAAM,EAAE;EAE3C,YAAY,KAAK;GACf,GAAG;GACH,QAAQ,cAAc,KAAA,IAAY,YAAY,MAAM;GACpD,WAAW,cAAc,KAAA,IAAY,YAAY,MAAM;EACzD,CAAC;CACH,OAAO;EACL,MAAM,gBAAgB,SAAS,UAAU,MAAK,MAAK,EAAE,OAAO,MAAM,EAAE;EACpE,IAAI,eACF,YAAY,KAAK,qBAAqB,OAAO,aAAa,CAAC;OAE3D,YAAY,KAAK,KAAK;CAE1B;CAGF,OAAO;EACL,GAAG;EACH,UAAU;CACZ;AACF;AAEA,SAAS,eAAe,UAAwB,SAA8B,WAAuC;CACnH,IAAI,SAAS,SAAS,SAAS;EAC7B,QAAQ,IAAI,SAAS,IAAI,SAAS,UAAU,CAAC;EAC7C,IAAI,SAAS,cAAc,KAAA,GACzB,UAAU,IAAI,SAAS,IAAI,SAAS,SAAS;CAEjD,OAAO,IAAI,SAAS,UAClB,KAAK,MAAM,SAAS,SAAS,UAC3B,eAAe,OAAO,SAAS,SAAS;AAG9C;AAEA,SAAgB,KAAK,OAAkB,SAA2D;CAChG,UAAU,OAAO,CAAC,GAAG,OAAO;AAC9B;AAEA,SAAS,UAAU,MAAkB,MAAgB,SAA2D;CAC9G,QAAQ,MAAM,IAAI;CAElB,IAAI,KAAK,SAAS,SAChB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KACxC,UAAU,KAAK,SAAS,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO;AAGvD;;;ACnbO,IAAM,oBAAN,MAAM,0BAA0B,WAAW;;;EAE3C,KAAA,KAAA;EAGE,KAAA,OAAA;EAGE,KAAA,SAAA;EAGD,KAAA,QAAA;EAGF,KAAA,MAAA;EAGA,KAAA,MAAA;EAGM,KAAA,YAAA;EAGA,KAAA,YAAA;EAGL,KAAA,OAAA;;CAEP,SAAkB;EAChB,OAAO,IAAI;CACb;;EAEyB,KAAA,SAAA,CACvB,gBACA,GAAG;;;;;;;;;;;KAYL;;AACF;AA9CG,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,kBAAA,WAAA,MAAA,KAAA,CAAA;AAGxC,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,kBAAA,WAAA,QAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,kBAAA,WAAA,UAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,kBAAA,WAAA,SAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,kBAAA,WAAA,OAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,kBAAA,WAAA,OAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,WAAW;AAAa,CAAC,CAAA,GAAA,kBAAA,WAAA,aAAA,KAAA,CAAA;AAGlD,WAAA,CAAA,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,kBAAA,WAAA,aAAA,KAAA,CAAA;AAGzC,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,kBAAA,WAAA,QAAA,KAAA,CAAA;AA1B3BA,oBAAAA,WAAAA,CAAAA,kBAAc,kBAAkB,CAAA,GAAA,iBAAA;;;ACO1B,IAAM,qBAAN,MAAM,2BAA2B,WAAW;;;EAE/B,KAAA,YAAA;EAGV,KAAA,QAAA;EAGK,KAAA,aAAA;EAGN,KAAA,OAAA;EAG4B,KAAA,SAAA;EAGf,KAAA,YAAA;EAKyB,KAAA,YAAA;EACd,KAAA,uBAAA;EACI,KAAA,2BAAA;EACZ,KAAA,eAAA,kBAAkB;GACvC,cAAa,UAAS,KAAK,iBAAiB,KAAK;GACjD,aAAa,OAAO,QAAQ,WAAW,KAAK,gBAAgB,OAAO,QAAQ,MAAM;GACjF,YAAW,UAAS,KAAK,eAAe,KAAK;GAC7C,aAAa,OAAO,KAAK,OAAO,gBAAgB;IAC9C,OAAO,WAAW,OAAO,KAAK,OAAO,WAAkB;GACzD;EACF,CAAC;EAgc+B,KAAA,wBAAA,GAAiB,SAAiB,gBAAwB;GACxF,EAAE,eAAe;GACjB,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,QAC1B;GAEF,MAAM,EAAE,MAAM,YAAY,gBAAgB,KAAK,gBAAgB;GAE/D,KAAK,aAAa,gBAChB,SACA,aACA,EAAE,WACF,EAAE,SACF,EAAE,SACF,MACA,YACA,WACF;GAEA,OAAO,iBAAiB,eAAe,KAAK,cAAc;GAC1D,OAAO,iBAAiB,aAAa,KAAK,YAAY;EACxD;EAE0B,KAAA,kBAAA,MAAoB;GAC5C,KAAK,aAAa,KAAK,CAAC;EAC1B;EAEwB,KAAA,gBAAA,MAAoB;GAC1C,KAAK,aAAa,IAAI,CAAC;GACvB,OAAO,oBAAoB,eAAe,KAAK,cAAc;GAC7D,OAAO,oBAAoB,aAAa,KAAK,YAAY;EAC3D;;CA5dA,oBAA6B;EAC3B,MAAM,kBAAkB;EACxB,KAAK,eAAe;CACtB;CAEA,uBAAgC;EAC9B,MAAM,qBAAqB;EAC3B,KAAK,WAAW,WAAW;CAC7B;CAEA,eAAwB;EACtB,KAAK,cAAc;CACrB;CAEA,iBAAyB;EACvB,KAAK,YAAY,IAAI,uBAAuB;GAC1C,IAAI,CAAC,KAAK,sBACR,QAAQ,QAAQ,CAAC,CAAC,WAAW,KAAK,cAAc,CAAC;EAErD,CAAC;EAED,KAAK,UAAU,QAAQ,MAAM;GAC3B,WAAW;GACX,SAAS;GACT,iBAAiB;IAAC;IAAQ;IAAU;IAAO;IAAO;IAAc;IAAS;IAAa;IAAa;GAAO;EAC5G,CAAC;CACH;CAEA,gBAAwB;EAMtB,KAAK,cAAc;EAEnB,MAAM,aAAa,UADL,WAAW,IACI,CAAK;EAClC,KAAK,SAAS;EACd,KAAK,cAAc;CACrB;CAEA,IAAI,SAAsB;EACxB,IAAI,CAAC,KAAK,QACR,OAAO,CAAC;EAEV,MAAM,SAAsB,CAAC;EAC7B,KAAK,KAAK,SAAS,MAAM,SAAS;GAChC,IAAI,KAAK,SAAS,SAChB,OAAO,KAAK;IACV,IAAI,KAAK;IACT,IAAI,KAAK;IACT,OAAO,KAAK,KAAK,SAAS;IAC1B,MAAM,KAAK,KAAK,GAAG;IACnB,QAAQ,KAAK;IACb,WAAW,KAAK;IAChB,KAAK,KAAK;IACV,KAAK,KAAK;IACV,WAAW,KAAK;GAClB,CAAC;EAEL,CAAC;EACD,OAAO;CACT;CAEA,YAAmC;EACjC,IAAI,CAAC,KAAK,QACR,OAAO;EACT,OAAO,WAAW,KAAK,MAAM;CAC/B;CAEA,UAAU,GAAyB;EACjC,IAAI,CAAC,KAAK,QACR;EACF,KAAK,uBAAuB;EAC5B,KAAK,SAAS,cAAc,KAAK,QAAQ,CAAC;EAC1C,KAAK,cAAc;EACnB,KAAK,uBAAuB;EAC5B,KAAK,YAAY;CACnB;CAEA,SAAS,UAA2C;EAClD,IAAI,CAAC,KAAK,QACR,OAAO,CAAC;EACV,MAAM,SAAiC,CAAC;EACxC,IAAI,KAAK,OAAO,UACd,KAAK,OAAO,SAAS,SAAS,UAAU;GACtC,OAAO,MAAM,MAAM,MAAM;EAC3B,CAAC;EAEH,OAAO;CACT;CAEA,SAAS,SAA4C,UAAyB;EAC5E,IAAI,CAAC,KAAK,QACR;EAEF,KAAK,uBAAuB;EAE5B,IAAI,MAAM,QAAQ,OAAO,GACvB,KAAK,OAAO,SAAS,SAAS,OAAO,MAAM;GACzC,IAAI,IAAI,QAAQ,QACd,MAAM,SAAS,QAAQ;EAE3B,CAAC;OAED,KAAK,MAAM,CAAC,IAAI,WAAW,OAAO,QAAQ,OAAO,GAAG;GAClD,MAAM,QAAQ,KAAK,OAAO,SAAS,MAAK,MAAK,EAAE,OAAO,EAAE;GACxD,IAAI,OACF,MAAM,SAAS;EAEnB;EAGF,KAAK,SAAS,UAAU,KAAK,MAAM;EACnC,KAAK,cAAc;EACnB,KAAK,uBAAuB;EAC5B,KAAK,YAAY;EACjB,KAAK,YAAY;CACnB;CAEA,SAAS,QAAoC;EAC3C,KAAK,mBAAmB,QAAQ,IAAI;CACtC;CAEA,OAAO,QAAoC;EACzC,KAAK,mBAAmB,QAAQ,KAAK;CACvC;CAEA,OAAO,QAAoC;EACzC,MAAM,QAAQ,KAAK,WAAW,MAAM;EACpC,IAAI,OACF,KAAK,mBAAmB,MAAM,IAAI,CAAC,MAAM,SAAS;CAEtD;CAEA,WAAW,QAAuC;EAChD,MAAM,QAAQ,KAAK,WAAW,MAAM;EACpC,IAAI,CAAC,OACH,OAAO;EAET,MAAM,QAAQ,IAAI,YAA8B,oBAAoB;GAClE,QAAQ;IAAE,IAAI,MAAM;IAAI,OAAO,MAAM;GAAM;GAC3C,SAAS;GACT,UAAU;GACV,YAAY;EACd,CAAC;EAED,KAAK,cAAc,KAAK;EACxB,IAAI,MAAM,kBACR,OAAO;EAET,KAAK,uBAAuB;EAC5B,MAAM,GAAG,OAAO;EAChB,KAAK,cAAc;EAInB,KAAK,WAAW,YAAY;EAC5B,KAAK,uBAAuB;EAE5B,KAAK,YAAY;EACjB,KAAK,YAAY;EACjB,OAAO;CACT;;;;;;CAOA,iBAA4B;EAC1B,MAAM,UAAU,KAAK,YAAY,iBAA8B,SAAS;EACxE,IAAI,YAAY,KAAA,KAAa,YAAY,MACvC,OAAO,CAAC;EACV,OAAO,MAAM,KAAK,UAAS,MAAK,EAAE,sBAAsB,CAAC;CAC3D;;;;;;;;;CAUA,gBAAgB,aAAqB,WAAmB,SAAiB,SAA0B;EACjG,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,QAC1B,OAAO;EACT,IAAI,cAAc,KAAK,eAAe,KAAK,OAAO,SAAS,SAAS,GAClE,OAAO;EAET,MAAM,EAAE,MAAM,YAAY,gBAAgB,KAAK,gBAAgB;EAE/D,KAAK,aAAa,gBAChB,KAAK,OAAO,IACZ,aACA,WACA,SACA,SACA,MACA,YACA,WACF;EAEA,OAAO,iBAAiB,eAAe,KAAK,cAAc;EAC1D,OAAO,iBAAiB,aAAa,KAAK,YAAY;EACtD,OAAO;CACT;CAEA,mBAA2B,QAA8B,WAAoB,cAA6B;EACxG,MAAM,QAAQ,KAAK,WAAW,MAAM;EACpC,IAAI,CAAC,SAAS,MAAM,cAAc,WAChC;EAEF,KAAK,uBAAuB;EAE5B,IAAI,WAAW;GACb,MAAM,GAAG,aAAa,aAAa,EAAE;GACrC,MAAM,GAAG,aAAa,kBAAkB,EAAE;EAC5C,OAAO;GACL,MAAM,GAAG,gBAAgB,WAAW;GACpC,MAAM,GAAG,gBAAgB,gBAAgB;EAC3C;EAEA,KAAK,cAAc;EACnB,IAAI,CAAC,aAAa,iBAAiB,KAAA,GACjC,KAAK,mBAAmB,MAAM,IAAI,YAAY;EAEhD,KAAK,cAAc;EAInB,KAAK,WAAW,YAAY;EAC5B,KAAK,uBAAuB;EAE5B,IAAI,WACF,KAAK,cAAc,IAAI,YAAiC,uBAAuB;GAC7E,QAAQ;IAAE,IAAI,MAAM;IAAI,OAAO,MAAM;GAAM;GAC3C,SAAS;GACT,UAAU;EACZ,CAAC,CAAC;OAEF,KAAK,cAAc,IAAI,YAA+B,qBAAqB;GACzE,QAAQ;IAAE,IAAI,MAAM;IAAI,OAAO,MAAM;GAAM;GAC3C,SAAS;GACT,UAAU;EACZ,CAAC,CAAC;EAGJ,KAAK,YAAY;EACjB,KAAK,YAAY;CACnB;CAOA,gBAA8B;EAC5B,MAAM,KAAK,KAAK,QAAQ,CAAC,CAAC,SAAS,OAAO,MAAM;GAC9C,MAAM,OAAO,SAAS;GACtB,IAAI,MAAM,aAAa,MAAM,MAAM,MACjC,MAAM,aAAa,QAAQ,IAAI;EACnC,CAAC;CACH;CAEA,WAAmB,QAAqD;EACtE,MAAM,KAAK,OAAO,WAAW,WAAW,SAAS,OAAO;EACxD,OAAO,KAAK,OAAO,MAAK,MAAK,EAAE,OAAO,EAAE;CAC1C;CAIA,mBAA2B,IAAY,QAAsB;EAC3D,IAAI,CAAC,KAAK,QACR;EAEF,MAAM,cAAc,MAClB,EAAE,SAAS,WAAY,EAAE,YAAY,QAAQ,CAAC,EAAE;EAClD,MAAM,WAAW,KAAK,OAAO,SAAS,OAAO,UAAU;EACvD,MAAM,SAAS,SAAS,MAAK,MAAK,EAAE,OAAO,EAAE;EAC7C,IAAI,CAAC,QACH;EAEF,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAG;EAC3C,MAAM,SAAS,SAAS,QAAO,MAAK,MAAM,MAAM;EAChD,MAAM,cAAc,OAAO,QAAQ,KAAK,MAAM,MAAM,EAAE,QAAQ,CAAC,KAAK;EACpE,MAAM,SAAS,IAAI,KAAK;EACxB,KAAK,MAAM,KAAK,QACd,EAAE,UAAU;EAEd,OAAO,SAAS;EAEhB,KAAK,SAAS,UAAU,KAAK,MAAM;CACrC;CAGA,UAA0B;EACxB,MAAM,WAAW,OAAO,WAAW,KAAK,IAAI;EAC5C,IAAI,CAAC,OAAO,MAAM,QAAQ,GACxB,OAAO;EACT,MAAM,UAAU,OAAO,WAAW,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,cAAc,CAAC;EACzF,OAAO,OAAO,MAAM,OAAO,IAAI,KAAK;CACtC;CAEA,eAA+B;EAC7B,MAAM,IAAI,OAAO,WAAW,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,wBAAwB,CAAC;EAC7F,OAAO,OAAO,MAAM,CAAC,IAAI,IAAI;CAC/B;CAEA,iBAAyB,QAAmB;EAC1C,KAAK,YAAY;EACjB,KAAK,2BAA2B;EAChC,KAAK,aAAa,iBAAiB,EAAE;CACvC;CAEA,gBAAwB,OAAkB,QAAgB,QAAgB;EACxE,IAAI,CAAC,KAAK,QACR;EAMF,IAAI,KAAK,0BACP;EAEF,MAAM,OAAO,KAAK;EAClB,MAAM,QAAQ,SAAS,QAAQ,SAAS;EACxC,MAAM,cAAc,MAAM;EAO1B,MAAM,WAAW,QAAQ,IAAI,cAAc,cAAc;EACzD,MAAM,gBAAgB,KAAK,OAAO,SAAS;EAC3C,IAAI,eAAe,SAAS,WAAW,cAAc,WAAW;GAC9D,MAAM,WAAW,cAAc,QAAQ,IAAI,cAAc,QAAQ,KAAK,QAAQ;GAC9E,IAAI,KAAK,IAAI,KAAK,KAAK,UAAU;IAC/B,MAAM,SAAS,SAAS,QAAQ,MAAM,cAAc,QAAQ,MAAM,cAAc;IAChF,KAAK,mBAAmB,cAAc,IAAI,OAAO,SAAS,IAAI,WAAW,SAAS,KAAA,CAAS;IAG3F,KAAK,iBAAiB,OAAO,MAAM,gBAAgB,QAAQ,MAAM,gBAAgB,MAAM;GACzF;GACA;EACF;EAEA,MAAM,cAAc,MAAM,eAAe,KAAK,KAAK,OAAO;GACxD,OAAO;GACP,OAAO,MAAM,eAAe;GAC5B,SAAS,MAAM,iBAAiB;GAChC,WAAW,MAAM,qBAAqB;EACxC,EAAE;EAEF,MAAM,SAAS,WACb,MAAM,YACN,aACA,OACA,WACF;EAEA,MAAM,YAAY,MAAM,WAAW,QAAQ,GAAG,MAAM,IAAI,GAAG,CAAC;EAC5D,OAAO,QAAQ,SAAS,MAAM,MAAM;GAClC,MAAM,QAAQ,KAAK,OAAQ,SAAS;GACpC,IAAI,SAAS,MAAM,SAAS,SAC1B,MAAM,SAAS,OAAO;EAE1B,CAAC;EAED,IAAI,OAAO,SAAS,SAAS,GAAG;GAC9B,IAAI,YAAY;GAChB,KAAK,MAAM,OAAO,OAAO,UAAU;IACjC,IAAI,WACF;IACF,MAAM,QAAQ,KAAK,OAAQ,SAAS;IACpC,IAAI,SAAS,MAAM,SAAS,SAAS;KACnC,MAAM,YAAY,MAAM;KACxB,IAAI,cAAc,cAAc,CAAC,MAAM,WAAW;MAChD,KAAK,mBAAmB,MAAM,IAAI,IAAI;MACtC,YAAY;MACZ,KAAK,2BAA2B;KAClC,OAAO,IAAI,cAAc,SAAS;MAChC,KAAK,WAAW,MAAM,EAAE;MACxB,YAAY;MACZ,KAAK,2BAA2B;KAClC;IACF;GACF;EACF;EAEA,KAAK,SAAS,UAAU,KAAK,MAAM;EACnC,KAAK,cAAc;CACrB;CAEA,eAAuB,QAAmB;EACxC,KAAK,YAAY;EACjB,KAAK,gBAAgB,eAAe;EACpC,KAAK,YAAY;EACjB,KAAK,YAAY;CACnB;CAMA,kBAA0B;EACxB,MAAM,OAAO,KAAK,SAAU,sBAAsB;EAClD,MAAM,WAAW,KAAK,cAAc,QAAQ,KAAK,QAAQ,KAAK;EAC9D,MAAM,cAAc,KAAK,aAAa;EACtC,MAAM,WAAW,KAAK,OAAQ;EAgB9B,OAAO;GAAE;GAAM,YAdI,SAAS,KAAK,MAAM;IACrC,IAAI,EAAE,SAAS,WAAW,EAAE,WAC1B,OAAO;IACT,IAAI,EAAE,SAAS,WAAW,EAAE,YAAY,MACtC,OAAO,EAAE;IACX,OAAO,EAAE,SAAS;GACpB,CAQwB;GAAG,aAPP,SAAS,KAAK,MAAM;IACtC,IAAI,EAAE,SAAS,SACb,OAAO;KAAE,OAAO,EAAE;KAAO,OAAO,EAAE;KAAO,SAAS,EAAE;KAAS,WAAW,EAAE;IAAU;IAEtF,OAAO;KAAE,OAAO;KAAG,OAAO;KAAuB,SAAS;KAAuB,WAAW;IAAmB;GACjH,CAEqC;EAAE;CACzC;CAEA,iBAAyB,OAAkB,UAAkB,UAAwB;EACnF,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,QAC1B;EAEF,MAAM,EAAE,MAAM,YAAY,gBAAgB,KAAK,gBAAgB;EAC/D,MAAM,gBAAgB;EACtB,MAAM,gBAAgB;EACtB,MAAM,gBAAgB;EACtB,MAAM,aAAa;EACnB,MAAM,iBAAiB,YAAY,KAAI,MAAK,EAAE,KAAK;EACnD,MAAM,iBAAiB,YAAY,KAAI,MAAK,EAAE,KAAK;EACnD,MAAM,mBAAmB,YAAY,KAAI,MAAK,EAAE,OAAO;EACvD,MAAM,uBAAuB,YAAY,KAAI,MAAK,EAAE,SAAS;CAC/D;CAkCA,cAAsB;EACpB,IAAI,CAAC,KAAK,QACR;EACF,MAAM,SAA4B;GAChC,OAAO,KAAK,SAAS;GACrB,SAAS,KAAK,OAAO;EACvB;EACA,KAAK,cAAc,IAAI,YAA+B,qBAAqB;GACzE;GACA,SAAS;GACT,UAAU;EACZ,CAAC,CAAC;CACJ;CAEA,cAAsB;EACpB,MAAM,SAAS,KAAK,UAAU;EAC9B,IAAI,CAAC,QACH;EACF,MAAM,SAA4B,EAAE,OAAO;EAC3C,KAAK,cAAc,IAAI,YAA+B,qBAAqB;GACzE;GACA,SAAS;GACT,UAAU;EACZ,CAAC,CAAC;CACJ;CAEA,SAA4B;EAC1B,IAAI,CAAC,KAAK,QACR,OAAO;EAET,MAAM,QAAQ,KAAK,OAAO,SAAS;EACnC,MAAM,aAAa,KAAK,eAAe,KAAK,MAAM;EAElD,MAAM,UAAU,KAAK,OAAO,SAAS,KAAK,OAAO,MAAM;GACrD,OAAO,MAAM,EAAE,IAAI,MAAM,SAAS,IAAI;EACxC,CAAC,CAAC,CAAC,KAAK,IAAI;EAEZ,MAAM,YAAY,QACd,0BAA0B,WAAW,6BAA6B,YAClE,uBAAuB,WAAW,gCAAgC;EAEtE,OAAO,IAAI;iCACkB,UAAU;UACjC,KAAK,OAAO,SAAS,KAAK,GAAG,MAAM,IAAI;kDACC,QAAQ,IAAI,IAAI,IAAI,EAAE,cAAc,QAAQ,IAAI,IAAI,IAAI,EAAE,mCAAmC,QAAQ,QAAQ,SAAS;gCACxI,EAAE;;SAEzB,EAAE;UACD,KAAK,OAAO,SAAS,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM,KAAK,cAAc,KAAK,OAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;;;CAGvG;CAEA,eAAuB,OAAyB;EAC9C,MAAM,QAAkB,CAAC;EACzB,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,KACzB,MAAM,KAAK,UAAU,EAAE,OAAO;EAEhC,OAAO;CACT;CAEA,eAAuB,OAA0B;EAChC,MAAM;EACrB,MAAM,QAAkB,CAAC;EACzB,MAAM,aAAa;EAEnB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,QAAQ,KAAK;GAC9C,MAAM,QAAQ,MAAM,SAAS;GAC7B,IAAI;GAEJ,IAAI,MAAM,SAAS,SAAS;IAC1B,IAAI,MAAM,WACR,QAAQ;SACH,IAAI,MAAM,YAAY,MAC3B,QAAQ,GAAG,MAAM,QAAQ;SAGzB,QAAQ,UADI,MAAM,QAAQ,IAAI,GAAG,MAAM,MAAM,MAAM,MAC7B,WAAW,EAAE;GAEvC,OACE,QAAQ,oBAAoB,EAAE;GAGhC,MAAM,KAAK,KAAK;GAEhB,IAAI,IAAI,MAAM,SAAS,SAAS,GAC9B,MAAM,KAAK,UAAU;EAEzB;EAEA,OAAO,MAAM,KAAK,GAAG;CACvB;CAEA,cAAsB,SAAiB,OAAe,OAAgB;EACpE,MAAM,SAAS,QAAQ,cAAc;EACrC,MAAM,aAAa,QAAQ,IAAI,QAAQ,KAAK,MAAM;EAClD,MAAM,UAAU,QAAQ,MAAM,IAAI,QAAQ,KAAK;EAE/C,OAAO,IAAI;;;sBAGO,QAAQ;sBACR,MAAM;yBACH,OAAO,iBAAiB,WAAW,cAAc,QAAQ;wBAC1D,MAAoB,KAAK,qBAAqB,GAAG,SAAS,KAAK,EAAE;;;;;;uBAMlE,QAAQ,aAAa,aAAa;;;;CAIvD;;EAEyB,KAAA,SAAA;GACvB;GACA;GACA,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFL;;AACF;AA3sBG,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,mBAAA,WAAA,aAAA,KAAA,CAAA;AAGxC,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,mBAAA,WAAA,SAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,SAAS;CAAE,MAAM;CAAQ,WAAW;AAAc,CAAC,CAAA,GAAA,mBAAA,WAAA,cAAA,KAAA,CAAA;AAGnD,WAAA,CAAA,SAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,mBAAA,WAAA,QAAA,KAAA,CAAA;AAGzB,WAAA,CAAA,MAAM,CAAA,GAAA,mBAAA,WAAA,UAAA,KAAA,CAAA;AAGN,WAAA,CAAA,MAAM,CAAA,GAAA,mBAAA,WAAA,aAAA,KAAA,CAAA;AAGN,WAAA,CAAA,MAAM,OAAO,CAAA,GAAA,mBAAA,WAAA,YAAA,KAAA,CAAA;AApBfC,qBAAAA,WAAAA,CAAAA,kBAAc,mBAAmB,CAAA,GAAA,kBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-layout-JK3xWVX2.d.ts","names":[],"sources":["../src/split-layout/types.ts","../src/split-layout/split-panel.ts","../src/split-layout/split-layout.ts"],"mappings":";;KAAY;KAEA;UAEK;EACf;EACA;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;;UAGe;EACf;EACA;EACA,IAAI;EACJ,MAAM;EACN,UAAU;EACV;EACA;;KAGU,aAAa,YAAY;UAEpB;EACf;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf;EACA,MAAM;;UAGS;EACf;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf,OAAO;EACP;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,qBAAqB,YAAY;UAE5B;EACf;EACA;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,kBAAkB,YAAY;UAEzB;EACf,QAAQ;;KAGE,mBAAmB,YAAY;UAE1B;EACf,qBAAqB;EACrB,uBAAuB;EACvB,qBAAqB;EACrB,oBAAoB;EACpB,qBAAqB;;;;cCvFV,0BAA0B;EAErC;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAES,wBAAM;SAIC,sBAAM;;QAiBhB;YACI;IACR,oBAAoB;;;;;
|
|
1
|
+
{"version":3,"file":"split-layout-JK3xWVX2.d.ts","names":[],"sources":["../src/split-layout/types.ts","../src/split-layout/split-panel.ts","../src/split-layout/split-layout.ts"],"mappings":";;KAAY;KAEA;UAEK;EACf;EACA;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;;UAGe;EACf;EACA;EACA,IAAI;EACJ,MAAM;EACN,UAAU;EACV;EACA;;KAGU,aAAa,YAAY;UAEpB;EACf;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf;EACA,MAAM;;UAGS;EACf;EACA,IAAI;EACJ;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf,OAAO;EACP;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,qBAAqB,YAAY;UAE5B;EACf;EACA;;KAGU,mBAAmB,YAAY;UAE1B;EACf;EACA;;KAGU,kBAAkB,YAAY;UAEzB;EACf,QAAQ;;KAGE,mBAAmB,YAAY;UAE1B;EACf,qBAAqB;EACrB,uBAAuB;EACvB,qBAAqB;EACrB,oBAAoB;EACpB,qBAAqB;;;;cCvFV,0BAA0B;EAErC;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAGA;EAES,wBAAM;SAIC,sBAAM;;QAiBhB;YACI;IACR,oBAAoB;;;;;cC7CX,2BAA2B;EAEtC,WAAW;EAGX;EAGA;EAGA;UAGQ;UAGA;UAGA;UAEA;UACA;UACA;UACA;EASC;EAKA;EAKA;UAID;UAcA;MAaJ,UAAU;EAuBd,aAAa;EAMb,UAAU,GAAG;EAUb,SAAS,oBAAoB;EAY7B,SAAS,oBAAoB,wBAAwB;EA4BrD,SAAS,iBAAiB;EAI1B,OAAO,iBAAiB;EAIxB,OAAO,iBAAiB;EAOxB,WAAW,iBAAiB;;;;;;EAmC5B,kBAAkB;;;;;;;;;EAelB,gBAAgB,qBAAqB,mBAAmB,iBAAiB;UAwBjE;UAiDA;UAQA;UAOA;UAwBA;UAQA;UAKA;UAMA;UAiFA;UAWA;UAuBA;UAeA;UAsBA;UAIA;UAMA;UAcA;YAYW,iBAAM,wBAAA;UA2BjB;UAQA;UAgCA;SAuBQ,sBAAM;;QA0FhB;YACI;IACR,qBAAqB;;YAGb;IACR,qBAAqB,YAAY;IACjC,uBAAuB,YAAY;IACnC,qBAAqB,YAAY;IACjC,oBAAoB,YAAY;IAChC,qBAAqB,YAAY"}
|
package/dist/split-layout.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SplitLayoutElement } from "./split-layout-
|
|
1
|
+
import { t as SplitLayoutElement } from "./split-layout-CA5jbNbG.js";
|
|
2
2
|
export { SplitLayoutElement };
|
package/dist/swipe.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as themeFallbacks } from "./fallbacks-
|
|
1
|
+
import { t as themeFallbacks } from "./fallbacks-BcKGq-2F.js";
|
|
2
2
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
3
3
|
import { t as prominenceStyles } from "./prominence-DlFShic3.js";
|
|
4
4
|
import { t as WheelNudgeMixin } from "./wheel-nudge-D5rmht3v.js";
|
package/dist/tabs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as themeFallbacks } from "./fallbacks-
|
|
1
|
+
import { t as themeFallbacks } from "./fallbacks-BcKGq-2F.js";
|
|
2
2
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
3
3
|
import { t as scrollFadeStyles } from "./scroll-fade-CAs1EabA.js";
|
|
4
4
|
import { t as createDragGhost } from "./drag-ghost-DtSDvjri.js";
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { t as themeFallbacks } from "./fallbacks-BcKGq-2F.js";
|
|
1
2
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
3
|
+
import { t as handleStyles } from "./handle-BPOxBOKf.js";
|
|
2
4
|
import { LitElement, css, html, nothing } from "lit";
|
|
3
5
|
import { property, state } from "lit/decorators.js";
|
|
4
6
|
import "@clinth/vcanvas";
|
|
@@ -890,7 +892,10 @@ let TimelineTrackTabElement = class TimelineTrackTabElement extends LitElement {
|
|
|
890
892
|
};
|
|
891
893
|
}
|
|
892
894
|
static {
|
|
893
|
-
this.styles =
|
|
895
|
+
this.styles = [
|
|
896
|
+
themeFallbacks,
|
|
897
|
+
handleStyles,
|
|
898
|
+
css`
|
|
894
899
|
:host {
|
|
895
900
|
display: flex;
|
|
896
901
|
align-items: center;
|
|
@@ -917,13 +922,13 @@ let TimelineTrackTabElement = class TimelineTrackTabElement extends LitElement {
|
|
|
917
922
|
.handle {
|
|
918
923
|
display: none;
|
|
919
924
|
cursor: grab;
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
925
|
+
margin: 0 4px;
|
|
926
|
+
--ixfx-handle-spot-size: 12px;
|
|
927
|
+
--ixfx-handle-dot-size: 3px;
|
|
923
928
|
}
|
|
924
929
|
|
|
925
930
|
:host([reorderable]) .handle {
|
|
926
|
-
display: block;
|
|
931
|
+
display: inline-block;
|
|
927
932
|
}
|
|
928
933
|
|
|
929
934
|
.label {
|
|
@@ -932,7 +937,8 @@ let TimelineTrackTabElement = class TimelineTrackTabElement extends LitElement {
|
|
|
932
937
|
text-overflow: ellipsis;
|
|
933
938
|
padding: 0 8px;
|
|
934
939
|
}
|
|
935
|
-
|
|
940
|
+
`
|
|
941
|
+
];
|
|
936
942
|
}
|
|
937
943
|
#dragging;
|
|
938
944
|
#startScreenY;
|
|
@@ -957,7 +963,7 @@ let TimelineTrackTabElement = class TimelineTrackTabElement extends LitElement {
|
|
|
957
963
|
}
|
|
958
964
|
render() {
|
|
959
965
|
return html`
|
|
960
|
-
<span class="handle"
|
|
966
|
+
<span class="handle ixfx-handle" data-handle="dotted" data-shape="spot" part="handle"></span>
|
|
961
967
|
<span class="label">${this.label}</span>
|
|
962
968
|
`;
|
|
963
969
|
}
|
|
@@ -1749,4 +1755,4 @@ IxfxTimelineElement = __decorate([safeCustomElement(`ixfx-timeline`)], IxfxTimel
|
|
|
1749
1755
|
//#endregion
|
|
1750
1756
|
export { resolveCssVars as a, attachTimelineInteractions as i, TimelineTrackTabElement as n, resolveGrid as o, timelineStyles as r, TimelineController as s, IxfxTimelineElement as t };
|
|
1751
1757
|
|
|
1752
|
-
//# sourceMappingURL=timeline-
|
|
1758
|
+
//# sourceMappingURL=timeline-THyvH8xy.js.map
|