@nowline/preview-shell 0.6.0 → 0.8.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.
@@ -0,0 +1,46 @@
1
+ import type { DiagnosticRow, RenderResult } from '@nowline/browser';
2
+ import type { NowOverride, PreviewHandle, ThemeOverride } from './mount.js';
3
+ /**
4
+ * Maps the browser pipeline's `RenderResult` to the VS Code extension
5
+ * host's `RenderOutcome` shape. Warnings on the svg branch are silently
6
+ * dropped — a successful render shows the diagram, not an overlay. Use
7
+ * this in host-side rendering (e.g. `render-pipeline.ts`) so the
8
+ * svg-vs-diagnostics decision has one source of truth.
9
+ *
10
+ * This is the type-level twin of `applyRenderResult` for surfaces that
11
+ * split the "decide" step from the "apply to shell" step (e.g. VS Code,
12
+ * where the extension host decides and the webview applies separately).
13
+ */
14
+ export declare function classifyRenderResult(result: RenderResult): {
15
+ kind: 'svg';
16
+ svg: string;
17
+ } | {
18
+ kind: 'diagnostics';
19
+ rows: DiagnosticRow[];
20
+ };
21
+ /**
22
+ * Apply a `RenderResult` to a `PreviewHandle` using the shared convention:
23
+ * svg shows the diagram; error diagnostics trigger the overlay; non-error
24
+ * warnings/insights on a successful render show the non-dimming table.
25
+ *
26
+ * Call this (or override it in `mountLivePreview`) instead of calling
27
+ * `setSvg` / `setDiagnostics` by hand in every surface.
28
+ */
29
+ export declare function applyRenderResult(handle: PreviewHandle, result: RenderResult): void;
30
+ /**
31
+ * Coerce a shell `ThemeOverride` to the renderer's `ThemeName`.
32
+ * `'auto'` and `undefined` both return `undefined` so the renderer uses
33
+ * its own default — matches the embed's `theme: 'auto'` posture and lets
34
+ * the renderer respond to `prefers-color-scheme` when it supports it.
35
+ */
36
+ export declare function themeOverrideToDiagramTheme(theme: ThemeOverride | undefined): 'light' | 'dark' | 'grayscale' | undefined;
37
+ /**
38
+ * Coerce a shell `NowOverride` to the `today` input accepted by
39
+ * `renderSource`.
40
+ *
41
+ * - `'today'` / `undefined` → `undefined` (pipeline uses local civil date).
42
+ * - `'hide'` → `null` (suppresses the now-line).
43
+ * - `'YYYY-MM-DD'` → passes through so the pipeline parses it.
44
+ */
45
+ export declare function nowOverrideToToday(now: NowOverride | undefined): Date | string | null | undefined;
46
+ //# sourceMappingURL=apply-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-result.d.ts","sourceRoot":"","sources":["../src/apply-result.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,YAAY,GACrB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,aAAa,EAAE,CAAA;CAAE,CAI/E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CASnF;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,aAAa,GAAG,SAAS,GACjC,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAY5C;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAIjG"}
@@ -0,0 +1,82 @@
1
+ // Pure convention helpers — the one-definition home for the shared rule that
2
+ // every surface driving @nowline/preview-shell with @nowline/browser follows:
3
+ //
4
+ // "A successful render shows the diagram. Warnings do not veil it.
5
+ // Only errors trigger the diagnostics overlay."
6
+ //
7
+ // These functions have **no runtime dependency on @nowline/browser**. They
8
+ // import only its types so preview-shell's bundle stays free of the
9
+ // parse/layout/render engine — VS Code's webview can still use mountPreview
10
+ // directly without pulling in Langium.
11
+ //
12
+ // Convention reference: specs/architecture.md § Surfaces / @nowline/preview-shell.
13
+ /**
14
+ * Maps the browser pipeline's `RenderResult` to the VS Code extension
15
+ * host's `RenderOutcome` shape. Warnings on the svg branch are silently
16
+ * dropped — a successful render shows the diagram, not an overlay. Use
17
+ * this in host-side rendering (e.g. `render-pipeline.ts`) so the
18
+ * svg-vs-diagnostics decision has one source of truth.
19
+ *
20
+ * This is the type-level twin of `applyRenderResult` for surfaces that
21
+ * split the "decide" step from the "apply to shell" step (e.g. VS Code,
22
+ * where the extension host decides and the webview applies separately).
23
+ */
24
+ export function classifyRenderResult(result) {
25
+ return result.kind === 'svg'
26
+ ? { kind: 'svg', svg: result.svg }
27
+ : { kind: 'diagnostics', rows: result.diagnostics };
28
+ }
29
+ /**
30
+ * Apply a `RenderResult` to a `PreviewHandle` using the shared convention:
31
+ * svg shows the diagram; error diagnostics trigger the overlay; non-error
32
+ * warnings/insights on a successful render show the non-dimming table.
33
+ *
34
+ * Call this (or override it in `mountLivePreview`) instead of calling
35
+ * `setSvg` / `setDiagnostics` by hand in every surface.
36
+ */
37
+ export function applyRenderResult(handle, result) {
38
+ if (result.kind === 'svg') {
39
+ handle.setSvg(result.svg);
40
+ if (result.warnings.length > 0) {
41
+ handle.setDiagnostics(result.warnings);
42
+ }
43
+ }
44
+ else {
45
+ handle.setDiagnostics(result.diagnostics);
46
+ }
47
+ }
48
+ /**
49
+ * Coerce a shell `ThemeOverride` to the renderer's `ThemeName`.
50
+ * `'auto'` and `undefined` both return `undefined` so the renderer uses
51
+ * its own default — matches the embed's `theme: 'auto'` posture and lets
52
+ * the renderer respond to `prefers-color-scheme` when it supports it.
53
+ */
54
+ export function themeOverrideToDiagramTheme(theme) {
55
+ switch (theme) {
56
+ case 'light':
57
+ return 'light';
58
+ case 'dark':
59
+ return 'dark';
60
+ case 'grayscale':
61
+ case 'greyscale':
62
+ return 'grayscale';
63
+ default:
64
+ return undefined;
65
+ }
66
+ }
67
+ /**
68
+ * Coerce a shell `NowOverride` to the `today` input accepted by
69
+ * `renderSource`.
70
+ *
71
+ * - `'today'` / `undefined` → `undefined` (pipeline uses local civil date).
72
+ * - `'hide'` → `null` (suppresses the now-line).
73
+ * - `'YYYY-MM-DD'` → passes through so the pipeline parses it.
74
+ */
75
+ export function nowOverrideToToday(now) {
76
+ if (now === undefined || now === 'today')
77
+ return undefined;
78
+ if (now === 'hide')
79
+ return null;
80
+ return now;
81
+ }
82
+ //# sourceMappingURL=apply-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-result.js","sourceRoot":"","sources":["../src/apply-result.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,mDAAmD;AACnD,EAAE;AACF,2EAA2E;AAC3E,oEAAoE;AACpE,4EAA4E;AAC5E,uCAAuC;AACvC,EAAE;AACF,mFAAmF;AAKnF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAChC,MAAoB;IAEpB,OAAO,MAAM,CAAC,IAAI,KAAK,KAAK;QACxB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;QAClC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB,EAAE,MAAoB;IACzE,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACvC,KAAgC;IAEhC,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,OAAO;YACR,OAAO,OAAO,CAAC;QACnB,KAAK,MAAM;YACP,OAAO,MAAM,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACZ,OAAO,WAAW,CAAC;QACvB;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAA4B;IAC3D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC3D,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,GAAG,CAAC;AACf,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type { DiagnosticRow } from '@nowline/browser';
2
+ export { applyRenderResult, classifyRenderResult, nowOverrideToToday, themeOverrideToDiagramTheme, } from './apply-result.js';
2
3
  export { __resetPreviewShellStylesheetForTests, type DiagnosticGoto, type ExportRequest, type InitialFit, type MountPreviewOptions, mountPreview, type NowOverride, type PreviewHandle, type ThemeOverride, type ViewBaseline, type ViewOptionsOverrides, } from './mount.js';
