@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.
Files changed (109) hide show
  1. package/dist/diagnostics.d.ts +9 -0
  2. package/dist/diagnostics.d.ts.map +1 -0
  3. package/dist/diagnostics.js +2 -0
  4. package/dist/diagnostics.js.map +1 -0
  5. package/dist/dock/PanelChooser.d.ts +13 -0
  6. package/dist/dock/PanelChooser.d.ts.map +1 -0
  7. package/dist/dock/PanelChooser.js +72 -0
  8. package/dist/dock/PanelChooser.js.map +1 -0
  9. package/dist/dock/PanelFrame.d.ts +37 -0
  10. package/dist/dock/PanelFrame.d.ts.map +1 -0
  11. package/dist/dock/PanelFrame.js +102 -0
  12. package/dist/dock/PanelFrame.js.map +1 -0
  13. package/dist/dock/PanelHost.d.ts +12 -0
  14. package/dist/dock/PanelHost.d.ts.map +1 -0
  15. package/dist/dock/PanelHost.js +331 -0
  16. package/dist/dock/PanelHost.js.map +1 -0
  17. package/dist/dock/config.d.ts +35 -0
  18. package/dist/dock/config.d.ts.map +1 -0
  19. package/dist/dock/config.js +2 -0
  20. package/dist/dock/config.js.map +1 -0
  21. package/dist/dock/index.d.ts +9 -0
  22. package/dist/dock/index.d.ts.map +1 -0
  23. package/dist/dock/index.js +13 -0
  24. package/dist/dock/index.js.map +1 -0
  25. package/dist/dock/layouts.d.ts +12 -0
  26. package/dist/dock/layouts.d.ts.map +1 -0
  27. package/dist/dock/layouts.js +50 -0
  28. package/dist/dock/layouts.js.map +1 -0
  29. package/dist/dock/tree.d.ts +73 -0
  30. package/dist/dock/tree.d.ts.map +1 -0
  31. package/dist/dock/tree.js +276 -0
  32. package/dist/dock/tree.js.map +1 -0
  33. package/dist/dock/types.d.ts +51 -0
  34. package/dist/dock/types.d.ts.map +1 -0
  35. package/dist/dock/types.js +42 -0
  36. package/dist/dock/types.js.map +1 -0
  37. package/dist/dock/use-layout.d.ts +41 -0
  38. package/dist/dock/use-layout.d.ts.map +1 -0
  39. package/dist/dock/use-layout.js +114 -0
  40. package/dist/dock/use-layout.js.map +1 -0
  41. package/dist/engine/index.d.ts +6 -0
  42. package/dist/engine/index.d.ts.map +1 -0
  43. package/dist/engine/index.js +8 -0
  44. package/dist/engine/index.js.map +1 -0
  45. package/dist/engine/runModel.d.ts +16 -0
  46. package/dist/engine/runModel.d.ts.map +1 -0
  47. package/dist/engine/runModel.js +7 -0
  48. package/dist/engine/runModel.js.map +1 -0
  49. package/dist/engine/useDocResults.d.ts +38 -0
  50. package/dist/engine/useDocResults.d.ts.map +1 -0
  51. package/dist/engine/useDocResults.js +51 -0
  52. package/dist/engine/useDocResults.js.map +1 -0
  53. package/dist/engine/useRunController.d.ts +18 -0
  54. package/dist/engine/useRunController.d.ts.map +1 -0
  55. package/dist/engine/useRunController.js +28 -0
  56. package/dist/engine/useRunController.js.map +1 -0
  57. package/dist/engine/useRunHistory.d.ts +22 -0
  58. package/dist/engine/useRunHistory.d.ts.map +1 -0
  59. package/dist/engine/useRunHistory.js +20 -0
  60. package/dist/engine/useRunHistory.js.map +1 -0
  61. package/dist/engine/useRunOutput.d.ts +32 -0
  62. package/dist/engine/useRunOutput.d.ts.map +1 -0
  63. package/dist/engine/useRunOutput.js +51 -0
  64. package/dist/engine/useRunOutput.js.map +1 -0
  65. package/dist/errorLog.d.ts +17 -0
  66. package/dist/errorLog.d.ts.map +1 -0
  67. package/dist/errorLog.js +44 -0
  68. package/dist/errorLog.js.map +1 -0
  69. package/dist/index.d.ts +3 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +6 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/inlineAssist.d.ts +109 -0
  74. package/dist/inlineAssist.d.ts.map +1 -0
  75. package/dist/inlineAssist.js +272 -0
  76. package/dist/inlineAssist.js.map +1 -0
  77. package/dist/panels/DesignView.d.ts +9 -0
  78. package/dist/panels/DesignView.d.ts.map +1 -0
  79. package/dist/panels/DesignView.js +36 -0
  80. package/dist/panels/DesignView.js.map +1 -0
  81. package/dist/panels/ParamCard.d.ts +14 -0
  82. package/dist/panels/ParamCard.d.ts.map +1 -0
  83. package/dist/panels/ParamCard.js +138 -0
  84. package/dist/panels/ParamCard.js.map +1 -0
  85. package/dist/panels/ProblemsPanel.d.ts +9 -0
  86. package/dist/panels/ProblemsPanel.d.ts.map +1 -0
  87. package/dist/panels/ProblemsPanel.js +46 -0
  88. package/dist/panels/ProblemsPanel.js.map +1 -0
  89. package/dist/panels/UsageButton.d.ts +9 -0
  90. package/dist/panels/UsageButton.d.ts.map +1 -0
  91. package/dist/panels/UsageButton.js +40 -0
  92. package/dist/panels/UsageButton.js.map +1 -0
  93. package/dist/panels/index.d.ts +5 -0
  94. package/dist/panels/index.d.ts.map +1 -0
  95. package/dist/panels/index.js +8 -0
  96. package/dist/panels/index.js.map +1 -0
  97. package/dist/params.d.ts +27 -0
  98. package/dist/params.d.ts.map +1 -0
  99. package/dist/params.js +142 -0
  100. package/dist/params.js.map +1 -0
  101. package/dist/useWorkbench.d.ts +9 -0
  102. package/dist/useWorkbench.d.ts.map +1 -0
  103. package/dist/useWorkbench.js +21 -0
  104. package/dist/useWorkbench.js.map +1 -0
  105. package/dist/workflowModel.d.ts +128 -0
  106. package/dist/workflowModel.d.ts.map +1 -0
  107. package/dist/workflowModel.js +135 -0
  108. package/dist/workflowModel.js.map +1 -0
  109. package/package.json +62 -0
@@ -0,0 +1,9 @@
1
+ export interface DocDiagnostic {
2
+ message: string;
3
+ severity: 'error' | 'warning' | 'info';
4
+ line?: number;
5
+ column?: number;
6
+ endLine?: number;
7
+ endColumn?: number;
8
+ }
9
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=diagnostics.js.map
@@ -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":"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"}
@@ -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"}