@lionrapid/core 0.1.1 → 0.1.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/browser/editor/editor-api.d.ts +52 -0
  2. package/dist/browser/editor/editor-api.d.ts.map +1 -1
  3. package/dist/browser/editor/editor-api.js +136 -0
  4. package/dist/browser/editor/editor-api.js.map +1 -1
  5. package/dist/browser/editor/editor-init.js +145 -6
  6. package/dist/browser/editor/editor-init.js.map +1 -1
  7. package/dist/browser/editor/editor-styles.d.ts +1 -1
  8. package/dist/browser/editor/editor-styles.d.ts.map +1 -1
  9. package/dist/browser/editor/editor-styles.js +29 -0
  10. package/dist/browser/editor/editor-styles.js.map +1 -1
  11. package/dist/browser/editor/inspector.d.ts +5 -1
  12. package/dist/browser/editor/inspector.d.ts.map +1 -1
  13. package/dist/browser/editor/inspector.js +32 -1
  14. package/dist/browser/editor/inspector.js.map +1 -1
  15. package/dist/browser/editor/snapshot-capture.d.ts +57 -0
  16. package/dist/browser/editor/snapshot-capture.d.ts.map +1 -0
  17. package/dist/browser/editor/snapshot-capture.js +249 -0
  18. package/dist/browser/editor/snapshot-capture.js.map +1 -0
  19. package/dist/browser/editor/snapshot-viewer.d.ts +35 -0
  20. package/dist/browser/editor/snapshot-viewer.d.ts.map +1 -0
  21. package/dist/browser/editor/snapshot-viewer.js +90 -0
  22. package/dist/browser/editor/snapshot-viewer.js.map +1 -0
  23. package/dist/browser/editor/toolbar.d.ts +7 -1
  24. package/dist/browser/editor/toolbar.d.ts.map +1 -1
  25. package/dist/browser/editor/toolbar.js +26 -1
  26. package/dist/browser/editor/toolbar.js.map +1 -1
  27. package/dist/browser/lionrapid.editor.js +532 -6
  28. package/dist/browser/lionrapid.editor.js.map +3 -3
  29. package/dist/browser/lionrapid.editor.min.js +32 -2
  30. package/dist/browser/lionrapid.editor.min.js.map +4 -4
  31. package/package.json +1 -1
@@ -3,6 +3,7 @@
3
3
  * Queues translation edits and flushes them in a single batch API call.
4
4
  * Uses editor session JWTs (es_ prefixed) for authentication with auto-renewal.
5
5
  */
6
+ import type { CapturedSnapshot, SnapshotTextEntry } from './snapshot-capture.js';
6
7
  export interface QueuedTranslation {
7
8
  key: string;
8
9
  locale: string;
@@ -10,6 +11,30 @@ export interface QueuedTranslation {
10
11
  text: string;
11
12
  styles: Record<string, string[]>;
12
13
  }
14
+ export interface SnapshotListItem {
15
+ snapshotUuid: string;
16
+ pageUrl: string;
17
+ title: string;
18
+ capturedBy: string;
19
+ createdAt: string;
20
+ expiresAt: string;
21
+ textEntryCount: number;
22
+ status: string;
23
+ }
24
+ export interface SnapshotDetail {
25
+ snapshotUuid: string;
26
+ pageUrl: string;
27
+ title: string;
28
+ html: string;
29
+ textEntries: SnapshotTextEntry[];
30
+ viewport: {
31
+ width: number;
32
+ height: number;
33
+ devicePixelRatio: number;
34
+ };
35
+ createdAt: string;
36
+ expiresAt: string;
37
+ }
13
38
  export interface TargetStatus {
14
39
  text: string;
15
40
  rowState: string;
@@ -63,5 +88,32 @@ export declare class EditorAPI {
63
88
  private getSessionExp;
64
89
  private handleSessionExpired;
65
90
  private handleVisibility;
91
+ /**
92
+ * Upload a captured snapshot. Returns the created snapshot's UUID so the
93
+ * caller can build a share URL (`?__lr_snapshot={uuid}`).
94
+ */
95
+ createSnapshot(snapshot: CapturedSnapshot): Promise<{
96
+ snapshotUuid: string;
97
+ } | null>;
98
+ /**
99
+ * Re-capture an existing snapshot. Server appends a new version and keeps
100
+ * the same `snapshotUuid`. Returns the new version number on success.
101
+ */
102
+ recaptureSnapshot(snapshotUuid: string, snapshot: CapturedSnapshot): Promise<{
103
+ snapshotUuid: string;
104
+ version: number;
105
+ } | null>;
106
+ /**
107
+ * Fetch a single snapshot by UUID. Returns null on auth failure or 404.
108
+ */
109
+ getSnapshot(snapshotUuid: string): Promise<SnapshotDetail | null>;
110
+ /**
111
+ * List all snapshots the current editor session can see.
112
+ */
113
+ listSnapshots(): Promise<SnapshotListItem[]>;
114
+ /**
115
+ * Delete (soft) a snapshot by UUID.
116
+ */
117
+ deleteSnapshot(snapshotUuid: string): Promise<boolean>;
66
118
  }
67
119
  //# sourceMappingURL=editor-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-api.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/editor-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1G,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAMpE,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAI3C,kBAAkB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,IAAI;IAItD,yBAAyB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAI/C;;OAEG;IACH,cAAc,IAAI,IAAI;IAQtB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAanC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAkBxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD5B,OAAO,CAAC,WAAW,CAAgC;IAEnD;;;OAGG;IACG,WAAW,CACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;IAgC/C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAMD;;OAEG;YACW,iBAAiB;YAUjB,YAAY;IAoC1B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,gBAAgB,CAItB;CACH"}
1
+ {"version":3,"file":"editor-api.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/editor-api.ts"],"names":[],"mappings":"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"}
@@ -229,5 +229,141 @@ export class EditorAPI {
229
229
  this.flush();
230
230
  }
231
231
  };