3
4
  export { PREVIEW_SHELL_CSS, VSCODE_THEME_BRIDGE_CSS } from './styles.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACH,qCAAqC,EACrC,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACH,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,qCAAqC,EACrC,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@
5
5
  // imperative handle. Consumers feed in SVG + diagnostics; user
6
6
  // interactions surface via callback options. No assumed text editor,
7
7
  // no assumed message bus, no VS Code coupling.
8
+ export { applyRenderResult, classifyRenderResult, nowOverrideToToday, themeOverrideToDiagramTheme, } from './apply-result.js';
8
9
  export { __resetPreviewShellStylesheetForTests, mountPreview, } from './mount.js';
9
10
  export { PREVIEW_SHELL_CSS, VSCODE_THEME_BRIDGE_CSS } from './styles.js';
10
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,qEAAqE;AACrE,gEAAgE;AAChE,+DAA+D;AAC/D,qEAAqE;AACrE,+CAA+C;AAG/C,OAAO,EACH,qCAAqC,EAKrC,YAAY,GAMf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,qEAAqE;AACrE,gEAAgE;AAChE,+DAA+D;AAC/D,qEAAqE;AACrE,+CAA+C;AAG/C,OAAO,EACH,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,qCAAqC,EAKrC,YAAY,GAMf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
package/dist/markup.js CHANGED
@@ -24,7 +24,7 @@ const TEMPLATE = `
24
24
  <div class="dropdown">
25
25
  <button class="btn more-toggle" title="More options">\u25be more</button>
26
26
  <div class="more-menu" hidden>
27
- <div class="more-row">
27
+ <div class="more-row format-control-row">
28
28
  <span class="more-label">Format:</span>
29
29
  <div class="dropdown">
30
30
  <button class="btn more-sub-toggle format-toggle">SVG \u25be</button>
@@ -38,7 +38,7 @@ const TEMPLATE = `
38
38
  <button class="btn copy-action" title="Copy to clipboard"><span>Copy</span><span class="action-ico" aria-hidden="true">${COPY_ICON}</span></button>
39
39
  <button class="btn export-action" title="Export file"><span>Export</span><span class="action-ico" aria-hidden="true">${DOWNLOAD_ICON}</span></button>
40
40
  </div>
41
- <div class="more-divider"></div>
41
+ <div class="more-divider export-divider"></div>
42
42
  <div class="more-row theme-control-row">
43
43
  <span class="more-label">Theme:</span>
44
44
  <div class="dropdown">
