@lionrapid/core 0.3.1 → 0.5.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 (101) hide show
  1. package/dist/browser/attribute-extractor.d.ts +54 -0
  2. package/dist/browser/attribute-extractor.d.ts.map +1 -0
  3. package/dist/browser/attribute-extractor.js +155 -0
  4. package/dist/browser/attribute-extractor.js.map +1 -0
  5. package/dist/browser/auto-init.d.ts +9 -0
  6. package/dist/browser/auto-init.d.ts.map +1 -1
  7. package/dist/browser/auto-init.js +28 -4
  8. package/dist/browser/auto-init.js.map +1 -1
  9. package/dist/browser/auto-translator.d.ts +23 -0
  10. package/dist/browser/auto-translator.d.ts.map +1 -1
  11. package/dist/browser/auto-translator.js +90 -5
  12. package/dist/browser/auto-translator.js.map +1 -1
  13. package/dist/browser/block-extractor.d.ts +8 -0
  14. package/dist/browser/block-extractor.d.ts.map +1 -1
  15. package/dist/browser/block-extractor.js +77 -0
  16. package/dist/browser/block-extractor.js.map +1 -1
  17. package/dist/browser/editor/editor-api.d.ts +22 -1
  18. package/dist/browser/editor/editor-api.d.ts.map +1 -1
  19. package/dist/browser/editor/editor-api.js +54 -19
  20. package/dist/browser/editor/editor-api.js.map +1 -1
  21. package/dist/browser/editor/editor-init.js +72 -3
  22. package/dist/browser/editor/editor-init.js.map +1 -1
  23. package/dist/browser/editor/editor-styles.d.ts +1 -1
  24. package/dist/browser/editor/editor-styles.d.ts.map +1 -1
  25. package/dist/browser/editor/editor-styles.js +38 -1
  26. package/dist/browser/editor/editor-styles.js.map +1 -1
  27. package/dist/browser/editor/inspector.d.ts +8 -0
  28. package/dist/browser/editor/inspector.d.ts.map +1 -1
  29. package/dist/browser/editor/inspector.js +14 -0
  30. package/dist/browser/editor/inspector.js.map +1 -1
  31. package/dist/browser/editor/live-preview.d.ts +1 -1
  32. package/dist/browser/editor/live-preview.d.ts.map +1 -1
  33. package/dist/browser/editor/live-preview.js +27 -16
  34. package/dist/browser/editor/live-preview.js.map +1 -1
  35. package/dist/browser/editor/locale-url.d.ts +18 -0
  36. package/dist/browser/editor/locale-url.d.ts.map +1 -0
  37. package/dist/browser/editor/locale-url.js +37 -0
  38. package/dist/browser/editor/locale-url.js.map +1 -0
  39. package/dist/browser/editor/sidebar.d.ts +6 -0
  40. package/dist/browser/editor/sidebar.d.ts.map +1 -1
  41. package/dist/browser/editor/sidebar.js +133 -4
  42. package/dist/browser/editor/sidebar.js.map +1 -1
  43. package/dist/browser/editor/toolbar.d.ts +8 -1
  44. package/dist/browser/editor/toolbar.d.ts.map +1 -1
  45. package/dist/browser/editor/toolbar.js +49 -4
  46. package/dist/browser/editor/toolbar.js.map +1 -1
  47. package/dist/browser/index.d.ts +2 -0
  48. package/dist/browser/index.d.ts.map +1 -1
  49. package/dist/browser/index.js +1 -0
  50. package/dist/browser/index.js.map +1 -1
  51. package/dist/browser/lionrapid.auto.dev.js +494 -109
  52. package/dist/browser/lionrapid.auto.dev.js.map +4 -4
  53. package/dist/browser/lionrapid.auto.js +494 -109
  54. package/dist/browser/lionrapid.auto.js.map +4 -4
  55. package/dist/browser/lionrapid.auto.min.js +3 -3
  56. package/dist/browser/lionrapid.auto.min.js.map +4 -4
  57. package/dist/browser/lionrapid.editor.js +371 -36
  58. package/dist/browser/lionrapid.editor.js.map +3 -3
  59. package/dist/browser/lionrapid.editor.min.js +41 -4
  60. package/dist/browser/lionrapid.editor.min.js.map +4 -4
  61. package/dist/browser/lionrapid.esm.js +403 -97
  62. package/dist/browser/lionrapid.esm.js.map +3 -3
  63. package/dist/browser/lionrapid.esm.min.js +2 -2
  64. package/dist/browser/lionrapid.esm.min.js.map +4 -4
  65. package/dist/browser/lionrapid.iife.dev.js +403 -97
  66. package/dist/browser/lionrapid.iife.dev.js.map +3 -3
  67. package/dist/browser/lionrapid.iife.js +403 -97
  68. package/dist/browser/lionrapid.iife.js.map +3 -3
  69. package/dist/browser/lionrapid.iife.min.js +2 -2
  70. package/dist/browser/lionrapid.iife.min.js.map +4 -4
  71. package/dist/browser/lionrapid.umd.js +403 -97
  72. package/dist/browser/lionrapid.umd.js.map +3 -3
  73. package/dist/browser/lionrapid.umd.min.js +2 -2
  74. package/dist/browser/lionrapid.umd.min.js.map +4 -4
  75. package/dist/browser/md5.d.ts +3 -2
  76. package/dist/browser/md5.d.ts.map +1 -1
  77. package/dist/browser/md5.js +41 -6
  78. package/dist/browser/md5.js.map +1 -1
  79. package/dist/builder.d.ts +8 -0
  80. package/dist/builder.d.ts.map +1 -1
  81. package/dist/builder.js +10 -0
  82. package/dist/builder.js.map +1 -1
  83. package/dist/content/parser/MarkupParser.d.ts +0 -10
  84. package/dist/content/parser/MarkupParser.d.ts.map +1 -1
  85. package/dist/content/parser/MarkupParser.js +45 -3
  86. package/dist/content/parser/MarkupParser.js.map +1 -1
  87. package/dist/content/types.d.ts +30 -0
  88. package/dist/content/types.d.ts.map +1 -1
  89. package/dist/index.d.ts +5 -0
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +11 -0
  92. package/dist/index.js.map +1 -1
  93. package/dist/repositories/index.d.ts +1 -0
  94. package/dist/repositories/index.d.ts.map +1 -1
  95. package/dist/repositories/index.js +1 -0
  96. package/dist/repositories/index.js.map +1 -1
  97. package/dist/repositories/static-repository.d.ts +40 -0
  98. package/dist/repositories/static-repository.d.ts.map +1 -0
  99. package/dist/repositories/static-repository.js +60 -0
  100. package/dist/repositories/static-repository.js.map +1 -0
  101. package/package.json +1 -1
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Attribute Extractor
3
+ *
4
+ * Finds translatable HTML attribute values in the DOM and parses each
5
+ * into an AttributeUnit. Pairs with BlockExtractor (text-content side)
6
+ * to cover everything user-visible:
7
+ *
8
+ * - <img alt>, <area alt>, <input type="image" alt>
9
+ * - any element [title]
10
+ * - <input placeholder>, <textarea placeholder>
11
+ * - <meta name="description" content="...">
12
+ * - <input type="submit|button|reset" value>
13
+ *
14
+ * Cross-stack parity: produces the same auto_ key as BlockExtractor for
15
+ * the same trimmed text — md5(text.trim()) prefix — so a button labelled
16
+ * "Submit" and a paragraph "Submit" collide on key (intentional reuse).
17
+ *
18
+ * `<input type="text" value="...">` is deliberately excluded because
19
+ * `value` on a plain text input is user data, not UI copy, and would
20
+ * corrupt form state if treated as translatable.
21
+ */
22
+ import type { AttributeUnit } from '../content/types.js';
23
+ import { type ExcludePatterns } from './exclude-filter.js';
24
+ export interface ExtractedAttribute {
25
+ /** Live element carrying the attribute */
26
+ element: Element;
27
+ /** HTML attribute name (e.g. `alt`, `content`) */
28
+ attrName: string;
29
+ /** Translatable payload */
30
+ unit: AttributeUnit;
31
+ /** auto_ key or server-stamped key */
32
+ key: string;
33
+ }
34
+ export declare class AttributeExtractor {
35
+ private excludeFilter;
36
+ private excludeSelectors;
37
+ constructor(excludePatterns?: Partial<ExcludePatterns>, excludeSelectors?: string[], minTextLength?: number);
38
+ /**
39
+ * Walk the DOM under `root` and return every translatable attribute.
40
+ *
41
+ * @param root Element or Document to scan
42
+ * @param includeStamped When true, elements already carrying
43
+ * `data-lr-attr-{name}` are returned anyway —
44
+ * the editor uses this to surface server-handled
45
+ * attributes for inspection. The runtime keeps
46
+ * the default `false` so it doesn't re-extract
47
+ * what the server already keyed.
48
+ */
49
+ extract(root: Element | Document, includeStamped?: boolean): ExtractedAttribute[];
50
+ private isInsideSkipTag;
51
+ private hasSkipAncestor;
52
+ private matchesExcludeSelector;
53
+ }
54
+ //# sourceMappingURL=attribute-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-extractor.d.ts","sourceRoot":"","sources":["../../src/browser/attribute-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAyD1E,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAW;gBAGjC,eAAe,GAAE,OAAO,CAAC,eAAe,CAAM,EAC9C,gBAAgB,GAAE,MAAM,EAAO,EAC/B,aAAa,SAAI;IAMnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,cAAc,UAAQ,GAAG,kBAAkB,EAAE;IA2C/E,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,sBAAsB;CAY/B"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Attribute Extractor
3
+ *
4
+ * Finds translatable HTML attribute values in the DOM and parses each
5
+ * into an AttributeUnit. Pairs with BlockExtractor (text-content side)
6
+ * to cover everything user-visible:
7
+ *
8
+ * - <img alt>, <area alt>, <input type="image" alt>
9
+ * - any element [title]
10
+ * - <input placeholder>, <textarea placeholder>
11
+ * - <meta name="description" content="...">
12
+ * - <input type="submit|button|reset" value>
13
+ *
14
+ * Cross-stack parity: produces the same auto_ key as BlockExtractor for
15
+ * the same trimmed text — md5(text.trim()) prefix — so a button labelled
16
+ * "Submit" and a paragraph "Submit" collide on key (intentional reuse).
17
+ *
18
+ * `<input type="text" value="...">` is deliberately excluded because
19
+ * `value` on a plain text input is user data, not UI copy, and would
20
+ * corrupt form state if treated as translatable.
21
+ */
22
+ import { ExcludeFilter } from './exclude-filter.js';
23
+ import { generateAutoKey } from './md5.js';
24
+ // Each target has a unique `attr`, so a single element matching multiple
25
+ // targets (e.g. `<input placeholder title>`) yields one ExtractedAttribute
26
+ // per attribute — no cross-target dedup needed.
27
+ const TARGETS = [
28
+ { selector: 'img[alt], area[alt], input[type="image"][alt]', attr: 'alt', type: 'alt' },
29
+ { selector: '[title]', attr: 'title', type: 'title' },
30
+ { selector: 'input[placeholder], textarea[placeholder]', attr: 'placeholder', type: 'placeholder' },
31
+ { selector: 'meta[name="description"][content]', attr: 'content', type: 'meta-description' },
32
+ {
33
+ selector: 'input[type="submit"][value], input[type="button"][value], input[type="reset"][value]',
34
+ attr: 'value',
35
+ type: 'input-value',
36
+ },
37
+ ];
38
+ // Skip the same containers as BlockExtractor — attribute values inside
39
+ // <script>, <style>, etc. are never user-visible UI text.
40
+ const SKIP_TAGS = new Set([
41
+ 'SCRIPT',
42
+ 'STYLE',
43
+ 'CODE',
44
+ 'PRE',
45
+ 'NOSCRIPT',
46
+ 'SVG',
47
+ ]);
48
+ // Ancestor attributes that opt the element out of translation. Matches
49
+ // BlockExtractor's contract so authors get one consistent escape hatch.
50
+ const SKIP_ATTRIBUTES = [
51
+ 'data-lionrapid-translated',
52
+ 'data-lionrapid-client',
53
+ 'data-no-translate',
54
+ ];
55
+ /**
56
+ * Server-stamped attribute marker — when the edge or PHP layer has already
57
+ * keyed an attribute, the element carries `data-lr-attr-{name}="auto_xxx"`.
58
+ * Client extraction reads this instead of re-hashing, eliminating the same
59
+ * class of cross-stack parity drift `data-lr-block` solves for body text.
60
+ */
61
+ function stampAttrName(attrName) {
62
+ return `data-lr-attr-${attrName.toLowerCase()}`;
63
+ }
64
+ export class AttributeExtractor {
65
+ excludeFilter;
66
+ excludeSelectors;
67
+ constructor(excludePatterns = {}, excludeSelectors = [], minTextLength = 2) {
68
+ this.excludeFilter = new ExcludeFilter(excludePatterns, minTextLength);
69
+ this.excludeSelectors = excludeSelectors;
70
+ }
71
+ /**
72
+ * Walk the DOM under `root` and return every translatable attribute.
73
+ *
74
+ * @param root Element or Document to scan
75
+ * @param includeStamped When true, elements already carrying
76
+ * `data-lr-attr-{name}` are returned anyway —
77
+ * the editor uses this to surface server-handled
78
+ * attributes for inspection. The runtime keeps
79
+ * the default `false` so it doesn't re-extract
80
+ * what the server already keyed.
81
+ */
82
+ extract(root, includeStamped = false) {
83
+ const results = [];
84
+ for (const target of TARGETS) {
85
+ const candidates = root.querySelectorAll(target.selector);
86
+ const all = [];
87
+ if (root instanceof Element && root.matches(target.selector)) {
88
+ all.push(root);
89
+ }
90
+ for (let i = 0; i < candidates.length; i++) {
91
+ all.push(candidates[i]);
92
+ }
93
+ for (let i = 0; i < all.length; i++) {
94
+ const el = all[i];
95
+ if (this.isInsideSkipTag(el))
96
+ continue;
97
+ if (this.hasSkipAncestor(el))
98
+ continue;
99
+ if (this.matchesExcludeSelector(el))
100
+ continue;
101
+ if (el.getAttribute('translate') === 'no')
102
+ continue;
103
+ const rawValue = el.getAttribute(target.attr);
104
+ if (rawValue === null)
105
+ continue;
106
+ const trimmed = rawValue.trim();
107
+ if (this.excludeFilter.shouldExclude(trimmed))
108
+ continue;
109
+ const stampName = stampAttrName(target.attr);
110
+ const stamped = el.getAttribute(stampName);
111
+ if (!includeStamped && stamped) {
112
+ continue;
113
+ }
114
+ const unit = { text: rawValue, type: target.type };
115
+ const key = stamped ?? generateAutoKey(rawValue);
116
+ results.push({ element: el, attrName: target.attr, unit, key });
117
+ }
118
+ }
119
+ return results;
120
+ }
121
+ isInsideSkipTag(element) {
122
+ let current = element.parentElement;
123
+ while (current) {
124
+ if (SKIP_TAGS.has(current.tagName))
125
+ return true;
126
+ current = current.parentElement;
127
+ }
128
+ return false;
129
+ }
130
+ hasSkipAncestor(element) {
131
+ let current = element;
132
+ while (current) {
133
+ for (const attr of SKIP_ATTRIBUTES) {
134
+ if (current.hasAttribute(attr))
135
+ return true;
136
+ }
137
+ current = current.parentElement;
138
+ }
139
+ return false;
140
+ }
141
+ matchesExcludeSelector(element) {
142
+ for (const selector of this.excludeSelectors) {
143
+ try {
144
+ if (element.matches(selector) || element.closest(selector)) {
145
+ return true;
146
+ }
147
+ }
148
+ catch {
149
+ // Invalid selector — skip silently, same as BlockExtractor.
150
+ }
151
+ }
152
+ return false;
153
+ }
154
+ }
155
+ //# sourceMappingURL=attribute-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-extractor.js","sourceRoot":"","sources":["../../src/browser/attribute-extractor.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,15 @@ export interface AutoInitConfig {
27
27
  switcherShowFlags?: boolean;