232
+ // ============================================
233
+ // Snapshot API
234
+ // ============================================
235
+ /**
236
+ * Upload a captured snapshot. Returns the created snapshot's UUID so the
237
+ * caller can build a share URL (`?__lr_snapshot={uuid}`).
238
+ */
239
+ async createSnapshot(snapshot) {
240
+ try {
241
+ const response = await fetch(`${this.apiBase}/api/editor/snapshots`, {
242
+ method: 'POST',
243
+ headers: {
244
+ 'Content-Type': 'application/json',
245
+ 'Authorization': `Bearer ${this.sessionToken}`,
246
+ },
247
+ body: JSON.stringify({
248
+ pageUrl: snapshot.pageUrl,
249
+ title: snapshot.title,
250
+ viewport: snapshot.viewport,
251
+ textEntries: snapshot.textEntries,
252
+ html: snapshot.html,
253
+ }),
254
+ });
255
+ if (response.status === 401) {
256
+ this.handleSessionExpired();
257
+ return null;
258
+ }
259
+ if (!response.ok) {
260
+ throw new Error(`HTTP ${response.status}`);
261
+ }
262
+ const data = await response.json();
263
+ return { snapshotUuid: data.snapshot_uuid || data.snapshotUuid };
264
+ }
265
+ catch (err) {
266
+ this.onStatus('error', `Snapshot failed: ${err.message}`);
267
+ return null;
268
+ }
269
+ }
270
+ /**
271
+ * Re-capture an existing snapshot. Server appends a new version and keeps
272
+ * the same `snapshotUuid`. Returns the new version number on success.
273
+ */
274
+ async recaptureSnapshot(snapshotUuid, snapshot) {
275
+ try {
276
+ const response = await fetch(`${this.apiBase}/api/editor/snapshots/${encodeURIComponent(snapshotUuid)}`, {
277
+ method: 'PUT',
278
+ headers: {
279
+ 'Content-Type': 'application/json',
280
+ 'Authorization': `Bearer ${this.sessionToken}`,
281
+ },
282
+ body: JSON.stringify({
283
+ pageUrl: snapshot.pageUrl,
284
+ title: snapshot.title,
285
+ viewport: snapshot.viewport,
286
+ textEntries: snapshot.textEntries,
287
+ html: snapshot.html,
288
+ }),
289
+ });
290
+ if (response.status === 401) {
291
+ this.handleSessionExpired();
292
+ return null;
293
+ }
294
+ if (!response.ok) {
295
+ throw new Error(`HTTP ${response.status}`);
296
+ }
297
+ const data = await response.json();
298
+ return {
299
+ snapshotUuid: data.snapshot_uuid || data.snapshotUuid,
300
+ version: data.version || 1,
301
+ };
302
+ }
303
+ catch (err) {
304
+ this.onStatus('error', `Re-capture failed: ${err.message}`);
305
+ return null;
306
+ }
307
+ }
308
+ /**
309
+ * Fetch a single snapshot by UUID. Returns null on auth failure or 404.
310
+ */
311
+ async getSnapshot(snapshotUuid) {
312
+ try {
313
+ const response = await fetch(`${this.apiBase}/api/editor/snapshots/${encodeURIComponent(snapshotUuid)}`, {
314
+ headers: { 'Authorization': `Bearer ${this.sessionToken}` },
315
+ });
316
+ if (response.status === 401) {
317
+ this.handleSessionExpired();
318
+ return null;
319
+ }
320
+ if (!response.ok)
321
+ return null;
322
+ return (await response.json());
323
+ }
324
+ catch {
325
+ return null;
326
+ }
327
+ }
328
+ /**
329
+ * List all snapshots the current editor session can see.
330
+ */
331
+ async listSnapshots() {
332
+ try {
333
+ const response = await fetch(`${this.apiBase}/api/editor/snapshots`, {
334
+ headers: { 'Authorization': `Bearer ${this.sessionToken}` },
335
+ });
336
+ if (response.status === 401) {
337
+ this.handleSessionExpired();
338
+ return [];
339
+ }
340
+ if (!response.ok)
341
+ return [];
342
+ const data = await response.json();
343
+ return data.snapshots || [];
344
+ }
345
+ catch {
346
+ return [];
347
+ }
348
+ }
349
+ /**
350
+ * Delete (soft) a snapshot by UUID.
351
+ */
352
+ async deleteSnapshot(snapshotUuid) {
353
+ try {
354
+ const response = await fetch(`${this.apiBase}/api/editor/snapshots/${encodeURIComponent(snapshotUuid)}`, {
355
+ method: 'DELETE',
356
+ headers: { 'Authorization': `Bearer ${this.sessionToken}` },
357
+ });
358
+ if (response.status === 401) {
359
+ this.handleSessionExpired();
360
+ return false;
361
+ }
362
+ return response.ok;
363
+ }
364
+ catch {
365
+ return false;
366
+ }
367
+ }
232
368
  }