package/dist/mount.d.ts CHANGED
@@ -70,6 +70,12 @@ export interface MountPreviewOptions {
70
70
  * Defaults to `'show'`.
71
71
  */
72
72
  themeControl?: 'show' | 'hide';
73
+ /**
74
+ * Whether to show Format / Copy / Export in the more-menu.
75
+ * Defaults to `'show'`. Hide in sandboxed hosts (e.g. MCP Apps)
76
+ * where clipboard/download are unreliable and export is tool-owned.
77
+ */
78
+ exportControls?: 'show' | 'hide';
73
79
  /**
74
80
  * Diagram themes available in the Theme dropdown. **Auto** is
75
81
  * always prepended. Defaults to `['light', 'dark', 'grayscale']`.
@@ -1 +1 @@
1
- {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
package/dist/mount.js CHANGED
@@ -362,11 +362,18 @@ export function mountPreview(rootEl, options = {}) {
362
362
  }
363
363
  function showDiagnosticsMode(rows) {
364
364
  els.empty.classList.add('hidden');
365
- if (state.svgString) {
365
+ populateDiagnostics(rows);
366
+ // Dim the (now stale) diagram only when an error blocked a fresh
367
+ // render. Warnings accompany a valid diagram — setDiagnostics([])
368
+ // or an all-warning list should never veil the canvas.
369
+ const hasError = rows.some((r) => r.severity === 'error');
370
+ if (state.svgString && hasError) {
366
371
  els.canvas.classList.add('dimmed');
367
372
  }
368
- populateDiagnostics(rows);
369
- els.diagnostics.classList.add('show');
373
+ else {
374
+ els.canvas.classList.remove('dimmed');
375
+ }
376
+ els.diagnostics.classList.toggle('show', rows.length > 0);
370
377
  }
371
378
  function showFatal(message) {
372
379
  const fakeRow = {
@@ -1095,6 +1102,18 @@ export function mountPreview(rootEl, options = {}) {
1095
1102
  if (themeRow)
1096
1103
  themeRow.style.display = 'none';
1097
1104
  }
1105
+ // ===== Export control visibility =====
1106
+ if (options.exportControls === 'hide') {
1107
+ const formatRow = els.formatMenu.closest('.format-control-row');
1108
+ if (formatRow)
1109
+ formatRow.style.display = 'none';
1110
+ const actionRow = els.copyAction.closest('.action-row');
1111
+ if (actionRow)
1112
+ actionRow.style.display = 'none';
1113
+ const exportDivider = els.moreMenu.querySelector('.export-divider');
1114
+ if (exportDivider)
1115
+ exportDivider.style.display = 'none';
1116
+ }
1098
1117
  // ===== Apply initial theme menu + baselines =====
1099
1118
  buildThemeMenu(options.availableThemes ?? ['light', 'dark', 'grayscale']);
1100
1119
  if (options.viewBaseline) {
package/dist/mount.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
package/dist/styles.d.ts CHANGED
@@ -13,5 +13,5 @@ export declare const VSCODE_THEME_BRIDGE_CSS = "\n:root {\n --nl-preview-bg:
13
13
  * for every `--nl-preview-*` token and both dark/light `--nl-chrome-*`
14
14
  * palettes so the viewport works on a blank page without any bridge CSS.
15
15
  */
16
- export declare const PREVIEW_SHELL_CSS = "\n:root {\n color-scheme: light dark;\n --nl-preview-bg: #1e1e1e;\n --nl-preview-fg: #d4d4d4;\n --nl-preview-font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n --nl-preview-font-size: 13px;\n --nl-preview-widget-bg: rgba(40,40,40,0.9);\n --nl-preview-widget-border: rgba(255,255,255,0.1);\n --nl-preview-description: #999;\n --nl-preview-error: #f48771;\n --nl-preview-warning: #cca700;\n --nl-preview-link: #3794ff;\n --nl-preview-focus: #007acc;\n --nl-preview-code-bg: rgba(255,255,255,0.05);\n --nl-preview-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n.nl-preview-root {\n position: relative;\n width: 100%; height: 100%;\n background: var(--nl-preview-bg);\n color: var(--nl-preview-fg);\n font-family: var(--nl-preview-font-family);\n font-size: var(--nl-preview-font-size);\n overflow: hidden;\n /* Shared positioning gutter for all floating elements */\n --nl-preview-gutter: 8px;\n /* Chrome palette \u2014 dark default */\n --nl-chrome-bg: rgba(30, 30, 30, 0.93);\n --nl-chrome-border: rgba(255, 255, 255, 0.11);\n --nl-chrome-fg: #d4d4d4;\n --nl-chrome-hover: rgba(255, 255, 255, 0.08);\n --nl-chrome-active: rgba(255, 255, 255, 0.13);\n --nl-chrome-muted: #888;\n --nl-chrome-chip-bg: rgba(255, 255, 255, 0.07);\n --nl-chrome-shadow: rgba(0, 0, 0, 0.32);\n}\n/* Chrome palette \u2014 light mode override (driven by data-nl-mode, never by workbench) */\n.nl-preview-root[data-nl-mode=\"light\"] {\n --nl-chrome-bg: rgba(248, 248, 248, 0.96);\n --nl-chrome-border: rgba(0, 0, 0, 0.13);\n --nl-chrome-fg: #3c3c3c;\n --nl-chrome-hover: rgba(0, 0, 0, 0.06);\n --nl-chrome-active: rgba(0, 0, 0, 0.10);\n --nl-chrome-muted: #717171;\n --nl-chrome-chip-bg: rgba(0, 0, 0, 0.06);\n --nl-chrome-shadow: rgba(0, 0, 0, 0.14);\n}\n.nl-preview-root .viewport {\n position: absolute; inset: 0;\n overflow: auto;\n display: flex;\n}\n.nl-preview-root .canvas {\n /* flex-shrink:0 + margin:auto: centers the diagram when it fits,\n allows overflow scroll when it's larger than the viewport */\n flex-shrink: 0;\n margin: auto;\n transform-origin: 0 0;\n will-change: transform;\n}\n.nl-preview-root .canvas svg { display: block; max-width: none; height: auto; }\n.nl-preview-root .canvas.dimmed { opacity: 0.25; pointer-events: none; }\n\n/* === Toolbar (floating, repositionable) === */\n.nl-preview-root .chrome {\n position: absolute;\n top: var(--nl-preview-gutter);\n right: var(--nl-preview-gutter);\n display: flex; gap: 4px;\n /* Keep the toolbar at its natural width so a narrowing viewport\n shifts it left (handled in JS) instead of squishing the row. */\n width: max-content;\n transition: opacity 200ms ease;\n z-index: 10;\n}\n.nl-preview-root .chrome.faded { opacity: 0.2; pointer-events: none; }\n.nl-preview-root .chrome:hover { opacity: 1; pointer-events: auto; }\n.nl-preview-root .toolbar {\n display: flex; align-items: center; gap: 2px;\n flex-wrap: nowrap;\n white-space: nowrap;\n padding: 2px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 2px 8px var(--nl-chrome-shadow);\n color: var(--nl-chrome-fg);\n user-select: none;\n}\n\n/* Collapsed puck: hide everything but the drag grip + restore arrow,\n and dim it so it stays out of the way until hovered. */\n.nl-preview-root .restore-btn { display: none; }\n.nl-preview-root .chrome.collapsed .toolbar > :not(.toolbar-handle):not(.restore-btn) {\n display: none;\n}\n.nl-preview-root .chrome.collapsed .restore-btn { display: inline-flex; }\n.nl-preview-root .chrome.collapsed .toolbar { opacity: 0.55; }\n.nl-preview-root .chrome.collapsed:hover .toolbar { opacity: 1; }\n.nl-preview-root .toolbar .sep {\n width: 1px; height: 18px;\n background: var(--nl-chrome-border);\n margin: 0 3px;\n flex-shrink: 0;\n}\n.nl-preview-root .toolbar-handle {\n display: flex; align-items: center; justify-content: center;\n padding: 4px 5px;\n cursor: grab;\n color: var(--nl-chrome-muted);\n font-size: 13px;\n line-height: 1;\n opacity: 0.7;\n flex-shrink: 0;\n touch-action: none;\n}\n.nl-preview-root .toolbar-handle:hover { opacity: 1; }\n.nl-preview-root .chrome.dragging .toolbar-handle { cursor: grabbing; }\n.nl-preview-root .btn {\n appearance: none;\n background: transparent;\n color: inherit;\n border: 0;\n padding: 3px 7px;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n cursor: pointer;\n line-height: 1;\n min-width: 20px;\n flex-shrink: 0;\n /* Suppress the sticky focus ring left behind after a mouse click;\n keyboard focus is restored via :focus-visible below. */\n outline: none;\n}\n.nl-preview-root .btn:hover { background: var(--nl-chrome-hover); }\n.nl-preview-root .btn:active { background: var(--nl-chrome-active); }\n.nl-preview-root .btn:focus-visible {\n outline: 1px solid var(--nl-preview-focus);\n outline-offset: -1px;\n}\n.nl-preview-root .btn.zoom-label {\n min-width: 44px;\n font-variant-numeric: tabular-nums;\n}\n.nl-preview-root .btn.glyph { font-size: 15px; line-height: 1; padding: 3px 5px; }\n.nl-preview-root .dropdown { position: relative; }\n\n/* === More-menu panel === */\n.nl-preview-root .more-menu {\n position: absolute; top: calc(100% + 4px); right: 0;\n padding: 5px;\n min-width: 210px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 14px var(--nl-chrome-shadow);\n z-index: 20;\n color: var(--nl-chrome-fg);\n}\n/* Opens right-aligned by default; flipped to left-aligned in JS when the\n toolbar sits near the left edge and the menu would clip the gutter. */\n.nl-preview-root .more-menu.flip { right: auto; left: 0; }\n.nl-preview-root .more-row {\n display: flex; align-items: center; justify-content: space-between;\n padding: 2px 4px;\n gap: 8px;\n}\n.nl-preview-root .more-row.action-row {\n gap: 6px;\n justify-content: stretch;\n padding-top: 6px;\n padding-bottom: 2px;\n}\n/* Copy / Export each take half the row and center their label+icon. */\n.nl-preview-root .action-row .btn {\n flex: 1 1 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n}\n.nl-preview-root .action-ico { display: inline-flex; line-height: 0; }\n.nl-preview-root .action-ico svg { display: block; }\n.nl-preview-root .more-label {\n font-size: 0.88em;\n color: var(--nl-chrome-muted);\n white-space: nowrap;\n flex-shrink: 0;\n}\n.nl-preview-root .more-divider {\n height: 1px;\n margin: 4px 0;\n background: var(--nl-chrome-border);\n}\n\n/* === Sub-menus inside more-menu === */\n.nl-preview-root .more-sub-toggle {\n font-size: 0.88em;\n padding: 3px 6px;\n}\n.nl-preview-root .more-sub-menu {\n position: absolute; top: calc(100% + 2px); left: 0;\n list-style: none; padding: 4px;\n /* Size to the widest option (plus the checkmark gutter) rather than\n a fixed min-width, so there's no dead whitespace to the right. */\n width: max-content; min-width: 0; max-width: 280px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 12px var(--nl-chrome-shadow);\n z-index: 25;\n color: var(--nl-chrome-fg);\n}\n/* Flyout flipped to open toward the left (set in JS when the default\n right-ward opening would overflow the viewport gutter). */\n.nl-preview-root .more-sub-menu.flip { left: auto; right: 0; }\n.nl-preview-root .more-sub-menu li { padding: 0; }\n.nl-preview-root .more-sub-menu .btn {\n display: block; width: 100%; text-align: left;\n /* Generous left gutter keeps the checkmark off the label text. */\n padding: 5px 12px 5px 26px;\n position: relative;\n font-size: 0.88em;\n}\n.nl-preview-root .more-sub-menu .btn[data-active=\"true\"]::before {\n content: '\\2713';\n position: absolute;\n left: 9px;\n}\n\n/* === Code-style chip for real theme/format tokens === */\n.nl-preview-root .code-chip {\n font-family: var(--nl-preview-mono);\n font-size: 0.9em;\n background: var(--nl-chrome-chip-bg);\n border-radius: 3px;\n padding: 1px 4px;\n font-style: normal;\n}\n\n/* === Diagnostic overlay menu (for old .menu usage in diagnostics) === */\n.nl-preview-root .menu {\n position: absolute; top: 100%; right: 0; margin-top: 4px;\n list-style: none; padding: 4px; min-width: 140px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 12px var(--nl-chrome-shadow);\n z-index: 20;\n color: var(--nl-chrome-fg);\n}\n.nl-preview-root .menu li { padding: 0; }\n.nl-preview-root .menu .btn {\n display: block; width: 100%; text-align: left;\n padding: 6px 10px;\n}\n.nl-preview-root .menu li.menu-section {\n padding: 4px 10px 2px;\n font-size: 0.85em;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--nl-chrome-muted);\n}\n.nl-preview-root .menu li.menu-divider {\n height: 1px;\n margin: 4px 6px;\n background: var(--nl-chrome-border);\n}\n\n/* === Minimap (subordinate floating widget) === */\n.nl-preview-root .minimap {\n position: absolute;\n bottom: var(--nl-preview-gutter);\n right: var(--nl-preview-gutter);\n width: 120px; max-height: 90px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 2px 6px var(--nl-chrome-shadow);\n z-index: 8;\n transition: opacity 200ms ease;\n}\n.nl-preview-root .minimap.hidden { display: none; }\n.nl-preview-root .minimap.faded { opacity: 0.2; pointer-events: none; }\n.nl-preview-root .minimap-canvas {\n display: block;\n cursor: pointer;\n user-select: none;\n}\n.nl-preview-root .minimap-canvas svg {\n display: block;\n width: 100%;\n height: auto;\n pointer-events: none;\n}\n.nl-preview-root .minimap-rect {\n position: absolute;\n border: 2px solid var(--nl-preview-focus);\n background-color: color-mix(in srgb, var(--nl-preview-focus) 18%, transparent);\n pointer-events: none;\n box-sizing: border-box;\n}\n\n/* === Calendar picker === */\n.nl-preview-root .now-picker {\n position: absolute; top: calc(100% + 2px); left: 0;\n padding: 8px;\n min-width: 200px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 14px var(--nl-chrome-shadow);\n z-index: 26;\n color: var(--nl-chrome-fg);\n}\n/* Calendar flips to open toward the left when opening rightward would\n push it past the viewport's right gutter (see placeFlyout). */\n.nl-preview-root .now-picker.flip { left: auto; right: 0; }\n.nl-preview-root .cal-nav {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 6px;\n}\n.nl-preview-root .cal-heading {\n font-size: 0.85em;\n font-weight: 600;\n}\n.nl-preview-root .cal-nav-btn {\n padding: 2px 6px;\n min-width: unset;\n font-size: 14px;\n}\n.nl-preview-root .cal-grid {\n display: grid; grid-template-columns: repeat(7, 1fr);\n gap: 1px;\n margin-bottom: 6px;\n}\n.nl-preview-root .cal-dow {\n text-align: center;\n font-size: 0.75em;\n color: var(--nl-chrome-muted);\n padding: 2px 0;\n}\n.nl-preview-root .cal-empty {\n /* placeholder for days before the 1st of the month */\n}\n.nl-preview-root .cal-day {\n padding: 3px 2px;\n min-width: unset;\n font-size: 0.8em;\n text-align: center;\n border-radius: 3px;\n}\n.nl-preview-root .cal-day.is-today { font-weight: 700; }\n.nl-preview-root .cal-day.is-selected {\n background: var(--nl-chrome-hover);\n outline: 1px solid var(--nl-chrome-border);\n}\n.nl-preview-root .cal-footer {\n display: flex; gap: 4px;\n border-top: 1px solid var(--nl-chrome-border);\n padding-top: 6px;\n margin-top: 2px;\n}\n.nl-preview-root .cal-footer-btn {\n flex: 1;\n text-align: center;\n font-size: 0.82em;\n padding: 4px 6px;\n min-width: unset;\n}\n\n/* === Diagnostics overlay === */\n.nl-preview-root .diagnostics {\n position: absolute; left: 0; right: 0; bottom: 0;\n max-height: 60%;\n background: var(--nl-preview-widget-bg);\n border-top: 1px solid var(--nl-preview-widget-border);\n overflow: auto;\n z-index: 12;\n padding: 0;\n display: none;\n}\n.nl-preview-root .diagnostics.show { display: block; }\n.nl-preview-root .diag-header {\n position: sticky; top: 0;\n display: flex; align-items: center; justify-content: space-between;\n padding: 6px 12px;\n background: inherit;\n border-bottom: 1px solid var(--nl-preview-widget-border);\n font-weight: 600;\n}\n.nl-preview-root .diag-summary {\n color: var(--nl-preview-error);\n}\n.nl-preview-root .diag-summary.warn-only {\n color: var(--nl-preview-warning);\n}\n.nl-preview-root .diag-summary.clean {\n color: var(--nl-preview-description);\n font-weight: normal;\n}\n.nl-preview-root .open-problems {\n color: var(--nl-preview-link);\n cursor: pointer;\n text-decoration: none;\n font-weight: normal;\n}\n.nl-preview-root .open-problems:hover { text-decoration: underline; }\n.nl-preview-root .diag-table {\n width: 100%;\n border-collapse: collapse;\n}\n.nl-preview-root .diag-table tr {\n cursor: pointer;\n border-bottom: 1px solid var(--nl-preview-widget-border);\n}\n.nl-preview-root .diag-table tr:hover {\n background: rgba(255,255,255,0.04);\n}\n.nl-preview-root .diag-table td {\n padding: 6px 8px;\n vertical-align: top;\n}\n.nl-preview-root .sev-cell {\n width: 24px; text-align: center;\n font-weight: bold;\n}\n.nl-preview-root .sev-error { color: var(--nl-preview-error); }\n.nl-preview-root .sev-warning { color: var(--nl-preview-warning); }\n.nl-preview-root .loc-cell {\n white-space: nowrap;\n color: var(--nl-preview-description);\n font-variant-numeric: tabular-nums;\n width: 90px;\n}\n.nl-preview-root .code-cell {\n white-space: nowrap;\n width: 1%;\n}\n.nl-preview-root .code-pill {\n display: inline-block;\n padding: 1px 6px;\n border-radius: 3px;\n background: var(--nl-preview-code-bg);\n color: var(--nl-preview-description);\n font-family: var(--nl-preview-mono);\n font-size: 0.9em;\n}\n.nl-preview-root .msg-cell { word-break: break-word; }\n.nl-preview-root .suggestion {\n display: block; margin-top: 2px;\n color: var(--nl-preview-description);\n font-style: italic;\n font-size: 0.95em;\n}\n\n/* === Empty state === */\n.nl-preview-root .empty {\n position: absolute; inset: 0;\n display: flex; align-items: center; justify-content: center;\n color: var(--nl-preview-description);\n pointer-events: none;\n}\n.nl-preview-root .empty.hidden { display: none; }\n";
16
+ export declare const PREVIEW_SHELL_CSS = "\n:root {\n color-scheme: light dark;\n --nl-preview-bg: #1e1e1e;\n --nl-preview-fg: #d4d4d4;\n --nl-preview-font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n --nl-preview-font-size: 13px;\n --nl-preview-widget-bg: rgba(40,40,40,0.9);\n --nl-preview-widget-border: rgba(255,255,255,0.1);\n --nl-preview-description: #999;\n --nl-preview-error: #f48771;\n --nl-preview-warning: #cca700;\n --nl-preview-link: #3794ff;\n --nl-preview-focus: #007acc;\n --nl-preview-code-bg: rgba(255,255,255,0.05);\n --nl-preview-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n.nl-preview-root {\n position: relative;\n width: 100%; height: 100%;\n background: var(--nl-preview-bg);\n color: var(--nl-preview-fg);\n font-family: var(--nl-preview-font-family);\n font-size: var(--nl-preview-font-size);\n overflow: hidden;\n /* Shared positioning gutter for all floating elements */\n --nl-preview-gutter: 8px;\n /* Chrome palette \u2014 dark default */\n --nl-chrome-bg: rgba(30, 30, 30, 0.93);\n --nl-chrome-border: rgba(255, 255, 255, 0.11);\n --nl-chrome-fg: #d4d4d4;\n --nl-chrome-hover: rgba(255, 255, 255, 0.08);\n --nl-chrome-active: rgba(255, 255, 255, 0.13);\n --nl-chrome-muted: #888;\n --nl-chrome-chip-bg: rgba(255, 255, 255, 0.07);\n --nl-chrome-shadow: rgba(0, 0, 0, 0.32);\n}\n/* Chrome + viewport palette \u2014 light mode override (driven by data-nl-mode, never by workbench) */\n.nl-preview-root[data-nl-mode=\"light\"] {\n /* Viewport background: white matches the embed's default canvas. */\n --nl-preview-bg: #ffffff;\n --nl-preview-fg: #1e1e1e;\n --nl-chrome-bg: rgba(248, 248, 248, 0.96);\n --nl-chrome-border: rgba(0, 0, 0, 0.13);\n --nl-chrome-fg: #3c3c3c;\n --nl-chrome-hover: rgba(0, 0, 0, 0.06);\n --nl-chrome-active: rgba(0, 0, 0, 0.10);\n --nl-chrome-muted: #717171;\n --nl-chrome-chip-bg: rgba(0, 0, 0, 0.06);\n --nl-chrome-shadow: rgba(0, 0, 0, 0.14);\n}\n.nl-preview-root .viewport {\n position: absolute; inset: 0;\n overflow: auto;\n display: flex;\n}\n.nl-preview-root .canvas {\n /* flex-shrink:0 + margin:auto: centers the diagram when it fits,\n allows overflow scroll when it's larger than the viewport */\n flex-shrink: 0;\n margin: auto;\n transform-origin: 0 0;\n will-change: transform;\n}\n.nl-preview-root .canvas svg { display: block; max-width: none; height: auto; }\n.nl-preview-root .canvas.dimmed { opacity: 0.25; pointer-events: none; }\n\n/* === Toolbar (floating, repositionable) === */\n.nl-preview-root .chrome {\n position: absolute;\n top: var(--nl-preview-gutter);\n right: var(--nl-preview-gutter);\n display: flex; gap: 4px;\n /* Keep the toolbar at its natural width so a narrowing viewport\n shifts it left (handled in JS) instead of squishing the row. */\n width: max-content;\n transition: opacity 200ms ease;\n z-index: 10;\n}\n.nl-preview-root .chrome.faded { opacity: 0.2; pointer-events: none; }\n.nl-preview-root .chrome:hover { opacity: 1; pointer-events: auto; }\n.nl-preview-root .toolbar {\n display: flex; align-items: center; gap: 2px;\n flex-wrap: nowrap;\n white-space: nowrap;\n padding: 2px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 2px 8px var(--nl-chrome-shadow);\n color: var(--nl-chrome-fg);\n user-select: none;\n}\n\n/* Collapsed puck: hide everything but the drag grip + restore arrow,\n and dim it so it stays out of the way until hovered. */\n.nl-preview-root .restore-btn { display: none; }\n.nl-preview-root .chrome.collapsed .toolbar > :not(.toolbar-handle):not(.restore-btn) {\n display: none;\n}\n.nl-preview-root .chrome.collapsed .restore-btn { display: inline-flex; }\n.nl-preview-root .chrome.collapsed .toolbar { opacity: 0.55; }\n.nl-preview-root .chrome.collapsed:hover .toolbar { opacity: 1; }\n.nl-preview-root .toolbar .sep {\n width: 1px; height: 18px;\n background: var(--nl-chrome-border);\n margin: 0 3px;\n flex-shrink: 0;\n}\n.nl-preview-root .toolbar-handle {\n display: flex; align-items: center; justify-content: center;\n padding: 4px 5px;\n cursor: grab;\n color: var(--nl-chrome-muted);\n font-size: 13px;\n line-height: 1;\n opacity: 0.7;\n flex-shrink: 0;\n touch-action: none;\n}\n.nl-preview-root .toolbar-handle:hover { opacity: 1; }\n.nl-preview-root .chrome.dragging .toolbar-handle { cursor: grabbing; }\n.nl-preview-root .btn {\n appearance: none;\n background: transparent;\n color: inherit;\n border: 0;\n padding: 3px 7px;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n cursor: pointer;\n line-height: 1;\n min-width: 20px;\n flex-shrink: 0;\n /* Suppress the sticky focus ring left behind after a mouse click;\n keyboard focus is restored via :focus-visible below. */\n outline: none;\n}\n.nl-preview-root .btn:hover { background: var(--nl-chrome-hover); }\n.nl-preview-root .btn:active { background: var(--nl-chrome-active); }\n.nl-preview-root .btn:focus-visible {\n outline: 1px solid var(--nl-preview-focus);\n outline-offset: -1px;\n}\n.nl-preview-root .btn.zoom-label {\n min-width: 44px;\n font-variant-numeric: tabular-nums;\n}\n.nl-preview-root .btn.glyph { font-size: 15px; line-height: 1; padding: 3px 5px; }\n.nl-preview-root .dropdown { position: relative; }\n\n/* === More-menu panel === */\n.nl-preview-root .more-menu {\n position: absolute; top: calc(100% + 4px); right: 0;\n padding: 5px;\n min-width: 210px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 14px var(--nl-chrome-shadow);\n z-index: 20;\n color: var(--nl-chrome-fg);\n}\n/* Opens right-aligned by default; flipped to left-aligned in JS when the\n toolbar sits near the left edge and the menu would clip the gutter. */\n.nl-preview-root .more-menu.flip { right: auto; left: 0; }\n.nl-preview-root .more-row {\n display: flex; align-items: center; justify-content: space-between;\n padding: 2px 4px;\n gap: 8px;\n}\n.nl-preview-root .more-row.action-row {\n gap: 6px;\n justify-content: stretch;\n padding-top: 6px;\n padding-bottom: 2px;\n}\n/* Copy / Export each take half the row and center their label+icon. */\n.nl-preview-root .action-row .btn {\n flex: 1 1 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n}\n.nl-preview-root .action-ico { display: inline-flex; line-height: 0; }\n.nl-preview-root .action-ico svg { display: block; }\n.nl-preview-root .more-label {\n font-size: 0.88em;\n color: var(--nl-chrome-muted);\n white-space: nowrap;\n flex-shrink: 0;\n}\n.nl-preview-root .more-divider {\n height: 1px;\n margin: 4px 0;\n background: var(--nl-chrome-border);\n}\n\n/* === Sub-menus inside more-menu === */\n.nl-preview-root .more-sub-toggle {\n font-size: 0.88em;\n padding: 3px 6px;\n}\n.nl-preview-root .more-sub-menu {\n position: absolute; top: calc(100% + 2px); left: 0;\n list-style: none; padding: 4px;\n /* Size to the widest option (plus the checkmark gutter) rather than\n a fixed min-width, so there's no dead whitespace to the right. */\n width: max-content; min-width: 0; max-width: 280px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 12px var(--nl-chrome-shadow);\n z-index: 25;\n color: var(--nl-chrome-fg);\n}\n/* Flyout flipped to open toward the left (set in JS when the default\n right-ward opening would overflow the viewport gutter). */\n.nl-preview-root .more-sub-menu.flip { left: auto; right: 0; }\n.nl-preview-root .more-sub-menu li { padding: 0; }\n.nl-preview-root .more-sub-menu .btn {\n display: block; width: 100%; text-align: left;\n /* Generous left gutter keeps the checkmark off the label text. */\n padding: 5px 12px 5px 26px;\n position: relative;\n font-size: 0.88em;\n}\n.nl-preview-root .more-sub-menu .btn[data-active=\"true\"]::before {\n content: '\\2713';\n position: absolute;\n left: 9px;\n}\n\n/* === Code-style chip for real theme/format tokens === */\n.nl-preview-root .code-chip {\n font-family: var(--nl-preview-mono);\n font-size: 0.9em;\n background: var(--nl-chrome-chip-bg);\n border-radius: 3px;\n padding: 1px 4px;\n font-style: normal;\n}\n\n/* === Diagnostic overlay menu (for old .menu usage in diagnostics) === */\n.nl-preview-root .menu {\n position: absolute; top: 100%; right: 0; margin-top: 4px;\n list-style: none; padding: 4px; min-width: 140px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 12px var(--nl-chrome-shadow);\n z-index: 20;\n color: var(--nl-chrome-fg);\n}\n.nl-preview-root .menu li { padding: 0; }\n.nl-preview-root .menu .btn {\n display: block; width: 100%; text-align: left;\n padding: 6px 10px;\n}\n.nl-preview-root .menu li.menu-section {\n padding: 4px 10px 2px;\n font-size: 0.85em;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--nl-chrome-muted);\n}\n.nl-preview-root .menu li.menu-divider {\n height: 1px;\n margin: 4px 6px;\n background: var(--nl-chrome-border);\n}\n\n/* === Minimap (subordinate floating widget) === */\n.nl-preview-root .minimap {\n position: absolute;\n bottom: var(--nl-preview-gutter);\n right: var(--nl-preview-gutter);\n width: 120px; max-height: 90px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 2px 6px var(--nl-chrome-shadow);\n z-index: 8;\n transition: opacity 200ms ease;\n}\n.nl-preview-root .minimap.hidden { display: none; }\n.nl-preview-root .minimap.faded { opacity: 0.2; pointer-events: none; }\n.nl-preview-root .minimap-canvas {\n display: block;\n cursor: pointer;\n user-select: none;\n}\n.nl-preview-root .minimap-canvas svg {\n display: block;\n width: 100%;\n height: auto;\n pointer-events: none;\n}\n.nl-preview-root .minimap-rect {\n position: absolute;\n border: 2px solid var(--nl-preview-focus);\n background-color: color-mix(in srgb, var(--nl-preview-focus) 18%, transparent);\n pointer-events: none;\n box-sizing: border-box;\n}\n\n/* === Calendar picker === */\n.nl-preview-root .now-picker {\n position: absolute; top: calc(100% + 2px); left: 0;\n padding: 8px;\n min-width: 200px;\n background: var(--nl-chrome-bg);\n border: 1px solid var(--nl-chrome-border);\n border-radius: 6px;\n box-shadow: 0 4px 14px var(--nl-chrome-shadow);\n z-index: 26;\n color: var(--nl-chrome-fg);\n}\n/* Calendar flips to open toward the left when opening rightward would\n push it past the viewport's right gutter (see placeFlyout). */\n.nl-preview-root .now-picker.flip { left: auto; right: 0; }\n.nl-preview-root .cal-nav {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 6px;\n}\n.nl-preview-root .cal-heading {\n font-size: 0.85em;\n font-weight: 600;\n}\n.nl-preview-root .cal-nav-btn {\n padding: 2px 6px;\n min-width: unset;\n font-size: 14px;\n}\n.nl-preview-root .cal-grid {\n display: grid; grid-template-columns: repeat(7, 1fr);\n gap: 1px;\n margin-bottom: 6px;\n}\n.nl-preview-root .cal-dow {\n text-align: center;\n font-size: 0.75em;\n color: var(--nl-chrome-muted);\n padding: 2px 0;\n}\n.nl-preview-root .cal-empty {\n /* placeholder for days before the 1st of the month */\n}\n.nl-preview-root .cal-day {\n padding: 3px 2px;\n min-width: unset;\n font-size: 0.8em;\n text-align: center;\n border-radius: 3px;\n}\n.nl-preview-root .cal-day.is-today { font-weight: 700; }\n.nl-preview-root .cal-day.is-selected {\n background: var(--nl-chrome-hover);\n outline: 1px solid var(--nl-chrome-border);\n}\n.nl-preview-root .cal-footer {\n display: flex; gap: 4px;\n border-top: 1px solid var(--nl-chrome-border);\n padding-top: 6px;\n margin-top: 2px;\n}\n.nl-preview-root .cal-footer-btn {\n flex: 1;\n text-align: center;\n font-size: 0.82em;\n padding: 4px 6px;\n min-width: unset;\n}\n\n/* === Diagnostics overlay === */\n.nl-preview-root .diagnostics {\n position: absolute; left: 0; right: 0; bottom: 0;\n max-height: 60%;\n background: var(--nl-preview-widget-bg);\n border-top: 1px solid var(--nl-preview-widget-border);\n overflow: auto;\n z-index: 12;\n padding: 0;\n display: none;\n}\n.nl-preview-root .diagnostics.show { display: block; }\n.nl-preview-root .diag-header {\n position: sticky; top: 0;\n display: flex; align-items: center; justify-content: space-between;\n padding: 6px 12px;\n background: inherit;\n border-bottom: 1px solid var(--nl-preview-widget-border);\n font-weight: 600;\n}\n.nl-preview-root .diag-summary {\n color: var(--nl-preview-error);\n}\n.nl-preview-root .diag-summary.warn-only {\n color: var(--nl-preview-warning);\n}\n.nl-preview-root .diag-summary.clean {\n color: var(--nl-preview-description);\n font-weight: normal;\n}\n.nl-preview-root .open-problems {\n color: var(--nl-preview-link);\n cursor: pointer;\n text-decoration: none;\n font-weight: normal;\n}\n.nl-preview-root .open-problems:hover { text-decoration: underline; }\n.nl-preview-root .diag-table {\n width: 100%;\n border-collapse: collapse;\n}\n.nl-preview-root .diag-table tr {\n cursor: pointer;\n border-bottom: 1px solid var(--nl-preview-widget-border);\n}\n.nl-preview-root .diag-table tr:hover {\n background: rgba(255,255,255,0.04);\n}\n.nl-preview-root .diag-table td {\n padding: 6px 8px;\n vertical-align: top;\n}\n.nl-preview-root .sev-cell {\n width: 24px; text-align: center;\n font-weight: bold;\n}\n.nl-preview-root .sev-error { color: var(--nl-preview-error); }\n.nl-preview-root .sev-warning { color: var(--nl-preview-warning); }\n.nl-preview-root .loc-cell {\n white-space: nowrap;\n color: var(--nl-preview-description);\n font-variant-numeric: tabular-nums;\n width: 90px;\n}\n.nl-preview-root .code-cell {\n white-space: nowrap;\n width: 1%;\n}\n.nl-preview-root .code-pill {\n display: inline-block;\n padding: 1px 6px;\n border-radius: 3px;\n background: var(--nl-preview-code-bg);\n color: var(--nl-preview-description);\n font-family: var(--nl-preview-mono);\n font-size: 0.9em;\n}\n.nl-preview-root .msg-cell { word-break: break-word; }\n.nl-preview-root .suggestion {\n display: block; margin-top: 2px;\n color: var(--nl-preview-description);\n font-style: italic;\n font-size: 0.95em;\n}\n\n/* === Empty state === */\n.nl-preview-root .empty {\n position: absolute; inset: 0;\n display: flex; align-items: center; justify-content: center;\n color: var(--nl-preview-description);\n pointer-events: none;\n}\n.nl-preview-root .empty.hidden { display: none; }\n";
17
17
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAcA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,m9BAgBnC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,i0dAmd7B,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAcA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,m9BAgBnC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,o9dAsd7B,CAAC"}
package/dist/styles.js CHANGED
@@ -79,8 +79,11 @@ export const PREVIEW_SHELL_CSS = `
79
79
  --nl-chrome-chip-bg: rgba(255, 255, 255, 0.07);
80
80
  --nl-chrome-shadow: rgba(0, 0, 0, 0.32);
81
81
  }
82
- /* Chrome palette — light mode override (driven by data-nl-mode, never by workbench) */
82
+ /* Chrome + viewport palette — light mode override (driven by data-nl-mode, never by workbench) */
83
83
  .nl-preview-root[data-nl-mode="light"] {
84
+ /* Viewport background: white matches the embed's default canvas. */
85
+ --nl-preview-bg: #ffffff;
86
+ --nl-preview-fg: #1e1e1e;
84
87
  --nl-chrome-bg: rgba(248, 248, 248, 0.96);
85
88
  --nl-chrome-border: rgba(0, 0, 0, 0.13);
86
89
  --nl-chrome-fg: #3c3c3c;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qEAAqE;AACrE,iEAAiE;AACjE,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,wEAAwE;AACxE,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AACvE,iEAAiE;AACjE,0DAA0D;AAE1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmdhC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qEAAqE;AACrE,iEAAiE;AACjE,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,wEAAwE;AACxE,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AACvE,iEAAiE;AACjE,0DAA0D;AAE1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsdhC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nowline/preview-shell",
3
- "version": "0.6.0",
4
- "description": "Framework-agnostic preview viewport for Nowline SVGs: zoom, pan, fit, minimap, diagnostic table. Consumed by the VS Code extension's webview and any browser-side Nowline preview surface.",
3
+ "version": "0.8.0",
4
+ "description": "A framework-agnostic preview pane for Nowline diagrams — zoom, pan, fit, minimap, and a table of issues. Used by the VS Code preview and browser surfaces.",
5
5
  "license": "Apache-2.0",
6
6
  "engines": {
7
7
  "node": ">=22",
@@ -40,7 +40,7 @@
40
40
  "minimap"
41
41
  ],
42
42
  "dependencies": {
43
- "@nowline/browser": "0.6.0"
43
+ "@nowline/browser": "0.8.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^25.9.1",
@@ -0,0 +1,89 @@
1
+ // Pure convention helpers — the one-definition home for the shared rule that
2
+ // every surface driving @nowline/preview-shell with @nowline/browser follows:
3
+ //
4
+ // "A successful render shows the diagram. Warnings do not veil it.
5
+ // Only errors trigger the diagnostics overlay."
6
+ //
7
+ // These functions have **no runtime dependency on @nowline/browser**. They
8
+ // import only its types so preview-shell's bundle stays free of the
9
+ // parse/layout/render engine — VS Code's webview can still use mountPreview
10
+ // directly without pulling in Langium.
11
+ //
12
+ // Convention reference: specs/architecture.md § Surfaces / @nowline/preview-shell.
13
+
14
+ import type { DiagnosticRow, RenderResult } from '@nowline/browser';
15
+ import type { NowOverride, PreviewHandle, ThemeOverride } from './mount.js';
16
+
17
+ /**
18
+ * Maps the browser pipeline's `RenderResult` to the VS Code extension
19
+ * host's `RenderOutcome` shape. Warnings on the svg branch are silently
20
+ * dropped — a successful render shows the diagram, not an overlay. Use
21
+ * this in host-side rendering (e.g. `render-pipeline.ts`) so the
22
+ * svg-vs-diagnostics decision has one source of truth.
23
+ *
24
+ * This is the type-level twin of `applyRenderResult` for surfaces that
25
+ * split the "decide" step from the "apply to shell" step (e.g. VS Code,
26
+ * where the extension host decides and the webview applies separately).
27
+ */
28
+ export function classifyRenderResult(
29
+ result: RenderResult,
30
+ ): { kind: 'svg'; svg: string } | { kind: 'diagnostics'; rows: DiagnosticRow[] } {
31
+ return result.kind === 'svg'
32
+ ? { kind: 'svg', svg: result.svg }
33
+ : { kind: 'diagnostics', rows: result.diagnostics };
34
+ }
35
+
36
+ /**
37
+ * Apply a `RenderResult` to a `PreviewHandle` using the shared convention:
38
+ * svg shows the diagram; error diagnostics trigger the overlay; non-error
39
+ * warnings/insights on a successful render show the non-dimming table.
40
+ *
41
+ * Call this (or override it in `mountLivePreview`) instead of calling
42
+ * `setSvg` / `setDiagnostics` by hand in every surface.
43
+ */
44
+ export function applyRenderResult(handle: PreviewHandle, result: RenderResult): void {
45
+ if (result.kind === 'svg') {
46
+ handle.setSvg(result.svg);
47
+ if (result.warnings.length > 0) {
48
+ handle.setDiagnostics(result.warnings);
49
+ }
50
+ } else {
51
+ handle.setDiagnostics(result.diagnostics);
52
+ }
53
+ }
54
+
55
+ /**
56
+ * Coerce a shell `ThemeOverride` to the renderer's `ThemeName`.
57
+ * `'auto'` and `undefined` both return `undefined` so the renderer uses
58
+ * its own default — matches the embed's `theme: 'auto'` posture and lets
59
+ * the renderer respond to `prefers-color-scheme` when it supports it.
60
+ */
61
+ export function themeOverrideToDiagramTheme(
62
+ theme: ThemeOverride | undefined,
63
+ ): 'light' | 'dark' | 'grayscale' | undefined {
64
+ switch (theme) {
65
+ case 'light':
66
+ return 'light';
67
+ case 'dark':
68
+ return 'dark';
69
+ case 'grayscale':
70
+ case 'greyscale':
71
+ return 'grayscale';
72
+ default:
73
+ return undefined;
74
+ }
75
+ }
76
+
77
+ /**
78
+ * Coerce a shell `NowOverride` to the `today` input accepted by
79
+ * `renderSource`.
80
+ *
81
+ * - `'today'` / `undefined` → `undefined` (pipeline uses local civil date).
82
+ * - `'hide'` → `null` (suppresses the now-line).
83
+ * - `'YYYY-MM-DD'` → passes through so the pipeline parses it.
84
+ */
85
+ export function nowOverrideToToday(now: NowOverride | undefined): Date | string | null | undefined {
86
+ if (now === undefined || now === 'today') return undefined;
87
+ if (now === 'hide') return null;
88
+ return now;
89
+ }
package/src/index.ts CHANGED
@@ -7,6 +7,12 @@
7
7
  // no assumed message bus, no VS Code coupling.
8
8
 
9
9
  export type { DiagnosticRow } from '@nowline/browser';
10
+ export {
11
+ applyRenderResult,
12
+ classifyRenderResult,
13
+ nowOverrideToToday,
14
+ themeOverrideToDiagramTheme,
15
+ } from './apply-result.js';
10
16
  export {
11
17
  __resetPreviewShellStylesheetForTests,
12
18
  type DiagnosticGoto,
package/src/markup.ts CHANGED
@@ -82,7 +82,7 @@ const TEMPLATE = `
82
82
  <div class="dropdown">
83
83
  <button class="btn more-toggle" title="More options">\u25be more</button>
84
84
  <div class="more-menu" hidden>
85
- <div class="more-row">
85
+ <div class="more-row format-control-row">
86
86
  <span class="more-label">Format:</span>
87
87
  <div class="dropdown">
88
88
  <button class="btn more-sub-toggle format-toggle">SVG \u25be</button>
@@ -96,7 +96,7 @@ const TEMPLATE = `
96
96
  <button class="btn copy-action" title="Copy to clipboard"><span>Copy</span><span class="action-ico" aria-hidden="true">${COPY_ICON}</span></button>
97
97
  <button class="btn export-action" title="Export file"><span>Export</span><span class="action-ico" aria-hidden="true">${DOWNLOAD_ICON}</span></button>
98
98
  </div>
99
- <div class="more-divider"></div>
99
+ <div class="more-divider export-divider"></div>
100
100
  <div class="more-row theme-control-row">
101
101
  <span class="more-label">Theme:</span>
102
102
  <div class="dropdown">
package/src/mount.ts CHANGED
@@ -91,6 +91,12 @@ export interface MountPreviewOptions {
91
91
  * Defaults to `'show'`.
92
92
  */
93
93
  themeControl?: 'show' | 'hide';
94
+ /**
95
+ * Whether to show Format / Copy / Export in the more-menu.
96
+ * Defaults to `'show'`. Hide in sandboxed hosts (e.g. MCP Apps)
97
+ * where clipboard/download are unreliable and export is tool-owned.
98
+ */
99
+ exportControls?: 'show' | 'hide';
94
100
  /**
95
101
  * Diagram themes available in the Theme dropdown. **Auto** is
96
102
  * always prepended. Defaults to `['light', 'dark', 'grayscale']`.
@@ -575,11 +581,17 @@ export function mountPreview(
575
581
 
576
582
  function showDiagnosticsMode(rows: DiagnosticRow[]): void {
577
583
  els.empty.classList.add('hidden');
578
- if (state.svgString) {
584
+ populateDiagnostics(rows);
585
+ // Dim the (now stale) diagram only when an error blocked a fresh
586
+ // render. Warnings accompany a valid diagram — setDiagnostics([])
587
+ // or an all-warning list should never veil the canvas.
588
+ const hasError = rows.some((r) => r.severity === 'error');
589
+ if (state.svgString && hasError) {
579
590
  els.canvas.classList.add('dimmed');
591
+ } else {
592
+ els.canvas.classList.remove('dimmed');
580
593
  }
581
- populateDiagnostics(rows);
582
- els.diagnostics.classList.add('show');
594
+ els.diagnostics.classList.toggle('show', rows.length > 0);
583
595
  }
584
596
 
585
597
  function showFatal(message: string): void {
@@ -1355,6 +1367,16 @@ export function mountPreview(
1355
1367
  if (themeRow) themeRow.style.display = 'none';
1356
1368
  }
1357
1369
 
1370
+ // ===== Export control visibility =====
1371
+ if (options.exportControls === 'hide') {
1372
+ const formatRow = els.formatMenu.closest<HTMLElement>('.format-control-row');
1373
+ if (formatRow) formatRow.style.display = 'none';
1374
+ const actionRow = els.copyAction.closest<HTMLElement>('.action-row');
1375
+ if (actionRow) actionRow.style.display = 'none';
1376
+ const exportDivider = els.moreMenu.querySelector<HTMLElement>('.export-divider');
1377
+ if (exportDivider) exportDivider.style.display = 'none';
1378
+ }
1379
+
1358
1380
  // ===== Apply initial theme menu + baselines =====
1359
1381
  buildThemeMenu(options.availableThemes ?? ['light', 'dark', 'grayscale']);
1360
1382
 
package/src/styles.ts CHANGED
@@ -81,8 +81,11 @@ export const PREVIEW_SHELL_CSS = `
81
81
  --nl-chrome-chip-bg: rgba(255, 255, 255, 0.07);
82
82
  --nl-chrome-shadow: rgba(0, 0, 0, 0.32);
83
83
  }
84
- /* Chrome palette — light mode override (driven by data-nl-mode, never by workbench) */
84
+ /* Chrome + viewport palette — light mode override (driven by data-nl-mode, never by workbench) */
85
85
  .nl-preview-root[data-nl-mode="light"] {
86
+ /* Viewport background: white matches the embed's default canvas. */
87
+ --nl-preview-bg: #ffffff;
88
+ --nl-preview-fg: #1e1e1e;
86
89
  --nl-chrome-bg: rgba(248, 248, 248, 0.96);
87
90
  --nl-chrome-border: rgba(0, 0, 0, 0.13);
88
91
  --nl-chrome-fg: #3c3c3c;