@bendyline/docblocks-react 1.1.0 → 1.1.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 (53) hide show
  1. package/dist/AppMenu/AppMenu.d.ts +11 -1
  2. package/dist/AppMenu/AppMenu.d.ts.map +1 -1
  3. package/dist/AppMenu/AppMenu.js +2 -2
  4. package/dist/AppMenu/AppMenu.js.map +1 -1
  5. package/dist/DocBlocksShell/DocBlocksShell.d.ts +21 -1
  6. package/dist/DocBlocksShell/DocBlocksShell.d.ts.map +1 -1
  7. package/dist/DocBlocksShell/DocBlocksShell.js +562 -67
  8. package/dist/DocBlocksShell/DocBlocksShell.js.map +1 -1
  9. package/dist/Export/ExportDialog.d.ts.map +1 -1
  10. package/dist/Export/ExportDialog.js +104 -5
  11. package/dist/Export/ExportDialog.js.map +1 -1
  12. package/dist/Export/ExportToolbarControls.d.ts.map +1 -1
  13. package/dist/Export/ExportToolbarControls.js +44 -3
  14. package/dist/Export/ExportToolbarControls.js.map +1 -1
  15. package/dist/Export/export-options.d.ts +35 -0
  16. package/dist/Export/export-options.d.ts.map +1 -1
  17. package/dist/Export/export-options.js +6 -1
  18. package/dist/Export/export-options.js.map +1 -1
  19. package/dist/Export/run-export.d.ts.map +1 -1
  20. package/dist/Export/run-export.js +163 -91
  21. package/dist/Export/run-export.js.map +1 -1
  22. package/dist/FileExplorer/FileExplorer.d.ts.map +1 -1
  23. package/dist/FileExplorer/FileExplorer.js +17 -2
  24. package/dist/FileExplorer/FileExplorer.js.map +1 -1
  25. package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts +2 -1
  26. package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts.map +1 -1
  27. package/dist/WorkspacePicker/WorkspaceSettingsButton.js +2 -2
  28. package/dist/WorkspacePicker/WorkspaceSettingsButton.js.map +1 -1
  29. package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts +20 -0
  30. package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts.map +1 -0
  31. package/dist/WorkspacePicker/WorkspaceSettingsDialog.js +36 -0
  32. package/dist/WorkspacePicker/WorkspaceSettingsDialog.js.map +1 -0
  33. package/dist/hooks/useAutoSave.d.ts +8 -2
  34. package/dist/hooks/useAutoSave.d.ts.map +1 -1
  35. package/dist/hooks/useAutoSave.js +65 -30
  36. package/dist/hooks/useAutoSave.js.map +1 -1
  37. package/dist/preferences/versioning.d.ts +27 -0
  38. package/dist/preferences/versioning.d.ts.map +1 -0
  39. package/dist/preferences/versioning.js +62 -0
  40. package/dist/preferences/versioning.js.map +1 -0
  41. package/package.json +10 -8
  42. package/src/AppMenu/AppMenu.tsx +64 -1
  43. package/src/DocBlocksShell/DocBlocksShell.tsx +756 -80
  44. package/src/Export/ExportDialog.tsx +208 -19
  45. package/src/Export/ExportToolbarControls.tsx +45 -3
  46. package/src/Export/export-options.ts +43 -1
  47. package/src/Export/run-export.ts +190 -91
  48. package/src/FileExplorer/FileExplorer.tsx +31 -9
  49. package/src/WorkspacePicker/WorkspaceSettingsButton.tsx +9 -0
  50. package/src/WorkspacePicker/WorkspaceSettingsDialog.tsx +121 -0
  51. package/src/hooks/useAutoSave.ts +87 -29
  52. package/src/preferences/versioning.ts +69 -0
  53. package/src/styles/docblocks.css +920 -53
@@ -7,6 +7,10 @@ import { applyTransform } from '@bendyline/squisq/transform';
7
7
  import { markdownDocToDocx } from '@bendyline/squisq-formats/docx';
8
8
  import { markdownDocToPdf } from '@bendyline/squisq-formats/pdf';
9
9
  import { docToPptx } from '@bendyline/squisq-formats/pptx';
10
+ import { docToHtml, docToHtmlZip, collectImagePaths, markdownDocsToPlainHtmlBundle, markdownDocsToHtmlBundle, markdownDocToPlainHtml, } from '@bendyline/squisq-formats/html';
11
+ import { containerToZip } from '@bendyline/squisq-formats/container';
12
+ import { MemoryContentContainer } from '@bendyline/squisq/storage';
13
+ import { PLAYER_BUNDLE } from '@bendyline/squisq-react/standalone-source';
10
14
  import { FORMAT_EXTENSIONS } from './export-options.js';
