markstream-svelte 0.0.1-beta.1

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 (233) hide show
  1. package/README.md +77 -0
  2. package/dist/components/AdmonitionNode.svelte +8 -0
  3. package/dist/components/AdmonitionNode.svelte.d.ts +23 -0
  4. package/dist/components/AdmonitionNode.svelte.d.ts.map +1 -0
  5. package/dist/components/BlockquoteNode.svelte +10 -0
  6. package/dist/components/BlockquoteNode.svelte.d.ts +24 -0
  7. package/dist/components/BlockquoteNode.svelte.d.ts.map +1 -0
  8. package/dist/components/CheckboxNode.svelte +5 -0
  9. package/dist/components/CheckboxNode.svelte.d.ts +22 -0
  10. package/dist/components/CheckboxNode.svelte.d.ts.map +1 -0
  11. package/dist/components/CodeBlockNode.svelte +944 -0
  12. package/dist/components/CodeBlockNode.svelte.d.ts +43 -0
  13. package/dist/components/CodeBlockNode.svelte.d.ts.map +1 -0
  14. package/dist/components/D2BlockNode.svelte +272 -0
  15. package/dist/components/D2BlockNode.svelte.d.ts +33 -0
  16. package/dist/components/D2BlockNode.svelte.d.ts.map +1 -0
  17. package/dist/components/DefinitionListNode.svelte +8 -0
  18. package/dist/components/DefinitionListNode.svelte.d.ts +23 -0
  19. package/dist/components/DefinitionListNode.svelte.d.ts.map +1 -0
  20. package/dist/components/EmojiNode.svelte +7 -0
  21. package/dist/components/EmojiNode.svelte.d.ts +22 -0
  22. package/dist/components/EmojiNode.svelte.d.ts.map +1 -0
  23. package/dist/components/EmphasisNode.svelte +8 -0
  24. package/dist/components/EmphasisNode.svelte.d.ts +24 -0
  25. package/dist/components/EmphasisNode.svelte.d.ts.map +1 -0
  26. package/dist/components/FallbackComponent.svelte +8 -0
  27. package/dist/components/FallbackComponent.svelte.d.ts +23 -0
  28. package/dist/components/FallbackComponent.svelte.d.ts.map +1 -0
  29. package/dist/components/FootnoteAnchorNode.svelte +21 -0
  30. package/dist/components/FootnoteAnchorNode.svelte.d.ts +22 -0
  31. package/dist/components/FootnoteAnchorNode.svelte.d.ts.map +1 -0
  32. package/dist/components/FootnoteNode.svelte +19 -0
  33. package/dist/components/FootnoteNode.svelte.d.ts +24 -0
  34. package/dist/components/FootnoteNode.svelte.d.ts.map +1 -0
  35. package/dist/components/FootnoteReferenceNode.svelte +26 -0
  36. package/dist/components/FootnoteReferenceNode.svelte.d.ts +22 -0
  37. package/dist/components/FootnoteReferenceNode.svelte.d.ts.map +1 -0
  38. package/dist/components/HardBreakNode.svelte +1 -0
  39. package/dist/components/HardBreakNode.svelte.d.ts +27 -0
  40. package/dist/components/HardBreakNode.svelte.d.ts.map +1 -0
  41. package/dist/components/HeadingNode.svelte +15 -0
  42. package/dist/components/HeadingNode.svelte.d.ts +24 -0
  43. package/dist/components/HeadingNode.svelte.d.ts.map +1 -0
  44. package/dist/components/HighlightNode.svelte +8 -0
  45. package/dist/components/HighlightNode.svelte.d.ts +24 -0
  46. package/dist/components/HighlightNode.svelte.d.ts.map +1 -0
  47. package/dist/components/HtmlBlockNode.svelte +8 -0
  48. package/dist/components/HtmlBlockNode.svelte.d.ts +23 -0
  49. package/dist/components/HtmlBlockNode.svelte.d.ts.map +1 -0
  50. package/dist/components/HtmlInlineNode.svelte +8 -0
  51. package/dist/components/HtmlInlineNode.svelte.d.ts +23 -0
  52. package/dist/components/HtmlInlineNode.svelte.d.ts.map +1 -0
  53. package/dist/components/HtmlPreviewFrame.svelte +13 -0
  54. package/dist/components/HtmlPreviewFrame.svelte.d.ts +26 -0
  55. package/dist/components/HtmlPreviewFrame.svelte.d.ts.map +1 -0
  56. package/dist/components/ImageNode.svelte +86 -0
  57. package/dist/components/ImageNode.svelte.d.ts +25 -0
  58. package/dist/components/ImageNode.svelte.d.ts.map +1 -0
  59. package/dist/components/InfographicBlockNode.svelte +429 -0
  60. package/dist/components/InfographicBlockNode.svelte.d.ts +34 -0
  61. package/dist/components/InfographicBlockNode.svelte.d.ts.map +1 -0
  62. package/dist/components/InlineCodeNode.svelte +7 -0
  63. package/dist/components/InlineCodeNode.svelte.d.ts +22 -0
  64. package/dist/components/InlineCodeNode.svelte.d.ts.map +1 -0
  65. package/dist/components/InlineWrapNode.svelte +10 -0
  66. package/dist/components/InlineWrapNode.svelte.d.ts +25 -0
  67. package/dist/components/InlineWrapNode.svelte.d.ts.map +1 -0
  68. package/dist/components/InsertNode.svelte +8 -0
  69. package/dist/components/InsertNode.svelte.d.ts +24 -0
  70. package/dist/components/InsertNode.svelte.d.ts.map +1 -0
  71. package/dist/components/LinkNode.svelte +41 -0
  72. package/dist/components/LinkNode.svelte.d.ts +25 -0
  73. package/dist/components/LinkNode.svelte.d.ts.map +1 -0
  74. package/dist/components/ListItemNode.svelte +9 -0
  75. package/dist/components/ListItemNode.svelte.d.ts +24 -0
  76. package/dist/components/ListItemNode.svelte.d.ts.map +1 -0
  77. package/dist/components/ListNode.svelte +16 -0
  78. package/dist/components/ListNode.svelte.d.ts +24 -0
  79. package/dist/components/ListNode.svelte.d.ts.map +1 -0
  80. package/dist/components/MarkdownCodeBlockNode.svelte +7 -0
  81. package/dist/components/MarkdownCodeBlockNode.svelte.d.ts +23 -0
  82. package/dist/components/MarkdownCodeBlockNode.svelte.d.ts.map +1 -0
  83. package/dist/components/MathBlockNode.svelte +96 -0
  84. package/dist/components/MathBlockNode.svelte.d.ts +22 -0
  85. package/dist/components/MathBlockNode.svelte.d.ts.map +1 -0
  86. package/dist/components/MathInlineNode.svelte +103 -0
  87. package/dist/components/MathInlineNode.svelte.d.ts +22 -0
  88. package/dist/components/MathInlineNode.svelte.d.ts.map +1 -0
  89. package/dist/components/MermaidBlockNode.svelte +557 -0
  90. package/dist/components/MermaidBlockNode.svelte.d.ts +40 -0
  91. package/dist/components/MermaidBlockNode.svelte.d.ts.map +1 -0
  92. package/dist/components/NodeOutlet.svelte +192 -0
  93. package/dist/components/NodeOutlet.svelte.d.ts +24 -0
  94. package/dist/components/NodeOutlet.svelte.d.ts.map +1 -0
  95. package/dist/components/NodeRenderer.svelte +349 -0
  96. package/dist/components/NodeRenderer.svelte.d.ts +64 -0
  97. package/dist/components/NodeRenderer.svelte.d.ts.map +1 -0
  98. package/dist/components/ParagraphNode.svelte +21 -0
  99. package/dist/components/ParagraphNode.svelte.d.ts +24 -0
  100. package/dist/components/ParagraphNode.svelte.d.ts.map +1 -0
  101. package/dist/components/PreCodeNode.svelte +13 -0
  102. package/dist/components/PreCodeNode.svelte.d.ts +22 -0
  103. package/dist/components/PreCodeNode.svelte.d.ts.map +1 -0
  104. package/dist/components/ReferenceNode.svelte +8 -0
  105. package/dist/components/ReferenceNode.svelte.d.ts +23 -0
  106. package/dist/components/ReferenceNode.svelte.d.ts.map +1 -0
  107. package/dist/components/RenderChildren.svelte +12 -0
  108. package/dist/components/RenderChildren.svelte.d.ts +24 -0
  109. package/dist/components/RenderChildren.svelte.d.ts.map +1 -0
  110. package/dist/components/StrikethroughNode.svelte +8 -0
  111. package/dist/components/StrikethroughNode.svelte.d.ts +24 -0
  112. package/dist/components/StrikethroughNode.svelte.d.ts.map +1 -0
  113. package/dist/components/StrongNode.svelte +8 -0
  114. package/dist/components/StrongNode.svelte.d.ts +24 -0
  115. package/dist/components/StrongNode.svelte.d.ts.map +1 -0
  116. package/dist/components/SubscriptNode.svelte +8 -0
  117. package/dist/components/SubscriptNode.svelte.d.ts +24 -0
  118. package/dist/components/SubscriptNode.svelte.d.ts.map +1 -0
  119. package/dist/components/SuperscriptNode.svelte +8 -0
  120. package/dist/components/SuperscriptNode.svelte.d.ts +24 -0
  121. package/dist/components/SuperscriptNode.svelte.d.ts.map +1 -0
  122. package/dist/components/TableNode.svelte +8 -0
  123. package/dist/components/TableNode.svelte.d.ts +23 -0
  124. package/dist/components/TableNode.svelte.d.ts.map +1 -0
  125. package/dist/components/TextNode.svelte +37 -0
  126. package/dist/components/TextNode.svelte.d.ts +25 -0
  127. package/dist/components/TextNode.svelte.d.ts.map +1 -0
  128. package/dist/components/ThematicBreakNode.svelte +1 -0
  129. package/dist/components/ThematicBreakNode.svelte.d.ts +27 -0
  130. package/dist/components/ThematicBreakNode.svelte.d.ts.map +1 -0
  131. package/dist/components/Tooltip.svelte +4 -0
  132. package/dist/components/Tooltip.svelte.d.ts +21 -0
  133. package/dist/components/Tooltip.svelte.d.ts.map +1 -0
  134. package/dist/components/VmrContainerNode.svelte +8 -0
  135. package/dist/components/VmrContainerNode.svelte.d.ts +23 -0
  136. package/dist/components/VmrContainerNode.svelte.d.ts.map +1 -0
  137. package/dist/components/shared/diagram-height.d.ts +10 -0
  138. package/dist/components/shared/diagram-height.d.ts.map +1 -0
  139. package/dist/components/shared/diagram-height.js +52 -0
  140. package/dist/components/shared/node-helpers.d.ts +108 -0
  141. package/dist/components/shared/node-helpers.d.ts.map +1 -0
  142. package/dist/components/shared/node-helpers.js +220 -0
  143. package/dist/components/shared/node-outlet-helpers.d.ts +9 -0
  144. package/dist/components/shared/node-outlet-helpers.d.ts.map +1 -0
  145. package/dist/components/shared/node-outlet-helpers.js +92 -0
  146. package/dist/components/shared/render-window.d.ts +19 -0
  147. package/dist/components/shared/render-window.d.ts.map +1 -0
  148. package/dist/components/shared/render-window.js +63 -0
  149. package/dist/components/shared/renderNodeHtml.d.ts +4 -0
  150. package/dist/components/shared/renderNodeHtml.d.ts.map +1 -0
  151. package/dist/components/shared/renderNodeHtml.js +19 -0
  152. package/dist/components/shared/rich-block-helpers.d.ts +7 -0
  153. package/dist/components/shared/rich-block-helpers.d.ts.map +1 -0
  154. package/dist/components/shared/rich-block-helpers.js +76 -0
  155. package/dist/customComponents.d.ts +10 -0
  156. package/dist/customComponents.d.ts.map +1 -0
  157. package/dist/customComponents.js +66 -0
  158. package/dist/enhanceRenderedHtml.d.ts +21 -0
  159. package/dist/enhanceRenderedHtml.d.ts.map +1 -0
  160. package/dist/enhanceRenderedHtml.js +768 -0
  161. package/dist/hydrateCustomTagContent.d.ts +3 -0
  162. package/dist/hydrateCustomTagContent.d.ts.map +1 -0
  163. package/dist/hydrateCustomTagContent.js +130 -0
  164. package/dist/i18n/useSafeI18n.d.ts +5 -0
  165. package/dist/i18n/useSafeI18n.d.ts.map +1 -0
  166. package/dist/i18n/useSafeI18n.js +42 -0
  167. package/dist/index.css +2009 -0
  168. package/dist/index.d.ts +78 -0
  169. package/dist/index.d.ts.map +1 -0
  170. package/dist/index.js +66 -0
  171. package/dist/index.px.css +2009 -0
  172. package/dist/index.tailwind.css +2009 -0
  173. package/dist/optional/d2.d.ts +7 -0
  174. package/dist/optional/d2.d.ts.map +1 -0
  175. package/dist/optional/d2.js +67 -0
  176. package/dist/optional/infographic.d.ts +2 -0
  177. package/dist/optional/infographic.d.ts.map +1 -0
  178. package/dist/optional/infographic.js +29 -0
  179. package/dist/optional/katex.d.ts +7 -0
  180. package/dist/optional/katex.d.ts.map +1 -0
  181. package/dist/optional/katex.js +93 -0
  182. package/dist/optional/mermaid.d.ts +7 -0
  183. package/dist/optional/mermaid.d.ts.map +1 -0
  184. package/dist/optional/mermaid.js +171 -0
  185. package/dist/optional/monaco.d.ts +5 -0
  186. package/dist/optional/monaco.d.ts.map +1 -0
  187. package/dist/optional/monaco.js +70 -0
  188. package/dist/parseNestedMarkdownToNodes.d.ts +15 -0
  189. package/dist/parseNestedMarkdownToNodes.d.ts.map +1 -0
  190. package/dist/parseNestedMarkdownToNodes.js +66 -0
  191. package/dist/renderMarkdownHtml.d.ts +31 -0
  192. package/dist/renderMarkdownHtml.d.ts.map +1 -0
  193. package/dist/renderMarkdownHtml.js +465 -0
  194. package/dist/sanitizeHtmlContent.d.ts +3 -0
  195. package/dist/sanitizeHtmlContent.d.ts.map +1 -0
  196. package/dist/sanitizeHtmlContent.js +175 -0
  197. package/dist/sanitizeSvg.d.ts +3 -0
  198. package/dist/sanitizeSvg.d.ts.map +1 -0
  199. package/dist/sanitizeSvg.js +76 -0
  200. package/dist/tailwind-entry.d.ts +2 -0
  201. package/dist/tailwind-entry.d.ts.map +1 -0
  202. package/dist/tailwind-entry.js +1 -0
  203. package/dist/tooltip/singletonTooltip.d.ts +8 -0
  204. package/dist/tooltip/singletonTooltip.d.ts.map +1 -0
  205. package/dist/tooltip/singletonTooltip.js +124 -0
  206. package/dist/types/monaco.d.ts +66 -0
  207. package/dist/types/monaco.d.ts.map +1 -0
  208. package/dist/types/monaco.js +1 -0
  209. package/dist/utils/languageIcon.d.ts +8 -0
  210. package/dist/utils/languageIcon.d.ts.map +1 -0
  211. package/dist/utils/languageIcon.js +182 -0
  212. package/dist/utils/normalizeKaTeXRenderInput.d.ts +2 -0
  213. package/dist/utils/normalizeKaTeXRenderInput.d.ts.map +1 -0
  214. package/dist/utils/normalizeKaTeXRenderInput.js +7 -0
  215. package/dist/workers/katexCdnWorker.d.ts +21 -0
  216. package/dist/workers/katexCdnWorker.d.ts.map +1 -0
  217. package/dist/workers/katexCdnWorker.js +193 -0
  218. package/dist/workers/katexRenderer.worker.d.ts +2 -0
  219. package/dist/workers/katexRenderer.worker.d.ts.map +1 -0
  220. package/dist/workers/katexRenderer.worker.js +55 -0
  221. package/dist/workers/katexWorkerClient.d.ts +36 -0
  222. package/dist/workers/katexWorkerClient.d.ts.map +1 -0
  223. package/dist/workers/katexWorkerClient.js +270 -0
  224. package/dist/workers/mermaidCdnWorker.d.ts +16 -0
  225. package/dist/workers/mermaidCdnWorker.d.ts.map +1 -0
  226. package/dist/workers/mermaidCdnWorker.js +235 -0
  227. package/dist/workers/mermaidParser.worker.d.ts +2 -0
  228. package/dist/workers/mermaidParser.worker.d.ts.map +1 -0
  229. package/dist/workers/mermaidParser.worker.js +85 -0
  230. package/dist/workers/mermaidWorkerClient.d.ts +16 -0
  231. package/dist/workers/mermaidWorkerClient.d.ts.map +1 -0
  232. package/dist/workers/mermaidWorkerClient.js +170 -0
  233. package/package.json +95 -0
