@nowline/preview-shell 0.4.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 @@
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Bridge CSS for VS Code webview consumers. Maps every `--nl-preview-*`
3
+ * token to the matching `--vscode-*` variable so the viewport renders
4
+ * in the active workbench colour theme automatically.
5
+ *
6
+ * Inject as a `<style>` block after the preview-shell stylesheet.
7
+ */
8
+ export declare const VSCODE_THEME_BRIDGE_CSS = "\n:root {\n --nl-preview-bg: var(--vscode-editor-background, #1e1e1e);\n --nl-preview-fg: var(--vscode-editor-foreground, #d4d4d4);\n --nl-preview-font-family: var(--vscode-font-family, system-ui, sans-serif);\n --nl-preview-font-size: var(--vscode-font-size, 13px);\n --nl-preview-widget-bg: var(--vscode-editorWidget-background, rgba(40,40,40,0.9));\n --nl-preview-widget-border: var(--vscode-editorWidget-border, rgba(255,255,255,0.1));\n --nl-preview-toolbar-hover: var(--vscode-toolbar-hoverBackground, rgba(255,255,255,0.08));\n --nl-preview-toolbar-active: var(--vscode-toolbar-activeBackground, rgba(255,255,255,0.12));\n --nl-preview-list-hover: var(--vscode-list-hoverBackground, rgba(255,255,255,0.04));\n --nl-preview-description: var(--vscode-descriptionForeground, #999);\n --nl-preview-error: var(--vscode-editorError-foreground, #f48771);\n --nl-preview-warning: var(--vscode-editorWarning-foreground, #cca700);\n --nl-preview-link: var(--vscode-textLink-foreground, #3794ff);\n --nl-preview-focus: var(--vscode-focusBorder, #007acc);\n --nl-preview-code-bg: var(--vscode-textBlockQuote-background, rgba(255,255,255,0.05));\n --nl-preview-mono: var(--vscode-editor-font-family, monospace);\n}\n";
9
+ /**
10
+ * Default stylesheet for the viewport. Provides reasonable defaults
11
+ * for every `--nl-preview-*` token so the viewport works on a blank
12
+ * page; consumers override by re-declaring the variables on a
13
+ * higher-specificity selector.
14
+ */
15
+ 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-toolbar-hover: rgba(255,255,255,0.08);\n --nl-preview-toolbar-active: rgba(255,255,255,0.12);\n --nl-preview-list-hover: rgba(255,255,255,0.04);\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}\n.nl-preview-root .viewport {\n position: absolute; inset: 0;\n overflow: auto;\n}\n.nl-preview-root .canvas {\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 (top-right) === */\n.nl-preview-root .chrome {\n position: absolute; top: 8px; right: 8px;\n display: flex; gap: 4px;\n transition: opacity 200ms ease;\n z-index: 10;\n}\n.nl-preview-root .chrome.faded { opacity: 0.25; }\n.nl-preview-root .chrome:hover { opacity: 1; }\n.nl-preview-root .toolbar {\n display: flex; align-items: center; gap: 2px;\n padding: 2px;\n background: var(--nl-preview-widget-bg);\n border: 1px solid var(--nl-preview-widget-border);\n border-radius: 6px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n}\n.nl-preview-root .toolbar .sep {\n width: 1px; height: 20px;\n background: var(--nl-preview-widget-border);\n margin: 0 4px;\n}\n.nl-preview-root .btn {\n appearance: none;\n background: transparent;\n color: inherit;\n border: 0;\n padding: 4px 8px;\n border-radius: 4px;\n font-family: inherit;\n font-size: inherit;\n cursor: pointer;\n line-height: 1;\n min-width: 28px;\n}\n.nl-preview-root .btn:hover { background: var(--nl-preview-toolbar-hover); }\n.nl-preview-root .btn:active { background: var(--nl-preview-toolbar-active); }\n.nl-preview-root .btn.zoom-label { min-width: 48px; font-variant-numeric: tabular-nums; }\n.nl-preview-root .btn.glyph { font-size: 16px; line-height: 1; padding: 4px 6px; }\n.nl-preview-root .dropdown { position: relative; }\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-preview-widget-bg);\n border: 1px solid var(--nl-preview-widget-border);\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.3);\n z-index: 20;\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-preview-description);\n}\n.nl-preview-root .menu li.menu-divider {\n height: 1px;\n margin: 4px 6px;\n background: var(--nl-preview-widget-border);\n}\n.nl-preview-root .menu .btn.view-opt {\n padding-left: 22px;\n position: relative;\n}\n.nl-preview-root .menu .btn.view-opt[data-active=\"true\"]::before {\n content: '\\2713';\n position: absolute;\n left: 8px;\n}\n\n/* === Minimap === */\n.nl-preview-root .minimap {\n position: absolute; bottom: 12px; right: 12px;\n width: 160px; max-height: 120px;\n background: var(--nl-preview-widget-bg);\n border: 1px solid var(--nl-preview-widget-border);\n border-radius: 4px;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n z-index: 8;\n}\n.nl-preview-root .minimap.hidden { display: 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.nl-preview-root .minimap-close {\n position: absolute; top: 2px; right: 2px;\n width: 18px; height: 18px; padding: 0;\n border-radius: 4px;\n line-height: 1;\n font-size: 12px;\n z-index: 1;\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: var(--nl-preview-list-hover);\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
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,+uCAmBnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,2jPAwP7B,CAAC"}
package/dist/styles.js ADDED
@@ -0,0 +1,292 @@
1
+ // Stylesheet for `mountPreview()`. Uses neutral `--nl-preview-*` CSS
2
+ // custom properties throughout so consumers can re-skin the viewport
3
+ // without forking the package. Sensible defaults baked in so the
4
+ // viewport works out of the box on a blank page.
5
+ //
6
+ // VS Code consumers paste `VSCODE_THEME_BRIDGE_CSS` (below) into their
7
+ // webview to map `--nl-preview-*` to the matching `--vscode-*` tokens
8
+ // — that keeps the viewport in lock-step with the user's workbench
9
+ // theme without having to keep two sets of variables in sync.
10
+ /**
11
+ * Bridge CSS for VS Code webview consumers. Maps every `--nl-preview-*`
12
+ * token to the matching `--vscode-*` variable so the viewport renders
13
+ * in the active workbench colour theme automatically.
14
+ *
15
+ * Inject as a `<style>` block after the preview-shell stylesheet.
16
+ */
17
+ export const VSCODE_THEME_BRIDGE_CSS = `
18
+ :root {
19
+ --nl-preview-bg: var(--vscode-editor-background, #1e1e1e);
20
+ --nl-preview-fg: var(--vscode-editor-foreground, #d4d4d4);
21
+ --nl-preview-font-family: var(--vscode-font-family, system-ui, sans-serif);
22
+ --nl-preview-font-size: var(--vscode-font-size, 13px);
23
+ --nl-preview-widget-bg: var(--vscode-editorWidget-background, rgba(40,40,40,0.9));
24
+ --nl-preview-widget-border: var(--vscode-editorWidget-border, rgba(255,255,255,0.1));
25
+ --nl-preview-toolbar-hover: var(--vscode-toolbar-hoverBackground, rgba(255,255,255,0.08));
26
+ --nl-preview-toolbar-active: var(--vscode-toolbar-activeBackground, rgba(255,255,255,0.12));
27
+ --nl-preview-list-hover: var(--vscode-list-hoverBackground, rgba(255,255,255,0.04));
28
+ --nl-preview-description: var(--vscode-descriptionForeground, #999);
29
+ --nl-preview-error: var(--vscode-editorError-foreground, #f48771);
30
+ --nl-preview-warning: var(--vscode-editorWarning-foreground, #cca700);
31
+ --nl-preview-link: var(--vscode-textLink-foreground, #3794ff);
32
+ --nl-preview-focus: var(--vscode-focusBorder, #007acc);
33
+ --nl-preview-code-bg: var(--vscode-textBlockQuote-background, rgba(255,255,255,0.05));
34
+ --nl-preview-mono: var(--vscode-editor-font-family, monospace);
35
+ }
36
+ `;
37
+ /**
38
+ * Default stylesheet for the viewport. Provides reasonable defaults
39
+ * for every `--nl-preview-*` token so the viewport works on a blank
40
+ * page; consumers override by re-declaring the variables on a
41
+ * higher-specificity selector.
42
+ */
43
+ export const PREVIEW_SHELL_CSS = `
44
+ :root {
45
+ color-scheme: light dark;
46
+ --nl-preview-bg: #1e1e1e;
47
+ --nl-preview-fg: #d4d4d4;
48
+ --nl-preview-font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
49
+ --nl-preview-font-size: 13px;
50
+ --nl-preview-widget-bg: rgba(40,40,40,0.9);
51
+ --nl-preview-widget-border: rgba(255,255,255,0.1);
52
+ --nl-preview-toolbar-hover: rgba(255,255,255,0.08);
53
+ --nl-preview-toolbar-active: rgba(255,255,255,0.12);
54
+ --nl-preview-list-hover: rgba(255,255,255,0.04);
55
+ --nl-preview-description: #999;
56
+ --nl-preview-error: #f48771;
57
+ --nl-preview-warning: #cca700;
58
+ --nl-preview-link: #3794ff;
59
+ --nl-preview-focus: #007acc;
60
+ --nl-preview-code-bg: rgba(255,255,255,0.05);
61
+ --nl-preview-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
62
+ }
63
+ .nl-preview-root {
64
+ position: relative;
65
+ width: 100%; height: 100%;
66
+ background: var(--nl-preview-bg);
67
+ color: var(--nl-preview-fg);
68
+ font-family: var(--nl-preview-font-family);
69
+ font-size: var(--nl-preview-font-size);
70
+ overflow: hidden;
71
+ }
72
+ .nl-preview-root .viewport {
73
+ position: absolute; inset: 0;
74
+ overflow: auto;
75
+ }
76
+ .nl-preview-root .canvas {
77
+ transform-origin: 0 0;
78
+ will-change: transform;
79
+ }
80
+ .nl-preview-root .canvas svg { display: block; max-width: none; height: auto; }
81
+ .nl-preview-root .canvas.dimmed { opacity: 0.25; pointer-events: none; }
82
+
83
+ /* === Toolbar (top-right) === */
84
+ .nl-preview-root .chrome {
85
+ position: absolute; top: 8px; right: 8px;
86
+ display: flex; gap: 4px;
87
+ transition: opacity 200ms ease;
88
+ z-index: 10;
89
+ }
90
+ .nl-preview-root .chrome.faded { opacity: 0.25; }
91
+ .nl-preview-root .chrome:hover { opacity: 1; }
92
+ .nl-preview-root .toolbar {
93
+ display: flex; align-items: center; gap: 2px;
94
+ padding: 2px;
95
+ background: var(--nl-preview-widget-bg);
96
+ border: 1px solid var(--nl-preview-widget-border);
97
+ border-radius: 6px;
98
+ box-shadow: 0 2px 8px rgba(0,0,0,0.2);
99
+ }
100
+ .nl-preview-root .toolbar .sep {
101
+ width: 1px; height: 20px;
102
+ background: var(--nl-preview-widget-border);
103
+ margin: 0 4px;
104
+ }
105
+ .nl-preview-root .btn {
106
+ appearance: none;
107
+ background: transparent;
108
+ color: inherit;
109
+ border: 0;
110
+ padding: 4px 8px;
111
+ border-radius: 4px;
112
+ font-family: inherit;
113
+ font-size: inherit;
114
+ cursor: pointer;
115
+ line-height: 1;
116
+ min-width: 28px;
117
+ }
118
+ .nl-preview-root .btn:hover { background: var(--nl-preview-toolbar-hover); }
119
+ .nl-preview-root .btn:active { background: var(--nl-preview-toolbar-active); }
120
+ .nl-preview-root .btn.zoom-label { min-width: 48px; font-variant-numeric: tabular-nums; }
121
+ .nl-preview-root .btn.glyph { font-size: 16px; line-height: 1; padding: 4px 6px; }
122
+ .nl-preview-root .dropdown { position: relative; }
123
+ .nl-preview-root .menu {
124
+ position: absolute; top: 100%; right: 0; margin-top: 4px;
125
+ list-style: none; padding: 4px; min-width: 140px;
126
+ background: var(--nl-preview-widget-bg);
127
+ border: 1px solid var(--nl-preview-widget-border);
128
+ border-radius: 6px;
129
+ box-shadow: 0 4px 12px rgba(0,0,0,0.3);
130
+ z-index: 20;
131
+ }
132
+ .nl-preview-root .menu li { padding: 0; }
133
+ .nl-preview-root .menu .btn {
134
+ display: block; width: 100%; text-align: left;
135
+ padding: 6px 10px;
136
+ }
137
+ .nl-preview-root .menu li.menu-section {
138
+ padding: 4px 10px 2px;
139
+ font-size: 0.85em;
140
+ text-transform: uppercase;
141
+ letter-spacing: 0.05em;
142
+ color: var(--nl-preview-description);
143
+ }
144
+ .nl-preview-root .menu li.menu-divider {
145
+ height: 1px;
146
+ margin: 4px 6px;
147
+ background: var(--nl-preview-widget-border);
148
+ }
149
+ .nl-preview-root .menu .btn.view-opt {
150
+ padding-left: 22px;
151
+ position: relative;
152
+ }
153
+ .nl-preview-root .menu .btn.view-opt[data-active="true"]::before {
154
+ content: '\\2713';
155
+ position: absolute;
156
+ left: 8px;
157
+ }
158
+
159
+ /* === Minimap === */
160
+ .nl-preview-root .minimap {
161
+ position: absolute; bottom: 12px; right: 12px;
162
+ width: 160px; max-height: 120px;
163
+ background: var(--nl-preview-widget-bg);
164
+ border: 1px solid var(--nl-preview-widget-border);
165
+ border-radius: 4px;
166
+ overflow: hidden;
167
+ box-shadow: 0 2px 8px rgba(0,0,0,0.2);
168
+ z-index: 8;
169
+ }
170
+ .nl-preview-root .minimap.hidden { display: none; }
171
+ .nl-preview-root .minimap-canvas {
172
+ display: block;
173
+ cursor: pointer;
174
+ user-select: none;
175
+ }
176
+ .nl-preview-root .minimap-canvas svg {
177
+ display: block;
178
+ width: 100%;
179
+ height: auto;
180
+ pointer-events: none;
181
+ }
182
+ .nl-preview-root .minimap-rect {
183
+ position: absolute;
184
+ border: 2px solid var(--nl-preview-focus);
185
+ background-color: color-mix(in srgb, var(--nl-preview-focus) 18%, transparent);
186
+ pointer-events: none;
187
+ box-sizing: border-box;
188
+ }
189
+ .nl-preview-root .minimap-close {
190
+ position: absolute; top: 2px; right: 2px;
191
+ width: 18px; height: 18px; padding: 0;
192
+ border-radius: 4px;
193
+ line-height: 1;
194
+ font-size: 12px;
195
+ z-index: 1;
196
+ }
197
+
198
+ /* === Diagnostics overlay === */
199
+ .nl-preview-root .diagnostics {
200
+ position: absolute; left: 0; right: 0; bottom: 0;
201
+ max-height: 60%;
202
+ background: var(--nl-preview-widget-bg);
203
+ border-top: 1px solid var(--nl-preview-widget-border);
204
+ overflow: auto;
205
+ z-index: 12;
206
+ padding: 0;
207
+ display: none;
208
+ }
209
+ .nl-preview-root .diagnostics.show { display: block; }
210
+ .nl-preview-root .diag-header {
211
+ position: sticky; top: 0;
212
+ display: flex; align-items: center; justify-content: space-between;
213
+ padding: 6px 12px;
214
+ background: inherit;
215
+ border-bottom: 1px solid var(--nl-preview-widget-border);
216
+ font-weight: 600;
217
+ }
218
+ .nl-preview-root .diag-summary {
219
+ color: var(--nl-preview-error);
220
+ }
221
+ .nl-preview-root .diag-summary.warn-only {
222
+ color: var(--nl-preview-warning);
223
+ }
224
+ .nl-preview-root .diag-summary.clean {
225
+ color: var(--nl-preview-description);
226
+ font-weight: normal;
227
+ }
228
+ .nl-preview-root .open-problems {
229
+ color: var(--nl-preview-link);
230
+ cursor: pointer;
231
+ text-decoration: none;
232
+ font-weight: normal;
233
+ }
234
+ .nl-preview-root .open-problems:hover { text-decoration: underline; }
235
+ .nl-preview-root .diag-table {
236
+ width: 100%;
237
+ border-collapse: collapse;
238
+ }
239
+ .nl-preview-root .diag-table tr {
240
+ cursor: pointer;
241
+ border-bottom: 1px solid var(--nl-preview-widget-border);
242
+ }
243
+ .nl-preview-root .diag-table tr:hover {
244
+ background: var(--nl-preview-list-hover);
245
+ }
246
+ .nl-preview-root .diag-table td {
247
+ padding: 6px 8px;
248
+ vertical-align: top;
249
+ }
250
+ .nl-preview-root .sev-cell {
251
+ width: 24px; text-align: center;
252
+ font-weight: bold;
253
+ }
254
+ .nl-preview-root .sev-error { color: var(--nl-preview-error); }
255
+ .nl-preview-root .sev-warning { color: var(--nl-preview-warning); }
256
+ .nl-preview-root .loc-cell {
257
+ white-space: nowrap;
258
+ color: var(--nl-preview-description);
259
+ font-variant-numeric: tabular-nums;
260
+ width: 90px;
261
+ }
262
+ .nl-preview-root .code-cell {
263
+ white-space: nowrap;
264
+ width: 1%;
265
+ }
266
+ .nl-preview-root .code-pill {
267
+ display: inline-block;
268
+ padding: 1px 6px;
269
+ border-radius: 3px;
270
+ background: var(--nl-preview-code-bg);
271
+ color: var(--nl-preview-description);
272
+ font-family: var(--nl-preview-mono);
273
+ font-size: 0.9em;
274
+ }
275
+ .nl-preview-root .msg-cell { word-break: break-word; }
276
+ .nl-preview-root .suggestion {
277
+ display: block; margin-top: 2px;
278
+ color: var(--nl-preview-description);
279
+ font-style: italic;
280
+ font-size: 0.95em;
281
+ }
282
+
283
+ /* === Empty state === */
284
+ .nl-preview-root .empty {
285
+ position: absolute; inset: 0;
286
+ display: flex; align-items: center; justify-content: center;
287
+ color: var(--nl-preview-description);
288
+ pointer-events: none;
289
+ }
290
+ .nl-preview-root .empty.hidden { display: none; }
291
+ `;
292
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +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,uEAAuE;AACvE,sEAAsE;AACtE,mEAAmE;AACnE,8DAA8D;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;CAmBtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwPhC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@nowline/preview-shell",
3
+ "version": "0.4.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.",
5
+ "license": "Apache-2.0",
6
+ "engines": {
7
+ "node": ">=22",
8
+ "pnpm": ">=11"
9
+ },
10
+ "type": "module",
11
+ "sideEffects": false,
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ }
19
+ },
20
+ "files": [
21
+ "dist/",
22
+ "src/"
23
+ ],
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/lolay/nowline.git",
27
+ "directory": "packages/preview-shell"
28
+ },
29
+ "homepage": "https://github.com/lolay/nowline",
30
+ "bugs": {
31
+ "url": "https://github.com/lolay/nowline/issues"
32
+ },
33
+ "keywords": [
34
+ "nowline",
35
+ "preview",
36
+ "viewport",
37
+ "svg",
38
+ "zoom",
39
+ "pan",
40
+ "minimap"
41
+ ],
42
+ "dependencies": {
43
+ "@nowline/browser": "0.4.0"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^25.9.1",
47
+ "happy-dom": "^20.9.0",
48
+ "typescript": "^6.0.3",
49
+ "vitest": "^4.1.7"
50
+ },
51
+ "scripts": {
52
+ "build": "tsc -b tsconfig.json",
53
+ "watch": "tsc -b tsconfig.json --watch",
54
+ "typecheck": "tsc --noEmit -p tsconfig.json",
55
+ "test": "vitest run",
56
+ "test:watch": "vitest"
57
+ }
58
+ }
package/src/index.ts ADDED
@@ -0,0 +1,23 @@
1
+ // Public API for `@nowline/preview-shell`.
2
+ //
3
+ // Mounts a self-contained preview viewport (zoom, pan, fit, minimap,
4
+ // diagnostic table) into a host-supplied element and returns an
5
+ // imperative handle. Consumers feed in SVG + diagnostics; user
6
+ // interactions surface via callback options. No assumed text editor,
7
+ // no assumed message bus, no VS Code coupling.
8
+
9
+ export type { DiagnosticRow } from '@nowline/browser';
10
+ export {
11
+ __resetPreviewShellStylesheetForTests,
12
+ type DiagnosticGoto,
13
+ type ExportRequest,
14
+ type InitialFit,
15
+ type MountPreviewOptions,
16
+ mountPreview,
17
+ type NowOverride,
18
+ type PreviewHandle,
19
+ type ThemeOverride,
20
+ type ViewBaseline,
21
+ type ViewOptionsOverrides,
22
+ } from './mount.js';
23
+ export { PREVIEW_SHELL_CSS, VSCODE_THEME_BRIDGE_CSS } from './styles.js';
package/src/markup.ts ADDED
@@ -0,0 +1,129 @@
1
+ // Markup helpers for `mountPreview()`. Builds the viewport DOM tree
2
+ // inside the supplied root element. All element refs are namespaced by
3
+ // CSS class (rather than `id="..."`) so two preview shells can mount in
4
+ // the same document without clashing.
5
+
6
+ export interface ViewportElements {
7
+ root: HTMLElement;
8
+ viewport: HTMLElement;
9
+ canvas: HTMLElement;
10
+ empty: HTMLElement;
11
+ chrome: HTMLElement;
12
+ zoomReset: HTMLButtonElement;
13
+ zoomIn: HTMLButtonElement;
14
+ zoomOut: HTMLButtonElement;
15
+ fitWidth: HTMLButtonElement;
16
+ fitPage: HTMLButtonElement;
17
+ viewToggle: HTMLButtonElement;
18
+ viewMenu: HTMLUListElement;
19
+ saveToggle: HTMLButtonElement;
20
+ saveMenu: HTMLUListElement;
21
+ copyToggle: HTMLButtonElement;
22
+ copyMenu: HTMLUListElement;
23
+ minimap: HTMLElement;
24
+ minimapCanvas: HTMLElement;
25
+ minimapRect: HTMLElement;
26
+ minimapClose: HTMLButtonElement;
27
+ diagnostics: HTMLElement;
28
+ diagSummary: HTMLElement;
29
+ diagTbody: HTMLElement;
30
+ openProblems: HTMLAnchorElement;
31
+ }
32
+
33
+ const TEMPLATE = `
34
+ <div class="viewport"><div class="canvas"></div></div>
35
+ <div class="empty">Rendering preview…</div>
36
+ <div class="chrome">
37
+ <div class="toolbar zoom-toolbar">
38
+ <button class="btn zoom-out" title="Zoom out">−</button>
39
+ <button class="btn zoom-label zoom-reset" title="Reset to 100%">100%</button>
40
+ <button class="btn zoom-in" title="Zoom in">+</button>
41
+ <span class="sep"></span>
42
+ <button class="btn glyph fit-width" title="Fit width (3)" aria-label="Fit width">↔</button>
43
+ <button class="btn glyph fit-page" title="Fit page (1)" aria-label="Fit page">⛶</button>
44
+ <span class="sep"></span>
45
+ <div class="dropdown">
46
+ <button class="btn view-toggle" title="View options for this preview (theme, now-line, links)">View ▾</button>
47
+ <ul class="menu view-menu" hidden>
48
+ <li class="menu-section">Theme</li>
49
+ <li><button class="btn view-opt" data-opt="theme" data-value="auto">Auto</button></li>
50
+ <li><button class="btn view-opt" data-opt="theme" data-value="light">Light</button></li>
51
+ <li><button class="btn view-opt" data-opt="theme" data-value="dark">Dark</button></li>
52
+ <li class="menu-divider"></li>
53
+ <li class="menu-section">Now-line</li>
54
+ <li><button class="btn view-opt" data-opt="now" data-value="today">Today</button></li>
55
+ <li><button class="btn view-opt" data-opt="now" data-value="hide">Hide</button></li>
56
+ <li class="menu-divider"></li>
57
+ <li><button class="btn view-opt" data-opt="showLinks" data-value="toggle">Show links</button></li>
58
+ </ul>
59
+ </div>
60
+ <span class="sep"></span>
61
+ <div class="dropdown">
62
+ <button class="btn save-toggle" title="Save the rendered diagram">Save ▾</button>
63
+ <ul class="menu save-menu" hidden>
64
+ <li><button class="btn" data-action="save-svg">Save SVG…</button></li>
65
+ <li><button class="btn" data-action="save-png">Save PNG…</button></li>
66
+ </ul>
67
+ </div>
68
+ <div class="dropdown">
69
+ <button class="btn copy-toggle" title="Copy the rendered diagram to the clipboard">Copy ▾</button>
70
+ <ul class="menu copy-menu" hidden>
71
+ <li><button class="btn" data-action="copy-svg">Copy SVG</button></li>
72
+ <li><button class="btn" data-action="copy-png">Copy PNG</button></li>
73
+ </ul>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ <div class="minimap hidden">
78
+ <button class="btn minimap-close" title="Hide minimap">×</button>
79
+ <div class="minimap-canvas"></div>
80
+ <div class="minimap-rect"></div>
81
+ </div>
82
+ <div class="diagnostics">
83
+ <div class="diag-header">
84
+ <span class="diag-summary"></span>
85
+ <a class="open-problems" href="#">Open Problems panel</a>
86
+ </div>
87
+ <table class="diag-table"><tbody></tbody></table>
88
+ </div>
89
+ `;
90
+
91
+ function q<T extends Element>(root: HTMLElement, selector: string): T {
92
+ const el = root.querySelector(selector);
93
+ if (!el) {
94
+ throw new Error(`preview-shell: required element "${selector}" missing from template`);
95
+ }
96
+ return el as T;
97
+ }
98
+
99
+ export function buildViewport(rootEl: HTMLElement): ViewportElements {
100
+ rootEl.classList.add('nl-preview-root');
101
+ rootEl.innerHTML = TEMPLATE;
102
+
103
+ return {
104
+ root: rootEl,
105
+ viewport: q<HTMLElement>(rootEl, '.viewport'),
106
+ canvas: q<HTMLElement>(rootEl, '.canvas'),
107
+ empty: q<HTMLElement>(rootEl, '.empty'),
108
+ chrome: q<HTMLElement>(rootEl, '.chrome'),
109
+ zoomReset: q<HTMLButtonElement>(rootEl, '.zoom-reset'),
110
+ zoomIn: q<HTMLButtonElement>(rootEl, '.zoom-in'),
111
+ zoomOut: q<HTMLButtonElement>(rootEl, '.zoom-out'),
112
+ fitWidth: q<HTMLButtonElement>(rootEl, '.fit-width'),
113
+ fitPage: q<HTMLButtonElement>(rootEl, '.fit-page'),
114
+ viewToggle: q<HTMLButtonElement>(rootEl, '.view-toggle'),
115
+ viewMenu: q<HTMLUListElement>(rootEl, '.view-menu'),
116
+ saveToggle: q<HTMLButtonElement>(rootEl, '.save-toggle'),
117
+ saveMenu: q<HTMLUListElement>(rootEl, '.save-menu'),
118
+ copyToggle: q<HTMLButtonElement>(rootEl, '.copy-toggle'),
119
+ copyMenu: q<HTMLUListElement>(rootEl, '.copy-menu'),
120
+ minimap: q<HTMLElement>(rootEl, '.minimap'),
121
+ minimapCanvas: q<HTMLElement>(rootEl, '.minimap-canvas'),
122
+ minimapRect: q<HTMLElement>(rootEl, '.minimap-rect'),
123
+ minimapClose: q<HTMLButtonElement>(rootEl, '.minimap-close'),
124
+ diagnostics: q<HTMLElement>(rootEl, '.diagnostics'),
125
+ diagSummary: q<HTMLElement>(rootEl, '.diag-summary'),
126
+ diagTbody: q<HTMLElement>(rootEl, '.diag-table tbody'),
127
+ openProblems: q<HTMLAnchorElement>(rootEl, '.open-problems'),
128
+ };
129
+ }