11
15
  const MIME_TYPES = {
12
16
  docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
@@ -38,8 +42,7 @@ export async function runExport(markdown, selectedFile, options, mediaContainer)
38
42
  return;
39
43
  }
40
44
  if (options.format === 'html') {
41
- const html = wrapMarkdownAsHtml(markdown);
42
- downloadBlob(new Blob([html], { type: MIME_TYPES.html }), filename);
45
+ await runHtmlExport(markdown, filename, options, mediaContainer, selectedFile);
43
46
  return;
44
47
  }
45
48
  const doc = parseMarkdown(markdown);
@@ -70,92 +73,115 @@ export async function runExport(markdown, selectedFile, options, mediaContainer)
70
73
  return;
71
74
  }
72
75
  }
73
- /** Wrap raw markdown in a basic styled HTML page. */
74
- function wrapMarkdownAsHtml(markdown) {
75
- // Convert markdown to simple HTML via the parser
76
- const doc = parseMarkdown(markdown);
77
- // Build a minimal representation from the parsed nodes
78
- const lines = [];
79
- for (const node of doc.children) {
80
- lines.push(nodeToHtml(node));
76
+ /** Run the HTML export branch handles all four htmlStyle × htmlBundle combinations. */
77
+ async function runHtmlExport(markdown, htmlFilename, options, mediaContainer, selectedFile) {
78
+ const baseName = htmlFilename.replace(/\.html$/, '');
79
+ const zipName = `${baseName}.zip`;
80
+ // When `entryAsIndex` is on, a single-doc HTML download lands on
81
+ // disk as `index.html` so it drops straight into a static host. The
82
+ // recursive ZIP path doesn't care — squisq's bundle helpers handle
83
+ // the inside-zip rename and the cross-doc link rewrite themselves.
84
+ const singleHtmlFilename = options.entryAsIndex ? 'index.html' : htmlFilename;
85
+ const themeId = options.themeId !== 'standard' ? options.themeId : undefined;
86
+ // Recursive HTML bundle: when the user opted in, ask squisq to walk
87
+ // this doc's relative .md links and emit a ZIP with every reachable
88
+ // page rendered + cross-doc hrefs rewritten. Two pipelines:
89
+ // • Plain → `markdownDocsToPlainHtmlBundle` (semantic HTML)
90
+ // • Rendered → `markdownDocsToHtmlBundle` (SquisqPlayer-rendered,
91
+ // shared `squisq-player.js`, Doc-tree link rewrites)
92
+ // Both consume the workspace container to resolve sibling files —
93
+ // `mediaContainer` is already scoped to the selected file's parent
94
+ // dir, which is exactly the bundle's scope root. Falls back to the
95
+ // single-doc path if either prerequisite is missing rather than
96
+ // silently skipping the recursion.
97
+ if (options.includeLinkedDocs && mediaContainer && selectedFile) {
98
+ const entryPath = basenameForBundle(selectedFile);
99
+ if (options.htmlStyle === 'rendered') {
100
+ const blob = await markdownDocsToHtmlBundle({
101
+ entryPath,
102
+ readDocument: (path) => readDocumentFromContainer(mediaContainer, path),
103
+ readBinary: (path) => mediaContainer.readFile(path),
104
+ playerScript: PLAYER_BUNDLE,
105
+ title: baseName,
106
+ themeId,
107
+ mode: 'static',
108
+ entryAsIndex: options.entryAsIndex,
109
+ });
110
+ downloadBlob(blob, zipName);
111
+ return;
112
+ }
113
+ const blob = await markdownDocsToPlainHtmlBundle({
114
+ entryPath,
115
+ readDocument: (path) => readDocumentFromContainer(mediaContainer, path),
116
+ readBinary: (path) => mediaContainer.readFile(path),
117
+ title: baseName,
118
+ themeId,
119
+ entryAsIndex: options.entryAsIndex,
120
+ });
121
+ downloadBlob(blob, zipName);
122
+ return;
81
123
  }
82
- const body = lines.join('\n');
83
- return `<!DOCTYPE html>
84
- <html lang="en">
85
- <head>
86
- <meta charset="UTF-8">
87
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
88
- <title>Document</title>
89
- <style>
90
- body { font-family: system-ui, -apple-system, sans-serif; max-width: 800px; margin: 2em auto; padding: 0 1em; line-height: 1.6; color: #1f2937; }
91
- h1, h2, h3, h4, h5, h6 { margin-top: 1.5em; margin-bottom: 0.5em; }
92
- pre { background: #f3f4f6; padding: 1em; border-radius: 4px; overflow-x: auto; }
93
- code { background: #f3f4f6; padding: 0.15em 0.3em; border-radius: 3px; font-size: 0.9em; }
94
- pre code { background: none; padding: 0; }
95
- blockquote { border-left: 3px solid #d1d5db; margin-left: 0; padding-left: 1em; color: #6b7280; }
96
- img { max-width: 100%; }
97
- a { color: #3b82f6; }
98
- </style>
99
- </head>
100
- <body>
101
- ${body}
102
- </body>
103
- </html>`;
104
- }
105
- /** Convert a markdown AST node to HTML (basic). */
106
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
- function nodeToHtml(node) {
108
- if (!node)
109
- return '';
110
- switch (node.type) {
111
- case 'heading': {
112
- const tag = `h${node.depth ?? 1}`;
113
- return `<${tag}>${childrenToHtml(node)}</${tag}>`;
124
+ if (options.htmlStyle === 'rendered') {
125
+ const mdDoc = parseMarkdown(markdown);
126
+ const baseDoc = markdownToDoc(mdDoc);
127
+ if (themeId)
128
+ baseDoc.themeId = themeId;
129
+ const images = mediaContainer ? await resolveDocImages(baseDoc, mediaContainer) : undefined;
130
+ if (options.htmlBundle === 'zip') {
131
+ const blob = await docToHtmlZip(baseDoc, {
132
+ playerScript: PLAYER_BUNDLE,
133
+ images,
134
+ mode: 'static',
135
+ title: baseName,
136
+ });
137
+ downloadBlob(blob, zipName);
138
+ return;
114
139
  }
115
- case 'paragraph':
116
- return `<p>${childrenToHtml(node)}</p>`;
117
- case 'text':
118
- return escapeHtml(node.value ?? '');
119
- case 'strong':
120
- return `<strong>${childrenToHtml(node)}</strong>`;
121
- case 'emphasis':
122
- return `<em>${childrenToHtml(node)}</em>`;
123
- case 'delete':
124
- return `<del>${childrenToHtml(node)}</del>`;
125
- case 'inlineCode':
126
- return `<code>${escapeHtml(node.value ?? '')}</code>`;
127
- case 'code':
128
- return `<pre><code>${escapeHtml(node.value ?? '')}</code></pre>`;
129
- case 'blockquote':
130
- return `<blockquote>${childrenToHtml(node)}</blockquote>`;
131
- case 'list': {
132
- const tag = node.ordered ? 'ol' : 'ul';
133
- return `<${tag}>${childrenToHtml(node)}</${tag}>`;
140
+ const html = docToHtml(baseDoc, {
141
+ playerScript: PLAYER_BUNDLE,
142
+ images,
143
+ mode: 'static',
144
+ title: baseName,
145
+ });
146
+ downloadBlob(new Blob([html], { type: MIME_TYPES.html }), singleHtmlFilename);
147
+ return;
148
+ }
149
+ // Plain semantic HTML
150
+ const mdDoc = parseMarkdown(markdown);
151
+ const referencedImages = collectMarkdownImageUrls(mdDoc);
152
+ const localImages = referencedImages.filter((u) => !isExternalUrl(u));
153
+ if (options.htmlBundle === 'zip' && mediaContainer && localImages.length > 0) {
154
+ // Mirror the markdown's relative paths inside the zip so <img src="..."> still resolves.
155
+ const html = markdownDocToPlainHtml(mdDoc, { title: baseName, themeId });
156
+ const container = new MemoryContentContainer();
157
+ await container.writeFile('index.html', new TextEncoder().encode(html));
158
+ for (const url of localImages) {
159
+ const data = await mediaContainer.readFile(url);
160
+ if (!data)
161
+ continue;
162
+ const cleanPath = url.replace(/^\/+/, '');
163
+ await container.writeFile(cleanPath, new Uint8Array(data));
134
164
  }
135
- case 'listItem':
136
- return `<li>${childrenToHtml(node)}</li>`;
137
- case 'link':
138
- return `<a href="${escapeAttr(node.url ?? '')}">${childrenToHtml(node)}</a>`;
139
- case 'image':
140
- return `<img src="${escapeAttr(node.url ?? '')}" alt="${escapeAttr(node.alt ?? '')}" />`;
141
- case 'thematicBreak':
142
- return '<hr />';
143
- default:
144
- return node.children ? childrenToHtml(node) : escapeHtml(node.value ?? '');
165
+ const blob = await containerToZip(container);
166
+ downloadBlob(blob, zipName);
167
+ return;
145
168
  }
146
- }
147
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
148
- function childrenToHtml(node) {
149
- if (!node.children)
150
- return node.value ? escapeHtml(node.value) : '';
151
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
152
- return node.children.map((c) => nodeToHtml(c)).join('');
153
- }
154
- function escapeHtml(s) {
155
- return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
156
- }
157
- function escapeAttr(s) {
158
- return escapeHtml(s).replace(/"/g, '&quot;');
169
+ // Single-file plain HTML — embed local images as base64 data URIs.
170
+ const inlineMap = new Map();
171
+ if (mediaContainer) {
172
+ for (const url of localImages) {
173
+ const data = await mediaContainer.readFile(url);
174
+ if (!data)
175
+ continue;
176
+ inlineMap.set(url, arrayBufferToDataUrl(data, url));
177
+ }
178
+ }
179
+ const html = markdownDocToPlainHtml(mdDoc, {
180
+ title: baseName,
181
+ images: inlineMap.size > 0 ? inlineMap : undefined,
182
+ themeId,
183
+ });
184
+ downloadBlob(new Blob([html], { type: MIME_TYPES.html }), singleHtmlFilename);
159
185
  }
160
186
  const IMAGE_MIME = {
161
187
  png: 'image/png',
@@ -164,14 +190,32 @@ const IMAGE_MIME = {
164
190
  gif: 'image/gif',
165
191
  webp: 'image/webp',
166
192
  bmp: 'image/bmp',
193
+ svg: 'image/svg+xml',
167
194
  };
195
+ function isExternalUrl(url) {
196
+ return (url.startsWith('http://') ||
197
+ url.startsWith('https://') ||
198
+ url.startsWith('data:') ||
199
+ url.startsWith('blob:'));
200
+ }
201
+ function arrayBufferToDataUrl(data, url) {
202
+ const ext = url.slice(url.lastIndexOf('.') + 1).toLowerCase();
203
+ const mime = IMAGE_MIME[ext] ?? 'application/octet-stream';
204
+ // btoa requires a binary string; chunk to avoid call-stack issues on large files.
205
+ const bytes = new Uint8Array(data);
206
+ let binary = '';
207
+ const CHUNK = 0x8000;
208
+ for (let i = 0; i < bytes.length; i += CHUNK) {
209
+ binary += String.fromCharCode(...bytes.subarray(i, i + CHUNK));
210
+ }
211
+ return `data:${mime};base64,${btoa(binary)}`;
212
+ }
168
213
  /** Walk the markdown AST and collect all image URLs. */
169
- function collectImageUrls(doc) {
214
+ function collectMarkdownImageUrls(doc) {
170
215
  const urls = [];
171
216
  function walkBlocks(nodes) {
172
217
  for (const node of nodes) {
173
218
  if ('children' in node && Array.isArray(node.children)) {
174
- // Check if children are inline or block nodes
175
219
  for (const child of node.children) {
176
220
  if (child.type === 'image') {
177
221
  urls.push(child.url);
@@ -184,17 +228,16 @@ function collectImageUrls(doc) {
184
228
  }
185
229
  }
186
230
  walkBlocks(doc.children);
187
- return urls;
231
+ return Array.from(new Set(urls));
188
232
  }
189
- /** Resolve image URLs to binary data from a ContentContainer. */
233
+ /** Resolve image URLs (markdown → docx) to binary data from a ContentContainer. */
190
234
  async function resolveImages(doc, container) {
191
- const urls = collectImageUrls(doc);
235
+ const urls = collectMarkdownImageUrls(doc);
192
236
  const map = new Map();
193
237
  for (const url of urls) {
194
238
  if (map.has(url))
195
239
  continue;
196
- // Skip external URLs
197
- if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith('data:'))
240
+ if (isExternalUrl(url))
198
241
  continue;
199
242
  const data = await container.readFile(url);
200
243
  if (!data)
@@ -205,4 +248,33 @@ async function resolveImages(doc, container) {
205
248
  }
206
249
  return map;
207
250
  }
251
+ /** Container-relative path for the bundle's entry document. `mediaContainer`
252
+ * is already scoped to the selected file's parent directory, so the bundle
253
+ * needs the basename ("docs/home.md" → "home.md"). */
254
+ function basenameForBundle(selectedFile) {
255
+ const clean = selectedFile.replace(/^\/+/, '');
256
+ const idx = clean.lastIndexOf('/');
257
+ return idx === -1 ? clean : clean.slice(idx + 1);
258
+ }
259
+ /** Read a UTF-8 text document from a ContentContainer. Returns null when
260
+ * the file is missing — preserves the bundle's "abort with error" contract
261
+ * for unreachable .md links. */
262
+ async function readDocumentFromContainer(container, path) {
263
+ const data = await container.readFile(path);
264
+ if (!data)
265
+ return null;
266
+ return new TextDecoder('utf-8').decode(data);
267
+ }
268
+ /** Resolve image paths referenced by a squisq Doc to ArrayBuffers for HTML export. */
269
+ async function resolveDocImages(doc, container) {
270
+ const paths = collectImagePaths(doc);
271
+ const map = new Map();
272
+ for (const path of paths) {
273
+ const data = await container.readFile(path);
274
+ if (!data)
275
+ continue;
276
+ map.set(path, data);
277
+ }
278
+ return map;
279
+ }
208
280
  //# sourceMappingURL=run-export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-export.js","sourceRoot":"","sources":["../../src/Export/run-export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-export.js","sourceRoot":"","sources":["../../src/Export/run-export.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileExplorer.d.ts","sourceRoot":"","sources":["../../src/FileExplorer/FileExplorer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,iCAAiC,CAAC;AAO3F,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC;IAC9D,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,SAAS,GACV,EAAE,iBAAiB,2CAiOnB"}
1
+ {"version":3,"file":"FileExplorer.d.ts","sourceRoot":"","sources":["../../src/FileExplorer/FileExplorer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,iCAAiC,CAAC;AAuB3F,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC;IAC9D,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,SAAS,GACV,EAAE,iBAAiB,2CAuOnB"}
@@ -10,6 +10,21 @@ import { useFileTree } from './useFileTree.js';
10
10
  import { FileTreeNode } from './FileTreeNode.js';
11
11
  import { NewFileIcon, NewFolderIcon, RefreshIcon } from '../icons.js';
12
12
  const SUPPORTED_EXTENSIONS = new Set(['.txt', '.md', '.docx', '.pdf', '.dbk', '.zip']);
13
+ /**
14
+ * Hide auto-generated `<basename>_files/` companion folders from the
15
+ * tree. They hold per-document images and version snapshots — useful
16
+ * to the editor, noisy in the user-facing file list. The folders still
17
+ * exist on disk; we just don't surface them in the explorer.
18
+ */
19
+ function isHiddenEntry(entry) {
20
+ if (entry.kind !== 'directory')
21
+ return false;
22
+ const name = entry.path.replace(/^\/+/, '').split('/').pop() ?? '';
23
+ return name.endsWith('_files');
24
+ }
25
+ function filterVisible(entries) {
26
+ return entries.filter((e) => !isHiddenEntry(e));
27
+ }
13
28
  export function FileExplorer({ provider, onSelect, onTreeChange, onImportFiles, className, }) {
14
29
  const tree = useFileTree(provider);
15
30
  const { childEntries } = tree;
@@ -107,7 +122,7 @@ export function FileExplorer({ provider, onSelect, onTreeChange, onImportFiles,
107
122
  onTreeChange?.();
108
123
  }, [tree, onTreeChange]);
109
124
  const renderEntries = useCallback((entries, depth) => {
110
- return entries.map((entry) => (_jsx(FileTreeNode, { entry: entry, depth: depth, expanded: tree.expanded.has(entry.path), selected: tree.selectedPath === entry.path, onToggle: tree.toggleExpand, onSelect: handleSelect, onDelete: handleDelete, onRename: handleRename, renderChildren: (dirPath) => {
125
+ return filterVisible(entries).map((entry) => (_jsx(FileTreeNode, { entry: entry, depth: depth, expanded: tree.expanded.has(entry.path), selected: tree.selectedPath === entry.path, onToggle: tree.toggleExpand, onSelect: handleSelect, onDelete: handleDelete, onRename: handleRename, renderChildren: (dirPath) => {
111
126
  const children = childEntries.get(dirPath) ?? [];
112
127
  return renderEntries(children, depth + 1);
113
128
  } }, entry.path)));
@@ -120,6 +135,6 @@ export function FileExplorer({ provider, onSelect, onTreeChange, onImportFiles,
120
135
  setNewItemType(null);
121
136
  setNewItemName('');
122
137
  }
123
- }, autoFocus: true }), newItemType === 'file' && _jsx("span", { className: "db-new-item-suffix", children: ".md" }), _jsx("button", { type: "submit", className: "db-new-item-add", children: "Add" })] }) })), _jsx("div", { className: "db-tree", role: "tree", children: tree.loading ? (_jsx("div", { className: "db-tree-loading", children: "Loading..." })) : tree.entries.length === 0 ? (_jsx("div", { className: "db-tree-empty", children: "No files yet" })) : (renderEntries(tree.entries, 0)) })] }));
138
+ }, autoFocus: true }), newItemType === 'file' && _jsx("span", { className: "db-new-item-suffix", children: ".md" }), _jsx("button", { type: "submit", className: "db-new-item-add", children: "Add" })] }) })), tree.loading ? (_jsx("div", { className: "db-tree", role: "status", "aria-live": "polite", children: _jsx("div", { className: "db-tree-loading", children: "Loading..." }) })) : filterVisible(tree.entries).length === 0 ? (_jsx("div", { className: "db-tree", children: _jsx("div", { className: "db-tree-empty", children: "No files yet" }) })) : (_jsx("div", { className: "db-tree", role: "tree", children: renderEntries(tree.entries, 0) }))] }));
124
139
  }
