@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.
- package/dist/AppMenu/AppMenu.d.ts +11 -1
- package/dist/AppMenu/AppMenu.d.ts.map +1 -1
- package/dist/AppMenu/AppMenu.js +2 -2
- package/dist/AppMenu/AppMenu.js.map +1 -1
- package/dist/DocBlocksShell/DocBlocksShell.d.ts +21 -1
- package/dist/DocBlocksShell/DocBlocksShell.d.ts.map +1 -1
- package/dist/DocBlocksShell/DocBlocksShell.js +562 -67
- package/dist/DocBlocksShell/DocBlocksShell.js.map +1 -1
- package/dist/Export/ExportDialog.d.ts.map +1 -1
- package/dist/Export/ExportDialog.js +104 -5
- package/dist/Export/ExportDialog.js.map +1 -1
- package/dist/Export/ExportToolbarControls.d.ts.map +1 -1
- package/dist/Export/ExportToolbarControls.js +44 -3
- package/dist/Export/ExportToolbarControls.js.map +1 -1
- package/dist/Export/export-options.d.ts +35 -0
- package/dist/Export/export-options.d.ts.map +1 -1
- package/dist/Export/export-options.js +6 -1
- package/dist/Export/export-options.js.map +1 -1
- package/dist/Export/run-export.d.ts.map +1 -1
- package/dist/Export/run-export.js +163 -91
- package/dist/Export/run-export.js.map +1 -1
- package/dist/FileExplorer/FileExplorer.d.ts.map +1 -1
- package/dist/FileExplorer/FileExplorer.js +17 -2
- package/dist/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts +2 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts.map +1 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.js +2 -2
- package/dist/WorkspacePicker/WorkspaceSettingsButton.js.map +1 -1
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts +20 -0
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts.map +1 -0
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.js +36 -0
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.js.map +1 -0
- package/dist/hooks/useAutoSave.d.ts +8 -2
- package/dist/hooks/useAutoSave.d.ts.map +1 -1
- package/dist/hooks/useAutoSave.js +65 -30
- package/dist/hooks/useAutoSave.js.map +1 -1
- package/dist/preferences/versioning.d.ts +27 -0
- package/dist/preferences/versioning.d.ts.map +1 -0
- package/dist/preferences/versioning.js +62 -0
- package/dist/preferences/versioning.js.map +1 -0
- package/package.json +10 -8
- package/src/AppMenu/AppMenu.tsx +64 -1
- package/src/DocBlocksShell/DocBlocksShell.tsx +756 -80
- package/src/Export/ExportDialog.tsx +208 -19
- package/src/Export/ExportToolbarControls.tsx +45 -3
- package/src/Export/export-options.ts +43 -1
- package/src/Export/run-export.ts +190 -91
- package/src/FileExplorer/FileExplorer.tsx +31 -9
- package/src/WorkspacePicker/WorkspaceSettingsButton.tsx +9 -0
- package/src/WorkspacePicker/WorkspaceSettingsDialog.tsx +121 -0
- package/src/hooks/useAutoSave.ts +87 -29
- package/src/preferences/versioning.ts +69 -0
- 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
|
-
|
|
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
|
-
/**
|
|
74
|
-
function
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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;
|
|
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: "
|
|
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":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
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,
|
|
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;
|
|
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
|
|
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
|
|
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"}
|