@drawnagency/primitives 0.1.108 → 0.1.110
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/auth/cookies.d.ts +8 -0
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -1
- package/dist/auth/types.d.ts +11 -4
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/{chunk-5IZ2KTMU.js → chunk-3GAG6ZXB.js} +55 -46
- package/dist/{chunk-PZJL2S3Z.js → chunk-3ZRQ4G5F.js} +1 -1
- package/dist/{chunk-FM4M4Q2W.js → chunk-4TZJZU2T.js} +23 -3
- package/dist/{chunk-LUAI5DWR.js → chunk-7MI3HCOF.js} +60 -23
- package/dist/{chunk-ZHHJVKU7.js → chunk-7WQJ57XG.js} +63 -204
- package/dist/{chunk-JIQBLG6Y.js → chunk-ALMEC3XN.js} +12 -13
- package/dist/{chunk-TZQPOR5A.js → chunk-DMCGN5AS.js} +10 -3
- package/dist/{chunk-D6TLUVOP.js → chunk-ELQ4C677.js} +48 -2
- package/dist/chunk-F2LYQPXV.js +77 -0
- package/dist/{chunk-5BM2Y3NJ.js → chunk-FRVO75DK.js} +14 -2
- package/dist/{chunk-VKAGMEKE.js → chunk-FTPETWXE.js} +1 -0
- package/dist/{chunk-3TO4RRHY.js → chunk-GPPVYLEI.js} +7 -0
- package/dist/{chunk-NLQ5F3RQ.js → chunk-HBULBDGP.js} +1 -1
- package/dist/{chunk-IPKZ5FU6.js → chunk-NXGIHSL5.js} +72 -55
- package/dist/{chunk-CPTFFLK2.js → chunk-OTDA6KWL.js} +10 -3
- package/dist/chunk-OUYB2GCW.js +194 -0
- package/dist/{chunk-72CG6AA2.js → chunk-RA5IOFPY.js} +10 -2
- package/dist/{chunk-GEENI3OC.js → chunk-SW6PCQQD.js} +4 -0
- package/dist/{chunk-BOZUEKWL.js → chunk-UVIYI4J6.js} +1 -1
- package/dist/{chunk-AB3XVXI3.js → chunk-VCCNKTFD.js} +37 -29
- package/dist/{chunk-XBYJQ5RS.js → chunk-XQMDWXD6.js} +21 -6
- package/dist/collab/rebase.d.ts +6 -0
- package/dist/collab/rebase.d.ts.map +1 -1
- package/dist/collab/rebase.js +12 -3
- package/dist/collab/recovery.d.ts +0 -20
- package/dist/collab/recovery.d.ts.map +1 -1
- package/dist/components/brandguide/ColorSwatchSettings.d.ts.map +1 -1
- package/dist/components/brandguide/ColorsView.d.ts.map +1 -1
- package/dist/components/brandguide/colors-shared.d.ts +10 -1
- package/dist/components/brandguide/colors-shared.d.ts.map +1 -1
- package/dist/components/chat/ChatPanel.d.ts.map +1 -1
- package/dist/components/docfile/DocFilePane.d.ts.map +1 -1
- package/dist/components/docfile/PdfCanvasViewer.d.ts.map +1 -1
- package/dist/components/docfile/doc-file-state.d.ts.map +1 -1
- package/dist/components/editor/IndicatorPill.d.ts.map +1 -1
- package/dist/components/editor/NavGroupRow.d.ts +7 -2
- package/dist/components/editor/NavGroupRow.d.ts.map +1 -1
- package/dist/components/editor/PagesModal.d.ts.map +1 -1
- package/dist/components/editor/index.js +14 -13
- package/dist/components/primitives/EditableRichText.d.ts.map +1 -1
- package/dist/components/primitives/LinkPopover.d.ts.map +1 -1
- package/dist/components/primitives/index.d.ts +2 -0
- package/dist/components/primitives/index.d.ts.map +1 -1
- package/dist/components/primitives/index.js +22 -13
- package/dist/components/primitives/useEditableCollection.d.ts.map +1 -1
- package/dist/components/primitives/useEditablePlainText.d.ts.map +1 -1
- package/dist/components/sections/IconList/index.d.ts.map +1 -1
- package/dist/components/sections/Prose/Prose.d.ts.map +1 -1
- package/dist/components/sections/brand-guide.js +10 -10
- package/dist/components/sections/register-schemas.js +16 -16
- package/dist/components/sections/register.js +16 -16
- package/dist/components/shared/FontPicker.d.ts.map +1 -1
- package/dist/components/shared/HistoryChangesModal.d.ts.map +1 -1
- package/dist/components/shared/HistoryPopover.d.ts.map +1 -1
- package/dist/components/shared/Navigation.d.ts.map +1 -1
- package/dist/components/shared/Popover.d.ts.map +1 -1
- package/dist/components/shell/AudienceAddForm.d.ts +1 -5
- package/dist/components/shell/AudienceAddForm.d.ts.map +1 -1
- package/dist/components/shell/AudienceRow.d.ts +2 -3
- package/dist/components/shell/AudienceRow.d.ts.map +1 -1
- package/dist/components/shell/BugReportFAB.d.ts.map +1 -1
- package/dist/components/shell/EditorShell.d.ts.map +1 -1
- package/dist/components/shell/MediaLibraryModal.d.ts.map +1 -1
- package/dist/components/shell/SiteSettingsUsers.d.ts.map +1 -1
- package/dist/components/shell/SiteSettingsViewerAccess.d.ts.map +1 -1
- package/dist/components/shell/view-branch.d.ts.map +1 -1
- package/dist/document/components/DocRail.d.ts.map +1 -1
- package/dist/document/components/DocViewer.d.ts.map +1 -1
- package/dist/document/components/measure.d.ts.map +1 -1
- package/dist/document/components/useDocPages.d.ts.map +1 -1
- package/dist/document/engine/blocks.d.ts.map +1 -1
- package/dist/document/engine/masonry.d.ts.map +1 -1
- package/dist/document/engine/paginate.d.ts.map +1 -1
- package/dist/document/engine/settings.d.ts +3 -0
- package/dist/document/engine/settings.d.ts.map +1 -1
- package/dist/document/index.js +79 -28
- package/dist/hooks/useBuildStatus.d.ts.map +1 -1
- package/dist/hooks/useDocumentUploads.d.ts +1 -0
- package/dist/hooks/useDocumentUploads.d.ts.map +1 -1
- package/dist/hooks/useEditorPersistence.d.ts.map +1 -1
- package/dist/hooks/useEditorPublish.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.d.ts +6 -0
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/hooks/useMediaPipeline.d.ts +3 -2
- package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
- package/dist/hooks/useSanitizedHtml.d.ts +12 -0
- package/dist/hooks/useSanitizedHtml.d.ts.map +1 -0
- package/dist/index.js +20 -14
- package/dist/lib/block-move.d.ts.map +1 -1
- package/dist/lib/contrast.d.ts.map +1 -1
- package/dist/lib/dexie.d.ts +2 -8
- package/dist/lib/dexie.d.ts.map +1 -1
- package/dist/lib/dexie.js +21 -49
- package/dist/lib/index-ops.d.ts.map +1 -1
- package/dist/lib/index-ops.js +43 -23
- package/dist/lib/index.js +8 -8
- package/dist/lib/loader.d.ts.map +1 -1
- package/dist/lib/media-folders.d.ts +12 -4
- package/dist/lib/media-folders.d.ts.map +1 -1
- package/dist/lib/media-folders.js +12 -2
- package/dist/lib/migrate-sections-transform.js +1 -1
- package/dist/lib/nav-tree.d.ts.map +1 -1
- package/dist/lib/nav.d.ts.map +1 -1
- package/dist/lib/pages.d.ts.map +1 -1
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/registry.js +1 -1
- package/dist/lib/sanitize.d.ts +6 -0
- package/dist/lib/sanitize.d.ts.map +1 -1
- package/dist/lib/timestamp.d.ts.map +1 -1
- package/dist/media/index.js +4 -4
- package/dist/media/queue.d.ts.map +1 -1
- package/dist/media/resolve.d.ts.map +1 -1
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/media/videoPoster.d.ts.map +1 -1
- package/dist/schemas/audience.d.ts +5 -1
- package/dist/schemas/audience.d.ts.map +1 -1
- package/dist/schemas/audience.js +1 -1
- package/dist/schemas/index.js +9 -7
- package/dist/schemas/link.d.ts.map +1 -1
- package/dist/schemas/link.js +1 -1
- package/dist/schemas/sections.d.ts +12 -0
- package/dist/schemas/sections.d.ts.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +3 -1
- package/dist/storage/types.d.ts +9 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/types/database.d.ts +0 -3
- package/dist/types/database.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/auth/cookies.ts +11 -0
- package/src/auth/index.ts +1 -1
- package/src/auth/types.ts +18 -4
- package/src/collab/rebase.ts +26 -1
- package/src/collab/recovery.ts +29 -3
- package/src/components/brandguide/ColorSwatchSettings.tsx +40 -13
- package/src/components/brandguide/ColorsEditable.tsx +7 -9
- package/src/components/brandguide/ColorsView.tsx +12 -11
- package/src/components/brandguide/colors-shared.ts +17 -1
- package/src/components/chat/ChatPanel.tsx +19 -0
- package/src/components/docfile/DocFilePane.tsx +11 -0
- package/src/components/docfile/PdfCanvasViewer.tsx +46 -5
- package/src/components/docfile/doc-file-state.ts +7 -0
- package/src/components/editor/IndicatorPill.tsx +5 -1
- package/src/components/editor/NavGroupRow.tsx +8 -3
- package/src/components/editor/PagesModal.tsx +10 -2
- package/src/components/primitives/EditableList.tsx +10 -2
- package/src/components/primitives/EditableRichText.tsx +4 -3
- package/src/components/primitives/LinkPopover.tsx +23 -1
- package/src/components/primitives/index.ts +5 -0
- package/src/components/primitives/useEditableCollection.ts +61 -41
- package/src/components/primitives/useEditablePlainText.ts +24 -3
- package/src/components/sections/IconList/index.tsx +8 -1
- package/src/components/sections/Prose/Prose.tsx +4 -2
- package/src/components/shared/FontPicker.tsx +16 -4
- package/src/components/shared/HistoryChangesModal.tsx +12 -1
- package/src/components/shared/HistoryPopover.tsx +18 -4
- package/src/components/shared/LinkField.tsx +1 -1
- package/src/components/shared/Navigation.tsx +20 -2
- package/src/components/shared/Popover.tsx +9 -5
- package/src/components/shell/AudienceAddForm.tsx +6 -26
- package/src/components/shell/AudienceRow.tsx +29 -39
- package/src/components/shell/BugReportFAB.tsx +20 -2
- package/src/components/shell/EditorShell.tsx +200 -50
- package/src/components/shell/MediaLibraryModal.tsx +52 -10
- package/src/components/shell/SiteSettingsUsers.tsx +3 -0
- package/src/components/shell/SiteSettingsViewerAccess.tsx +21 -16
- package/src/components/shell/view-branch.ts +4 -1
- package/src/document/components/DocRail.tsx +27 -2
- package/src/document/components/DocViewer.tsx +5 -1
- package/src/document/components/measure.tsx +22 -6
- package/src/document/components/useDocPages.ts +13 -3
- package/src/document/engine/blocks.ts +33 -4
- package/src/document/engine/masonry.ts +8 -2
- package/src/document/engine/paginate.ts +4 -1
- package/src/document/engine/settings.ts +40 -3
- package/src/hooks/useBuildStatus.ts +6 -0
- package/src/hooks/useDocumentUploads.ts +46 -3
- package/src/hooks/useEditorPersistence.ts +33 -19
- package/src/hooks/useEditorPublish.ts +83 -34
- package/src/hooks/useFocusTrap.ts +18 -0
- package/src/hooks/useMediaPipeline.ts +111 -38
- package/src/hooks/useSanitizedHtml.ts +29 -0
- package/src/lib/audience-secret.ts +1 -0
- package/src/lib/block-move.ts +13 -2
- package/src/lib/contrast.ts +14 -14
- package/src/lib/dexie.ts +46 -49
- package/src/lib/index-ops.ts +63 -20
- package/src/lib/loader.ts +41 -12
- package/src/lib/media-folders.ts +31 -5
- package/src/lib/migrate-sections-transform.ts +22 -2
- package/src/lib/nav-tree.ts +16 -2
- package/src/lib/nav.ts +10 -1
- package/src/lib/pages.ts +24 -6
- package/src/lib/registry.ts +3 -0
- package/src/lib/sanitize.ts +9 -0
- package/src/lib/timestamp.ts +5 -0
- package/src/media/queue.ts +4 -0
- package/src/media/resolve.ts +14 -1
- package/src/media/utils.ts +3 -1
- package/src/media/videoPoster.ts +14 -3
- package/src/schemas/audience.ts +10 -2
- package/src/schemas/link.ts +4 -1
- package/src/schemas/sections.ts +23 -1
- package/src/storage/index.ts +1 -1
- package/src/storage/types.ts +13 -0
- package/src/types/database.ts +0 -3
- package/dist/chunk-5THS4K5D.js +0 -123
- package/dist/chunk-ZSPCE6MZ.js +0 -70
package/dist/document/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
documentOptionsSchema,
|
|
3
3
|
sectionSettingsSchema,
|
|
4
|
-
settingsFor
|
|
5
|
-
|
|
4
|
+
settingsFor,
|
|
5
|
+
settingsIssuesFor
|
|
6
|
+
} from "../chunk-4TZJZU2T.js";
|
|
6
7
|
import "../chunk-JSBRDJBE.js";
|
|
7
8
|
|
|
8
9
|
// src/document/engine/types.ts
|
|
@@ -31,13 +32,28 @@ var DISALLOWED_TAGS = /* @__PURE__ */ new Set([
|
|
|
31
32
|
"template"
|
|
32
33
|
]);
|
|
33
34
|
var DISALLOWED_SELECTOR = Array.from(DISALLOWED_TAGS).join(",");
|
|
34
|
-
var URL_ATTRS = /* @__PURE__ */ new Set([
|
|
35
|
+
var URL_ATTRS = /* @__PURE__ */ new Set([
|
|
36
|
+
"href",
|
|
37
|
+
"src",
|
|
38
|
+
"srcset",
|
|
39
|
+
"poster",
|
|
40
|
+
"xlink:href",
|
|
41
|
+
"formaction",
|
|
42
|
+
"action",
|
|
43
|
+
"ping",
|
|
44
|
+
"data",
|
|
45
|
+
"background"
|
|
46
|
+
]);
|
|
35
47
|
function isDangerousUrl(attrName, rawValue) {
|
|
36
48
|
const value = rawValue.toLowerCase().replace(/[\u0000-\u0020]/g, "");
|
|
37
49
|
if (value.startsWith("javascript:") || value.startsWith("vbscript:")) return true;
|
|
38
50
|
if (attrName === "src" && value.startsWith("data:text/html")) return true;
|
|
39
51
|
return false;
|
|
40
52
|
}
|
|
53
|
+
function hasDangerousUrl(attrName, rawValue) {
|
|
54
|
+
if (attrName !== "srcset") return isDangerousUrl(attrName, rawValue);
|
|
55
|
+
return rawValue.split(",").some((candidate) => isDangerousUrl("src", candidate.trim().split(/\s+/)[0] ?? ""));
|
|
56
|
+
}
|
|
41
57
|
function scrubElement(root) {
|
|
42
58
|
root.querySelectorAll(DISALLOWED_SELECTOR).forEach((el) => el.remove());
|
|
43
59
|
const elements = [root, ...Array.from(root.querySelectorAll("*"))];
|
|
@@ -48,12 +64,13 @@ function scrubElement(root) {
|
|
|
48
64
|
el.removeAttribute(attr.name);
|
|
49
65
|
continue;
|
|
50
66
|
}
|
|
51
|
-
if (URL_ATTRS.has(name) &&
|
|
67
|
+
if (URL_ATTRS.has(name) && hasDangerousUrl(name, attr.value)) {
|
|
52
68
|
el.removeAttribute(attr.name);
|
|
53
69
|
}
|
|
54
70
|
}
|
|
55
71
|
}
|
|
56
72
|
}
|
|
73
|
+
var VISIBLE_EMPTY_SELECTOR = "img, hr, video, svg, picture, canvas";
|
|
57
74
|
function splitProseBlocks(html) {
|
|
58
75
|
if (!html.trim()) return [];
|
|
59
76
|
const doc = new DOMParser().parseFromString(html, "text/html");
|
|
@@ -63,7 +80,7 @@ function splitProseBlocks(html) {
|
|
|
63
80
|
const el = node;
|
|
64
81
|
if (DISALLOWED_TAGS.has(el.tagName.toLowerCase())) continue;
|
|
65
82
|
scrubElement(el);
|
|
66
|
-
if ((el.textContent ?? "").trim() || el.matches(
|
|
83
|
+
if ((el.textContent ?? "").trim() || el.matches(VISIBLE_EMPTY_SELECTOR) || el.querySelector(VISIBLE_EMPTY_SELECTOR)) {
|
|
67
84
|
blocks.push(el.outerHTML);
|
|
68
85
|
}
|
|
69
86
|
} else if (node.nodeType === Node.TEXT_NODE) {
|
|
@@ -146,7 +163,11 @@ function harvest(sections, pageTitle, imagesById, splitAtFor = () => "none") {
|
|
|
146
163
|
|
|
147
164
|
// src/document/engine/masonry.ts
|
|
148
165
|
var EPS = 1e-6;
|
|
149
|
-
var effectiveAspect = (im, fit) =>
|
|
166
|
+
var effectiveAspect = (im, fit) => {
|
|
167
|
+
if (fit === "cover") return 1;
|
|
168
|
+
const aspect = im.width / im.height;
|
|
169
|
+
return Number.isFinite(aspect) && aspect > 0 ? aspect : 1;
|
|
170
|
+
};
|
|
150
171
|
function layoutRows(images, o, fits) {
|
|
151
172
|
const asp = images.map((im, i2) => effectiveAspect(im, fits[i2]));
|
|
152
173
|
const boxes = [];
|
|
@@ -316,7 +337,7 @@ function paginateChunk(chunk, settings, textHeightsIn, geom = DOC_GEOM, naturalT
|
|
|
316
337
|
const cont = pages.length > 0;
|
|
317
338
|
const warnings = [];
|
|
318
339
|
const textW = settings.textPlacement === "top" ? geom.bodyWIn : colWIn;
|
|
319
|
-
const capY = settings.textPlacement === "top" ? geom.titleBandIn + (geom.bodyHIn - geom.titleBandIn) * geom.topTextMaxFraction : geom.bodyHIn;
|
|
340
|
+
const capY = settings.textPlacement === "top" && ii < chunk.images.length ? geom.titleBandIn + (geom.bodyHIn - geom.titleBandIn) * geom.topTextMaxFraction : geom.bodyHIn;
|
|
320
341
|
const placed = [];
|
|
321
342
|
let textEnd = top;
|
|
322
343
|
while (ti < chunk.textBlocks.length) {
|
|
@@ -490,10 +511,10 @@ function DocCoverPage({
|
|
|
490
511
|
}
|
|
491
512
|
|
|
492
513
|
// src/document/components/useDocPages.ts
|
|
493
|
-
import { useMemo } from "react";
|
|
514
|
+
import { useMemo as useMemo2 } from "react";
|
|
494
515
|
|
|
495
516
|
// src/document/components/measure.tsx
|
|
496
|
-
import { useEffect, useLayoutEffect, useState } from "react";
|
|
517
|
+
import { useEffect, useLayoutEffect, useMemo, useState } from "react";
|
|
497
518
|
var PX_PER_IN = 96;
|
|
498
519
|
function widthInFor(settings) {
|
|
499
520
|
return settings?.textPlacement === "leftColumn" ? DOC_GEOM.leftColWIn : DOC_GEOM.bodyWIn;
|
|
@@ -525,12 +546,13 @@ function useTextMeasurements(chunks, settingsMap) {
|
|
|
525
546
|
cancelled = true;
|
|
526
547
|
};
|
|
527
548
|
}, []);
|
|
528
|
-
const signature = signatureFor(chunks, settingsMap);
|
|
549
|
+
const signature = useMemo(() => signatureFor(chunks, settingsMap), [chunks, settingsMap]);
|
|
529
550
|
useLayoutEffect(() => {
|
|
530
551
|
if (!fontsReady) return;
|
|
531
552
|
const containers = [];
|
|
532
553
|
const next = {};
|
|
533
554
|
const nextW = {};
|
|
555
|
+
const pending = [];
|
|
534
556
|
for (const chunk of chunks) {
|
|
535
557
|
if (chunk.textBlocks.length === 0) {
|
|
536
558
|
next[chunk.id] = [];
|
|
@@ -542,8 +564,7 @@ function useTextMeasurements(chunks, settingsMap) {
|
|
|
542
564
|
container.style.width = `${widthInFor(settingsMap[chunk.id])}in`;
|
|
543
565
|
document.body.appendChild(container);
|
|
544
566
|
containers.push(container);
|
|
545
|
-
const
|
|
546
|
-
let wMax = 0;
|
|
567
|
+
const wrappers = [];
|
|
547
568
|
for (const block of chunk.textBlocks) {
|
|
548
569
|
const wrapper = document.createElement("div");
|
|
549
570
|
wrapper.className = blockClassName(block);
|
|
@@ -555,11 +576,19 @@ function useTextMeasurements(chunks, settingsMap) {
|
|
|
555
576
|
wrapper.style.width = "max-content";
|
|
556
577
|
wrapper.style.maxWidth = "100%";
|
|
557
578
|
container.appendChild(wrapper);
|
|
579
|
+
wrappers.push(wrapper);
|
|
580
|
+
}
|
|
581
|
+
pending.push({ chunkId: chunk.id, wrappers });
|
|
582
|
+
}
|
|
583
|
+
for (const { chunkId, wrappers } of pending) {
|
|
584
|
+
const measured = [];
|
|
585
|
+
let wMax = 0;
|
|
586
|
+
for (const wrapper of wrappers) {
|
|
558
587
|
measured.push(wrapper.offsetHeight / PX_PER_IN);
|
|
559
588
|
wMax = Math.max(wMax, wrapper.getBoundingClientRect().width / PX_PER_IN);
|
|
560
589
|
}
|
|
561
|
-
next[
|
|
562
|
-
nextW[
|
|
590
|
+
next[chunkId] = measured;
|
|
591
|
+
nextW[chunkId] = wMax;
|
|
563
592
|
}
|
|
564
593
|
setHeights(next);
|
|
565
594
|
setTextWidths(nextW);
|
|
@@ -573,7 +602,7 @@ function useTextMeasurements(chunks, settingsMap) {
|
|
|
573
602
|
// src/document/components/useDocPages.ts
|
|
574
603
|
function useDocPages(input) {
|
|
575
604
|
const { source, sections } = input;
|
|
576
|
-
const splitSig =
|
|
605
|
+
const splitSig = useMemo2(() => {
|
|
577
606
|
const m = {};
|
|
578
607
|
for (const id of Object.keys(sections ?? {})) {
|
|
579
608
|
const v = settingsFor(sections, id).splitAt;
|
|
@@ -581,28 +610,28 @@ function useDocPages(input) {
|
|
|
581
610
|
}
|
|
582
611
|
return JSON.stringify(m);
|
|
583
612
|
}, [sections]);
|
|
584
|
-
const splitAtFor =
|
|
613
|
+
const splitAtFor = useMemo2(() => {
|
|
585
614
|
const m = JSON.parse(splitSig);
|
|
586
615
|
return (id) => m[id] ?? "none";
|
|
587
616
|
}, [splitSig]);
|
|
588
|
-
const chunks =
|
|
617
|
+
const chunks = useMemo2(
|
|
589
618
|
() => source ? harvest(source.sections, source.pageTitle, source.images, splitAtFor) : [],
|
|
590
619
|
[source, splitAtFor]
|
|
591
620
|
);
|
|
592
|
-
const settingsMap =
|
|
621
|
+
const settingsMap = useMemo2(() => {
|
|
593
622
|
const map = {};
|
|
594
623
|
for (const c of chunks) map[c.id] = settingsFor(sections, c.id);
|
|
595
624
|
return map;
|
|
596
625
|
}, [chunks, sections]);
|
|
597
626
|
const { heights, textWidths } = useTextMeasurements(chunks, settingsMap);
|
|
598
|
-
const pages =
|
|
627
|
+
const pages = useMemo2(() => {
|
|
599
628
|
return chunks.flatMap((c) => {
|
|
600
629
|
const h = heights?.[c.id];
|
|
601
630
|
if (c.textBlocks.length > 0 && (!h || h.length !== c.textBlocks.length)) return [];
|
|
602
631
|
return paginateChunk(c, settingsMap[c.id], h ?? [], DOC_GEOM, textWidths?.[c.id]);
|
|
603
632
|
});
|
|
604
633
|
}, [chunks, settingsMap, heights, textWidths]);
|
|
605
|
-
const measuring =
|
|
634
|
+
const measuring = useMemo2(
|
|
606
635
|
() => chunks.some((c) => {
|
|
607
636
|
if (c.textBlocks.length === 0) return false;
|
|
608
637
|
const h = heights?.[c.id];
|
|
@@ -610,21 +639,23 @@ function useDocPages(input) {
|
|
|
610
639
|
}),
|
|
611
640
|
[chunks, heights]
|
|
612
641
|
);
|
|
613
|
-
const warningsByChunk =
|
|
642
|
+
const warningsByChunk = useMemo2(() => {
|
|
614
643
|
const map = {};
|
|
615
644
|
for (const c of chunks) {
|
|
616
645
|
const noContent = c.textBlocks.length === 0 && c.images.length === 0;
|
|
617
646
|
const pageWarnings = pages.filter((p) => p.chunkId === c.id).flatMap((p) => p.warnings);
|
|
618
|
-
const
|
|
647
|
+
const rejected = settingsIssuesFor(sections, c.id);
|
|
648
|
+
const settingWarnings = rejected.length > 0 ? [`Unrecognised value reset to default: ${rejected.join(", ")}`] : [];
|
|
649
|
+
const warnings = noContent ? ["Section has no content", ...settingWarnings, ...pageWarnings] : [...settingWarnings, ...pageWarnings];
|
|
619
650
|
if (warnings.length > 0) map[c.id] = warnings;
|
|
620
651
|
}
|
|
621
652
|
return map;
|
|
622
|
-
}, [chunks, pages]);
|
|
653
|
+
}, [chunks, pages, sections]);
|
|
623
654
|
return { chunks, pages, measuring, warningsByChunk };
|
|
624
655
|
}
|
|
625
656
|
|
|
626
657
|
// src/document/components/DocViewer.tsx
|
|
627
|
-
import { useCallback, useEffect as useEffect3, useMemo as
|
|
658
|
+
import { useCallback, useEffect as useEffect3, useMemo as useMemo3, useRef as useRef2, useState as useState3 } from "react";
|
|
628
659
|
|
|
629
660
|
// src/document/components/DocRail.tsx
|
|
630
661
|
import { useEffect as useEffect2, useRef, useState as useState2 } from "react";
|
|
@@ -647,7 +678,25 @@ function ThumbButton({
|
|
|
647
678
|
onSelect,
|
|
648
679
|
children
|
|
649
680
|
}) {
|
|
650
|
-
|
|
681
|
+
const liRef = useRef(null);
|
|
682
|
+
const [shown, setShown] = useState2(typeof IntersectionObserver === "undefined");
|
|
683
|
+
useEffect2(() => {
|
|
684
|
+
if (shown) return;
|
|
685
|
+
const el = liRef.current;
|
|
686
|
+
if (!el) return;
|
|
687
|
+
const obs = new IntersectionObserver(
|
|
688
|
+
(entries) => {
|
|
689
|
+
if (entries.some((e) => e.isIntersecting)) {
|
|
690
|
+
setShown(true);
|
|
691
|
+
obs.disconnect();
|
|
692
|
+
}
|
|
693
|
+
},
|
|
694
|
+
{ rootMargin: "200% 0px" }
|
|
695
|
+
);
|
|
696
|
+
obs.observe(el);
|
|
697
|
+
return () => obs.disconnect();
|
|
698
|
+
}, [shown]);
|
|
699
|
+
return /* @__PURE__ */ jsx5("li", { ref: liRef, className: indentClass(indentLevel ?? 0), children: /* @__PURE__ */ jsxs5(
|
|
651
700
|
"button",
|
|
652
701
|
{
|
|
653
702
|
type: "button",
|
|
@@ -659,7 +708,7 @@ function ThumbButton({
|
|
|
659
708
|
{
|
|
660
709
|
className: "block origin-top-left",
|
|
661
710
|
style: { transform: `scale(${scale})`, width: PAGE_W, height: PAGE_H },
|
|
662
|
-
children
|
|
711
|
+
children: shown ? children : null
|
|
663
712
|
}
|
|
664
713
|
) }),
|
|
665
714
|
/* @__PURE__ */ jsx5("span", { className: "absolute bottom-0.5 left-1 max-w-[90%] truncate text-[10px] text-neutral-400", children: label })
|
|
@@ -779,7 +828,7 @@ function DocViewer({
|
|
|
779
828
|
lastEmitRef.current = { chunks, warningsByChunk };
|
|
780
829
|
onDocStateRef.current?.({ chunks, warningsByChunk });
|
|
781
830
|
}, [chunks, warningsByChunk]);
|
|
782
|
-
const entries =
|
|
831
|
+
const entries = useMemo3(() => {
|
|
783
832
|
const list = [{ kind: "cover" }];
|
|
784
833
|
for (const chunk of chunks) {
|
|
785
834
|
const s = settingsFor(doc.sections, chunk.id);
|
|
@@ -823,6 +872,7 @@ function DocViewer({
|
|
|
823
872
|
const activeIdRef = useRef2(activeId);
|
|
824
873
|
activeIdRef.current = activeId;
|
|
825
874
|
useEffect3(() => {
|
|
875
|
+
if (mode !== "present") return;
|
|
826
876
|
const onKey = (e) => {
|
|
827
877
|
const t = e.target;
|
|
828
878
|
if (t && (t.tagName === "INPUT" || t.tagName === "TEXTAREA" || t.tagName === "SELECT" || t.isContentEditable)) return;
|
|
@@ -838,7 +888,7 @@ function DocViewer({
|
|
|
838
888
|
};
|
|
839
889
|
window.addEventListener("keydown", onKey);
|
|
840
890
|
return () => window.removeEventListener("keydown", onKey);
|
|
841
|
-
}, [entries, selectEntry]);
|
|
891
|
+
}, [entries, selectEntry, mode]);
|
|
842
892
|
const active = entries.find((e) => entryId(e) === activeId) ?? null;
|
|
843
893
|
return (
|
|
844
894
|
// min-w-0 (here and on the rail/canvas row): without it these flex items
|
|
@@ -974,6 +1024,7 @@ export {
|
|
|
974
1024
|
paginateChunk,
|
|
975
1025
|
sectionSettingsSchema,
|
|
976
1026
|
settingsFor,
|
|
1027
|
+
settingsIssuesFor,
|
|
977
1028
|
splitProseBlocks,
|
|
978
1029
|
useDocPages
|
|
979
1030
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useBuildStatus.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AASrE,UAAU,iBAAiB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAkBD,wBAAgB,cAAc,IAAI,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useBuildStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useBuildStatus.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AASrE,UAAU,iBAAiB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAkBD,wBAAgB,cAAc,IAAI,iBAAiB,CAwKlD"}
|
|
@@ -26,6 +26,7 @@ export declare function useDocumentUploads({ documentManifest, setDocumentManife
|
|
|
26
26
|
uploadDocument: (file: File, onComplete?: (documentId: string) => void) => Promise<void>;
|
|
27
27
|
publishDocuments: (ids: string[]) => Promise<void>;
|
|
28
28
|
unstageDocuments: (ids: string[]) => Promise<void>;
|
|
29
|
+
unstageAllDocuments: () => Promise<void>;
|
|
29
30
|
hydratePendingDocuments: () => Promise<void>;
|
|
30
31
|
};
|
|
31
32
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDocumentUploads.d.ts","sourceRoot":"","sources":["../../src/hooks/useDocumentUploads.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,sBAAsB,CAAC;AAapF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAS/E,UAAU,uBAAuB;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE;;;yEAGqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,GACd,EAAE,uBAAuB;;;;
|
|
1
|
+
{"version":3,"file":"useDocumentUploads.d.ts","sourceRoot":"","sources":["../../src/hooks/useDocumentUploads.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,sBAAsB,CAAC;AAapF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAS/E,UAAU,uBAAuB;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE;;;yEAGqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,GACd,EAAE,uBAAuB;;;;2BA6ET,IAAI,eAAe,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,KAAG,OAAO,CAAC,IAAI,CAAC;4BA4JhE,MAAM,EAAE;4BAqC2B,MAAM,EAAE;;;EAyD1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorPersistence.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPersistence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA2BpE,UAAU,kBAAkB;IAC1B;;;;+DAI2D;IAC3D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,EAAE,EAAE,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACrG;;;;;yDAKqD;IACrD,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACnD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EACxC,OAAO,CAAC,EAAE,kBAAkB;kCA+Fd,MAAM,WAAW,cAAc;;+BAmBC,MAAM;oCAiBD,MAAM;mCAQ3C,MAAM;4BAI6B,UAAU;;;;;;;yCAgCH,MAAM;;;qCAWhD,MAAM,cAAc,MAAM;
|
|
1
|
+
{"version":3,"file":"useEditorPersistence.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPersistence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA2BpE,UAAU,kBAAkB;IAC1B;;;;+DAI2D;IAC3D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,EAAE,EAAE,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACrG;;;;;yDAKqD;IACrD,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACnD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EACxC,OAAO,CAAC,EAAE,kBAAkB;kCA+Fd,MAAM,WAAW,cAAc;;+BAmBC,MAAM;oCAiBD,MAAM;mCAQ3C,MAAM;4BAI6B,UAAU;;;;;;;yCAgCH,MAAM;;;qCAWhD,MAAM,cAAc,MAAM;EAqCzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorPublish.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPublish.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useEditorPublish.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPublish.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { type RefObject } from "react";
|
|
2
2
|
export declare function useFocusTrap(ref: RefObject<HTMLElement | null>, active: boolean): void;
|
|
3
|
+
/**
|
|
4
|
+
* Focus the first control on open, hand focus back on close — and nothing else.
|
|
5
|
+
* For non-modal surfaces (`aria-modal="false"`), where trapping Tab contradicts
|
|
6
|
+
* the declaration and leaves a keyboard user with no way out.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useInitialFocus(ref: RefObject<HTMLElement | null>, active: boolean): void;
|
|
3
9
|
//# sourceMappingURL=useFocusTrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFocusTrap.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusTrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWlD,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,QA6C/E"}
|
|
1
|
+
{"version":3,"file":"useFocusTrap.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusTrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWlD,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,QA6C/E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,QAWlF"}
|
|
@@ -88,8 +88,8 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
|
|
|
88
88
|
file: File;
|
|
89
89
|
relativePath: string;
|
|
90
90
|
}[], currentFolderId: string | null) => Promise<void>;
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
computeReferenceCountMap: () => Record<string, number>;
|
|
92
|
+
computeDocumentReferenceCountMap: () => Record<string, number>;
|
|
93
93
|
contextValue: MediaLibraryContextValue;
|
|
94
94
|
enqueueFile: (file: File, onComplete?: (imageId: string) => void, opts?: {
|
|
95
95
|
hidden?: boolean;
|
|
@@ -99,6 +99,7 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
|
|
|
99
99
|
documentUploadProgress: Record<string, number>;
|
|
100
100
|
uploadDocument: (file: File, onComplete?: (documentId: string) => void) => Promise<void>;
|
|
101
101
|
publishDocuments: (ids: string[]) => Promise<void>;
|
|
102
|
+
unstageAllDocuments: () => Promise<void>;
|
|
102
103
|
hydratePendingDocuments: () => Promise<void>;
|
|
103
104
|
};
|
|
104
105
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAiBxF,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAIvE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAI3C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;CAC1E;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+
|
|
1
|
+
{"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAiBxF,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5E,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAIvE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAI3C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;CAC1E;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA0Y8B,IAAI,EAAE,mBAAkB,MAAM,GAAG,IAAI;6BAwEvC,MAAM,EAAE;gCA6DL,MAAM,EAAE;;;+BAkCf,MAAM,OAAO,MAAM;+BAiBnB,MAAM,YAAY,MAAM,GAAG,IAAI,KAAG,MAAM;6BAW1C,MAAM,QAAQ,MAAM;2BAWtB,MAAM,YAAY,MAAM,GAAG,IAAI;6BA4BvB,MAAM,YAAY,MAAM,GAAG,QAAQ;2BAd3C,MAAM,EAAE,YAAY,MAAM,GAAG,IAAI;kCA4DhE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,mBAC9B,MAAM,GAAG,IAAI;oCA8BiB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;4CAWd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;wBAQxC,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,SAAS;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;EAsHjH"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitized HTML for `dangerouslySetInnerHTML`, withheld until DOMPurify has
|
|
3
|
+
* loaded. `sanitizeHtml` is synchronous and returns its input unchanged while
|
|
4
|
+
* the dynamic import is in flight, so calling it directly injects raw stored
|
|
5
|
+
* markup on first paint — the editor loads section JSON straight from GitHub and
|
|
6
|
+
* never passes it through core's server-side sanitizer. Returning "" until the
|
|
7
|
+
* purifier resolves is the same gate ChatPanel applies to streamed markdown.
|
|
8
|
+
*
|
|
9
|
+
* On the server this is a straight pass-through (see `isSanitizerReady`).
|
|
10
|
+
*/
|
|
11
|
+
export declare function useSanitizedHtml(html: string): string;
|
|
12
|
+
//# sourceMappingURL=useSanitizedHtml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSanitizedHtml.d.ts","sourceRoot":"","sources":["../../src/hooks/useSanitizedHtml.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAerD"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
SESSION_COOKIE,
|
|
6
6
|
SESSION_MAX_AGE_SECONDS,
|
|
7
7
|
SessionExpiredError,
|
|
8
|
+
clearSessionCookie,
|
|
8
9
|
deriveUiCapabilities,
|
|
9
10
|
setSessionCookie,
|
|
10
11
|
signAudienceToken,
|
|
@@ -12,16 +13,17 @@ import {
|
|
|
12
13
|
verifyAudienceClaims,
|
|
13
14
|
verifyAudienceToken,
|
|
14
15
|
verifySessionToken
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-SW6PCQQD.js";
|
|
16
17
|
import {
|
|
17
18
|
ASSET_CACHE_CONTROL,
|
|
18
19
|
DOCUMENT_CACHE_CONTROL,
|
|
19
20
|
IDEMPOTENCY_KEY_RE,
|
|
20
21
|
IDEMPOTENCY_TRAILER,
|
|
21
22
|
IdempotencyLookupUnavailableError,
|
|
23
|
+
NothingToPublishError,
|
|
22
24
|
StorageConflictError,
|
|
23
25
|
withIdempotencyTrailer
|
|
24
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-GPPVYLEI.js";
|
|
25
27
|
import {
|
|
26
28
|
CollabPeerSchema,
|
|
27
29
|
HEARTBEAT_INTERVAL_MS,
|
|
@@ -55,7 +57,7 @@ import {
|
|
|
55
57
|
resolveMedia,
|
|
56
58
|
sanitizeMediaName,
|
|
57
59
|
setMediaProvider
|
|
58
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-XQMDWXD6.js";
|
|
59
61
|
import {
|
|
60
62
|
MediaGridOptionsSchema
|
|
61
63
|
} from "./chunk-B7VBSE5X.js";
|
|
@@ -75,13 +77,13 @@ import {
|
|
|
75
77
|
ViewerUsernameSchema,
|
|
76
78
|
normalizeUsername,
|
|
77
79
|
slugifyAudienceName
|
|
78
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-HBULBDGP.js";
|
|
79
81
|
import {
|
|
80
82
|
DEFAULT_LINK,
|
|
81
83
|
LinkTargetSchema,
|
|
82
84
|
LinkValueSchema,
|
|
83
85
|
isSafeHref
|
|
84
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-3ZRQ4G5F.js";
|
|
85
87
|
import {
|
|
86
88
|
DOCUMENT_BUCKET_MAX_BYTES,
|
|
87
89
|
DOCUMENT_GIT_MAX_BYTES,
|
|
@@ -114,8 +116,8 @@ import {
|
|
|
114
116
|
safeRedirect,
|
|
115
117
|
suggestAccessibleOn,
|
|
116
118
|
wcagLevel
|
|
117
|
-
} from "./chunk-
|
|
118
|
-
import "./chunk-
|
|
119
|
+
} from "./chunk-VCCNKTFD.js";
|
|
120
|
+
import "./chunk-FRVO75DK.js";
|
|
119
121
|
import {
|
|
120
122
|
curatedIcons,
|
|
121
123
|
getIcon
|
|
@@ -131,7 +133,7 @@ import {
|
|
|
131
133
|
generateNavLinks,
|
|
132
134
|
sanitizeHtml,
|
|
133
135
|
toSectionId
|
|
134
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-RA5IOFPY.js";
|
|
135
137
|
import {
|
|
136
138
|
cn
|
|
137
139
|
} from "./chunk-7EOSDFS3.js";
|
|
@@ -150,15 +152,16 @@ import {
|
|
|
150
152
|
navEntries,
|
|
151
153
|
pagesInNavOrder,
|
|
152
154
|
reconcileNav
|
|
153
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-OTDA6KWL.js";
|
|
154
156
|
import {
|
|
155
157
|
NavEntrySchema,
|
|
156
158
|
NavFileSchema
|
|
157
159
|
} from "./chunk-REDDTTGJ.js";
|
|
158
160
|
import {
|
|
159
161
|
getSectionContentSchema,
|
|
160
|
-
getSectionSchema
|
|
161
|
-
|
|
162
|
+
getSectionSchema,
|
|
163
|
+
getSectionSchemaForType
|
|
164
|
+
} from "./chunk-DMCGN5AS.js";
|
|
162
165
|
import {
|
|
163
166
|
clearRegistry,
|
|
164
167
|
createRegistry,
|
|
@@ -169,7 +172,7 @@ import {
|
|
|
169
172
|
getSection,
|
|
170
173
|
registerSchema,
|
|
171
174
|
registerSection
|
|
172
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-FTPETWXE.js";
|
|
173
176
|
import {
|
|
174
177
|
ChatbotConfigSchema,
|
|
175
178
|
ChatbotTaskSchema,
|
|
@@ -187,8 +190,8 @@ import {
|
|
|
187
190
|
StatusSchema,
|
|
188
191
|
VariantSchema,
|
|
189
192
|
normalizeSiteIndex
|
|
190
|
-
} from "./chunk-
|
|
191
|
-
import "./chunk-
|
|
193
|
+
} from "./chunk-UVIYI4J6.js";
|
|
194
|
+
import "./chunk-4TZJZU2T.js";
|
|
192
195
|
import {
|
|
193
196
|
FontNameSchema,
|
|
194
197
|
HexColorSchema,
|
|
@@ -242,6 +245,7 @@ export {
|
|
|
242
245
|
NavEntrySchema,
|
|
243
246
|
NavFileSchema,
|
|
244
247
|
NormalizedUsernameSchema,
|
|
248
|
+
NothingToPublishError,
|
|
245
249
|
PageSchema,
|
|
246
250
|
PageStatusSchema,
|
|
247
251
|
ProcessingQueue,
|
|
@@ -271,6 +275,7 @@ export {
|
|
|
271
275
|
audiencePasses,
|
|
272
276
|
buildGoogleFontsUrl,
|
|
273
277
|
clearRegistry,
|
|
278
|
+
clearSessionCookie,
|
|
274
279
|
cn,
|
|
275
280
|
composePreviewImage,
|
|
276
281
|
contrastColor,
|
|
@@ -304,6 +309,7 @@ export {
|
|
|
304
309
|
getSection,
|
|
305
310
|
getSectionContentSchema,
|
|
306
311
|
getSectionSchema,
|
|
312
|
+
getSectionSchemaForType,
|
|
307
313
|
gridColsClass,
|
|
308
314
|
groupDisplayLabel,
|
|
309
315
|
groupOfPage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-move.d.ts","sourceRoot":"","sources":["../../src/lib/block-move.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAcrE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,wJAAwJ;IACxJ,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"block-move.d.ts","sourceRoot":"","sources":["../../src/lib/block-move.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAcrE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,wJAAwJ;IACxJ,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAmCD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,SAAS,EACf,KAAK,GAAE,MAAM,MAAqB,GACjC,eAAe,CA2FjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../src/lib/contrast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../src/lib/contrast.ts"],"names":[],"mappings":"AAWA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAKhE;AAID,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAElD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAErE"}
|
package/dist/lib/dexie.d.ts
CHANGED
|
@@ -59,12 +59,6 @@ export declare function persistAll(sections: {
|
|
|
59
59
|
sectionId: string;
|
|
60
60
|
content: SectionContent;
|
|
61
61
|
}[], siteIndex?: SiteIndex, deletedSectionIds?: string[], siteConfig?: Record<string, unknown>): Promise<void>;
|
|
62
|
-
export declare function updateBranchShas(savedSha: string | null, mainSha: string | null): Promise<void>;
|
|
63
|
-
export declare function getBranchShas(): Promise<{
|
|
64
|
-
savedSha: string | null;
|
|
65
|
-
mainSha: string | null;
|
|
66
|
-
} | null>;
|
|
67
|
-
export declare function getDeletedSections(): Promise<string[]>;
|
|
68
62
|
/**
|
|
69
63
|
* Write the content snapshot for one commit.
|
|
70
64
|
*
|
|
@@ -83,6 +77,7 @@ export declare function cacheContent(sha: string, sections: LoadedSection[], ind
|
|
|
83
77
|
savedBranchSha?: string | null;
|
|
84
78
|
changedSectionIds?: string[];
|
|
85
79
|
mainIndex?: SiteIndex | null;
|
|
80
|
+
unparseableSectionIds?: string[];
|
|
86
81
|
}): Promise<void>;
|
|
87
82
|
export declare function getCachedContent(): Promise<{
|
|
88
83
|
sha: string;
|
|
@@ -99,6 +94,7 @@ export declare function getCachedContent(): Promise<{
|
|
|
99
94
|
* value and is not null. */
|
|
100
95
|
mediaManifest: MediaManifest | null;
|
|
101
96
|
documentManifest: DocumentManifest | null;
|
|
97
|
+
unparseableSectionIds: string[];
|
|
102
98
|
} | null>;
|
|
103
99
|
/** Invalidate only the cached content snapshot (e.g. after a publish removes the
|
|
104
100
|
* draft), forcing the next editor load to refetch rather than serve stale diff
|
|
@@ -114,8 +110,6 @@ export declare function removePendingMediaDeletion(id: string): Promise<void>;
|
|
|
114
110
|
export declare function getPendingMediaDeletions(): Promise<string[]>;
|
|
115
111
|
export declare function clearPendingMedia(): Promise<void>;
|
|
116
112
|
export declare function clearPendingMediaByIds(itemIds: string[], deletionIds: string[]): Promise<void>;
|
|
117
|
-
/** Snapshot a local edit that is about to be superseded (takeover or conflict
|
|
118
|
-
* resolution) so it is recoverable rather than silently destroyed. */
|
|
119
113
|
export declare function preserveEdit(sectionId: string, content: SectionContent, reason: "takeover" | "conflict"): Promise<string>;
|
|
120
114
|
export declare function listPreservedEdits(): Promise<PreservedEditRow[]>;
|
|
121
115
|
export declare function removePreservedEdit(id: string): Promise<void>;
|
package/dist/lib/dexie.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dexie.d.ts","sourceRoot":"","sources":["../../src/lib/dexie.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAe,UAAU,EAAQ,MAAM,wBAAwB,CAAC;AAEvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"dexie.d.ts","sourceRoot":"","sources":["../../src/lib/dexie.ts"],"names":[],"mappings":"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"}
|