28
28
  switcherShowNames?: boolean;
29
29
  switcherCustomCss?: string;
30
+ /** Override for the visual editor bundle URL. Defaults to the public CDN.
31
+ * Self-hosted hosts (e.g. the WordPress plugin) point this at their own
32
+ * vendored copy so the editor is version-locked to the host, not the CDN. */
33
+ editorCdnUrl?: string;
34
+ /** Offline resilience: add a never-expiring "last known good" cache layer that
35
+ * is hydrated by successful fetches, so the site keeps translating with the
36
+ * server down even after the normal caches expire. Default on; disable with
37
+ * `data-offline="false"`. */
38
+ offline?: boolean;
30
39
  }
31
40
  declare global {
32
41
  interface Window {
@@ -1 +1 @@
1
- {"version":3,"file":"auto-init.d.ts","sourceRoot":"","sources":["../../src/browser/auto-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;QACzC,iBAAiB,CAAC,EAAE,cAAc,CAAC;KACpC;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpF,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACxF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IAClE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAsC9D;AAqCD;;GAEG;AACH,iBAAe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAgOvC;AAKD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"auto-init.d.ts","sourceRoot":"","sources":["../../src/browser/auto-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;kFAE8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;kCAG8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;QACzC,iBAAiB,CAAC,EAAE,cAAc,CAAC;KACpC;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpF,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACxF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IAClE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CA0C9D;AAqCD;;GAEG;AACH,iBAAe,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAwPvC;AAKD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
@@ -43,6 +43,8 @@ function parseConfig(script) {
43
43
  const switcherShowFlags = script.dataset.switcherShowFlags !== 'false';
44
44
  const switcherShowNames = script.dataset.switcherShowNames === 'true';
45
45
  const switcherCustomCss = script.dataset.switcherCustomCss || undefined;
46
+ const editorCdnUrl = script.dataset.editorCdn || undefined;
47
+ const offline = script.dataset.offline !== 'false';
46
48
  return {
47
49
  apiKey,
48
50
  baseUrl,
@@ -57,6 +59,8 @@ function parseConfig(script) {
57
59
  switcherShowFlags,
58
60
  switcherShowNames,
59
61
  switcherCustomCss,
62
+ editorCdnUrl,
63
+ offline,
60
64
  };
61
65
  }
62
66
  /**
@@ -166,13 +170,31 @@ async function autoInit() {
166
170
  }
167
171
  try {
168
172
  // Build LionRapid with all cache layers
169
- const core = await LionRapidBuilder.init({
173
+ const builder = LionRapidBuilder.init({
170
174
  defaultLocale: initialLocale,
171
175
  namespace: config.namespace,
172
176
  })
173
177
  .use(new MemoryRepository({ enabled: true }))
174
178
  .use(new LocalStorageRepository({ enabled: true }))
175
- .use(new CacheStorageRepository({ enabled: true }))
179
+ .use(new CacheStorageRepository({ enabled: true }));
180
+ // Offline resilience floor: a never-expiring "last known good" cache layer,
181
+ // hydrated by successful fetches. Checked AFTER the TTL'd caches and BEFORE
182
+ // the network, so the site keeps translating with the server down even once
183
+ // the normal caches expire.
184
+ // - ttl must be huge — the handlers treat ttl=0 as "expire immediately".
185
+ // - a DISTINCT cacheName is essential: CacheStorageRepository keys by
186
+ // cacheName (it ignores `prefix`), so without this the floor would share
187
+ // the default store and the 7d cache's expiry would delete its entries.
188
+ if (config.offline !== false) {
189
+ builder.use(new CacheStorageRepository({
190
+ enabled: true,
191
+ options: {
192
+ ttl: Number.MAX_SAFE_INTEGER,
193
+ cacheName: 'lionrapid-offline-v1',
194
+ },
195
+ }));
196
+ }
197
+ const core = await builder
176
198
  .use(new NetworkRepository({
177
199
  enabled: true,
178
200
  options: {
@@ -276,9 +298,11 @@ async function autoInit() {
276
298
  languageSwitcher,
277
299
  };
278
300
  window.LionRapid = instance;
279
- // Detect editor mode (non-proxy case — edge proxy already injects the script)
301
+ // Detect editor mode (snippet case). Edge proxy and WordPress inject the
302
+ // editor server-side, so skip if either kind of editor script is already
303
+ // present to avoid double-loading.
280
304
  const editorParam = new URLSearchParams(window.location.search).get('__lr_editor');
281
- if (editorParam && !document.querySelector('script[data-grant]')) {
305
+ if (editorParam && !document.querySelector('script[data-grant], script[data-lr-editor]')) {
282
306
  const editorScript = document.createElement('script');
283
307
  editorScript.src = config.editorCdnUrl
284
308
  || 'https://cdn.lionrapid.com/lionrapid.editor.min.js';
@@ -1 +1 @@
1
- {"version":3,"file":"auto-init.js","sourceRoot":"","sources":["../../src/browser/auto-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-init.js","sourceRoot":"","sources":["../../src/browser/auto-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AA8C/E;;GAEG;AACH,SAAS,WAAW,CAAC,MAAyB;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,2BAA2B,CAAC;IACtE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;IACxD,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;SAC1D,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SACpD,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC;IACxD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAA2B,CAAC;IAC1G,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;QAClF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ;QACzB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,SAAS,CAAC;IACtE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,KAAK,OAAO,CAAC;IACvE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,KAAK,MAAM,CAAC;IACtE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,IAAI,SAAS,CAAC;IACxE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;IAEnD,OAAO;QACL,MAAM;QACN,OAAO;QACP,aAAa;QACb,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,UAAU;QACV,IAAI;QACJ,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,YAAY;QACZ,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,kBAA4B;IACpD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,kBAA4B,EAAE,aAAqB;IAChF,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,aAAa,CAAC;IAE3D,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,IAAK,SAAmD,CAAC,YAAY,IAAI,EAAE,CAAC;IAClH,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5D,IAAI,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAc,EAAE,aAAqB;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;IAC5D,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,QAAQ;IACrB,sBAAsB;IACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAkC,CAAC;IAE5E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC;IAElC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACzC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,4DAA4D;QAC5D,iEAAiE;QACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAC7E,aAAa,GAAG,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,YAAY,EAAE,CAAC;YACjB,aAAa,GAAG,YAAY,CAAC;QAC/B,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7B,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;IAE1E,0EAA0E;IAC1E,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAChD,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChD,gBAAgB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEjD,mEAAmE;IACnE,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACjF,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChD,SAAS,CAAC,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC3D,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAC5B,SAAS,CAAC,OAAO,CAAC,yBAAyB,GAAG,MAAM,CAAC,gBAAgB,CAAC;gBACxE,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,SAAS,CAAC,OAAO,CAAC,0BAA0B,GAAG,OAAO,CAAC;gBACzD,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,SAAS,CAAC,OAAO,CAAC,0BAA0B,GAAG,OAAO,CAAC;gBACzD,CAAC;gBACD,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC7B,SAAS,CAAC,OAAO,CAAC,0BAA0B,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBAC1E,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,4EAA4E;QAC5E,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,cAAc,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC;YACpC,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;aACC,GAAG,CAAC,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5C,GAAG,CAAC,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aAClD,GAAG,CAAC,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEtD,4EAA4E;QAC5E,4EAA4E;QAC5E,4EAA4E;QAC5E,4BAA4B;QAC5B,2EAA2E;QAC3E,wEAAwE;QACxE,6EAA6E;QAC7E,4EAA4E;QAC5E,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CACT,IAAI,sBAAsB,CAAC;gBACzB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP,GAAG,EAAE,MAAM,CAAC,gBAAgB;oBAC5B,SAAS,EAAE,sBAAsB;iBAClC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO;aACvB,GAAG,CACF,IAAI,iBAAiB,CAAC;YACpB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE;oBACX,OAAO,EAAE,QAAQ,KAAK,MAAM;oBAC5B,UAAU,EAAE,GAAG;oBACf,SAAS,EAAE,EAAE;iBACd;gBACD,iBAAiB,EAAE;oBACjB;wBACE,MAAM,EAAE,aAAa;wBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;SACF,CAAC,CACH;aACA,KAAK,EAAE,CAAC;QAEX,yBAAyB;QACzB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;YACxC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,aAAa;YACrB,YAAY,EAAE,MAAM,CAAC,aAAa;SACnC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,gBAAgB,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACpD,QAAQ,CAAC,MAAM,GAAG,oBAAoB,MAAM,0CAA0C,CAAC;YAEvF,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACnC,2DAA2D;gBAC3D,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;gBAChC,iBAAiB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;aACtC,CAAC,CAAC;YACH,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,cAAc,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,sCAAsC;QACtC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,uBAAuB;QACjE,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,qCAAqC;QACzE,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,WAAW,GAAoC,EAAE,CAAC;QACtD,IAAI,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEnC,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;YACnD,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,cAAc,CAAC,aAAa,EAAE,CAAC;YAC/B,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,WAAW,GAAG,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,uCAAuC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACtC,sBAAsB,GAAG,IAAI,CAAC;YAC9B,aAAa,EAAE,CAAC;YAChB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC3B,WAAW,CAAC,IAAI,CACd,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAC9D,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,oEAAoE;QACpE,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACjD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;gBAAE,OAAO;YAEnD,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,sBAAsB,GAAG,KAAK,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,GAAG,mBAAmB,EAAE,CAAC;gBAChE,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,QAAQ,GAAsB;YAClC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,YAAY,CAAC;YACzE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,YAAY,CAAC;YACjF,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;oBAChC,iBAAiB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;iBACtC,CAAC,CAAC;gBACH,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACpC,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC7B,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/C,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAA8B,EAAE,QAAQ,CAAC;YAC9E,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE;YAC/C,kBAAkB;YAClB,cAAc;YACd,gBAAgB;SACjB,CAAC;QAEF,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE5B,yEAAyE;QACzE,yEAAyE;QACzE,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnF,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,4CAA4C,CAAC,EAAE,CAAC;YACzF,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACtD,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY;mBACjC,mDAAmD,CAAC;YACzD,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;YACzC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtD,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;YAC1C,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QAED,gDAAgD;QAChD,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,cAAc,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC;QACD,cAAc,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,0BAA0B;AAC1B,QAAQ,EAAE,CAAC;AAEX,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
@@ -17,6 +17,7 @@ export interface AutoTranslatorConfig {
17
17
  export declare class AutoTranslator {
18
18
  private core;
19
19
  private blockExtractor;
20
+ private attributeExtractor;
20
21
  private domObserver;
21
22
  private locale;
22
23
  private sourceLocale;
@@ -82,10 +83,32 @@ export declare class AutoTranslator {
82
83
  * Translate extracted blocks using ContentUnit model
83
84
  */
84
85
  private translateBlocks;
86
+ /**
87
+ * Translate extracted attribute units against the cache.
88
+ *
89
+ * Mirrors translateBlocks but for attribute values. For each hit, the
90
+ * original attribute value is preserved in `data-lr-orig-{name}` so
91
+ * retranslate() can restore source. The element accumulates a comma-
92
+ * separated `data-lionrapid-client-attrs` list naming every attr the
93
+ * client touched — so we can find them all on retranslate without
94
+ * iterating a fixed selector set.
95
+ *
96
+ * Cache misses emit `translation:not-found` with empty styles, so the
97
+ * existing MissingTranslationQueue + NetworkRepository sync queue
98
+ * picks them up unchanged.
99
+ */
100
+ private translateAttributesIn;
85
101
  /**
86
102
  * Get translated count
87
103
  */
88
104
  getTranslatedCount(): number;
105
+ /**
106
+ * Restore every client-translated attribute on `el` from its
107
+ * `data-lr-orig-*` backup, then strip the stamps. Mirrors the block-side
108
+ * restoration in retranslate() so language switch / editor reset clears
109
+ * attributes too.
110
+ */
111
+ private restoreClientAttributes;
89
112
  /**
90
113
  * Re-translate a single element (for editor live preview reset)
91
114
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auto-translator.d.ts","sourceRoot":"","sources":["../../src/browser/auto-translator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOtD,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,oBAAyB;IAS7C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAIlC;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM/E;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKpC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAS1C;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;IACH,aAAa,IAAI,IAAI;IAOrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IA0DvB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ1C;;OAEG;IACH,WAAW,IAAI,IAAI;CAkBpB"}
1
+ {"version":3,"file":"auto-translator.d.ts","sourceRoot":"","sources":["../../src/browser/auto-translator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOtD,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,oBAAyB;IAc7C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAIlC;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM/E;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKpC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAU1C;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;IACH,aAAa,IAAI,IAAI;IAOrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IA0DvB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,qBAAqB;IA6C7B;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAS1C;;OAEG;IACH,WAAW,IAAI,IAAI;CAwBpB"}
@@ -7,6 +7,7 @@
7
7
  * picked up by MissingTranslationQueue, and synced through NetworkRepository.
8
8
  */
9
9
  import { BlockExtractor } from './block-extractor.js';
10
+ import { AttributeExtractor } from './attribute-extractor.js';
10
11
  import { DOMObserver } from './dom-observer.js';
11
12
  import { HTMLSerializer } from '../content/serializer/HTMLSerializer.js';
12
13
  import { generateAutoKey } from './md5.js';
@@ -14,6 +15,7 @@ const htmlSerializer = new HTMLSerializer();
14
15
  export class AutoTranslator {
15
16
  core = null;
16
17
  blockExtractor;
18
+ attributeExtractor;
17
19
  domObserver = null;
18
20
  locale = '';
19
21
  sourceLocale = '';
@@ -24,6 +26,7 @@ export class AutoTranslator {
24
26
  translatedCount = 0;
25
27
  constructor(config = {}) {
26
28
  this.blockExtractor = new BlockExtractor(config.excludePatterns, config.excludeSelectors, config.minTextLength);
29
+ this.attributeExtractor = new AttributeExtractor(config.excludePatterns, config.excludeSelectors, config.minTextLength);
27
30
  this.debounceMs = config.debounceMs ?? 100;
28
31
  }
29
32
  /**
@@ -72,8 +75,9 @@ export class AutoTranslator {
72
75
  if (!this.core) {
73
76
  return 0;
74
77
  }
75
- const extracted = this.blockExtractor.extract(element);
76
- return this.translateBlocks(extracted);
78
+ const blockCount = this.translateBlocks(this.blockExtractor.extract(element));
79
+ const attrCount = this.translateAttributesIn(this.attributeExtractor.extract(element));
80
+ return blockCount + attrCount;
77
81
  }
78
82
  /**
79
83
  * Translate the entire page
@@ -188,12 +192,87 @@ export class AutoTranslator {
188
192
  }
189
193
  return count;
190
194
  }
195
+ /**
196
+ * Translate extracted attribute units against the cache.
197
+ *
198
+ * Mirrors translateBlocks but for attribute values. For each hit, the
199
+ * original attribute value is preserved in `data-lr-orig-{name}` so
200
+ * retranslate() can restore source. The element accumulates a comma-
201
+ * separated `data-lionrapid-client-attrs` list naming every attr the
202
+ * client touched — so we can find them all on retranslate without
203
+ * iterating a fixed selector set.
204
+ *
205
+ * Cache misses emit `translation:not-found` with empty styles, so the
206
+ * existing MissingTranslationQueue + NetworkRepository sync queue
207
+ * picks them up unchanged.
208
+ */
209
+ translateAttributesIn(extracted) {
210
+ if (!this.core)
211
+ return 0;
212
+ let count = 0;
213
+ for (const { element, attrName, unit, key } of extracted) {
214
+ const fullKey = `${this.locale}:${this.namespace}:${key}`;
215
+ const cached = this.core.cache.get(fullKey);
216
+ if (cached && cached.value !== unit.text && cached.value !== key) {
217
+ const lower = attrName.toLowerCase();
218
+ const origAttr = `data-lr-orig-${lower}`;
219
+ // Preserve the source value the first time we touch this attr,
220
+ // so retranslate() can restore it even after multiple in-page
221
+ // language switches.
222
+ if (!element.hasAttribute(origAttr)) {
223
+ element.setAttribute(origAttr, unit.text);
224
+ }
225
+ element.setAttribute(attrName, cached.value);
226
+ element.setAttribute(`data-lr-attr-${lower}`, key);
227
+ // Append to the client-attrs list (dedup so multiple passes
228
+ // don't grow it without bound).
229
+ const existing = element.getAttribute('data-lionrapid-client-attrs') ?? '';
230
+ const set = new Set(existing.split(',').filter(Boolean));
231
+ set.add(lower);
232
+ element.setAttribute('data-lionrapid-client-attrs', Array.from(set).join(','));
233
+ count++;
234
+ }
235
+ else {
236
+ this.core.bus.emit('translation:not-found', {
237
+ payload: {
238
+ key,
239
+ fallbackValue: unit.text,
240
+ locale: this.sourceLocale,
241
+ namespace: this.namespace,
242
+ status: 404,
243
+ styles: {},
244
+ },
245
+ });
246
+ }
247
+ }
248
+ return count;
249
+ }
191
250
  /**
192
251
  * Get translated count
193
252
  */
194
253
  getTranslatedCount() {
195
254
  return this.translatedCount;
196
255
  }
256
+ /**
257
+ * Restore every client-translated attribute on `el` from its
258
+ * `data-lr-orig-*` backup, then strip the stamps. Mirrors the block-side
259
+ * restoration in retranslate() so language switch / editor reset clears
260
+ * attributes too.
261
+ */
262
+ restoreClientAttributes(el) {
263
+ const list = el.getAttribute('data-lionrapid-client-attrs');
264
+ if (list === null)
265
+ return;
266
+ for (const name of list.split(',').filter(Boolean)) {
267
+ const orig = el.getAttribute(`data-lr-orig-${name}`);
268
+ if (orig !== null) {
269
+ el.setAttribute(name, orig);
270
+ el.removeAttribute(`data-lr-orig-${name}`);
271
+ }
272
+ el.removeAttribute(`data-lr-attr-${name}`);
273
+ }
274
+ el.removeAttribute('data-lionrapid-client-attrs');
275
+ }
197
276
  /**
198
277
  * Re-translate a single element (for editor live preview reset)
199
278
  */
@@ -203,15 +282,16 @@ export class AutoTranslator {
203
282
  element.innerHTML = original;
204
283
  element.removeAttribute('data-lionrapid-client');
205
284
  element.removeAttribute('data-lr-block');
285
+ this.restoreClientAttributes(element);
206
286
  this.translateElement(element);
207
287
  }
208
288
  /**
209
289
  * Re-translate the page (after language change)
210
290
  */
211
291
  retranslate() {
212
- // Restore original HTML for all previously translated elements
213
- const translated = document.querySelectorAll('[data-lionrapid-client]');
214
- translated.forEach((el) => {
292
+ // Restore original HTML for all previously translated blocks
293
+ const translatedBlocks = document.querySelectorAll('[data-lionrapid-client]');
294
+ translatedBlocks.forEach((el) => {
215
295
  const original = el.getAttribute('data-lr-original');
216
296
  if (original !== null) {
217
297
  el.innerHTML = original;
@@ -219,6 +299,11 @@ export class AutoTranslator {
219
299
  el.removeAttribute('data-lionrapid-client');
220
300
  el.removeAttribute('data-lr-block');
221
301
  });
302
+ // Restore source values for client-translated attributes. Selector
303
+ // matches the marker the attribute pass writes; per-name lists live
304
+ // inside that attribute so we don't need a fixed selector per kind.
305
+ const translatedAttrs = document.querySelectorAll('[data-lionrapid-client-attrs]');
306
+ translatedAttrs.forEach((el) => this.restoreClientAttributes(el));
222
307
  // Re-translate (blocks are now back to source text, so auto_keys will be correct)
223
308
  this.translatedCount = 0;
224
309
  if (this.locale !== this.sourceLocale) {
@@ -1 +1 @@
1
- {"version":3,"file":"auto-translator.js","sourceRoot":"","sources":["../../src/browser/auto-translator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-translator.js","sourceRoot":"","sources":["../../src/browser/auto-translator.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,14 @@ export declare class BlockExtractor {
19
19
  * @param includeTranslated - If true, include elements already marked as translated (for editor mode)
20
20
  */
21
21
  extract(root: Element | Document, includeTranslated?: boolean): ExtractedBlock[];
22
+ /**
23
+ * Second pass: extract inline elements (currently <a>) that have no block
24
+ * ancestor. These would otherwise slip through both the block pass (not in
25
+ * BLOCK_SELECTOR) and the inline-style capture (no parent block to host
26
+ * them as `<1>...</1>`). Common shape: a `<div>` action group containing
27
+ * only links.
28
+ */
29
+ private extractOrphanInline;
22
30
  private isInsideSkipTag;
23
31
  private hasSkipAttribute;
24
32
  private matchesExcludeSelector;
@@ -1 +1 @@
1
- {"version":3,"file":"block-extractor.d.ts","sourceRoot":"","sources":["../../src/browser/block-extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAiB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA+BrE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAW;gBAGjC,eAAe,GAAE,OAAO,CAAC,eAAe,CAAM,EAC9C,gBAAgB,GAAE,MAAM,EAAO,EAC/B,aAAa,SAAI;IAMnB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,iBAAiB,UAAQ,GAAG,cAAc,EAAE;IAkF9E,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,sBAAsB;CAY/B"}
1
+ {"version":3,"file":"block-extractor.d.ts","sourceRoot":"","sources":["../../src/browser/block-extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAiB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAuCrE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAW;gBAGjC,eAAe,GAAE,OAAO,CAAC,eAAe,CAAM,EAC9C,gBAAgB,GAAE,MAAM,EAAO,EAC/B,aAAa,SAAI;IAMnB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,iBAAiB,UAAQ,GAAG,cAAc,EAAE;IAoF9E;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAiE3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,sBAAsB;CAY/B"}