125
140
  //# sourceMappingURL=FileExplorer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileExplorer.js","sourceRoot":"","sources":["../../src/FileExplorer/FileExplorer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileExplorer.js","sourceRoot":"","sources":["../../src/FileExplorer/FileExplorer.tsx"],"names":[],"mappings":"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"}
@@ -2,9 +2,10 @@
2
2
  * WorkspaceSettingsButton — gear icon dropdown for workspace actions.
3
3
  */
4
4
  export interface WorkspaceSettingsButtonProps {
5
+ onSettings: () => void;
5
6
  onRename: () => void;
6
7
  onDownload: () => void;
7
8
  onRemove: () => void;
8
9
  }
9
- export declare function WorkspaceSettingsButton({ onRename, onDownload, onRemove, }: WorkspaceSettingsButtonProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function WorkspaceSettingsButton({ onSettings, onRename, onDownload, onRemove, }: WorkspaceSettingsButtonProps): import("react/jsx-runtime").JSX.Element;
10
11
  //# sourceMappingURL=WorkspaceSettingsButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceSettingsButton.d.ts","sourceRoot":"","sources":["../../src/WorkspacePicker/WorkspaceSettingsButton.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAAE,4BAA4B,2CA6D9B"}
1
+ {"version":3,"file":"WorkspaceSettingsButton.d.ts","sourceRoot":"","sources":["../../src/WorkspacePicker/WorkspaceSettingsButton.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAAE,4BAA4B,2CAoE9B"}
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  */
5
5
  import { useState, useCallback, useRef, useEffect } from 'react';
6
6
  import { WorkspaceIcon } from '../icons.js';
7
- export function WorkspaceSettingsButton({ onRename, onDownload, onRemove, }) {
7
+ export function WorkspaceSettingsButton({ onSettings, onRename, onDownload, onRemove, }) {
8
8
  const [isOpen, setIsOpen] = useState(false);
9
9
  const ref = useRef(null);
10
10
  useEffect(() => {
@@ -22,6 +22,6 @@ export function WorkspaceSettingsButton({ onRename, onDownload, onRemove, }) {
22
22
  setIsOpen(false);
23
23
  action();
24
24
  }, []);
25
- return (_jsxs("div", { ref: ref, className: "db-ws-settings", children: [_jsx("button", { className: "db-ws-settings-btn", onClick: () => setIsOpen(!isOpen), "aria-expanded": isOpen, "aria-haspopup": "true", "aria-label": "Workspace settings", title: "Workspace settings", children: _jsx(WorkspaceIcon, {}) }), isOpen && (_jsxs("div", { className: "db-ws-settings-dropdown", role: "menu", children: [_jsx("button", { className: "db-ws-settings-item", role: "menuitem", onClick: () => handleAction(onRename), children: "Rename workspace" }), _jsx("button", { className: "db-ws-settings-item", role: "menuitem", onClick: () => handleAction(onDownload), children: "Download workspace" }), _jsx("div", { className: "db-ws-settings-divider" }), _jsx("button", { className: "db-ws-settings-item db-ws-settings-item--danger", role: "menuitem", onClick: () => handleAction(onRemove), children: "Remove workspace" })] }))] }));
25
+ return (_jsxs("div", { ref: ref, className: "db-ws-settings", children: [_jsx("button", { className: "db-ws-settings-btn", onClick: () => setIsOpen(!isOpen), "aria-expanded": isOpen, "aria-haspopup": "true", "aria-label": "Workspace settings", title: "Workspace settings", children: _jsx(WorkspaceIcon, {}) }), isOpen && (_jsxs("div", { className: "db-ws-settings-dropdown", role: "menu", children: [_jsx("button", { className: "db-ws-settings-item", role: "menuitem", onClick: () => handleAction(onSettings), children: "Workspace settings\u2026" }), _jsx("button", { className: "db-ws-settings-item", role: "menuitem", onClick: () => handleAction(onRename), children: "Rename workspace" }), _jsx("button", { className: "db-ws-settings-item", role: "menuitem", onClick: () => handleAction(onDownload), children: "Download workspace" }), _jsx("div", { className: "db-ws-settings-divider" }), _jsx("button", { className: "db-ws-settings-item db-ws-settings-item--danger", role: "menuitem", onClick: () => handleAction(onRemove), children: "Remove workspace" })] }))] }));
26
26
  }
27
27
  //# sourceMappingURL=WorkspaceSettingsButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceSettingsButton.js","sourceRoot":"","sources":["../../src/WorkspacePicker/WorkspaceSettingsButton.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,MAAM,UAAU,uBAAuB,CAAC,EACtC,QAAQ,EACR,UAAU,EACV,QAAQ,GACqB;IAC7B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,SAAS,kBAAkB,CAAC,CAAa;YACvC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;gBAC3D,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC7E,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,MAAkB,EAAE,EAAE;QACtD,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,gBAAgB,aACvC,iBACE,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,mBAClB,MAAM,mBACP,MAAM,gBACT,oBAAoB,EAC/B,KAAK,EAAC,oBAAoB,YAE1B,KAAC,aAAa,KAAG,GACV,EAER,MAAM,IAAI,CACT,eAAK,SAAS,EAAC,yBAAyB,EAAC,IAAI,EAAC,MAAM,aAClD,iBACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,iCAG9B,EACT,iBACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mCAGhC,EACT,cAAK,SAAS,EAAC,wBAAwB,GAAG,EAC1C,iBACE,SAAS,EAAC,iDAAiD,EAC3D,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,iCAG9B,IACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"WorkspaceSettingsButton.js","sourceRoot":"","sources":["../../src/WorkspacePicker/WorkspaceSettingsButton.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,MAAM,UAAU,uBAAuB,CAAC,EACtC,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,GACqB;IAC7B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,SAAS,kBAAkB,CAAC,CAAa;YACvC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;gBAC3D,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC7E,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,MAAkB,EAAE,EAAE;QACtD,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,gBAAgB,aACvC,iBACE,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,mBAClB,MAAM,mBACP,MAAM,gBACT,oBAAoB,EAC/B,KAAK,EAAC,oBAAoB,YAE1B,KAAC,aAAa,KAAG,GACV,EAER,MAAM,IAAI,CACT,eAAK,SAAS,EAAC,yBAAyB,EAAC,IAAI,EAAC,MAAM,aAClD,iBACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,yCAGhC,EACT,iBACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,iCAG9B,EACT,iBACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mCAGhC,EACT,cAAK,SAAS,EAAC,wBAAwB,GAAG,EAC1C,iBACE,SAAS,EAAC,iDAAiD,EAC3D,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,iCAG9B,IACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * WorkspaceSettingsDialog — per-workspace settings modal.
3
+ *
4
+ * Lets the user override the global versioning preference for a single
5
+ * workspace (or fall back to inheriting it). The override is stored on
6
+ * the WorkspaceDescriptor and persisted via `saveWorkspace`.
7
+ */
8
+ import type { WorkspaceDescriptor } from '@bendyline/docblocks/workspace';
9
+ import { type VersioningPreference } from '../preferences/versioning.js';
10
+ export type WorkspaceVersioningOverride = NonNullable<WorkspaceDescriptor['versioningOverride']>;
11
+ export interface WorkspaceSettingsDialogProps {
12
+ workspace: WorkspaceDescriptor;
13
+ /** Current global versioning preference — used to label "Inherit". */
14
+ globalVersioningPreference: VersioningPreference;
15
+ /** Apply a new override and close the dialog. */
16
+ onChange: (override: WorkspaceVersioningOverride) => void;
17
+ onClose: () => void;
18
+ }
19
+ export declare function WorkspaceSettingsDialog({ workspace, globalVersioningPreference, onChange, onClose, }: WorkspaceSettingsDialogProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=WorkspaceSettingsDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceSettingsDialog.d.ts","sourceRoot":"","sources":["../../src/WorkspacePicker/WorkspaceSettingsDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,2BAA2B,GAAG,WAAW,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAEjG,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,mBAAmB,CAAC;IAC/B,sEAAsE;IACtE,0BAA0B,EAAE,oBAAoB,CAAC;IACjD,iDAAiD;IACjD,QAAQ,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC1D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAQD,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,0BAA0B,EAC1B,QAAQ,EACR,OAAO,GACR,EAAE,4BAA4B,2CAkF9B"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * WorkspaceSettingsDialog — per-workspace settings modal.
4
+ *
5
+ * Lets the user override the global versioning preference for a single
6
+ * workspace (or fall back to inheriting it). The override is stored on
7
+ * the WorkspaceDescriptor and persisted via `saveWorkspace`.
8
+ */
9
+ import { useCallback, useEffect } from 'react';
10
+ import { isLocalWorkspaceType, resolveVersioningEnabled, } from '../preferences/versioning.js';
11
+ const VERSIONING_LABELS = {
12
+ on: 'on',
13
+ 'browser-only': 'on for browser workspaces, off for local folders',
14
+ off: 'off',
15
+ };
16
+ export function WorkspaceSettingsDialog({ workspace, globalVersioningPreference, onChange, onClose, }) {
17
+ // Treat absent/undefined as 'inherit' for the radio state.
18
+ const current = workspace.versioningOverride ?? 'inherit';
19
+ useEffect(() => {
20
+ const onKey = (e) => {
21
+ if (e.key === 'Escape')
22
+ onClose();
23
+ };
24
+ window.addEventListener('keydown', onKey);
25
+ return () => window.removeEventListener('keydown', onKey);
26
+ }, [onClose]);
27
+ const handleBackdropClick = useCallback((e) => {
28
+ if (e.target === e.currentTarget)
29
+ onClose();
30
+ }, [onClose]);
31
+ const isLocal = isLocalWorkspaceType(workspace.type);
32
+ const inheritedEnabled = resolveVersioningEnabled({ ...workspace, versioningOverride: 'inherit' }, globalVersioningPreference);
33
+ const inheritLabel = `Inherit default — currently ${VERSIONING_LABELS[globalVersioningPreference]} (${inheritedEnabled ? 'on' : 'off'} for this workspace)`;
34
+ return (_jsx("div", { className: "db-dialog-overlay", onClick: handleBackdropClick, children: _jsxs("div", { className: "db-dialog", role: "dialog", "aria-label": "Workspace settings", children: [_jsxs("div", { className: "db-dialog-header", children: [_jsx("h2", { className: "db-dialog-title", children: "Workspace settings" }), _jsx("button", { type: "button", className: "db-dialog-close", onClick: onClose, "aria-label": "Close", children: "\u00D7" })] }), _jsxs("div", { className: "db-dialog-body", children: [_jsxs("p", { className: "db-settings-hint", children: [_jsx("strong", { children: workspace.name }), " \u00B7", ' ', isLocal ? 'Local folder workspace' : 'Browser workspace'] }), _jsxs("fieldset", { className: "db-settings-fieldset", children: [_jsx("legend", { className: "db-settings-legend", children: "Version history" }), _jsxs("p", { className: "db-settings-hint", children: ["Controls whether DocBlocks keeps prior revisions in", ' ', _jsx("code", { children: "<name>_files/.versions/" }), " for documents in this workspace."] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "ws-versioning", value: "inherit", checked: current === 'inherit', onChange: () => onChange('inherit') }), inheritLabel] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "ws-versioning", value: "on", checked: current === 'on', onChange: () => onChange('on') }), "On for this workspace"] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "ws-versioning", value: "off", checked: current === 'off', onChange: () => onChange('off') }), "Off for this workspace"] })] })] })] }) }));
35
+ }
36
+ //# sourceMappingURL=WorkspaceSettingsDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceSettingsDialog.js","sourceRoot":"","sources":["../../src/WorkspacePicker/WorkspaceSettingsDialog.tsx"],"names":[],"mappings":"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"}
@@ -2,8 +2,14 @@
2
2
  * useAutoSave — debounced auto-save hook.
