@lionrapid/core 0.1.2 → 0.1.4-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 (39) hide show
  1. package/dist/browser/editor/editor-api.d.ts +61 -0
  2. package/dist/browser/editor/editor-api.d.ts.map +1 -1
  3. package/dist/browser/editor/editor-api.js +165 -0
  4. package/dist/browser/editor/editor-api.js.map +1 -1
  5. package/dist/browser/editor/editor-init.js +119 -7
  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 +81 -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/pii-redactor.d.ts +39 -0
  16. package/dist/browser/editor/pii-redactor.d.ts.map +1 -0
  17. package/dist/browser/editor/pii-redactor.js +149 -0
  18. package/dist/browser/editor/pii-redactor.js.map +1 -0
  19. package/dist/browser/editor/sidebar.d.ts +17 -1
  20. package/dist/browser/editor/sidebar.d.ts.map +1 -1
  21. package/dist/browser/editor/sidebar.js +77 -1
  22. package/dist/browser/editor/sidebar.js.map +1 -1
  23. package/dist/browser/editor/snapshot-capture.d.ts +57 -0
  24. package/dist/browser/editor/snapshot-capture.d.ts.map +1 -0
  25. package/dist/browser/editor/snapshot-capture.js +235 -0
  26. package/dist/browser/editor/snapshot-capture.js.map +1 -0
  27. package/dist/browser/editor/snapshot-viewer.d.ts +35 -0
  28. package/dist/browser/editor/snapshot-viewer.d.ts.map +1 -0
  29. package/dist/browser/editor/snapshot-viewer.js +90 -0
  30. package/dist/browser/editor/snapshot-viewer.js.map +1 -0
  31. package/dist/browser/editor/toolbar.d.ts +7 -1
  32. package/dist/browser/editor/toolbar.d.ts.map +1 -1
  33. package/dist/browser/editor/toolbar.js +26 -1
  34. package/dist/browser/editor/toolbar.js.map +1 -1
  35. package/dist/browser/lionrapid.editor.js +707 -8
  36. package/dist/browser/lionrapid.editor.js.map +4 -4
  37. package/dist/browser/lionrapid.editor.min.js +84 -2
  38. package/dist/browser/lionrapid.editor.min.js.map +4 -4
  39. package/package.json +1 -1
@@ -150,6 +150,87 @@ 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
+ /* Workflow action buttons (Phase 3) */
175
+ .lr-workflow-actions {
176
+ display: flex;
177
+ flex-wrap: wrap;
178
+ gap: 6px;
179
+ margin: 12px 0 4px;
180
+ padding: 8px 0 0;
181
+ border-top: 1px solid #e5e7eb;
182
+ }
183
+
184
+ .lr-wf-btn {
185
+ font-size: 12px;
186
+ font-weight: 500;
187
+ padding: 5px 10px;
188
+ border-radius: 4px;
189
+ border: 1px solid transparent;
190
+ cursor: pointer;
191
+ transition: background-color 0.1s;
192
+ }
193
+
194
+ .lr-wf-btn:disabled {
195
+ opacity: 0.5;
196
+ cursor: not-allowed;
197
+ }
198
+
199
+ .lr-wf-primary {
200
+ background: #2563eb;
201
+ color: white;
202
+ border-color: #2563eb;
203
+ }
204
+ .lr-wf-primary:hover:not(:disabled) {
205
+ background: #1d4ed8;
206
+ }
207
+
208
+ .lr-wf-secondary {
209
+ background: white;
210
+ color: #374151;
211
+ border-color: #d1d5db;
212
+ }
213
+ .lr-wf-secondary:hover:not(:disabled) {
214
+ background: #f3f4f6;
215
+ }
216
+
217
+ .lr-wf-danger {
218
+ background: white;
219
+ color: #b91c1c;
220
+ border-color: #fca5a5;
221
+ }
222
+ .lr-wf-danger:hover:not(:disabled) {
223
+ background: #fef2f2;
224
+ }
225
+
226
+ /* Snapshot viewer sandbox wrapper */
227
+ #__lr_snapshot_root {
228
+ isolation: isolate;
229
+ position: relative;
230
+ width: 100%;
231
+ min-height: 100vh;
232
+ }
233
+
153
234
  /* ── Overlay ── */
