@ai-matrx/canvas 0.10.36 → 0.10.38
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/CHANGELOG.md +12 -0
- package/README.md +10 -0
- package/dist/react.cjs +54 -25
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +12 -2
- package/dist/react.d.ts +12 -2
- package/dist/react.js +54 -25
- package/dist/react.js.map +1 -1
- package/dist/styles.css +187 -0
- package/dist/tokens.css +4 -0
- package/package.json +2 -2
package/dist/react.d.cts
CHANGED
|
@@ -323,6 +323,14 @@ interface CanvasHostPorts {
|
|
|
323
323
|
readonly output?: CanvasOutputPorts | undefined;
|
|
324
324
|
}
|
|
325
325
|
type CanvasTabStripMode = "auto" | "always";
|
|
326
|
+
/**
|
|
327
|
+
* How panes are drawn. "card" (default): rounded cards on the column's frame, the header a
|
|
328
|
+
* compact strip (Claude desktop / Codex). "mac": a macOS window section — no card, the column
|
|
329
|
+
* flush to the window's edge behind one hairline, each pane's header a unified-toolbar band
|
|
330
|
+
* (the title centred in bold with its proxy icon, or the kind's Toolbar in its place, as Safari's
|
|
331
|
+
* address bar is), and two or more tabs in a tab bar under it (Terminal, Finder, Safari).
|
|
332
|
+
*/
|
|
333
|
+
type CanvasLook = "card" | "mac";
|
|
326
334
|
/**
|
|
327
335
|
* One contextual launcher entry: a page offers something about ITSELF in the
|
|
328
336
|
* canvas's "New tab" launcher ("This chat's documents" on a chat page) for as
|
|
@@ -356,8 +364,10 @@ interface CanvasProviderProps extends CanvasHostPorts {
|
|
|
356
364
|
readonly regionWidth?: number | null;
|
|
357
365
|
/** "auto": a pane with one tab shows a title instead of a tab strip. Default "auto". */
|
|
358
366
|
readonly tabStrip?: CanvasTabStripMode;
|
|
367
|
+
/** "mac": panes are macOS window sections (see CanvasLook). Default "card". */
|
|
368
|
+
readonly look?: CanvasLook;
|
|
359
369
|
}
|
|
360
|
-
declare function CanvasProvider({ children, store, persistence, onError, hotkeys, windowId: windowIdProp, layoutRules, regionWidth, tabStrip, itemActions, popOut, dockBack, showMenu, overlay, onNativeBodyFrame, output, }: CanvasProviderProps): react.JSX.Element;
|
|
370
|
+
declare function CanvasProvider({ children, store, persistence, onError, hotkeys, windowId: windowIdProp, layoutRules, regionWidth, tabStrip, look, itemActions, popOut, dockBack, showMenu, overlay, onNativeBodyFrame, output, }: CanvasProviderProps): react.JSX.Element;
|
|
361
371
|
/**
|
|
362
372
|
* Renders a subtree as ANOTHER window of the same canvas — the web host's
|
|
363
373
|
* pop-out panel: `<CanvasWindowScope windowId={id}><CanvasColumn placement="fill"/></CanvasWindowScope>`.
|
|
@@ -652,4 +662,4 @@ interface BrowserBarProps {
|
|
|
652
662
|
*/
|
|
653
663
|
declare function BrowserBar({ url, canGoBack, canGoForward, onBack, onForward, onReload, onNavigate, trailing, className }: BrowserBarProps): react.JSX.Element;
|
|
654
664
|
|
|
655
|
-
export { type AnyCanvasKind, BrowserBar, type BrowserBarProps, type BrowserTab, BrowserTabs, type BrowserTabsProps, CANVAS_TAB_LIST_ROOM, CANVAS_TAB_MIN_WIDTH, CanvasColumn, type CanvasColumnProps, type CanvasFloating, CanvasFrame, CanvasHeaderButton, type CanvasHeaderButtonProps, type CanvasHostPorts, type CanvasKind, type CanvasKindIcon, CanvasKindIcons, type CanvasKindProps, type CanvasKindSurface, type CanvasLauncherEntry, type CanvasMenuEntry, type CanvasMenuItem, CanvasMenuTrigger, type CanvasNativeBodyFrame, type CanvasNativeBodyInfo, type CanvasNativeRect, type CanvasOutputHandlers, type CanvasOutputPorts, type CanvasOutputRequest, type CanvasOverlayPort, CanvasPaneView, CanvasPanel, CanvasPanelEmpty, type CanvasPanelProps, CanvasProvider, type CanvasProviderProps, type CanvasShowMenu, type CanvasStripEntry, type CanvasStripTab, CanvasTab, type CanvasTabProps, type CanvasTabStripMode, type CanvasTabWindow, CanvasToggle, CanvasWindowScope, CanvasWindowTabs, beginCanvasResize, canvasItemElement, canvasKindOutputProblems, canvasKindSurface, canvasOutputMenu, canvasSessionKey, defineCanvasKind, fitCanvasTabWindow, getCanvasKind, itemTitle, listCanvasKinds, planCanvasTabStrip, registerCanvasKind, registerCanvasKinds, useCanvas, useCanvasColumnWidth, useCanvasHostPorts, useCanvasIsPresented, useCanvasKind, useCanvasKindToggle, useCanvasKinds, useCanvasLauncherEntries, useCanvasLauncherEntry, useCanvasMenuItems, useCanvasNativeBodies, useCanvasOutput, useCanvasPresentation, useCanvasState, useCanvasWindowId, useOptionalCanvas, useOptionalCanvasState };
|
|
665
|
+
export { type AnyCanvasKind, BrowserBar, type BrowserBarProps, type BrowserTab, BrowserTabs, type BrowserTabsProps, CANVAS_TAB_LIST_ROOM, CANVAS_TAB_MIN_WIDTH, CanvasColumn, type CanvasColumnProps, type CanvasFloating, CanvasFrame, CanvasHeaderButton, type CanvasHeaderButtonProps, type CanvasHostPorts, type CanvasKind, type CanvasKindIcon, CanvasKindIcons, type CanvasKindProps, type CanvasKindSurface, type CanvasLauncherEntry, type CanvasLook, type CanvasMenuEntry, type CanvasMenuItem, CanvasMenuTrigger, type CanvasNativeBodyFrame, type CanvasNativeBodyInfo, type CanvasNativeRect, type CanvasOutputHandlers, type CanvasOutputPorts, type CanvasOutputRequest, type CanvasOverlayPort, CanvasPaneView, CanvasPanel, CanvasPanelEmpty, type CanvasPanelProps, CanvasProvider, type CanvasProviderProps, type CanvasShowMenu, type CanvasStripEntry, type CanvasStripTab, CanvasTab, type CanvasTabProps, type CanvasTabStripMode, type CanvasTabWindow, CanvasToggle, CanvasWindowScope, CanvasWindowTabs, beginCanvasResize, canvasItemElement, canvasKindOutputProblems, canvasKindSurface, canvasOutputMenu, canvasSessionKey, defineCanvasKind, fitCanvasTabWindow, getCanvasKind, itemTitle, listCanvasKinds, planCanvasTabStrip, registerCanvasKind, registerCanvasKinds, useCanvas, useCanvasColumnWidth, useCanvasHostPorts, useCanvasIsPresented, useCanvasKind, useCanvasKindToggle, useCanvasKinds, useCanvasLauncherEntries, useCanvasLauncherEntry, useCanvasMenuItems, useCanvasNativeBodies, useCanvasOutput, useCanvasPresentation, useCanvasState, useCanvasWindowId, useOptionalCanvas, useOptionalCanvasState };
|
package/dist/react.d.ts
CHANGED
|
@@ -323,6 +323,14 @@ interface CanvasHostPorts {
|
|
|
323
323
|
readonly output?: CanvasOutputPorts | undefined;
|
|
324
324
|
}
|
|
325
325
|
type CanvasTabStripMode = "auto" | "always";
|
|
326
|
+
/**
|
|
327
|
+
* How panes are drawn. "card" (default): rounded cards on the column's frame, the header a
|
|
328
|
+
* compact strip (Claude desktop / Codex). "mac": a macOS window section — no card, the column
|
|
329
|
+
* flush to the window's edge behind one hairline, each pane's header a unified-toolbar band
|
|
330
|
+
* (the title centred in bold with its proxy icon, or the kind's Toolbar in its place, as Safari's
|
|
331
|
+
* address bar is), and two or more tabs in a tab bar under it (Terminal, Finder, Safari).
|
|
332
|
+
*/
|
|
333
|
+
type CanvasLook = "card" | "mac";
|
|
326
334
|
/**
|
|
327
335
|
* One contextual launcher entry: a page offers something about ITSELF in the
|
|
328
336
|
* canvas's "New tab" launcher ("This chat's documents" on a chat page) for as
|
|
@@ -356,8 +364,10 @@ interface CanvasProviderProps extends CanvasHostPorts {
|
|
|
356
364
|
readonly regionWidth?: number | null;
|
|
357
365
|
/** "auto": a pane with one tab shows a title instead of a tab strip. Default "auto". */
|
|
358
366
|
readonly tabStrip?: CanvasTabStripMode;
|
|
367
|
+
/** "mac": panes are macOS window sections (see CanvasLook). Default "card". */
|
|
368
|
+
readonly look?: CanvasLook;
|
|
359
369
|
}
|
|
360
|
-
declare function CanvasProvider({ children, store, persistence, onError, hotkeys, windowId: windowIdProp, layoutRules, regionWidth, tabStrip, itemActions, popOut, dockBack, showMenu, overlay, onNativeBodyFrame, output, }: CanvasProviderProps): react.JSX.Element;
|
|
370
|
+
declare function CanvasProvider({ children, store, persistence, onError, hotkeys, windowId: windowIdProp, layoutRules, regionWidth, tabStrip, look, itemActions, popOut, dockBack, showMenu, overlay, onNativeBodyFrame, output, }: CanvasProviderProps): react.JSX.Element;
|
|
361
371
|
/**
|
|
362
372
|
* Renders a subtree as ANOTHER window of the same canvas — the web host's
|
|
363
373
|
* pop-out panel: `<CanvasWindowScope windowId={id}><CanvasColumn placement="fill"/></CanvasWindowScope>`.
|
|
@@ -652,4 +662,4 @@ interface BrowserBarProps {
|
|
|
652
662
|
*/
|
|
653
663
|
declare function BrowserBar({ url, canGoBack, canGoForward, onBack, onForward, onReload, onNavigate, trailing, className }: BrowserBarProps): react.JSX.Element;
|
|
654
664
|
|
|
655
|
-
export { type AnyCanvasKind, BrowserBar, type BrowserBarProps, type BrowserTab, BrowserTabs, type BrowserTabsProps, CANVAS_TAB_LIST_ROOM, CANVAS_TAB_MIN_WIDTH, CanvasColumn, type CanvasColumnProps, type CanvasFloating, CanvasFrame, CanvasHeaderButton, type CanvasHeaderButtonProps, type CanvasHostPorts, type CanvasKind, type CanvasKindIcon, CanvasKindIcons, type CanvasKindProps, type CanvasKindSurface, type CanvasLauncherEntry, type CanvasMenuEntry, type CanvasMenuItem, CanvasMenuTrigger, type CanvasNativeBodyFrame, type CanvasNativeBodyInfo, type CanvasNativeRect, type CanvasOutputHandlers, type CanvasOutputPorts, type CanvasOutputRequest, type CanvasOverlayPort, CanvasPaneView, CanvasPanel, CanvasPanelEmpty, type CanvasPanelProps, CanvasProvider, type CanvasProviderProps, type CanvasShowMenu, type CanvasStripEntry, type CanvasStripTab, CanvasTab, type CanvasTabProps, type CanvasTabStripMode, type CanvasTabWindow, CanvasToggle, CanvasWindowScope, CanvasWindowTabs, beginCanvasResize, canvasItemElement, canvasKindOutputProblems, canvasKindSurface, canvasOutputMenu, canvasSessionKey, defineCanvasKind, fitCanvasTabWindow, getCanvasKind, itemTitle, listCanvasKinds, planCanvasTabStrip, registerCanvasKind, registerCanvasKinds, useCanvas, useCanvasColumnWidth, useCanvasHostPorts, useCanvasIsPresented, useCanvasKind, useCanvasKindToggle, useCanvasKinds, useCanvasLauncherEntries, useCanvasLauncherEntry, useCanvasMenuItems, useCanvasNativeBodies, useCanvasOutput, useCanvasPresentation, useCanvasState, useCanvasWindowId, useOptionalCanvas, useOptionalCanvasState };
|
|
665
|
+
export { type AnyCanvasKind, BrowserBar, type BrowserBarProps, type BrowserTab, BrowserTabs, type BrowserTabsProps, CANVAS_TAB_LIST_ROOM, CANVAS_TAB_MIN_WIDTH, CanvasColumn, type CanvasColumnProps, type CanvasFloating, CanvasFrame, CanvasHeaderButton, type CanvasHeaderButtonProps, type CanvasHostPorts, type CanvasKind, type CanvasKindIcon, CanvasKindIcons, type CanvasKindProps, type CanvasKindSurface, type CanvasLauncherEntry, type CanvasLook, type CanvasMenuEntry, type CanvasMenuItem, CanvasMenuTrigger, type CanvasNativeBodyFrame, type CanvasNativeBodyInfo, type CanvasNativeRect, type CanvasOutputHandlers, type CanvasOutputPorts, type CanvasOutputRequest, type CanvasOverlayPort, CanvasPaneView, CanvasPanel, CanvasPanelEmpty, type CanvasPanelProps, CanvasProvider, type CanvasProviderProps, type CanvasShowMenu, type CanvasStripEntry, type CanvasStripTab, CanvasTab, type CanvasTabProps, type CanvasTabStripMode, type CanvasTabWindow, CanvasToggle, CanvasWindowScope, CanvasWindowTabs, beginCanvasResize, canvasItemElement, canvasKindOutputProblems, canvasKindSurface, canvasOutputMenu, canvasSessionKey, defineCanvasKind, fitCanvasTabWindow, getCanvasKind, itemTitle, listCanvasKinds, planCanvasTabStrip, registerCanvasKind, registerCanvasKinds, useCanvas, useCanvasColumnWidth, useCanvasHostPorts, useCanvasIsPresented, useCanvasKind, useCanvasKindToggle, useCanvasKinds, useCanvasLauncherEntries, useCanvasLauncherEntry, useCanvasMenuItems, useCanvasNativeBodies, useCanvasOutput, useCanvasPresentation, useCanvasState, useCanvasWindowId, useOptionalCanvas, useOptionalCanvasState };
|
package/dist/react.js
CHANGED
|
@@ -1999,6 +1999,7 @@ function CanvasProvider({
|
|
|
1999
1999
|
layoutRules,
|
|
2000
2000
|
regionWidth = null,
|
|
2001
2001
|
tabStrip = "auto",
|
|
2002
|
+
look = "card",
|
|
2002
2003
|
itemActions,
|
|
2003
2004
|
popOut,
|
|
2004
2005
|
dockBack,
|
|
@@ -2055,8 +2056,8 @@ function CanvasProvider({
|
|
|
2055
2056
|
return () => window.removeEventListener("keydown", onKey);
|
|
2056
2057
|
}, [controller, hotkeys, windowId]);
|
|
2057
2058
|
const value = useMemo(
|
|
2058
|
-
() => ({ controller, windowId, ports: hostPorts, layer, regionWidth, tabStrip, launcherEntries, itemMenus, itemOutputs }),
|
|
2059
|
-
[controller, windowId, hostPorts, layer, regionWidth, tabStrip, launcherEntries, itemMenus, itemOutputs]
|
|
2059
|
+
() => ({ controller, windowId, ports: hostPorts, layer, regionWidth, tabStrip, look, launcherEntries, itemMenus, itemOutputs }),
|
|
2060
|
+
[controller, windowId, hostPorts, layer, regionWidth, tabStrip, look, launcherEntries, itemMenus, itemOutputs]
|
|
2060
2061
|
);
|
|
2061
2062
|
return /* @__PURE__ */ jsxs(CanvasContext.Provider, { value, children: [
|
|
2062
2063
|
children,
|
|
@@ -3291,7 +3292,8 @@ function parseWindowTabs(signature) {
|
|
|
3291
3292
|
}
|
|
3292
3293
|
function CanvasPaneView({ paneId }) {
|
|
3293
3294
|
const canvas = useCanvas();
|
|
3294
|
-
const { windowId, tabStrip } = useCanvasInternals();
|
|
3295
|
+
const { windowId, tabStrip, look } = useCanvasInternals();
|
|
3296
|
+
const mac = look === "mac";
|
|
3295
3297
|
const columnSlots = useCanvasSlots();
|
|
3296
3298
|
const [ownSlots] = useState5(createCanvasSlots);
|
|
3297
3299
|
const slots = columnSlots ?? ownSlots;
|
|
@@ -3333,6 +3335,34 @@ function CanvasPaneView({ paneId }) {
|
|
|
3333
3335
|
const tabs = singlePane ? parseWindowTabs(windowTabs) : pane.itemIds.map((itemId, index) => ({ itemId, paneId, index }));
|
|
3334
3336
|
const single = tabStrip === "auto" && tabs.length === 1 && active;
|
|
3335
3337
|
const closeLabel = role === "pop-out" && paneCount === 1 ? "Close window" : paneCount > 1 ? "Close pane" : "Close canvas";
|
|
3338
|
+
const newTab = inWindowStrip ? null : /* @__PURE__ */ jsx7(CanvasHeaderButton, { className: "mxc-new-tab", label: "New tab", onClick: () => void canvas.newTab(paneId), children: /* @__PURE__ */ jsx7(PlusIcon, {}) });
|
|
3339
|
+
const history = /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
3340
|
+
canGoBack && active ? /* @__PURE__ */ jsx7(CanvasHeaderButton, { className: "mxc-back", label: "Back", shortcut: canvasShortcutHint("canvas.back", isMac()), onClick: () => void canvas.back(active.id), children: /* @__PURE__ */ jsx7(ChevronLeftIcon, {}) }) : null,
|
|
3341
|
+
canGoForward && active ? /* @__PURE__ */ jsx7(
|
|
3342
|
+
CanvasHeaderButton,
|
|
3343
|
+
{
|
|
3344
|
+
className: "mxc-forward",
|
|
3345
|
+
label: "Forward",
|
|
3346
|
+
shortcut: canvasShortcutHint("canvas.forward", isMac()),
|
|
3347
|
+
onClick: () => void canvas.forward(active.id),
|
|
3348
|
+
children: /* @__PURE__ */ jsx7(ChevronRightIcon, {})
|
|
3349
|
+
}
|
|
3350
|
+
) : null
|
|
3351
|
+
] });
|
|
3352
|
+
const toolbar = Toolbar && kindProps ? /* @__PURE__ */ jsx7("div", { className: "mxc-item-toolbar", "data-kind": active?.kind, children: /* @__PURE__ */ jsx7(ToolbarBoundary, { kindId: kind?.id ?? "", children: /* @__PURE__ */ jsx7(Toolbar, { ...kindProps }) }) }) : null;
|
|
3353
|
+
const macTabBar = mac && !inWindowStrip && tabs.length > 1;
|
|
3354
|
+
const header = mac ? /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
3355
|
+
history,
|
|
3356
|
+
toolbar ? null : active ? /* @__PURE__ */ jsx7(WindowTitle, { item: active, kind }) : /* @__PURE__ */ jsx7("span", { className: "mxc-panel-title mxc-window-title", children: "New tab" })
|
|
3357
|
+
] }) : /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
3358
|
+
history,
|
|
3359
|
+
inWindowStrip ? active ? /* @__PURE__ */ jsx7(PaneTitle, { item: active, kind }) : /* @__PURE__ */ jsx7("span", { className: "mxc-panel-title", children: "New tab" }) : single && active ? /* @__PURE__ */ jsx7(SingleTitle, { item: active, kind }) : tabs.length > 0 ? /* @__PURE__ */ jsx7(TabStrip, { tabs, activeItemId: pane.activeItemId }) : /* @__PURE__ */ jsx7("span", { className: "mxc-panel-title", children: "New tab" }),
|
|
3360
|
+
newTab
|
|
3361
|
+
] });
|
|
3362
|
+
const kindAction = Action && kindProps ? (
|
|
3363
|
+
// Its own gapless row: a kind's tap buttons space themselves (the tap-target placement rule).
|
|
3364
|
+
/* @__PURE__ */ jsx7("span", { className: "mxc-kind-actions", children: /* @__PURE__ */ jsx7(Action, { ...kindProps }) })
|
|
3365
|
+
) : null;
|
|
3336
3366
|
return /* @__PURE__ */ jsxs6(
|
|
3337
3367
|
CanvasPanel,
|
|
3338
3368
|
{
|
|
@@ -3342,26 +3372,13 @@ function CanvasPaneView({ paneId }) {
|
|
|
3342
3372
|
title: active ? itemTitle(active, kind) : "Canvas",
|
|
3343
3373
|
focused,
|
|
3344
3374
|
"data-mxc-pane": paneId,
|
|
3345
|
-
header
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
shortcut: canvasShortcutHint("canvas.forward", isMac()),
|
|
3353
|
-
onClick: () => void canvas.forward(active.id),
|
|
3354
|
-
children: /* @__PURE__ */ jsx7(ChevronRightIcon, {})
|
|
3355
|
-
}
|
|
3356
|
-
) : null,
|
|
3357
|
-
inWindowStrip ? active ? /* @__PURE__ */ jsx7(PaneTitle, { item: active, kind }) : /* @__PURE__ */ jsx7("span", { className: "mxc-panel-title", children: "New tab" }) : single && active ? /* @__PURE__ */ jsx7(SingleTitle, { item: active, kind }) : tabs.length > 0 ? /* @__PURE__ */ jsx7(TabStrip, { tabs, activeItemId: pane.activeItemId }) : /* @__PURE__ */ jsx7("span", { className: "mxc-panel-title", children: "New tab" }),
|
|
3358
|
-
inWindowStrip ? null : /* @__PURE__ */ jsx7(CanvasHeaderButton, { className: "mxc-new-tab", label: "New tab", onClick: () => void canvas.newTab(paneId), children: /* @__PURE__ */ jsx7(PlusIcon, {}) })
|
|
3359
|
-
] }),
|
|
3360
|
-
leading: Leading && kindProps ? /* @__PURE__ */ jsx7(Leading, { ...kindProps }) : null,
|
|
3361
|
-
actions: Action && kindProps ? (
|
|
3362
|
-
// Its own gapless row: a kind's tap buttons space themselves (the tap-target placement rule).
|
|
3363
|
-
/* @__PURE__ */ jsx7("span", { className: "mxc-kind-actions", children: /* @__PURE__ */ jsx7(Action, { ...kindProps }) })
|
|
3364
|
-
) : null,
|
|
3375
|
+
header,
|
|
3376
|
+
leading: mac ? toolbar : Leading && kindProps ? /* @__PURE__ */ jsx7(Leading, { ...kindProps }) : null,
|
|
3377
|
+
actions: mac ? /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
3378
|
+
Leading && kindProps ? /* @__PURE__ */ jsx7(Leading, { ...kindProps }) : null,
|
|
3379
|
+
kindAction,
|
|
3380
|
+
newTab
|
|
3381
|
+
] }) : kindAction,
|
|
3365
3382
|
renderMenu: () => /* @__PURE__ */ jsx7(
|
|
3366
3383
|
PaneMenu,
|
|
3367
3384
|
{
|
|
@@ -3386,7 +3403,8 @@ function CanvasPaneView({ paneId }) {
|
|
|
3386
3403
|
},
|
|
3387
3404
|
...drop,
|
|
3388
3405
|
children: [
|
|
3389
|
-
|
|
3406
|
+
macTabBar ? /* @__PURE__ */ jsx7("div", { className: "mxc-tab-bar", "data-slot": "canvas-tab-bar", children: /* @__PURE__ */ jsx7(TabStrip, { tabs, activeItemId: pane.activeItemId }) }) : null,
|
|
3407
|
+
mac ? null : toolbar,
|
|
3390
3408
|
/* @__PURE__ */ jsx7("div", { ref: bodyRef, className: "mxc-pane-slot", "data-mxc-slot": paneId, children: pane.itemIds.length === 0 ? /* @__PURE__ */ jsx7(EmptyPaneLauncher, { paneId }) : columnSlots ? null : /* @__PURE__ */ jsx7(CanvasPaneInlineBodies, { paneId, slots }) })
|
|
3391
3409
|
]
|
|
3392
3410
|
}
|
|
@@ -3416,6 +3434,16 @@ function SingleTitle({ item, kind }) {
|
|
|
3416
3434
|
/* @__PURE__ */ jsx7("button", { type: "button", className: "mxc-tab-close", "data-slot": "browser-tab-close", "aria-label": `Close ${title}`, onClick: () => canvas.close(item.id), children: /* @__PURE__ */ jsx7(CloseIcon, {}) })
|
|
3417
3435
|
] });
|
|
3418
3436
|
}
|
|
3437
|
+
function WindowTitle({ item, kind }) {
|
|
3438
|
+
const title = itemTitle(item, kind);
|
|
3439
|
+
const drag = useTabDrag(item.id, title);
|
|
3440
|
+
const name = useTruncated(title);
|
|
3441
|
+
const Icon = kind?.icon ?? AlertIcon;
|
|
3442
|
+
return /* @__PURE__ */ jsxs6("span", { className: "mxc-panel-title mxc-window-title", "data-slot": "canvas-window-title", "data-truncated": name.truncated ? "" : void 0, title, children: [
|
|
3443
|
+
/* @__PURE__ */ jsx7("span", { className: "mxc-proxy-icon", "data-draggable": "", ...drag, children: /* @__PURE__ */ jsx7(Icon, { className: "mxc-title-icon" }) }),
|
|
3444
|
+
/* @__PURE__ */ jsx7("span", { ref: name.ref, className: "mxc-tab-title", children: title })
|
|
3445
|
+
] });
|
|
3446
|
+
}
|
|
3419
3447
|
function PaneTitle({ item, kind }) {
|
|
3420
3448
|
const title = itemTitle(item, kind);
|
|
3421
3449
|
const drag = useTabDrag(item.id, title);
|
|
@@ -3866,7 +3894,7 @@ function useCanvasColumnWidth() {
|
|
|
3866
3894
|
return fitCanvasWidth(width, region, controller.rules);
|
|
3867
3895
|
}
|
|
3868
3896
|
function CanvasColumn({ className, style, onLiveWidth, placement = "docked" }) {
|
|
3869
|
-
const { controller, windowId, layer } = useCanvasInternals();
|
|
3897
|
+
const { controller, windowId, layer, look } = useCanvasInternals();
|
|
3870
3898
|
const isOpen = useCanvasState((s) => selectCanvasIsOpen(s, windowId));
|
|
3871
3899
|
const isFullscreen = useCanvasState((s) => selectCanvasIsFullscreen(s, windowId));
|
|
3872
3900
|
const width = useCanvasState((s) => selectCanvasWidth(s, windowId));
|
|
@@ -3932,6 +3960,7 @@ function CanvasColumn({ className, style, onLiveWidth, placement = "docked" }) {
|
|
|
3932
3960
|
"data-open": isOpen ? "" : void 0,
|
|
3933
3961
|
"data-fullscreen": isOpen && isFullscreen ? "" : void 0,
|
|
3934
3962
|
"data-placement": placement,
|
|
3963
|
+
"data-look": look,
|
|
3935
3964
|
"data-mxc-window": windowId,
|
|
3936
3965
|
"aria-label": "Canvas",
|
|
3937
3966
|
"aria-hidden": isOpen ? void 0 : true,
|