233
369
  //# sourceMappingURL=editor-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-api.js","sourceRoot":"","sources":["../../../src/browser/editor/editor-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-api.js","sourceRoot":"","sources":["../../../src/browser/editor/editor-api.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import { Inspector } from './inspector.js';
12
12
  import { Toolbar } from './toolbar.js';
13
13
  import { Sidebar } from './sidebar.js';
14
14
  import { EditorAPI } from './editor-api.js';
15
+ import { captureSnapshot } from './snapshot-capture.js';
16
+ import { activateSnapshotViewer } from './snapshot-viewer.js';
15
17
  // ============================================
16
18
  // Session helpers
17
19
  // ============================================
@@ -51,17 +53,73 @@ function storeSession(token) {
51
53
  function clearSession() {
52
54
  sessionStorage.removeItem(SESSION_KEY);
53
55
  }
56
+ /**
57
+ * Decode the role claim from a signed editor session JWT.
58
+ * Used for client-side UI gating (show/hide Capture button etc.) — the
59
+ * server enforces the same check on every protected endpoint.
60
+ */
61
+ function extractSessionRole(token) {
62
+ try {
63
+ const raw = token.startsWith('es_') ? token.slice(3) : token;
64
+ const parts = raw.split('.');
65
+ if (parts.length !== 3)
66
+ return '';
67
+ const payload = JSON.parse(atob(parts[1]));
68
+ return typeof payload.role === 'string' ? payload.role : '';
69
+ }
70
+ catch {
71
+ return '';
72
+ }
73
+ }
74
+ // ============================================
75
+ // User-visible notice (shown when editor can't activate)
76
+ // ============================================
77
+ function showEditorNotice(message) {
78
+ const el = document.createElement('div');
79
+ el.setAttribute('data-no-translate', '');
80
+ Object.assign(el.style, {
81
+ position: 'fixed', bottom: '24px', right: '24px', zIndex: '2147483647',
82
+ background: '#1a1a2e', color: '#fff', padding: '16px 20px',
83
+ borderRadius: '8px', fontFamily: 'system-ui, sans-serif', fontSize: '14px',
84
+ maxWidth: '360px', boxShadow: '0 4px 20px rgba(0,0,0,0.3)',
85
+ });
86
+ el.textContent = message;
87
+ const close = document.createElement('button');
88
+ Object.assign(close.style, {
89
+ position: 'absolute', top: '4px', right: '8px',
90
+ background: 'none', border: 'none', color: '#888', cursor: 'pointer', fontSize: '16px',
91
+ });
92
+ close.textContent = '\u00d7';
93
+ close.addEventListener('click', () => el.remove());
94
+ el.appendChild(close);
95
+ document.body.appendChild(el);
96
+ setTimeout(() => el.remove(), 8000);
97
+ }
54
98
  // ============================================
55
99
  // Init
56
100
  // ============================================
57
101
  function initEditor() {
58
- // Read attributes from own script tag
59
- const scriptEl = document.querySelector('script[data-grant]');
102
+ // Support two activation modes:
103
+ // 1. Grant mode — script tag has data-grant (first-page activation)
104
+ // 2. Session mode — no grant, but a valid session exists in sessionStorage
105
+ // (subsequent page navigation after grant was consumed)
106
+ //
107
+ // The edge proxy injects the editor script on every page when editor.enabled
108
+ // is true. On pages where there's no active session, the editor silently
109
+ // exits — no FAB, no network calls.
110
+ const scriptEl = document.querySelector('script[data-grant]') ||
111
+ document.querySelector('script[data-lr-editor]');
60
112
  if (!scriptEl) {
61
- console.warn('[LionRapid Editor] No script tag with data-grant found');
113
+ // No editor script tag at all — nothing to do
62
114
  return;
63
115
  }
64
116
  const grant = scriptEl.dataset.grant || '';
117
+ const hasValidSession = getStoredSession() !== null;
118
+ // Session mode requires an existing stored session; grant mode requires a grant
119
+ if (!grant && !hasValidSession) {
120
+ // No grant and no session — silently exit (normal visitor, not an editor user)
121
+ return;
122
+ }
65
123
  const locale = scriptEl.dataset.locale || '';
66
124
  const apiBase = scriptEl.dataset.api || 'https://api.lionrapid.com';
67
125
  const projectId = scriptEl.dataset.project || '';
@@ -100,6 +158,7 @@ async function activate(lr, grant, locale, apiBase, projectId) {
100
158
  });
101
159
  if (!res.ok) {
102
160
  console.error('[LionRapid Editor] Grant exchange failed:', res.status);
161
+ showEditorNotice('Editor session expired. Please reopen the editor from the dashboard.');
103
162
  return;
104
163
  }
105
164
  const data = await res.json();
@@ -110,13 +169,21 @@ async function activate(lr, grant, locale, apiBase, projectId) {
110
169
  }
111
170
  catch (err) {
112
171
  console.error('[LionRapid Editor] Grant exchange error:', err);
172
+ showEditorNotice('Could not connect to LionRapid. Please check your connection and try again.');
113
173
  return;
114
174
  }
115
175
  }