154
235
  .lr-overlay {
155
236
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ezB,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"}
@@ -3,6 +3,7 @@
3
3
  * Shows overlay on hover, resolves key on click, opens sidebar.
4
4
  */
5
5
  import { resolveKey } from './key-resolver.js';
6
+ import { parseBlockElement } from '../markup-parser.js';
6
7
  const SKIP_TAGS = new Set(['SCRIPT', 'STYLE', 'CODE', 'PRE', 'TEXTAREA', 'NOSCRIPT', 'SVG']);
7
8
  const BLOCK_SELECTOR = 'p,h1,h2,h3,h4,h5,h6,li,td,th,label,button,figcaption,dt,dd,summary,caption';
8
9
  export class Inspector {
@@ -11,8 +12,16 @@ export class Inspector {
11
12
  onSelect;
12
13
  rafId = null;
13
14
  active = true;
14
- constructor(shadowRoot, onSelect) {
15
+ rootElement;
16
+ /** When set, clicks resolve keys from this map (snapshot viewer mode)
17
+ * instead of re-computing from the (redacted) DOM text. */
18
+ snapshotKeyMap;
19
+ constructor(shadowRoot, onSelect, rootElement, snapshotKeyMap) {
15
20
  this.onSelect = onSelect;
21
+ // Default scope is the live document body; snapshot viewer passes a
22
+ // sandbox wrapper so blocks outside it are ignored.
23
+ this.rootElement = rootElement || document.body;
24
+ this.snapshotKeyMap = snapshotKeyMap || null;
16
25
  // Create overlay inside shadow DOM
17
26
  this.overlay = document.createElement('div');
18
27
  this.overlay.className = 'lr-overlay';
@@ -50,6 +59,9 @@ export class Inspector {
50
59
  // Skip editor UI elements (inside shadow DOM won't trigger this, but be safe)
51
60
  if (target.closest('#__lionrapid-editor'))
52
61
  return;
62
+ // Skip anything outside the scope root (snapshot viewer mode)
63
+ if (!this.rootElement.contains(target))
64
+ return;
53
65
  // Skip non-translatable elements
54
66
  if (this.shouldSkip(target)) {
55
67
  this.clearHighlight();
@@ -75,6 +87,9 @@ export class Inspector {
75
87
  // Skip editor UI
76
88
  if (target.closest('#__lionrapid-editor'))
77
89
  return;
90
+ // Skip anything outside the scope root (snapshot viewer mode)
91
+ if (!this.rootElement.contains(target))
92
+ return;
78
93
  // Find the block to resolve
79
94
  const block = target.closest(BLOCK_SELECTOR) || target.closest('[data-lr-block]');
80
95
  if (!block)
@@ -83,6 +98,22 @@ export class Inspector {
83
98
  return;
84
99
  e.preventDefault();
85
100
  e.stopPropagation();
101
+ // Snapshot viewer mode: look up pre-computed key by data-lr-snap-idx
102
+ // instead of re-running resolveKey on the redacted text.
103
+ if (this.snapshotKeyMap) {
104
+ const idxAttr = block.getAttribute('data-lr-snap-idx');
105
+ if (idxAttr !== null) {
106
+ const idx = parseInt(idxAttr, 10);
107
+ const key = this.snapshotKeyMap.get(idx);
108
+ if (key) {
109
+ const unit = parseBlockElement(block);
110
+ this.onSelect({ key, unit, translatedUnit: null, element: block });
111
+ return;
112
+ }
113
+ }
114
+ // Block has no snap-idx — not a pre-extracted block, skip
115
+ return;
116
+ }
86
117
  const resolved = resolveKey(block);
87
118
  if (resolved) {
88
119
  this.onSelect(resolved);
@@ -1 +1 @@
1
- {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../../src/browser/editor/inspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../../src/browser/editor/inspector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * PII Redactor — fine-grained inline replacement of PII patterns in text.
3
+ *
4
+ * Phase 4 of the snapshot feature. Phase 1 redacts whole text nodes only;
5
+ * this module replaces matches *inline*, preserving surrounding prose:
6
+ * "Contact us at foo@bar.com for help" → "Contact us at [REDACTED] for help"
7
+ *
8
+ * Two entry points:
9
+ * - `redactString(text)` — pure string-in/string-out, used in tests and
10
+ * callable independently if a non-DOM caller ever needs it.
11
+ * - `redactTextNodes(root)` — walks every text node under `root` and
12
+ * replaces PII inline, skipping subtrees marked with `data-no-redact`,
13
+ * and skipping `<code>` / `<pre>` (legitimate examples).
14
+ *
15
+ * Design notes:
16
+ * - Patterns are tuned to avoid common false positives. SSN requires
17
+ * dashes/spaces (so 9-digit order numbers survive); credit cards must
18
+ * pass a Luhn check (so 16-digit tracking IDs survive); IPs reject any
19
+ * octet > 255 (so version strings like 1.2.3.999 survive).
20
+ * - We bias toward under-redaction in ambiguous cases — better to leak
21
+ * a tracking number than corrupt a customer's real prose.
22
+ */
23
+ /**
24
+ * Replace every PII match in `text` with `[REDACTED]`. Surrounding prose
25
+ * is preserved.
26
+ *
27
+ * Order matters: URLs first (so `http://...` doesn't get mangled by IPv4
28
+ * matching), then emails, then more specific numeric patterns.
29
+ */
30
+ export declare function redactString(text: string): string;
31
+ /**
32
+ * Walks every text node under `root` and redacts PII inline. Skips:
33
+ * - text nodes inside any ancestor with `[data-no-redact]`
34
+ * - text nodes inside `<code>`, `<pre>`, `<style>`, `<textarea>`
35
+ *
36
+ * Mutates the DOM in place.
37
+ */
38
+ export declare function redactTextNodes(root: Element): void;
39
+ //# sourceMappingURL=pii-redactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-redactor.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/pii-redactor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAsEH;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAejD;AAWD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAqBnD"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * PII Redactor — fine-grained inline replacement of PII patterns in text.
3
+ *
4
+ * Phase 4 of the snapshot feature. Phase 1 redacts whole text nodes only;
5
+ * this module replaces matches *inline*, preserving surrounding prose:
6
+ * "Contact us at foo@bar.com for help" → "Contact us at [REDACTED] for help"
7
+ *
8
+ * Two entry points:
9
+ * - `redactString(text)` — pure string-in/string-out, used in tests and
10
+ * callable independently if a non-DOM caller ever needs it.
11
+ * - `redactTextNodes(root)` — walks every text node under `root` and
12
+ * replaces PII inline, skipping subtrees marked with `data-no-redact`,
13
+ * and skipping `<code>` / `<pre>` (legitimate examples).
14
+ *
15
+ * Design notes:
16
+ * - Patterns are tuned to avoid common false positives. SSN requires
17
+ * dashes/spaces (so 9-digit order numbers survive); credit cards must
18
+ * pass a Luhn check (so 16-digit tracking IDs survive); IPs reject any
19
+ * octet > 255 (so version strings like 1.2.3.999 survive).
20
+ * - We bias toward under-redaction in ambiguous cases — better to leak
21
+ * a tracking number than corrupt a customer's real prose.
22
+ */
23
+ const REDACTED = '[REDACTED]';
24
+ // ----- Regex catalog ---------------------------------------------------------
25
+ //
26
+ // Every pattern uses the `g` flag so .replace() can hit multiple matches in
27
+ // one string. Anchors (`\b` or surrounding-char checks) are tuned per pattern.
28
+ // Email: standard local@domain.tld, fairly permissive on the local part.
29
+ const EMAIL_RE = /[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}/gi;
30
+ // US/intl phone: optional `+1 ` prefix, optional parens around area code,
31
+ // 3-3-4 digit groups separated by space/dash/dot. Requires at least one
32
+ // separator so bare 10-digit numbers don't match (those are usually IDs).
33
+ const PHONE_RE = /(?:\+\d{1,3}[\s.-]?)?(?:\(\d{3}\)|\d{3})[\s.-]\d{3}[\s.-]\d{4}/g;
34
+ // SSN: XXX-XX-XXXX, dashes or spaces (NOT bare 9 digits — too many false
35
+ // positives on order numbers, IDs, etc.).
36
+ const SSN_RE = /\b\d{3}[\s-]\d{2}[\s-]\d{4}\b/g;
37
+ // IPv4: four 1-3 digit octets, dot-separated. We post-filter for "all
38
+ // octets <= 255" so version strings like 1.2.3.999 don't match.
39
+ const IPV4_RE = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/g;
40
+ // URL: http(s):// or www. then non-whitespace. Greedy through path/query.
41
+ const URL_RE = /\b(?:https?:\/\/|www\.)[^\s<>"']+/gi;
42
+ // Credit card candidate: 13-19 digits in 4-4-4-4 (or contiguous) format,
43
+ // allowing dashes/spaces between groups. Luhn-checked before redacting.
44
+ // Must end on a digit (not a separator) — prevents greedy matching of
45
+ // trailing whitespace.
46
+ const CC_CANDIDATE_RE = /\b\d(?:[ -]?\d){12,18}\b/g;
47
+ // ----- Luhn check ------------------------------------------------------------
48
+ function luhnValid(digits) {
49
+ // digits already stripped of separators by caller
50
+ if (digits.length < 13 || digits.length > 19)
51
+ return false;
52
+ let sum = 0;
53
+ let alt = false;
54
+ for (let i = digits.length - 1; i >= 0; i--) {
55
+ let n = digits.charCodeAt(i) - 48; // '0' = 48
56
+ if (n < 0 || n > 9)
57
+ return false;
58
+ if (alt) {
59
+ n *= 2;
60
+ if (n > 9)
61
+ n -= 9;
62
+ }
63
+ sum += n;
64
+ alt = !alt;
65
+ }
66
+ return sum % 10 === 0;
67
+ }
68
+ // ----- IPv4 octet bounds check ----------------------------------------------
69
+ function ipv4Valid(match) {
70
+ const parts = match.split('.');
71
+ if (parts.length !== 4)
72
+ return false;
73
+ for (const p of parts) {
74
+ const n = Number(p);
75
+ if (!Number.isInteger(n) || n < 0 || n > 255)
76
+ return false;
77
+ }
78
+ return true;
79
+ }
80
+ // ----- Public: string redactor ----------------------------------------------
81
+ /**
82
+ * Replace every PII match in `text` with `[REDACTED]`. Surrounding prose
83
+ * is preserved.
84
+ *
85
+ * Order matters: URLs first (so `http://...` doesn't get mangled by IPv4
86
+ * matching), then emails, then more specific numeric patterns.
87
+ */
88
+ export function redactString(text) {
89
+ if (!text)
90
+ return text;
91
+ let out = text;
92
+ out = out.replace(URL_RE, REDACTED);
93
+ out = out.replace(EMAIL_RE, REDACTED);
94
+ out = out.replace(PHONE_RE, REDACTED);
95
+ out = out.replace(SSN_RE, REDACTED);
96
+ out = out.replace(IPV4_RE, (m) => (ipv4Valid(m) ? REDACTED : m));
97
+ out = out.replace(CC_CANDIDATE_RE, (m) => {
98
+ const digits = m.replace(/[\s-]/g, '');
99
+ return luhnValid(digits) ? REDACTED : m;
100
+ });
101
+ return out;
102
+ }
103
+ // ----- Public: DOM walker ---------------------------------------------------
104
+ /**
105
+ * Tag names whose text we never touch — code samples, preformatted blocks,
106
+ * and `<style>` content. `<script>` is already removed earlier in the
107
+ * snapshot pipeline, so it's not in this list.
108
+ */
109
+ const SKIP_TAGS = new Set(['CODE', 'PRE', 'STYLE', 'TEXTAREA']);
110
+ /**
111
+ * Walks every text node under `root` and redacts PII inline. Skips:
112
+ * - text nodes inside any ancestor with `[data-no-redact]`
113
+ * - text nodes inside `<code>`, `<pre>`, `<style>`, `<textarea>`
114
+ *
115
+ * Mutates the DOM in place.
116
+ */
117
+ export function redactTextNodes(root) {
118
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);
119
+ // Collect first, mutate after — walker behaviour with mutation is
120
+ // implementation-defined.
121
+ const toUpdate = [];
122
+ let node = walker.nextNode();
123
+ while (node) {
124
+ if (!isInSkippedSubtree(node)) {
125
+ const original = node.nodeValue || '';
126
+ const replaced = redactString(original);
127
+ if (replaced !== original) {
128
+ toUpdate.push({ node, value: replaced });
129
+ }
130
+ }
131
+ node = walker.nextNode();
132
+ }
133
+ for (const { node: textNode, value } of toUpdate) {
134
+ textNode.nodeValue = value;
135
+ }
136
+ }
137
+ function isInSkippedSubtree(node) {
138
+ let cur = node.parentNode;
139
+ while (cur && cur.nodeType === Node.ELEMENT_NODE) {
140
+ const el = cur;
141
+ if (SKIP_TAGS.has(el.tagName))
142
+ return true;
143
+ if (el.hasAttribute('data-no-redact'))
144
+ return true;
145
+ cur = el.parentNode;
146
+ }
147
+ return false;
148
+ }
149
+ //# sourceMappingURL=pii-redactor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pii-redactor.js","sourceRoot":"","sources":["../../../src/browser/editor/pii-redactor.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,8 @@ export declare class Sidebar {
20
20
  private onProgressUpdate;
21
21
  private lastFetchTime;
22
22
  private lastFlushTime;
23
- constructor(shadowRoot: ShadowRoot, api: EditorAPI, locale: string, namespace: string, defaultLocale: string, onBlockClick: (resolved: ResolvedKey) => void);
23
+ private userRole;
24
+ constructor(shadowRoot: ShadowRoot, api: EditorAPI, locale: string, namespace: string, defaultLocale: string, onBlockClick: (resolved: ResolvedKey) => void, userRole?: string);
24
25
  open(resolved: ResolvedKey): void;
25
26
  close(): void;
26
27
  isOpen(): boolean;
@@ -36,6 +37,21 @@ export declare class Sidebar {
36
37
  private emitProgress;
37
38
  destroy(): void;
38
39
  private renderContent;
40
+ /**
41
+ * Render Confirm/Reject/Mark-Ready/Unmark-Ready buttons under the preview.
42
+ * Visibility:
43
+ * - Confirm: shown when row is not locked and not already ready
44
+ * - Reject: shown when row is not locked and not already ready (server
45
+ * returns 400 if stage_index is already 0)
46
+ * - Unconfirm: shown when isConfirmed
47
+ * - Mark Ready: PM/admin only, hidden when already ready
48
+ * - Unmark Ready: PM/admin only, only when ready
49
+ * After any successful click we re-fetch status for this key so the UI
50
+ * reflects the new state and the unaffected buttons hide/show themselves.
51
+ */
52
+ private renderWorkflowActions;
53
+ /** Re-fetch status for one key and re-render the current view. */
54
+ private refreshStatusForKey;
39
55
  private addField;
40
56
  /**
41
57
  * Get CSS class for the status dot based on actual row state.
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/sidebar.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,iBAAiB,CAAC;AAK/D,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,gBAAgB,CAA8D;IACtF,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;gBAGxB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI;IA8D/C,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAMjC,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI,OAAO;IAIjB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOlC,mBAAmB,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI1E;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBpC,kBAAkB,IAAI,MAAM;IAQ5B,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,YAAY;IAMpB,OAAO,IAAI,IAAI;YAID,aAAa;IAuG3B,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;CAyDzB"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/browser/editor/sidebar.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,iBAAiB,CAAC;AAK/D,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,gBAAgB,CAA8D;IACtF,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,QAAQ,CAAS;gBAGvB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAC7C,QAAQ,GAAE,MAAW;IA+DvB,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAMjC,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI,OAAO;IAIjB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOlC,mBAAmB,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI1E;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBpC,kBAAkB,IAAI,MAAM;IAQ5B,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,YAAY;IAMpB,OAAO,IAAI,IAAI;YAID,aAAa;IA8G3B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAsD7B,kEAAkE;YACpD,mBAAmB;IAYjC,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;CAyDzB"}
@@ -22,12 +22,14 @@ export class Sidebar {
22
22
  onProgressUpdate = null;
23
23
  lastFetchTime = 0;
24
24
  lastFlushTime = 0;
25
- constructor(shadowRoot, api, locale, namespace, defaultLocale, onBlockClick) {
25
+ userRole;
26
+ constructor(shadowRoot, api, locale, namespace, defaultLocale, onBlockClick, userRole = '') {
26
27
  this.api = api;
27
28
  this.locale = locale;
28
29
  this.namespace = namespace;
29
30
  this.defaultLocale = defaultLocale;
30
31
  this.onBlockClick = onBlockClick;
32
+ this.userRole = userRole;
31
33
  this.blockExtractor = new BlockExtractor();
32
34
  this.el = document.createElement('div');
33
35
  this.el.className = 'lr-sidebar';
@@ -205,6 +207,12 @@ export class Sidebar {
205
207
  }
206
208
  return previewEl;
207
209
  });
210
+ // Workflow actions (Phase 3) — only on target locales (not source).
211
+ // Visibility per role + state is enforced server-side; we hide buttons
212
+ // the server would refuse so users don't see dead ends.
213
+ if (!isSourceLocale) {
214
+ this.renderWorkflowActions(key, status);
215
+ }
208
216
  // Live preview on input (only if not locked)
209
217
  if (!isLocked) {
210
218
  textarea.addEventListener('input', () => {
@@ -230,6 +238,74 @@ export class Sidebar {
230
238
  setTimeout(() => textarea.focus(), 100);
231
239
  }
232
240
  }
241
+ /**
242
+ * Render Confirm/Reject/Mark-Ready/Unmark-Ready buttons under the preview.
243
+ * Visibility:
244
+ * - Confirm: shown when row is not locked and not already ready
245
+ * - Reject: shown when row is not locked and not already ready (server
246
+ * returns 400 if stage_index is already 0)
247
+ * - Unconfirm: shown when isConfirmed
248
+ * - Mark Ready: PM/admin only, hidden when already ready
249
+ * - Unmark Ready: PM/admin only, only when ready
250
+ * After any successful click we re-fetch status for this key so the UI
251
+ * reflects the new state and the unaffected buttons hide/show themselves.
252
+ */
253
+ renderWorkflowActions(key, status) {
254
+ const isPM = this.userRole === 'project_manager' || this.userRole === 'admin';
255
+ const isReady = !!status?.isReady;
256
+ const isLocked = !!status?.isLocked;
257
+ const isConfirmed = !!status?.isConfirmed;
258
+ const composite = `${this.locale}:${this.namespace}:${key}`;
259
+ const wrap = document.createElement('div');
260
+ wrap.className = 'lr-workflow-actions';
261
+ const addBtn = (label, action, variant = 'secondary') => {
262
+ const btn = document.createElement('button');
263
+ btn.className = `lr-wf-btn lr-wf-${variant}`;
264
+ btn.textContent = label;
265
+ btn.addEventListener('click', async () => {
266
+ btn.disabled = true;
267
+ const result = await this.api.transitionTarget(composite, action);
268
+ btn.disabled = false;
269
+ if (result) {
270
+ // Refresh status for this key so the buttons recompute
271
+ await this.refreshStatusForKey(key);
272
+ }
273
+ });
274
+ wrap.appendChild(btn);
275
+ };
276
+ // Translator-side actions (subject to can_user_edit_row server-side)
277
+ if (!isLocked && !isReady) {
278
+ addBtn('Confirm', 'confirm', 'primary');
279
+ addBtn('Reject', 'reject', 'danger');
280
+ }
281
+ if (isConfirmed && !isLocked && !isReady) {
282
+ addBtn('Unconfirm', 'unconfirm');
283
+ }
284
+ // PM-only actions
285
+ if (isPM) {
286
+ if (!isReady) {
287
+ addBtn('Mark Ready', 'mark-ready', 'primary');
288
+ }
289
+ else {
290
+ addBtn('Unmark Ready', 'unmark-ready', 'danger');
291
+ }
292
+ }
293
+ if (wrap.children.length > 0) {
294
+ this.bodyEl.appendChild(wrap);
295
+ }
296
+ }
297
+ /** Re-fetch status for one key and re-render the current view. */
298
+ async refreshStatusForKey(key) {
299
+ const fresh = await this.api.fetchStatus([key], this.locale, this.namespace);
300
+ for (const [k, s] of Object.entries(fresh)) {
301
+ this.statusMap.set(k, s);
302
+ }
303
+ if (this.current) {
304
+ // Re-render the current key to pick up new status
305
+ this.renderContent(this.current);
306
+ }
307
+ this.emitProgress();
308
+ }
233
309
  addField(label, contentFn) {
234
310
  const field = document.createElement('div');
235
311
  field.className = 'lr-field';
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../src/browser/editor/sidebar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../src/browser/editor/sidebar.ts"],"names":[],"mappings":"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"}