@corenel/editor 0.1.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/diagnostics.d.ts +9 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +2 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dock/PanelChooser.d.ts +13 -0
- package/dist/dock/PanelChooser.d.ts.map +1 -0
- package/dist/dock/PanelChooser.js +72 -0
- package/dist/dock/PanelChooser.js.map +1 -0
- package/dist/dock/PanelFrame.d.ts +37 -0
- package/dist/dock/PanelFrame.d.ts.map +1 -0
- package/dist/dock/PanelFrame.js +102 -0
- package/dist/dock/PanelFrame.js.map +1 -0
- package/dist/dock/PanelHost.d.ts +12 -0
- package/dist/dock/PanelHost.d.ts.map +1 -0
- package/dist/dock/PanelHost.js +331 -0
- package/dist/dock/PanelHost.js.map +1 -0
- package/dist/dock/config.d.ts +35 -0
- package/dist/dock/config.d.ts.map +1 -0
- package/dist/dock/config.js +2 -0
- package/dist/dock/config.js.map +1 -0
- package/dist/dock/index.d.ts +9 -0
- package/dist/dock/index.d.ts.map +1 -0
- package/dist/dock/index.js +13 -0
- package/dist/dock/index.js.map +1 -0
- package/dist/dock/layouts.d.ts +12 -0
- package/dist/dock/layouts.d.ts.map +1 -0
- package/dist/dock/layouts.js +50 -0
- package/dist/dock/layouts.js.map +1 -0
- package/dist/dock/tree.d.ts +73 -0
- package/dist/dock/tree.d.ts.map +1 -0
- package/dist/dock/tree.js +276 -0
- package/dist/dock/tree.js.map +1 -0
- package/dist/dock/types.d.ts +51 -0
- package/dist/dock/types.d.ts.map +1 -0
- package/dist/dock/types.js +42 -0
- package/dist/dock/types.js.map +1 -0
- package/dist/dock/use-layout.d.ts +41 -0
- package/dist/dock/use-layout.d.ts.map +1 -0
- package/dist/dock/use-layout.js +114 -0
- package/dist/dock/use-layout.js.map +1 -0
- package/dist/engine/index.d.ts +6 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +8 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/runModel.d.ts +16 -0
- package/dist/engine/runModel.d.ts.map +1 -0
- package/dist/engine/runModel.js +7 -0
- package/dist/engine/runModel.js.map +1 -0
- package/dist/engine/useDocResults.d.ts +38 -0
- package/dist/engine/useDocResults.d.ts.map +1 -0
- package/dist/engine/useDocResults.js +51 -0
- package/dist/engine/useDocResults.js.map +1 -0
- package/dist/engine/useRunController.d.ts +18 -0
- package/dist/engine/useRunController.d.ts.map +1 -0
- package/dist/engine/useRunController.js +28 -0
- package/dist/engine/useRunController.js.map +1 -0
- package/dist/engine/useRunHistory.d.ts +22 -0
- package/dist/engine/useRunHistory.d.ts.map +1 -0
- package/dist/engine/useRunHistory.js +20 -0
- package/dist/engine/useRunHistory.js.map +1 -0
- package/dist/engine/useRunOutput.d.ts +32 -0
- package/dist/engine/useRunOutput.d.ts.map +1 -0
- package/dist/engine/useRunOutput.js +51 -0
- package/dist/engine/useRunOutput.js.map +1 -0
- package/dist/errorLog.d.ts +17 -0
- package/dist/errorLog.d.ts.map +1 -0
- package/dist/errorLog.js +44 -0
- package/dist/errorLog.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/inlineAssist.d.ts +109 -0
- package/dist/inlineAssist.d.ts.map +1 -0
- package/dist/inlineAssist.js +272 -0
- package/dist/inlineAssist.js.map +1 -0
- package/dist/panels/DesignView.d.ts +9 -0
- package/dist/panels/DesignView.d.ts.map +1 -0
- package/dist/panels/DesignView.js +36 -0
- package/dist/panels/DesignView.js.map +1 -0
- package/dist/panels/ParamCard.d.ts +14 -0
- package/dist/panels/ParamCard.d.ts.map +1 -0
- package/dist/panels/ParamCard.js +138 -0
- package/dist/panels/ParamCard.js.map +1 -0
- package/dist/panels/ProblemsPanel.d.ts +9 -0
- package/dist/panels/ProblemsPanel.d.ts.map +1 -0
- package/dist/panels/ProblemsPanel.js +46 -0
- package/dist/panels/ProblemsPanel.js.map +1 -0
- package/dist/panels/UsageButton.d.ts +9 -0
- package/dist/panels/UsageButton.d.ts.map +1 -0
- package/dist/panels/UsageButton.js +40 -0
- package/dist/panels/UsageButton.js.map +1 -0
- package/dist/panels/index.d.ts +5 -0
- package/dist/panels/index.d.ts.map +1 -0
- package/dist/panels/index.js +8 -0
- package/dist/panels/index.js.map +1 -0
- package/dist/params.d.ts +27 -0
- package/dist/params.d.ts.map +1 -0
- package/dist/params.js +142 -0
- package/dist/params.js.map +1 -0
- package/dist/useWorkbench.d.ts +9 -0
- package/dist/useWorkbench.d.ts.map +1 -0
- package/dist/useWorkbench.js +21 -0
- package/dist/useWorkbench.js.map +1 -0
- package/dist/workflowModel.d.ts +128 -0
- package/dist/workflowModel.d.ts.map +1 -0
- package/dist/workflowModel.js +135 -0
- package/dist/workflowModel.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../diagnostics.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../diagnostics.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DockApi } from './use-layout';
|
|
3
|
+
import type { PanelDef } from './config';
|
|
4
|
+
import type { PanelId } from './types';
|
|
5
|
+
export declare function PanelChooser({ dock, panels, categories }: {
|
|
6
|
+
dock: DockApi;
|
|
7
|
+
panels: Record<PanelId, PanelDef>;
|
|
8
|
+
/** Section order for categorized panels (a def's `category` must match to
|
|
9
|
+
* sort; unknown categories follow in first-appearance order, then a trailing
|
|
10
|
+
* "Other" section for uncategorized panels). Omit for one flat list. */
|
|
11
|
+
categories?: string[];
|
|
12
|
+
}): React.JSX.Element;
|
|
13
|
+
//# sourceMappingURL=PanelChooser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelChooser.d.ts","sourceRoot":"","sources":["../../dock/PanelChooser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,SAAS,CAAC;AAoBjD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IACzD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClC;;4EAEwE;IACxE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,qBA4EA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
3
|
+
/* Discover + re-dock panels. Lists every known panel: open ones can be closed,
|
|
4
|
+
* closed ones can be docked against any edge (top/right/bottom/left). */
|
|
5
|
+
const Arrow = ({ edge }) => {
|
|
6
|
+
const rot = { left: 180, right: 0, top: -90, bottom: 90 }[edge];
|
|
7
|
+
return (_jsx("svg", { width: 13, height: 13, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { transform: `rotate(${rot}deg)` }, children: _jsx("path", { d: "M5 12h14M13 6l6 6-6 6" }) }));
|
|
8
|
+
};
|
|
9
|
+
const IcGrid = () => (_jsxs("svg", { width: 15, height: 15, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "14", y: "14", width: "7", height: "7", rx: "1" })] }));
|
|
10
|
+
const IcXmini = () => (_jsx("svg", { width: 12, height: 12, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M18 6 6 18M6 6l12 12" }) }));
|
|
11
|
+
const EDGES = ['left', 'top', 'bottom', 'right'];
|
|
12
|
+
export function PanelChooser({ dock, panels, categories }) {
|
|
13
|
+
const [open, setOpen] = useState(false);
|
|
14
|
+
const ref = useRef(null);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!open)
|
|
17
|
+
return;
|
|
18
|
+
const onDoc = (e) => { if (ref.current && !ref.current.contains(e.target))
|
|
19
|
+
setOpen(false); };
|
|
20
|
+
const onEsc = (e) => { if (e.key === 'Escape')
|
|
21
|
+
setOpen(false); };
|
|
22
|
+
document.addEventListener('mousedown', onDoc);
|
|
23
|
+
document.addEventListener('keydown', onEsc);
|
|
24
|
+
return () => { document.removeEventListener('mousedown', onDoc); document.removeEventListener('keydown', onEsc); };
|
|
25
|
+
}, [open]);
|
|
26
|
+
const openSet = new Set(dock.openPanels());
|
|
27
|
+
const ids = Object.keys(panels);
|
|
28
|
+
// Group ids into ordered sections: the caller's category order first, then
|
|
29
|
+
// unknown categories as encountered, uncategorized panels last under "Other"
|
|
30
|
+
// (label shown only when sections exist at all).
|
|
31
|
+
const sections = [];
|
|
32
|
+
const byCategory = new Map();
|
|
33
|
+
for (const id of ids) {
|
|
34
|
+
const cat = panels[id].category ?? null;
|
|
35
|
+
byCategory.set(cat, [...(byCategory.get(cat) ?? []), id]);
|
|
36
|
+
}
|
|
37
|
+
const categorized = [...byCategory.keys()].some((c) => c !== null);
|
|
38
|
+
if (categorized) {
|
|
39
|
+
const ordered = [...(categories ?? []), ...[...byCategory.keys()].filter((c) => c !== null && !(categories ?? []).includes(c))];
|
|
40
|
+
for (const cat of ordered) {
|
|
41
|
+
const list = byCategory.get(cat);
|
|
42
|
+
if (list?.length)
|
|
43
|
+
sections.push({ category: cat, ids: list });
|
|
44
|
+
}
|
|
45
|
+
const other = byCategory.get(null);
|
|
46
|
+
if (other?.length)
|
|
47
|
+
sections.push({ category: 'Other', ids: other });
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
sections.push({ category: null, ids });
|
|
51
|
+
}
|
|
52
|
+
const renderRow = (id) => {
|
|
53
|
+
const def = panels[id];
|
|
54
|
+
const isOpen = openSet.has(id);
|
|
55
|
+
return (_jsxs("div", { style: S.row, children: [_jsx("span", { style: S.icon, children: def.icon }), _jsx("span", { style: { ...S.name, color: isOpen ? 'var(--text-primary)' : 'var(--text-tertiary)' }, children: def.label }), isOpen ? (_jsx("button", { style: S.closeBtn, title: `Close ${def.label}`, onClick: () => dock.close(id), children: _jsx(IcXmini, {}) })) : (_jsx("div", { style: S.edges, children: EDGES.map((edge) => (_jsx("button", { style: S.edgeBtn, title: `Dock ${def.label} ${edge}`, onClick: () => { dock.addPanel(id, edge); }, children: _jsx(Arrow, { edge: edge }) }, edge))) }))] }, id));
|
|
56
|
+
};
|
|
57
|
+
return (_jsxs("div", { ref: ref, style: { position: 'relative' }, children: [_jsx("button", { style: S.trigger(open), onClick: () => setOpen((o) => !o), title: "Panels", "aria-label": "Panels", children: _jsx(IcGrid, {}) }), open && (_jsxs("div", { style: S.menu, children: [sections.map((sec, i) => (_jsxs(React.Fragment, { children: [_jsx("div", { style: i === 0 ? S.menuLabel : S.sectionLabel, children: sec.category ?? 'Panels' }), sec.ids.map(renderRow)] }, sec.category ?? 'all'))), _jsx("div", { style: S.foot, children: "Open panels can be closed; closed panels dock against an edge. Drag a panel's header to rearrange." })] }))] }));
|
|
58
|
+
}
|
|
59
|
+
const S = {
|
|
60
|
+
trigger: (open) => ({ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 30, height: 30, border: `1px solid ${open ? 'var(--border-accent)' : 'var(--border-subtle)'}`, borderRadius: 'var(--radius-sm)', background: open ? 'var(--accent-soft)' : 'var(--surface-2)', color: open ? 'var(--accent)' : 'var(--text-secondary)', cursor: 'pointer' }),
|
|
61
|
+
menu: { position: 'absolute', top: 'calc(100% + 6px)', right: 0, width: 280, maxWidth: 'calc(100vw - 20px)', maxHeight: 'min(72vh, 680px)', overflowY: 'auto', background: 'var(--surface-1)', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-lg)', boxShadow: 'var(--shadow-4)', padding: 6, zIndex: 200 },
|
|
62
|
+
menuLabel: { fontSize: 'var(--fs-eyebrow)', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.08em', color: 'var(--text-tertiary)', padding: '6px 8px 4px' },
|
|
63
|
+
sectionLabel: { fontSize: 'var(--fs-eyebrow)', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.08em', color: 'var(--text-tertiary)', padding: '10px 8px 4px', marginTop: 4, borderTop: '1px solid var(--border-subtle)' },
|
|
64
|
+
row: { display: 'flex', alignItems: 'center', gap: 9, padding: '6px 8px', borderRadius: 'var(--radius-sm)' },
|
|
65
|
+
icon: { display: 'inline-flex', color: 'var(--text-tertiary)', flexShrink: 0 },
|
|
66
|
+
name: { flex: 1, fontSize: 13, fontWeight: 600, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' },
|
|
67
|
+
closeBtn: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 24, height: 24, border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-tertiary)', cursor: 'pointer', flexShrink: 0 },
|
|
68
|
+
edges: { display: 'inline-flex', gap: 3, flexShrink: 0 },
|
|
69
|
+
edgeBtn: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 22, height: 22, border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-xs)', background: 'var(--surface-2)', color: 'var(--text-secondary)', cursor: 'pointer' },
|
|
70
|
+
foot: { padding: '8px 8px 4px', marginTop: 4, borderTop: '1px solid var(--border-subtle)', fontSize: 11, lineHeight: 1.45, color: 'var(--text-tertiary)' },
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=PanelChooser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelChooser.js","sourceRoot":"","sources":["../../dock/PanelChooser.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelDef } from './config';
|
|
3
|
+
import type { DropEdge, PanelId, SplitDir } from './types';
|
|
4
|
+
export interface PanelFrameProps {
|
|
5
|
+
id: PanelId;
|
|
6
|
+
def: PanelDef | undefined;
|
|
7
|
+
/** Parent split direction — decides collapsed-rail orientation. */
|
|
8
|
+
dir: SplitDir;
|
|
9
|
+
collapsed: boolean;
|
|
10
|
+
/** The panel currently being dragged (null when idle) so a frame shows drop
|
|
11
|
+
* zones and ignores drops on itself. */
|
|
12
|
+
dragId: PanelId | null;
|
|
13
|
+
onDragStart: (id: PanelId) => void;
|
|
14
|
+
onDragEnd: () => void;
|
|
15
|
+
onDrop: (targetId: PanelId, edge: DropEdge) => void;
|
|
16
|
+
onCollapse: (id: PanelId, collapsed: boolean) => void;
|
|
17
|
+
/** Remove the panel from the surface (re-openable from the panel chooser). */
|
|
18
|
+
onClose?: (id: PanelId) => void;
|
|
19
|
+
maximized?: boolean;
|
|
20
|
+
onMaximize?: (id: PanelId | null) => void;
|
|
21
|
+
/** Click a collapsed rail to PEEK the panel as a transient overlay (instead of
|
|
22
|
+
* docking it inline). The origin rect lets the host slide it from the right edge. */
|
|
23
|
+
onPeek?: (id: PanelId, origin: DOMRect) => void;
|
|
24
|
+
/** Rendered as a floating peek overlay rather than an inline pane. Swaps the
|
|
25
|
+
* unpin control for a "pin in place" control and routes close to hide-the-peek. */
|
|
26
|
+
overlay?: boolean;
|
|
27
|
+
/** Pin a peeked overlay into the layout (dock it inline, stationary). */
|
|
28
|
+
onPin?: (id: PanelId) => void;
|
|
29
|
+
/** Dismiss the peek overlay without changing the layout. */
|
|
30
|
+
onHidePeek?: () => void;
|
|
31
|
+
}
|
|
32
|
+
/** The chrome around one panel: a draggable header (icon + title + maximize +
|
|
33
|
+
* collapse), the registered body, and — while another panel is mid-drag — four
|
|
34
|
+
* edge drop zones with a live highlight. Collapsed, it shrinks to a click-to-
|
|
35
|
+
* expand rail oriented to its parent split. */
|
|
36
|
+
export declare function PanelFrame(props: PanelFrameProps): React.ReactElement | null;
|
|
37
|
+
//# sourceMappingURL=PanelFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelFrame.d.ts","sourceRoot":"","sources":["../../dock/PanelFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA4B3D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC1B,mEAAmE;IACnE,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB;4CACwC;IACxC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,8EAA8E;IAC9E,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;yFACqF;IACrF,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD;uFACmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;;+CAG+C;AAC/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAqH5E"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
const EDGES = ['top', 'right', 'bottom', 'left'];
|
|
4
|
+
/* Tiny monochrome glyphs (Lucide-ish, 2px stroke, currentColor) — the design
|
|
5
|
+
* system reserves gradients for the P mark, so panel chrome stays monochrome. */
|
|
6
|
+
const IcMaximize = ({ s = 13 }) => (_jsx("svg", { width: s, height: s, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M16 21h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" }) }));
|
|
7
|
+
const IcRestore = ({ s = 13 }) => (_jsx("svg", { width: s, height: s, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M4 14h6v6M20 10h-6V4M14 10l7-7M3 21l7-7" }) }));
|
|
8
|
+
const IcClose = ({ s = 13 }) => (_jsx("svg", { width: s, height: s, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M18 6 6 18M6 6l12 12" }) }));
|
|
9
|
+
/** Pushpin — outline = "pin in place" (dock a transient overlay), filled =
|
|
10
|
+
* "pinned" (click to unpin back to a rail). */
|
|
11
|
+
const IcPin = ({ filled = false, s = 13 }) => (_jsx("svg", { width: s, height: s, viewBox: "0 0 24 24", fill: filled ? 'currentColor' : 'none', stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M12 17v5M9 10.76V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v5.76l1.45 2.17A1 1 0 0 1 16.6 15H7.4a1 1 0 0 1-.85-1.53L8 10.76" }) }));
|
|
12
|
+
/** Arrow pointing outward toward the edge a drop will dock against. */
|
|
13
|
+
const DropArrow = ({ edge }) => {
|
|
14
|
+
const rot = { top: -90, right: 0, bottom: 90, left: 180 }[edge];
|
|
15
|
+
return (_jsx("svg", { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", style: { transform: `rotate(${rot}deg)` }, children: _jsx("path", { d: "M9 6l6 6-6 6" }) }));
|
|
16
|
+
};
|
|
17
|
+
/** The chrome around one panel: a draggable header (icon + title + maximize +
|
|
18
|
+
* collapse), the registered body, and — while another panel is mid-drag — four
|
|
19
|
+
* edge drop zones with a live highlight. Collapsed, it shrinks to a click-to-
|
|
20
|
+
* expand rail oriented to its parent split. */
|
|
21
|
+
export function PanelFrame(props) {
|
|
22
|
+
const { id, def, dir, collapsed, dragId, onDragStart, onDragEnd, onDrop, onCollapse, onClose, maximized, onMaximize, onPeek, overlay, onPin, onHidePeek } = props;
|
|
23
|
+
const [hover, setHover] = useState(null);
|
|
24
|
+
if (!def)
|
|
25
|
+
return null;
|
|
26
|
+
if (collapsed) {
|
|
27
|
+
const vertical = dir === 'row';
|
|
28
|
+
// Vertical rail (in a row split): icon-only, clean. Horizontal rail (in a col
|
|
29
|
+
// split): icon + label. No rotated text — keeps it crisp and legible.
|
|
30
|
+
// Clicking a rail PEEKS the panel as a transient overlay; pinning (from the
|
|
31
|
+
// overlay header) is what docks it inline. Falls back to expand-inline if no
|
|
32
|
+
// peek handler is wired (e.g. mobile).
|
|
33
|
+
return (_jsxs("button", { "data-dock-rail": true, style: vertical ? S.railV : S.railH, title: onPeek ? `Peek ${def.label}` : `Show ${def.label}`, "aria-label": onPeek ? `Peek ${def.label}` : `Show ${def.label}`, onClick: (e) => {
|
|
34
|
+
if (onPeek)
|
|
35
|
+
onPeek(id, e.currentTarget.getBoundingClientRect());
|
|
36
|
+
else
|
|
37
|
+
onCollapse(id, false);
|
|
38
|
+
}, children: [_jsx("span", { style: S.railIcon, children: def.icon ?? def.label.charAt(0) }), !vertical && _jsx("span", { style: S.railLabelH, children: def.label })] }));
|
|
39
|
+
}
|
|
40
|
+
const dragging = dragId !== null && dragId !== id;
|
|
41
|
+
const isSource = dragId === id;
|
|
42
|
+
return (_jsxs("div", { "data-panel": id, style: { ...S.panel, ...(isSource ? S.panelSource : null) }, children: [_jsxs("div", { className: "panel-head", style: S.head, draggable: !maximized && !overlay, title: overlay ? 'Pin to keep this panel docked' : 'Drag to move · double-click to send to rail', onDragStart: (e) => {
|
|
43
|
+
e.dataTransfer.effectAllowed = 'move';
|
|
44
|
+
e.dataTransfer.setData('text/plain', id);
|
|
45
|
+
onDragStart(id);
|
|
46
|
+
}, onDragEnd: onDragEnd, onDoubleClick: () => { if (overlay)
|
|
47
|
+
onPin?.(id);
|
|
48
|
+
else if (!maximized)
|
|
49
|
+
onCollapse(id, true); }, children: [def.icon && _jsx("span", { style: S.headIcon, children: def.icon }), _jsx("span", { style: S.title, children: def.title ?? def.label }), _jsx("div", { style: { flex: 1 } }), def.actions && _jsx("div", { style: S.actions, onMouseDown: (e) => e.stopPropagation(), draggable: false, children: def.actions }), overlay ? (
|
|
50
|
+
// Peek overlay: pin it in place (dock inline), or hide it (Esc/click-away
|
|
51
|
+
// do the same). No collapse chevron — it's already floating.
|
|
52
|
+
_jsxs(_Fragment, { children: [onPin && (_jsx("button", { style: S.hbtn, title: "Pin in place (dock)", onClick: () => onPin(id), "aria-label": "Pin panel in place", children: _jsx(IcPin, {}) })), onMaximize && (_jsx("button", { style: S.hbtn, title: "Maximize", onClick: () => onMaximize(id), "aria-label": "Maximize panel", children: _jsx(IcMaximize, {}) })), onHidePeek && (_jsx("button", { style: S.hbtn, title: "Hide", onClick: () => onHidePeek(), "aria-label": "Hide panel", children: _jsx(IcClose, {}) }))] })) : (_jsxs(_Fragment, { children: [onMaximize && (_jsx("button", { style: S.hbtn, title: maximized ? 'Restore' : 'Maximize', onClick: () => onMaximize(maximized ? null : id), "aria-label": maximized ? 'Restore panel' : 'Maximize panel', children: maximized ? _jsx(IcRestore, {}) : _jsx(IcMaximize, {}) })), !maximized && (
|
|
53
|
+
// A docked (pinned) panel: unpin sends it back to a rail.
|
|
54
|
+
_jsx("button", { style: S.hbtn, title: "Unpin (send to rail)", onClick: () => onCollapse(id, true), "aria-label": "Unpin panel to rail", children: _jsx(IcPin, { filled: true }) })), !maximized && onClose && (_jsx("button", { style: S.hbtn, title: "Close panel", onClick: () => onClose(id), "aria-label": "Close panel", children: _jsx(IcClose, {}) }))] }))] }), _jsxs("div", { style: S.body, children: [def.render(), dragging && (_jsx("div", { style: S.dropz, children: EDGES.map((edge) => (_jsx("div", { style: { ...S.dz(edge), ...(hover === edge ? S.dzOn(edge) : null) }, onDragOver: (e) => { e.preventDefault(); e.dataTransfer.dropEffect = 'move'; if (hover !== edge)
|
|
55
|
+
setHover(edge); }, onDragLeave: () => setHover((c) => (c === edge ? null : c)), onDrop: (e) => { e.preventDefault(); setHover(null); onDrop(id, edge); }, children: hover === edge && _jsx("span", { style: S.dzArrow, children: _jsx(DropArrow, { edge: edge }) }) }, edge))) }))] })] }));
|
|
56
|
+
}
|
|
57
|
+
const S = {
|
|
58
|
+
// flex:1 + 100% so the frame fills its split track (otherwise it sizes to
|
|
59
|
+
// content and leaves dead space in the pane).
|
|
60
|
+
panel: { display: 'flex', flexDirection: 'column', flex: 1, width: '100%', height: '100%', minWidth: 0, minHeight: 0, background: 'var(--surface-1)', overflow: 'hidden' },
|
|
61
|
+
panelSource: { opacity: 0.4, outline: '2px dashed var(--border-accent)', outlineOffset: -2 },
|
|
62
|
+
head: { display: 'flex', alignItems: 'center', gap: 7, height: 34, padding: '0 6px 0 11px', flexShrink: 0, borderBottom: '1px solid var(--border-subtle)', background: 'var(--surface-1)', cursor: 'grab', userSelect: 'none' },
|
|
63
|
+
headIcon: { display: 'inline-flex', color: 'var(--text-tertiary)' },
|
|
64
|
+
title: { display: 'inline-flex', alignItems: 'center', gap: 6, fontSize: 12.5, fontWeight: 600, color: 'var(--text-primary)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', letterSpacing: '-0.01em' },
|
|
65
|
+
hbtn: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 26, height: 26, border: 0, borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer', flexShrink: 0 },
|
|
66
|
+
actions: { display: 'inline-flex', alignItems: 'center', gap: 6 },
|
|
67
|
+
body: { position: 'relative', flex: 1, minHeight: 0, minWidth: 0, overflow: 'hidden', display: 'flex', flexDirection: 'column' },
|
|
68
|
+
// collapsed rails — icon-first, no rotated text
|
|
69
|
+
railV: { display: 'inline-flex', flexDirection: 'column', alignItems: 'center', gap: 8, width: 36, flex: '0 0 auto', height: '100%', padding: '12px 0', border: 0, borderLeft: '1px solid var(--border-subtle)', background: 'var(--surface-rail)', color: 'var(--text-tertiary)', cursor: 'pointer' },
|
|
70
|
+
railH: { display: 'inline-flex', alignItems: 'center', gap: 8, height: 34, flex: '0 0 auto', padding: '0 12px', border: 0, borderTop: '1px solid var(--border-subtle)', background: 'var(--surface-rail)', color: 'var(--text-tertiary)', cursor: 'pointer', font: 'inherit' },
|
|
71
|
+
railIcon: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', fontSize: 12, fontWeight: 700 },
|
|
72
|
+
railLabelH: { fontSize: 11.5, fontWeight: 600, letterSpacing: '0.04em', textTransform: 'uppercase' },
|
|
73
|
+
// drop zones — four edge bands; the hovered one previews where the panel docks
|
|
74
|
+
dropz: { position: 'absolute', inset: 0, zIndex: 20, pointerEvents: 'none' },
|
|
75
|
+
dz: (edge) => {
|
|
76
|
+
const base = { position: 'absolute', pointerEvents: 'auto', display: 'flex', alignItems: 'center', justifyContent: 'center', color: 'var(--accent)', transition: 'background var(--motion-fast)' };
|
|
77
|
+
const band = '38%';
|
|
78
|
+
if (edge === 'top')
|
|
79
|
+
return { ...base, top: 0, left: 0, right: 0, height: band };
|
|
80
|
+
if (edge === 'bottom')
|
|
81
|
+
return { ...base, bottom: 0, left: 0, right: 0, height: band };
|
|
82
|
+
if (edge === 'left')
|
|
83
|
+
return { ...base, top: 0, bottom: 0, left: 0, width: band };
|
|
84
|
+
return { ...base, top: 0, bottom: 0, right: 0, width: band };
|
|
85
|
+
},
|
|
86
|
+
dzOn: (edge) => {
|
|
87
|
+
const bar = '3px solid var(--accent)';
|
|
88
|
+
const fill = 'color-mix(in srgb, var(--accent) 16%, transparent)';
|
|
89
|
+
const e = { background: fill };
|
|
90
|
+
if (edge === 'top')
|
|
91
|
+
e.borderTop = bar;
|
|
92
|
+
if (edge === 'bottom')
|
|
93
|
+
e.borderBottom = bar;
|
|
94
|
+
if (edge === 'left')
|
|
95
|
+
e.borderLeft = bar;
|
|
96
|
+
if (edge === 'right')
|
|
97
|
+
e.borderRight = bar;
|
|
98
|
+
return e;
|
|
99
|
+
},
|
|
100
|
+
dzArrow: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 30, height: 30, borderRadius: 999, background: 'var(--surface-1)', boxShadow: 'var(--shadow-2)' },
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=PanelFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelFrame.js","sourceRoot":"","sources":["../../dock/PanelFrame.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIxC,MAAM,KAAK,GAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEtE;iFACiF;AACjF,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAkB,EAAE,EAAE,CAAC,CACjD,cAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,YAAC,eAAM,CAAC,EAAC,gGAAgG,GAAG,GAAM,CAC/P,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAkB,EAAE,EAAE,CAAC,CAChD,cAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,YAAC,eAAM,CAAC,EAAC,yCAAyC,GAAG,GAAM,CACxM,CAAC;AACF,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAkB,EAAE,EAAE,CAAC,CAC9C,cAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,YAAC,eAAM,CAAC,EAAC,sBAAsB,GAAG,GAAM,CACrL,CAAC;AACF;+CAC+C;AAC/C,MAAM,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,EAAoC,EAAE,EAAE,CAAC,CAC9E,cAAK,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,YAAC,eAAM,CAAC,EAAC,kHAAkH,GAAG,GAAM,CAC7S,CAAC;AACF,uEAAuE;AACvE,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAsB,EAAE,EAAE;IACjD,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,GAAG,MAAM,EAAE,YAAE,eAAM,CAAC,EAAC,cAAc,GAAG,GAAM,CAC5N,CAAC;AACJ,CAAC,CAAC;AA+BF;;;+CAG+C;AAC/C,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAClK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,GAAG,KAAK,KAAK,CAAC;QAC/B,8EAA8E;QAC9E,sEAAsE;QACtE,4EAA4E;QAC5E,6EAA6E;QAC7E,uCAAuC;QACvC,OAAO,CACL,0CAEE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EACnC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,gBAC7C,MAAM,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,EAC9D,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,IAAI,MAAM;oBAAE,MAAM,CAAC,EAAE,EAAG,CAAC,CAAC,aAA6B,CAAC,qBAAqB,EAAE,CAAC,CAAC;;oBAC5E,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC,aAED,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAQ,EAChE,CAAC,QAAQ,IAAI,eAAM,KAAK,EAAE,CAAC,CAAC,UAAU,YAAG,GAAG,CAAC,KAAK,GAAQ,IACpD,CACV,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,KAAK,EAAE,CAAC;IAE/B,OAAO,CACL,6BAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,aAC9E,eACE,SAAS,EAAC,YAAY,EACtB,KAAK,EAAE,CAAC,CAAC,IAAI,EACb,SAAS,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,EACjC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,6CAA6C,EAChG,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;oBACjB,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;oBACtC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;oBACzC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC,EACD,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO;oBAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;qBAAM,IAAI,CAAC,SAAS;oBAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,aAE5F,GAAG,CAAC,IAAI,IAAI,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,GAAG,CAAC,IAAI,GAAQ,EACvD,eAAM,KAAK,EAAE,CAAC,CAAC,KAAK,YAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,GAAQ,EACrD,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAI,EAC1B,GAAG,CAAC,OAAO,IAAI,cAAK,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,YAAG,GAAG,CAAC,OAAO,GAAO,EACpH,OAAO,CAAC,CAAC,CAAC;oBACT,0EAA0E;oBAC1E,6DAA6D;oBAC7D,8BACG,KAAK,IAAI,CACR,iBAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,qBAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAa,oBAAoB,YAC1G,KAAC,KAAK,KAAG,GACF,CACV,EACA,UAAU,IAAI,CACb,iBAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAa,gBAAgB,YAChG,KAAC,UAAU,KAAG,GACP,CACV,EACA,UAAU,IAAI,CACb,iBAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAa,YAAY,YACtF,KAAC,OAAO,KAAG,GACJ,CACV,IACA,CACJ,CAAC,CAAC,CAAC,CACF,8BACG,UAAU,IAAI,CACb,iBACE,KAAK,EAAE,CAAC,CAAC,IAAI,EACb,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EACzC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,gBACpC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,YAEzD,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,KAAC,UAAU,KAAG,GACpC,CACV,EACA,CAAC,SAAS,IAAI;4BACb,0DAA0D;4BAC1D,iBAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,sBAAsB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAa,qBAAqB,YACvH,KAAC,KAAK,IAAC,MAAM,SAAG,GACT,CACV,EACA,CAAC,SAAS,IAAI,OAAO,IAAI,CACxB,iBAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAa,aAAa,YAC7F,KAAC,OAAO,KAAG,GACJ,CACV,IACA,CACJ,IACG,EACN,eAAK,KAAK,EAAE,CAAC,CAAC,IAAI,aACf,GAAG,CAAC,MAAM,EAAE,EACZ,QAAQ,IAAI,CACX,cAAK,KAAK,EAAE,CAAC,CAAC,KAAK,YAChB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,cAEE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EACnE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI;gCAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAClH,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3D,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAEvE,KAAK,KAAK,IAAI,IAAI,eAAM,KAAK,EAAE,CAAC,CAAC,OAAO,YAAE,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,GAAI,GAAO,IANtE,IAAI,CAOL,CACP,CAAC,GACE,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAwB;IAC7B,0EAA0E;IAC1E,8CAA8C;IAC9C,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAC1K,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,iCAAiC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE;IAC5F,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,gCAAgC,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;IAC/N,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACnE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE;IAC5N,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE;IAChP,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;IACjE,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE;IAChI,gDAAgD;IAChD,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,gCAAgC,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE;IACtS,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,gCAAgC,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IAC9Q,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;IACnH,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE;IACpG,+EAA+E;IAC/E,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;IAC5E,EAAE,EAAE,CAAC,IAAc,EAAuB,EAAE;QAC1C,MAAM,IAAI,GAAwB,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,+BAA+B,EAAE,CAAC;QACxN,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAChF,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACtF,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjF,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,EAAE,CAAC,IAAc,EAAuB,EAAE;QAC5C,MAAM,GAAG,GAAG,yBAAyB,CAAC;QACtC,MAAM,IAAI,GAAG,oDAAoD,CAAC;QAClE,MAAM,CAAC,GAAwB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACpD,IAAI,IAAI,KAAK,KAAK;YAAE,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;QACtC,IAAI,IAAI,KAAK,QAAQ;YAAE,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC;QAC5C,IAAI,IAAI,KAAK,MAAM;YAAE,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;QACxC,IAAI,IAAI,KAAK,OAAO;YAAE,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,EAAE;CAC5L,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DockApi } from './use-layout';
|
|
3
|
+
import type { PanelDef } from './config';
|
|
4
|
+
import type { PanelId } from './types';
|
|
5
|
+
/** Root of a dockable surface: renders the persisted split tree and owns the
|
|
6
|
+
* transient drag id, maximized panel, and peek overlay (none persisted; only an
|
|
7
|
+
* overlay's resized extent persists, via the dock api). */
|
|
8
|
+
export declare function PanelHost({ panels, dock }: {
|
|
9
|
+
panels: Record<PanelId, PanelDef>;
|
|
10
|
+
dock: DockApi;
|
|
11
|
+
}): React.ReactElement;
|
|
12
|
+
//# sourceMappingURL=PanelHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelHost.d.ts","sourceRoot":"","sources":["../../dock/PanelHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6D,MAAM,OAAO,CAAC;AAGlF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAwB,OAAO,EAAuB,MAAM,SAAS,CAAC;AA4UlF;;2DAE2D;AAC3D,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA4HpH"}
|