116
176
  if (!sessionToken) {
117
177
  console.error('[LionRapid Editor] No valid session. Please reopen the editor from the dashboard.');
178
+ showEditorNotice('Editor session expired. Please reopen the editor from the dashboard.');
118
179
  return;
119
180
  }
181
+ // Decode the session JWT to extract the user's role. The server signs this
182
+ // token and enforces permissions — the client-side check here is only to
183
+ // avoid showing actions the server would reject (defense in depth). Never
184
+ // trust client-side role checks for security decisions.
185
+ const role = extractSessionRole(sessionToken);
186
+ const canCaptureSnapshots = role === 'project_manager' || role === 'admin';
120
187
  // Create Shadow DOM host
121
188
  const host = document.createElement('div');
122
189
  host.id = '__lionrapid-editor';
@@ -134,6 +201,28 @@ async function activate(lr, grant, locale, apiBase, projectId) {
134
201
  // Create API client with session token
135
202
  const api = new EditorAPI(normalizedApiBase, sessionToken, projectId);
136
203
  api.startAutoFlush();
204
+ // --- Snapshot viewer mode ---
205
+ // If the URL has ?__lr_snapshot={uuid}, replace the page with the saved
206
+ // snapshot HTML and scope the Inspector to the sandbox wrapper. Capture
207
+ // button is hidden in viewer mode (a translator shouldn't re-capture).
208
+ //
209
+ // Separately, ?__lr_recapture={uuid} runs on the LIVE page (no viewer)
210
+ // but switches the FAB's Capture button into re-capture mode — PUT to the
211
+ // existing snapshot uuid instead of POST.
212
+ const currentUrl = new URL(window.location.href);
213
+ const snapshotUuid = currentUrl.searchParams.get('__lr_snapshot');
214
+ const recaptureUuid = currentUrl.searchParams.get('__lr_recapture');
215
+ let inspectorRoot;
216
+ let snapshotKeyMap;
217
+ if (snapshotUuid) {
218
+ const result = await activateSnapshotViewer(snapshotUuid, api);
219
+ if (!result) {
220
+ showEditorNotice('Snapshot not found or expired. Please check the dashboard.');
221
+ return;
222
+ }
223
+ inspectorRoot = result.root;
224
+ snapshotKeyMap = result.keyMap;
225
+ }
137
226
  // Create sidebar (needs api + locale)
138
227
  const handleBlockSelect = (resolved) => {
139
228
  sidebar.open(resolved);
@@ -141,7 +230,7 @@ async function activate(lr, grant, locale, apiBase, projectId) {
141
230
  };
142
231
  const sidebar = new Sidebar(shadow, api, currentLocale, namespace, defaultLocale, handleBlockSelect);
143
232
  // Create inspector (hover/click → sidebar)
144
- const inspector = new Inspector(shadow, handleBlockSelect);
233
+ const inspector = new Inspector(shadow, handleBlockSelect, inspectorRoot, snapshotKeyMap);
145
234
  // Create toolbar
146
235
  const toolbar = new Toolbar(shadow, languages, currentLocale,
147
236
  // Language change
@@ -173,7 +262,45 @@ async function activate(lr, grant, locale, apiBase, projectId) {
173
262
  sidebar.destroy();
174
263
  host.remove();
175
264
  clearSession();
176
- });
265
+ },
266
+ // Capture Snapshot — only available in live-page mode (not viewer) AND
267
+ // only for PM/admin roles. Translators and proofreaders cannot capture;
268
+ // the server enforces the same check on POST /api/editor/snapshots.
269
+ //
270
+ // If ?__lr_recapture={uuid} is present, the same button re-captures that
271
+ // existing snapshot (PUT) instead of creating a new one (POST).
272
+ snapshotUuid || !canCaptureSnapshots
273
+ ? null
274
+ : async () => {
275
+ try {
276
+ const snapshot = captureSnapshot();
277
+ if (recaptureUuid) {
278
+ const result = await api.recaptureSnapshot(recaptureUuid, snapshot);
279
+ if (result) {
280
+ showEditorNotice(`Re-captured as v${result.version} (${snapshot.textEntries.length} blocks). You can close this tab.`);
281
+ }
282
+ else {
283
+ showEditorNotice('Re-capture failed. Please try again.');
284
+ }
285
+ }
286
+ else {
287
+ const result = await api.createSnapshot(snapshot);
288
+ if (result) {
289
+ showEditorNotice(`Snapshot captured (${snapshot.textEntries.length} blocks). Open it from the Snapshots tab in the dashboard.`);
290
+ }
291
+ else {
292
+ showEditorNotice('Snapshot upload failed. Please try again.');
293
+ }
294
+ }
295
+ }
296
+ catch (err) {
297
+ console.error('[LionRapid Editor] Snapshot capture error:', err);
298
+ showEditorNotice('Snapshot capture failed. See console for details.');
299
+ }
300
+ },
301
+ // When in recapture mode, surface it to the toolbar so the button label
302
+ // can change from "Capture" to "Save re-capture".
303
+ recaptureUuid ? { mode: 'recapture' } : undefined);
177
304
  // Wire progress counter to sidebar status