@@ -0,0 +1,3 @@
1
+ import type { BaseNode } from 'stream-markdown-parser';
2
+ export declare function hydrateCustomTagContent<T extends BaseNode>(nodes: readonly T[] | null | undefined, source: string, customHtmlTags?: readonly string[]): T[];
3
+ //# sourceMappingURL=hydrateCustomTagContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrateCustomTagContent.d.ts","sourceRoot":"","sources":["../src/hydrateCustomTagContent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAoBtD,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,QAAQ,EACxD,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,EACtC,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GACjC,CAAC,EAAE,CA0CL"}
@@ -0,0 +1,130 @@
1
+ import { normalizeCustomHtmlTags, normalizeCustomHtmlTagName as normalizeTagName } from 'stream-markdown-parser';
2
+ const TAG_TOKEN_RE = /<\/?([A-Z][\w:-]*)(?:\s[^<>]*)?>/gi;
3
+ export function hydrateCustomTagContent(nodes, source, customHtmlTags) {
4
+ const normalizedTags = normalizeCustomHtmlTags(customHtmlTags);
5
+ const tagSet = new Set(normalizedTags);
6
+ if (!source || tagSet.size === 0 || !Array.isArray(nodes) || nodes.length === 0)
7
+ return Array.isArray(nodes) ? nodes.slice() : [];
8
+ const segments = collectCustomTagSegments(source, tagSet);
9
+ if (segments.length === 0)
10
+ return nodes.slice();
11
+ let segmentIndex = 0;
12
+ const cloned = nodes.map(node => cloneNodeTree(node));
13
+ const visitNode = (node) => {
14
+ if (!node || typeof node !== 'object')
15
+ return;
16
+ const tag = resolveCustomTagName(node, tagSet);
17
+ if (tag) {
18
+ const segment = consumeNextSegment(segments, tag, () => segmentIndex, nextIndex => (segmentIndex = nextIndex));
19
+ if (segment) {
20
+ node.tag = tag;
21
+ node.type = tag;
22
+ node.content = segment.innerContent;
23
+ node.raw = segment.raw;
24
+ if (typeof node.loading !== 'boolean')
25
+ node.loading = segment.loading;
26
+ }
27
+ }
28
+ for (const value of Object.values(node)) {
29
+ if (!Array.isArray(value))
30
+ continue;
31
+ for (const child of value)
32
+ visitNode(child);
33
+ }
34
+ };
35
+ for (const node of cloned)
36
+ visitNode(node);
37
+ return cloned;
38
+ }
39
+ function collectCustomTagSegments(source, tagSet) {
40
+ const stack = [];
41
+ const segments = [];
42
+ let match;
43
+ TAG_TOKEN_RE.lastIndex = 0;
44
+ while ((match = TAG_TOKEN_RE.exec(source)) !== null) {
45
+ const raw = match[0];
46
+ const tag = normalizeTagName(match[1]);
47
+ if (!tag || !tagSet.has(tag))
48
+ continue;
49
+ const isClosing = raw.startsWith('</');
50
+ if (!isClosing) {
51
+ stack.push({
52
+ tag,
53
+ start: match.index,
54
+ openEnd: TAG_TOKEN_RE.lastIndex,
55
+ });
56
+ continue;
57
+ }
58
+ const openIndex = findLastOpenIndex(stack, tag);
59
+ if (openIndex < 0)
60
+ continue;
61
+ const [open] = stack.splice(openIndex, 1);
62
+ const closeStart = match.index;
63
+ const closeEnd = TAG_TOKEN_RE.lastIndex;
64
+ segments.push({
65
+ tag,
66
+ start: open.start,
67
+ end: closeEnd,
68
+ innerContent: source.slice(open.openEnd, closeStart),
69
+ raw: source.slice(open.start, closeEnd),
70
+ loading: false,
71
+ });
72
+ }
73
+ for (const open of stack) {
74
+ segments.push({
75
+ tag: open.tag,
76
+ start: open.start,
77
+ end: source.length,
78
+ innerContent: source.slice(open.openEnd),
79
+ raw: source.slice(open.start),
80
+ loading: true,
81
+ });
82
+ }
83
+ return segments.sort((left, right) => {
84
+ if (left.start !== right.start)
85
+ return left.start - right.start;
86
+ return right.end - left.end;
87
+ });
88
+ }
89
+ function findLastOpenIndex(stack, tag) {
90
+ var _a;
91
+ for (let index = stack.length - 1; index >= 0; index -= 1) {
92
+ if (((_a = stack[index]) === null || _a === void 0 ? void 0 : _a.tag) === tag)
93
+ return index;
94
+ }
95
+ return -1;
96
+ }
97
+ function consumeNextSegment(segments, tag, getIndex, setIndex) {
98
+ let index = getIndex();
99
+ while (index < segments.length) {
100
+ const segment = segments[index];
101
+ index += 1;
102
+ if (segment.tag !== tag)
103
+ continue;
104
+ setIndex(index);
105
+ return segment;
106
+ }
107
+ setIndex(index);
108
+ return null;
109
+ }
110
+ function resolveCustomTagName(node, tagSet) {
111
+ const byTag = normalizeTagName(node.tag);
112
+ if (byTag && tagSet.has(byTag))
113
+ return byTag;
114
+ const byType = normalizeTagName(node.type);
115
+ return byType && tagSet.has(byType) ? byType : '';
116
+ }
117
+ function cloneNodeTree(node) {
118
+ if (!node || typeof node !== 'object')
119
+ return node;
120
+ const cloned = Array.isArray(node)
121
+ ? node.map(item => cloneNodeTree(item))
122
+ : { ...node };
123
+ if (!Array.isArray(cloned)) {
124
+ for (const [key, value] of Object.entries(cloned)) {
125
+ if (Array.isArray(value))
126
+ cloned[key] = value.map(item => cloneNodeTree(item));
127
+ }
128
+ }
129
+ return cloned;
130
+ }
@@ -0,0 +1,5 @@
1
+ export declare function setDefaultI18nMap(map: Record<string, string>): void;
2
+ export declare function useSafeI18n(): {
3
+ t(key: string): string;
4
+ };
5
+ //# sourceMappingURL=useSafeI18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSafeI18n.d.ts","sourceRoot":"","sources":["../../src/i18n/useSafeI18n.ts"],"names":[],"mappings":"AAiCA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAE5D;AAED,wBAAgB,WAAW;WAEhB,MAAM;EAIhB"}
@@ -0,0 +1,42 @@
1
+ function humanizeKey(key) {
2
+ const suffix = key.split('.').pop() || key;
3
+ return suffix
4
+ .replace(/[_-]/g, ' ')
5
+ .replace(/([A-Z])/g, ' $1')
6
+ .replace(/\s+/g, ' ')
7
+ .replace(/\b\w/g, char => char.toUpperCase())
8
+ .trim();
9
+ }
10
+ const defaultMap = {
11
+ 'common.copy': 'Copy',
12
+ 'common.copied': 'Copied',
13
+ 'common.decrease': 'Decrease',
14
+ 'common.reset': 'Reset',
15
+ 'common.increase': 'Increase',
16
+ 'common.expand': 'Expand',
17
+ 'common.collapse': 'Collapse',
18
+ 'common.preview': 'Preview',
19
+ 'common.source': 'Source',
20
+ 'common.export': 'Export',
21
+ 'common.open': 'Open',
22
+ 'common.close': 'Close',
23
+ 'common.zoomIn': 'Zoom in',
24
+ 'common.zoomOut': 'Zoom out',
25
+ 'common.resetZoom': 'Reset zoom',
26
+ 'artifacts.htmlPreviewTitle': 'HTML Preview',
27
+ 'artifacts.svgPreviewTitle': 'SVG Preview',
28
+ 'image.preview': 'Preview image',
29
+ 'image.loadError': 'Image failed to load',
30
+ 'image.loading': 'Loading image...',
31
+ };
32
+ export function setDefaultI18nMap(map) {
33
+ Object.assign(defaultMap, map);
34
+ }
35
+ export function useSafeI18n() {
36
+ return {
37
+ t(key) {
38
+ var _a;
39
+ return (_a = defaultMap[key]) !== null && _a !== void 0 ? _a : humanizeKey(key);
40
+ },
41
+ };
42
+ }