3
3
  *
4
4
  * Writes content to the FileSystemProvider after a delay
5
- * whenever the content changes.
5
+ * whenever the content changes. Returns a `flush` function so callers
6
+ * (e.g. an explicit Ctrl/Cmd+S handler) can force an immediate write
7
+ * and await its completion.
6
8
  */
7
9
  import type { FileSystemProvider } from '@bendyline/docblocks/filesystem';
8
- export declare function useAutoSave(provider: FileSystemProvider | null, filePath: string | null, content: string, delayMs?: number): void;
10
+ export interface UseAutoSaveResult {
11
+ /** Cancel any pending debounce and write the current content immediately. */
12
+ flush: () => Promise<void>;
13
+ }
14
+ export declare function useAutoSave(provider: FileSystemProvider | null, filePath: string | null, content: string, delayMs?: number, onSaved?: (filePath: string, content: string) => void): UseAutoSaveResult;
9
15
  //# sourceMappingURL=useAutoSave.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoSave.d.ts","sourceRoot":"","sources":["../../src/hooks/useAutoSave.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,wBAAgB,WAAW,CACzB,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,SAAM,GACZ,IAAI,CA0CN"}
1
+ {"version":3,"file":"useAutoSave.d.ts","sourceRoot":"","sources":["../../src/hooks/useAutoSave.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,SAAM,EACb,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACpD,iBAAiB,CA4FnB"}