178
305
  sidebar.setProgressCallback((translated, total) => {
179
306
  toolbar.updateProgress(translated, total);
@@ -182,10 +309,22 @@ async function activate(lr, grant, locale, apiBase, projectId) {
182
309
  sidebar.hydrateStatus().then(() => {
183
310
  toolbar.updateProgress(sidebar.getTranslatedCount(), sidebar.getTotalCount());
184
311
  });
185
- // Clean editor param from URL
312
+ // Clean editor params from URL
186
313
  const url = new URL(window.location.href);
314
+ let dirty = false;
187
315
  if (url.searchParams.has('__lr_editor')) {
188
316
  url.searchParams.delete('__lr_editor');
317
+ dirty = true;
318
+ }
319
+ if (url.searchParams.has('__lr_snapshot')) {
320
+ url.searchParams.delete('__lr_snapshot');
321
+ dirty = true;
322
+ }
323
+ if (url.searchParams.has('__lr_recapture')) {
324
+ url.searchParams.delete('__lr_recapture');
325
+ dirty = true;
326
+ }
327
+ if (dirty) {
189
328
  history.replaceState(null, '', url.toString());
190
329
  }
191
330
  }
@@ -1 +1 @@
1
- {"version":3,"file":"editor-init.js","sourceRoot":"","sources":["../../../src/browser/editor/editor-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-init.js","sourceRoot":"","sources":["../../../src/browser/editor/editor-init.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * Editor CSS Styles
3
3
  * All styles are injected into Shadow DOM — no leakage to host page.
4
4
  */
5
- export declare const EDITOR_CSS = "\n/* Reset inside shadow DOM */\n:host {\n all: initial;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 14px;\n color: #1a1a2e;\n line-height: 1.5;\n box-sizing: border-box;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 FAB (replaces fixed toolbar) \u2500\u2500 */\n.lr-fab {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 2147483647;\n display: flex;\n align-items: center;\n gap: 0;\n user-select: none;\n}\n\n.lr-fab-btn {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: #2d7f7f;\n color: #fff;\n border: none;\n font-weight: 700;\n font-size: 16px;\n cursor: grab;\n box-shadow: 0 4px 12px rgba(0,0,0,0.25);\n transition: box-shadow 0.15s;\n flex-shrink: 0;\n z-index: 1;\n}\n\n.lr-fab-btn:hover {\n box-shadow: 0 6px 20px rgba(0,0,0,0.3);\n}\n\n.lr-fab-btn:active {\n cursor: grabbing;\n}\n\n.lr-fab-panel {\n display: none;\n align-items: center;\n gap: 8px;\n background: #1a1a2e;\n color: #fff;\n padding: 8px 12px;\n border-radius: 8px;\n margin-right: 8px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.25);\n white-space: nowrap;\n}\n\n.lr-fab.expanded .lr-fab-panel {\n display: flex;\n}\n\n.lr-lang-dropdown {\n position: relative;\n}\n\n.lr-lang-btn {\n background: rgba(255,255,255,0.1);\n color: #fff;\n border: 1px solid rgba(255,255,255,0.2);\n border-radius: 4px;\n padding: 4px 10px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n outline: none;\n}\n\n.lr-lang-btn:hover {\n background: rgba(255,255,255,0.2);\n}\n\n.lr-lang-menu {\n display: none;\n position: absolute;\n bottom: calc(100% + 6px);\n left: 0;\n background: #1a1a2e;\n border: 1px solid rgba(255,255,255,0.15);\n border-radius: 6px;\n padding: 4px;\n min-width: 60px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.4);\n}\n\n.lr-lang-menu.open {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.lr-lang-item {\n background: none;\n color: #ccc;\n border: none;\n padding: 6px 10px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border-radius: 4px;\n text-align: left;\n}\n\n.lr-lang-item:hover {\n background: rgba(255,255,255,0.1);\n color: #fff;\n}\n\n.lr-lang-item.active {\n background: #2d7f7f;\n color: #fff;\n}\n\n.lr-fab-progress {\n font-size: 13px;\n color: rgba(255,255,255,0.7);\n}\n\n.lr-fab-exit {\n background: none;\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n}\n\n.lr-fab-exit:hover {\n background: rgba(255,255,255,0.1);\n}\n\n/* \u2500\u2500 Overlay \u2500\u2500 */\n.lr-overlay {\n position: fixed;\n pointer-events: none;\n border: 2px solid #2d7f7f;\n border-radius: 3px;\n background: rgba(45, 127, 127, 0.06);\n transition: all 0.1s ease;\n z-index: 2147483646;\n display: none;\n}\n\n.lr-overlay.active {\n display: block;\n}\n\n/* \u2500\u2500 Sidebar \u2500\u2500 */\n.lr-sidebar {\n position: fixed;\n top: 0;\n right: 0;\n width: 360px;\n min-width: 280px;\n max-width: 600px;\n bottom: 0;\n background: #fff;\n border-left: 1px solid #e0e0e0;\n z-index: 2147483647;\n overflow-y: auto;\n transform: translateX(100%);\n transition: transform 0.2s ease;\n}\n\n.lr-sidebar.open {\n transform: translateX(0);\n}\n\n/* Resize handle on left edge */\n.lr-sidebar-resize {\n position: absolute;\n top: 0;\n left: -4px;\n width: 8px;\n bottom: 0;\n cursor: col-resize;\n z-index: 1;\n}\n\n.lr-sidebar-resize:hover,\n.lr-sidebar-resize.active {\n background: rgba(45, 127, 127, 0.3);\n}\n\n.lr-sidebar-header {\n padding: 16px;\n border-bottom: 1px solid #e0e0e0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.lr-sidebar-title {\n font-weight: 600;\n font-size: 15px;\n}\n\n.lr-sidebar-close {\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n color: #666;\n padding: 4px 8px;\n line-height: 1;\n}\n\n.lr-sidebar-close:hover {\n color: #1a1a2e;\n}\n\n.lr-sidebar-body {\n padding: 16px;\n}\n\n.lr-field {\n margin-bottom: 16px;\n}\n\n.lr-field-label {\n display: block;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n}\n\n.lr-field-key {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n color: #2d7f7f;\n background: #f0f7f7;\n padding: 4px 8px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n.lr-field-original {\n font-size: 13px;\n color: #333;\n background: #f8f8f8;\n padding: 10px 12px;\n border-radius: 6px;\n border: 1px solid #eee;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.lr-field-tag {\n display: inline;\n background: #d9eded;\n color: #2d7f7f;\n padding: 0 3px;\n border-radius: 2px;\n font-family: monospace;\n font-size: 12px;\n}\n\n.lr-textarea {\n width: 100%;\n min-height: 100px;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n resize: vertical;\n outline: none;\n transition: border-color 0.15s;\n}\n\n.lr-textarea:focus {\n border-color: #2d7f7f;\n box-shadow: 0 0 0 3px rgba(45, 127, 127, 0.1);\n}\n\n.lr-preview {\n padding: 10px 12px;\n background: #f8f8f8;\n border: 1px solid #eee;\n border-radius: 6px;\n font-size: 13px;\n min-height: 40px;\n}\n\n.lr-status {\n padding: 10px 16px;\n font-size: 12px;\n color: #666;\n text-align: center;\n border-top: 1px solid #eee;\n background: #fafafa;\n}\n\n.lr-status.saved {\n color: #22c55e;\n}\n\n.lr-status.error {\n color: #ef4444;\n}\n\n.lr-status.unsaved {\n color: #f59e0b;\n}\n\n/* \u2500\u2500 Page blocks list \u2500\u2500 */\n.lr-blocks-section {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #eee;\n}\n\n.lr-blocks-title {\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 8px;\n}\n\n.lr-block-item {\n padding: 8px 10px;\n border: 1px solid #eee;\n border-radius: 4px;\n margin-bottom: 4px;\n cursor: pointer;\n font-size: 13px;\n color: #333;\n overflow: hidden;\n transition: background 0.1s;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.lr-block-item:hover {\n background: #f0f7f7;\n border-color: #2d7f7f;\n}\n\n.lr-block-item.active {\n background: #e5f2f2;\n border-color: #2d7f7f;\n}\n\n/* \u2500\u2500 Status dots \u2500\u2500 */\n.lr-status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n margin-top: 5px;\n background: #d1d5db;\n}\n\n.lr-status-dot.missing { background: #d1d5db; }\n.lr-status-dot.mt { background: #60a5fa; }\n.lr-status-dot.edited { background: #f97316; }\n.lr-status-dot.confirmed { background: #22c55e; }\n.lr-status-dot.ready { background: #22c55e; }\n.lr-status-dot.locked { background: #a855f7; }\n.lr-status-dot.unsaved { background: #f59e0b; }\n\n/* \u2500\u2500 Locked textarea \u2500\u2500 */\n.lr-textarea-locked {\n background: #f3f4f6;\n color: #6b7280;\n cursor: not-allowed;\n border-color: #e5e7eb;\n}\n\n/* \u2500\u2500 Block text layout \u2500\u2500 */\n.lr-block-text {\n overflow: hidden;\n min-width: 0;\n}\n\n.lr-block-source {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.lr-block-preview {\n font-size: 11px;\n color: #888;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-top: 2px;\n}\n";
5
+ export declare const EDITOR_CSS = "\n/* Reset inside shadow DOM */\n:host {\n all: initial;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 14px;\n color: #1a1a2e;\n line-height: 1.5;\n box-sizing: border-box;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 FAB (replaces fixed toolbar) \u2500\u2500 */\n.lr-fab {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 2147483647;\n display: flex;\n align-items: center;\n gap: 0;\n user-select: none;\n}\n\n.lr-fab-btn {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n background: #2d7f7f;\n color: #fff;\n border: none;\n font-weight: 700;\n font-size: 16px;\n cursor: grab;\n box-shadow: 0 4px 12px rgba(0,0,0,0.25);\n transition: box-shadow 0.15s;\n flex-shrink: 0;\n z-index: 1;\n}\n\n.lr-fab-btn:hover {\n box-shadow: 0 6px 20px rgba(0,0,0,0.3);\n}\n\n.lr-fab-btn:active {\n cursor: grabbing;\n}\n\n.lr-fab-panel {\n display: none;\n align-items: center;\n gap: 8px;\n background: #1a1a2e;\n color: #fff;\n padding: 8px 12px;\n border-radius: 8px;\n margin-right: 8px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.25);\n white-space: nowrap;\n}\n\n.lr-fab.expanded .lr-fab-panel {\n display: flex;\n}\n\n.lr-lang-dropdown {\n position: relative;\n}\n\n.lr-lang-btn {\n background: rgba(255,255,255,0.1);\n color: #fff;\n border: 1px solid rgba(255,255,255,0.2);\n border-radius: 4px;\n padding: 4px 10px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n outline: none;\n}\n\n.lr-lang-btn:hover {\n background: rgba(255,255,255,0.2);\n}\n\n.lr-lang-menu {\n display: none;\n position: absolute;\n bottom: calc(100% + 6px);\n left: 0;\n background: #1a1a2e;\n border: 1px solid rgba(255,255,255,0.15);\n border-radius: 6px;\n padding: 4px;\n min-width: 60px;\n box-shadow: 0 4px 16px rgba(0,0,0,0.4);\n}\n\n.lr-lang-menu.open {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.lr-lang-item {\n background: none;\n color: #ccc;\n border: none;\n padding: 6px 10px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border-radius: 4px;\n text-align: left;\n}\n\n.lr-lang-item:hover {\n background: rgba(255,255,255,0.1);\n color: #fff;\n}\n\n.lr-lang-item.active {\n background: #2d7f7f;\n color: #fff;\n}\n\n.lr-fab-progress {\n font-size: 13px;\n color: rgba(255,255,255,0.7);\n}\n\n.lr-fab-exit {\n background: none;\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n}\n\n.lr-fab-exit:hover {\n background: rgba(255,255,255,0.1);\n}\n\n.lr-fab-snapshot {\n background: #2d7f7f;\n border: 1px solid #2d7f7f;\n color: #fff;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n}\n\n.lr-fab-snapshot:hover {\n background: #3a9999;\n border-color: #3a9999;\n}\n\n.lr-fab-snapshot:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Snapshot viewer sandbox wrapper */\n#__lr_snapshot_root {\n isolation: isolate;\n position: relative;\n width: 100%;\n min-height: 100vh;\n}\n\n/* \u2500\u2500 Overlay \u2500\u2500 */\n.lr-overlay {\n position: fixed;\n pointer-events: none;\n border: 2px solid #2d7f7f;\n border-radius: 3px;\n background: rgba(45, 127, 127, 0.06);\n transition: all 0.1s ease;\n z-index: 2147483646;\n display: none;\n}\n\n.lr-overlay.active {\n display: block;\n}\n\n/* \u2500\u2500 Sidebar \u2500\u2500 */\n.lr-sidebar {\n position: fixed;\n top: 0;\n right: 0;\n width: 360px;\n min-width: 280px;\n max-width: 600px;\n bottom: 0;\n background: #fff;\n border-left: 1px solid #e0e0e0;\n z-index: 2147483647;\n overflow-y: auto;\n transform: translateX(100%);\n transition: transform 0.2s ease;\n}\n\n.lr-sidebar.open {\n transform: translateX(0);\n}\n\n/* Resize handle on left edge */\n.lr-sidebar-resize {\n position: absolute;\n top: 0;\n left: -4px;\n width: 8px;\n bottom: 0;\n cursor: col-resize;\n z-index: 1;\n}\n\n.lr-sidebar-resize:hover,\n.lr-sidebar-resize.active {\n background: rgba(45, 127, 127, 0.3);\n}\n\n.lr-sidebar-header {\n padding: 16px;\n border-bottom: 1px solid #e0e0e0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.lr-sidebar-title {\n font-weight: 600;\n font-size: 15px;\n}\n\n.lr-sidebar-close {\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n color: #666;\n padding: 4px 8px;\n line-height: 1;\n}\n\n.lr-sidebar-close:hover {\n color: #1a1a2e;\n}\n\n.lr-sidebar-body {\n padding: 16px;\n}\n\n.lr-field {\n margin-bottom: 16px;\n}\n\n.lr-field-label {\n display: block;\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n}\n\n.lr-field-key {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n color: #2d7f7f;\n background: #f0f7f7;\n padding: 4px 8px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n.lr-field-original {\n font-size: 13px;\n color: #333;\n background: #f8f8f8;\n padding: 10px 12px;\n border-radius: 6px;\n border: 1px solid #eee;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.lr-field-tag {\n display: inline;\n background: #d9eded;\n color: #2d7f7f;\n padding: 0 3px;\n border-radius: 2px;\n font-family: monospace;\n font-size: 12px;\n}\n\n.lr-textarea {\n width: 100%;\n min-height: 100px;\n padding: 10px 12px;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n resize: vertical;\n outline: none;\n transition: border-color 0.15s;\n}\n\n.lr-textarea:focus {\n border-color: #2d7f7f;\n box-shadow: 0 0 0 3px rgba(45, 127, 127, 0.1);\n}\n\n.lr-preview {\n padding: 10px 12px;\n background: #f8f8f8;\n border: 1px solid #eee;\n border-radius: 6px;\n font-size: 13px;\n min-height: 40px;\n}\n\n.lr-status {\n padding: 10px 16px;\n font-size: 12px;\n color: #666;\n text-align: center;\n border-top: 1px solid #eee;\n background: #fafafa;\n}\n\n.lr-status.saved {\n color: #22c55e;\n}\n\n.lr-status.error {\n color: #ef4444;\n}\n\n.lr-status.unsaved {\n color: #f59e0b;\n}\n\n/* \u2500\u2500 Page blocks list \u2500\u2500 */\n.lr-blocks-section {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #eee;\n}\n\n.lr-blocks-title {\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 8px;\n}\n\n.lr-block-item {\n padding: 8px 10px;\n border: 1px solid #eee;\n border-radius: 4px;\n margin-bottom: 4px;\n cursor: pointer;\n font-size: 13px;\n color: #333;\n overflow: hidden;\n transition: background 0.1s;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.lr-block-item:hover {\n background: #f0f7f7;\n border-color: #2d7f7f;\n}\n\n.lr-block-item.active {\n background: #e5f2f2;\n border-color: #2d7f7f;\n}\n\n/* \u2500\u2500 Status dots \u2500\u2500 */\n.lr-status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n margin-top: 5px;\n background: #d1d5db;\n}\n\n.lr-status-dot.missing { background: #d1d5db; }\n.lr-status-dot.mt { background: #60a5fa; }\n.lr-status-dot.edited { background: #f97316; }\n.lr-status-dot.confirmed { background: #22c55e; }\n.lr-status-dot.ready { background: #22c55e; }\n.lr-status-dot.locked { background: #a855f7; }\n.lr-status-dot.unsaved { background: #f59e0b; }\n\n/* \u2500\u2500 Locked textarea \u2500\u2500 */\n.lr-textarea-locked {\n background: #f3f4f6;\n color: #6b7280;\n cursor: not-allowed;\n border-color: #e5e7eb;\n}\n\n/* \u2500\u2500 Block text layout \u2500\u2500 */\n.lr-block-text {\n overflow: hidden;\n min-width: 0;\n}\n\n.lr-block-source {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.lr-block-preview {\n font-size: 11px;\n color: #888;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-top: 2px;\n}\n";
6
6
  //# sourceMappingURL=editor-styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-styles.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/editor-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,UAAU,46OA6ZtB,CAAC"}
1
+ {"version":3,"file":"editor-styles.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/editor-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,UAAU,w6PA0btB,CAAC"}
@@ -150,6 +150,35 @@ export const EDITOR_CSS = `
150
150
  background: rgba(255,255,255,0.1);
151
151
  }
152
152
 
153
+ .lr-fab-snapshot {
154
+ background: #2d7f7f;
155
+ border: 1px solid #2d7f7f;
156
+ color: #fff;
157
+ padding: 4px 10px;
158
+ border-radius: 4px;
159
+ cursor: pointer;
160
+ font-size: 13px;
161
+ font-weight: 600;
162
+ }
163
+
164
+ .lr-fab-snapshot:hover {
165
+ background: #3a9999;
166
+ border-color: #3a9999;
167
+ }
168
+
169
+ .lr-fab-snapshot:disabled {
170
+ opacity: 0.5;
171
+ cursor: not-allowed;
172
+ }
173
+
174
+ /* Snapshot viewer sandbox wrapper */
175
+ #__lr_snapshot_root {
176
+ isolation: isolate;
177
+ position: relative;
178
+ width: 100%;
179
+ min-height: 100vh;
180
+ }
181
+
153
182
  /* ── Overlay ── */
154
183
  .lr-overlay {
155
184
  position: fixed;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-styles.js","sourceRoot":"","sources":["../../../src/browser/editor/editor-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ZzB,CAAC"}
1
+ {"version":3,"file":"editor-styles.js","sourceRoot":"","sources":["../../../src/browser/editor/editor-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0bzB,CAAC"}
@@ -10,7 +10,11 @@ export declare class Inspector {
10
10
  private onSelect;
11
11
  private rafId;
12
12
  private active;
13
- constructor(shadowRoot: ShadowRoot, onSelect: OnSelectCallback);
13
+ private rootElement;
14
+ /** When set, clicks resolve keys from this map (snapshot viewer mode)
15
+ * instead of re-computing from the (redacted) DOM text. */
16
+ private snapshotKeyMap;
17
+ constructor(shadowRoot: ShadowRoot, onSelect: OnSelectCallback, rootElement?: Element, snapshotKeyMap?: Map<number, string>);
14
18
  destroy(): void;
15
19
  clearHighlight(): void;
16
20
  private handleMouseOver;
@@ -1 +1 @@
1
- {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/inspector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAO5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;AAE/D,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAQ;gBAEV,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB;IAoB9D,OAAO,IAAI,IAAI;IAUf,cAAc,IAAI,IAAI;IAKtB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,UAAU;CAWnB"}
1
+ {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/inspector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQ5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;AAE/D,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAU;IAC7B;gEAC4D;IAC5D,OAAO,CAAC,cAAc,CAA6B;gBAGjD,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,CAAC,EAAE,OAAO,EACrB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAyBtC,OAAO,IAAI,IAAI;IAUf,cAAc,IAAI,IAAI;IAKtB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,UAAU;CAWnB"}