@drawnagency/primitives 0.1.113 → 0.1.115
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/README.md +1 -1
- package/dist/auth/cookies.d.ts +39 -0
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/index.js +3 -3
- package/dist/chunk-4WQ36ZP7.js +83 -0
- package/dist/{chunk-REDDTTGJ.js → chunk-4Y2JQQZL.js} +19 -1
- package/dist/chunk-5GFACGSN.js +6 -0
- package/dist/{chunk-AHALSCQH.js → chunk-67P34WNW.js} +76 -131
- package/dist/{chunk-S2L3BPLS.js → chunk-7SX42OP4.js} +1 -1
- package/dist/{chunk-GGXZZ77Z.js → chunk-AASEGXNT.js} +18 -1
- package/dist/chunk-APIJPTFG.js +64 -0
- package/dist/{chunk-WKZ7OENC.js → chunk-BQ5TZZUE.js} +5 -1
- package/dist/chunk-CDBURDPX.js +90 -0
- package/dist/chunk-DFKTF3CH.js +0 -0
- package/dist/chunk-DIMDRBFK.js +11 -0
- package/dist/chunk-DJABADOO.js +131 -0
- package/dist/{chunk-NHN2LSIU.js → chunk-DJOGPSRU.js} +31 -68
- package/dist/{chunk-KR2MHTNJ.js → chunk-FHTKSELX.js} +610 -62
- package/dist/{chunk-WUJ3XNFI.js → chunk-GGYY3JQJ.js} +19 -24
- package/dist/chunk-GNF6KFQ7.js +18 -0
- package/dist/{chunk-FRE2CCLV.js → chunk-HHNPSKPT.js} +5 -79
- package/dist/{chunk-IINIZBQB.js → chunk-JCDZAFX2.js} +30 -10
- package/dist/chunk-JR24U7FJ.js +120 -0
- package/dist/{chunk-BDFTMGCL.js → chunk-JXATNKLV.js} +11 -10
- package/dist/{chunk-SW6PCQQD.js → chunk-KQA772WQ.js} +2 -1
- package/dist/{chunk-6BZ2KNTP.js → chunk-NX7TFHA4.js} +195 -65
- package/dist/{chunk-VWWY5TL5.js → chunk-O37AV27P.js} +14 -75
- package/dist/chunk-RIITGTV3.js +275 -0
- package/dist/{chunk-HBULBDGP.js → chunk-S37DZPHW.js} +1 -1
- package/dist/chunk-S7QRHUWO.js +8 -0
- package/dist/{chunk-Z7W3DQTR.js → chunk-T26HAKW3.js} +424 -42
- package/dist/{chunk-4I5OO5UB.js → chunk-TEOAKGZA.js} +0 -1
- package/dist/{chunk-GPPVYLEI.js → chunk-UUUSJDIG.js} +1 -1
- package/dist/chunk-VY3IFGE3.js +70 -0
- package/dist/chunk-WYOFQHKI.js +176 -0
- package/dist/{chunk-4RNF2DRG.js → chunk-XDEPXTBY.js} +0 -2
- package/dist/{chunk-DS4GCYV2.js → chunk-YV3YSZEB.js} +223 -16
- package/dist/collab/rebase.d.ts +2 -1
- package/dist/collab/rebase.d.ts.map +1 -1
- package/dist/collab/rebase.js +24 -9
- package/dist/components/brandguide/ColorsEditable.d.ts.map +1 -1
- package/dist/components/chat/ChatPanel.d.ts.map +1 -1
- package/dist/components/chat/ChatWidget.d.ts.map +1 -1
- package/dist/components/docfile/DocFilePane.d.ts.map +1 -1
- package/dist/components/editor/ChildBlockWrapper.d.ts.map +1 -1
- package/dist/components/editor/ConflictDialog.d.ts.map +1 -1
- package/dist/components/editor/DragHandle.d.ts +12 -2
- package/dist/components/editor/DragHandle.d.ts.map +1 -1
- package/dist/components/editor/DropEdgeIndicator.d.ts +15 -6
- package/dist/components/editor/DropEdgeIndicator.d.ts.map +1 -1
- package/dist/components/editor/NavGroupRow.d.ts +4 -1
- package/dist/components/editor/NavGroupRow.d.ts.map +1 -1
- package/dist/components/editor/PagesModal.d.ts.map +1 -1
- package/dist/components/editor/SectionWrapper.d.ts +1 -1
- package/dist/components/editor/SectionWrapper.d.ts.map +1 -1
- package/dist/components/editor/SettingsForm.d.ts.map +1 -1
- package/dist/components/editor/TagIndicator.d.ts +15 -0
- package/dist/components/editor/TagIndicator.d.ts.map +1 -0
- package/dist/components/editor/index.js +150 -79
- package/dist/components/primitives/DocumentDropZone.d.ts +1 -1
- package/dist/components/primitives/EditableGrid.d.ts.map +1 -1
- package/dist/components/primitives/EditableList.d.ts.map +1 -1
- package/dist/components/primitives/HeadingSection.d.ts +4 -1
- package/dist/components/primitives/HeadingSection.d.ts.map +1 -1
- package/dist/components/primitives/ResolvedMedia.d.ts +5 -1
- package/dist/components/primitives/ResolvedMedia.d.ts.map +1 -1
- package/dist/components/primitives/{defineHeadingSection.d.ts → define-heading-section.d.ts} +1 -1
- package/dist/components/primitives/define-heading-section.d.ts.map +1 -0
- package/dist/components/primitives/{gridDrop.d.ts → grid-drop.d.ts} +1 -1
- package/dist/components/primitives/grid-drop.d.ts.map +1 -0
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/index.d.ts.map +1 -1
- package/dist/components/primitives/index.js +22 -154
- package/dist/components/sections/Button/CTAButton.d.ts.map +1 -1
- package/dist/components/sections/DoDontMedia/DoDontMediaBlock.d.ts +2 -6
- package/dist/components/sections/DoDontMedia/DoDontMediaBlock.d.ts.map +1 -1
- package/dist/components/sections/DoDontMedia/index.d.ts +8 -0
- package/dist/components/sections/DoDontMedia/index.d.ts.map +1 -1
- package/dist/components/sections/IconList/IconList.d.ts +2 -1
- package/dist/components/sections/IconList/IconList.d.ts.map +1 -1
- package/dist/components/sections/IconList/IconListSettings.d.ts +2 -1
- package/dist/components/sections/IconList/IconListSettings.d.ts.map +1 -1
- package/dist/components/sections/IconList/index.d.ts +1 -0
- package/dist/components/sections/IconList/index.d.ts.map +1 -1
- package/dist/components/sections/Media/MediaBlock.d.ts +2 -1
- package/dist/components/sections/Media/MediaBlock.d.ts.map +1 -1
- package/dist/components/sections/Media/index.d.ts +8 -0
- package/dist/components/sections/Media/index.d.ts.map +1 -1
- package/dist/components/sections/Reference/ReferenceList.d.ts +35 -0
- package/dist/components/sections/Reference/ReferenceList.d.ts.map +1 -0
- package/dist/components/sections/Reference/ReferenceSettings.d.ts +12 -0
- package/dist/components/sections/Reference/ReferenceSettings.d.ts.map +1 -0
- package/dist/components/sections/Reference/index.d.ts +9 -0
- package/dist/components/sections/Reference/index.d.ts.map +1 -0
- package/dist/components/sections/SectionSummary/SectionSummaryBlock.d.ts +38 -0
- package/dist/components/sections/SectionSummary/SectionSummaryBlock.d.ts.map +1 -0
- package/dist/components/sections/SectionSummary/SectionSummarySettings.d.ts +20 -0
- package/dist/components/sections/SectionSummary/SectionSummarySettings.d.ts.map +1 -0
- package/dist/components/sections/SectionSummary/index.d.ts +33 -0
- package/dist/components/sections/SectionSummary/index.d.ts.map +1 -0
- package/dist/components/sections/all-sections.d.ts +53 -0
- package/dist/components/sections/all-sections.d.ts.map +1 -1
- package/dist/components/sections/brand-guide.d.ts +41 -2
- package/dist/components/sections/brand-guide.d.ts.map +1 -1
- package/dist/components/sections/brand-guide.js +17 -10
- package/dist/components/sections/core-sections.d.ts +14 -0
- package/dist/components/sections/core-sections.d.ts.map +1 -1
- package/dist/components/sections/register-schemas.js +25 -18
- package/dist/components/sections/register.js +25 -18
- package/dist/components/shared/BrandSwatchesContext.d.ts +9 -0
- package/dist/components/shared/BrandSwatchesContext.d.ts.map +1 -0
- package/dist/components/shared/Button.d.ts +11 -3
- package/dist/components/shared/Button.d.ts.map +1 -1
- package/dist/components/shared/Checkbox.d.ts +6 -0
- package/dist/components/shared/Checkbox.d.ts.map +1 -1
- package/dist/components/shared/ConfirmDialog.d.ts +25 -0
- package/dist/components/shared/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/shared/ConfirmInline.d.ts +25 -0
- package/dist/components/shared/ConfirmInline.d.ts.map +1 -0
- package/dist/components/shared/ErrorBoundary.d.ts.map +1 -1
- package/dist/components/shared/Fab.d.ts +11 -2
- package/dist/components/shared/Fab.d.ts.map +1 -1
- package/dist/components/shared/FabStack.d.ts +22 -0
- package/dist/components/shared/FabStack.d.ts.map +1 -0
- package/dist/components/shared/HistoryChangesModal.d.ts.map +1 -1
- package/dist/components/shared/HistoryPopover.d.ts.map +1 -1
- package/dist/components/shared/ImageBackgroundField.d.ts +9 -0
- package/dist/components/shared/ImageBackgroundField.d.ts.map +1 -0
- package/dist/components/shared/{UploadRejectionAlert.d.ts → InlineAlert.d.ts} +4 -2
- package/dist/components/shared/InlineAlert.d.ts.map +1 -0
- package/dist/components/shared/Input.d.ts +10 -0
- package/dist/components/shared/Input.d.ts.map +1 -1
- package/dist/components/shared/Navigation.d.ts.map +1 -1
- package/dist/components/shared/Notice.d.ts +10 -0
- package/dist/components/shared/Notice.d.ts.map +1 -0
- package/dist/components/shared/Popover.d.ts.map +1 -1
- package/dist/components/shared/ReferenceSourcesContext.d.ts +25 -0
- package/dist/components/shared/ReferenceSourcesContext.d.ts.map +1 -0
- package/dist/components/shared/Select.d.ts +3 -2
- package/dist/components/shared/Select.d.ts.map +1 -1
- package/dist/components/shared/SplitButton.d.ts.map +1 -1
- package/dist/components/shared/SummaryAnchorsContext.d.ts +10 -0
- package/dist/components/shared/SummaryAnchorsContext.d.ts.map +1 -0
- package/dist/components/shared/Textarea.d.ts +7 -0
- package/dist/components/shared/Textarea.d.ts.map +1 -1
- package/dist/components/shared/ToolbarFrame.d.ts +17 -0
- package/dist/components/shared/ToolbarFrame.d.ts.map +1 -0
- package/dist/components/shared/copy.d.ts +13 -0
- package/dist/components/shared/copy.d.ts.map +1 -0
- package/dist/components/shared/icons.d.ts +0 -12
- package/dist/components/shared/icons.d.ts.map +1 -1
- package/dist/components/shell/AudienceDetailsPanel.d.ts +7 -1
- package/dist/components/shell/AudienceDetailsPanel.d.ts.map +1 -1
- package/dist/components/shell/AudienceRow.d.ts.map +1 -1
- package/dist/components/shell/BugReportFAB.d.ts +7 -1
- package/dist/components/shell/BugReportFAB.d.ts.map +1 -1
- package/dist/components/shell/CredentialList.d.ts.map +1 -1
- package/dist/components/shell/DocInspector.d.ts.map +1 -1
- package/dist/components/shell/DocumentEditorOverlay.d.ts.map +1 -1
- package/dist/components/shell/EditorContext.d.ts +4 -0
- package/dist/components/shell/EditorContext.d.ts.map +1 -1
- package/dist/components/shell/EditorLoginForm.d.ts.map +1 -1
- package/dist/components/shell/EditorModal.d.ts.map +1 -1
- package/dist/components/shell/EditorShell.d.ts.map +1 -1
- package/dist/components/shell/HistoryToolbar.d.ts.map +1 -1
- package/dist/components/shell/MediaFolderTile.d.ts +4 -1
- package/dist/components/shell/MediaFolderTile.d.ts.map +1 -1
- package/dist/components/shell/MediaLibraryModal.d.ts.map +1 -1
- package/dist/components/shell/RestoreModal.d.ts.map +1 -1
- package/dist/components/shell/SiteSettingsChatbot.d.ts.map +1 -1
- package/dist/components/shell/SiteSettingsDisplay.d.ts.map +1 -1
- package/dist/components/shell/SiteSettingsModal.d.ts +3 -1
- package/dist/components/shell/SiteSettingsModal.d.ts.map +1 -1
- package/dist/components/shell/SiteSettingsTags.d.ts +13 -0
- package/dist/components/shell/SiteSettingsTags.d.ts.map +1 -0
- package/dist/components/shell/SiteSettingsUsers.d.ts.map +1 -1
- package/dist/components/shell/ViewerLoginForm.d.ts.map +1 -1
- package/dist/components/shell/{blockMoveDispatch.d.ts → block-move-dispatch.d.ts} +1 -1
- package/dist/components/shell/block-move-dispatch.d.ts.map +1 -0
- package/dist/components/shell/reference-sources.d.ts +22 -0
- package/dist/components/shell/reference-sources.d.ts.map +1 -0
- package/dist/deck/index.d.ts +2 -2
- package/dist/deck/index.d.ts.map +1 -1
- package/dist/deck/index.js +1 -3
- package/dist/deck-builder/index.js +10 -17
- package/dist/document/index.d.ts +2 -2
- package/dist/document/index.d.ts.map +1 -1
- package/dist/hooks/useBlockDnd.d.ts +11 -0
- package/dist/hooks/useBlockDnd.d.ts.map +1 -1
- package/dist/hooks/useBuildStatus.d.ts +1 -1
- package/dist/hooks/useBuildStatus.d.ts.map +1 -1
- package/dist/hooks/useDocumentUploads.d.ts +1 -1
- package/dist/hooks/useDocumentUploads.d.ts.map +1 -1
- package/dist/hooks/useEditorPersistence.d.ts +5 -1
- package/dist/hooks/useEditorPersistence.d.ts.map +1 -1
- package/dist/hooks/useEditorPublish.d.ts +6 -3
- package/dist/hooks/useEditorPublish.d.ts.map +1 -1
- package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
- package/dist/hooks/useNotice.d.ts +19 -0
- package/dist/hooks/useNotice.d.ts.map +1 -0
- package/dist/hooks/useSortableNavRow.d.ts +11 -0
- package/dist/hooks/useSortableNavRow.d.ts.map +1 -1
- package/dist/hooks/useSortableRow.d.ts +11 -0
- package/dist/hooks/useSortableRow.d.ts.map +1 -1
- package/dist/hooks/useStackedEscape.d.ts +32 -0
- package/dist/hooks/useStackedEscape.d.ts.map +1 -0
- package/dist/index.js +95 -48
- package/dist/lib/audience-secret.js +2 -2
- package/dist/lib/block-dnd.d.ts +5 -0
- package/dist/lib/block-dnd.d.ts.map +1 -1
- package/dist/lib/block-move.d.ts.map +1 -1
- package/dist/lib/brand-swatches.d.ts +12 -0
- package/dist/lib/brand-swatches.d.ts.map +1 -0
- package/dist/lib/container-ops.d.ts +3 -2
- package/dist/lib/container-ops.d.ts.map +1 -1
- package/dist/lib/dexie.d.ts +7 -1
- package/dist/lib/dexie.d.ts.map +1 -1
- package/dist/lib/dexie.js +12 -3
- package/dist/lib/env.d.ts +4 -0
- package/dist/lib/env.d.ts.map +1 -1
- package/dist/lib/env.js +5 -3
- package/dist/lib/events.d.ts +1 -2
- package/dist/lib/events.d.ts.map +1 -1
- package/dist/lib/image-background.d.ts +8 -0
- package/dist/lib/image-background.d.ts.map +1 -0
- package/dist/lib/image-variant-plan.d.ts +42 -0
- package/dist/lib/image-variant-plan.d.ts.map +1 -0
- package/dist/lib/image-variant-plan.js +53 -0
- package/dist/lib/index-ops.d.ts.map +1 -1
- package/dist/lib/index-ops.js +21 -17
- package/dist/lib/index.d.ts +7 -4
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +55 -26
- package/dist/lib/loader.d.ts +25 -12
- package/dist/lib/loader.d.ts.map +1 -1
- package/dist/lib/media-ops.d.ts +73 -0
- package/dist/lib/media-ops.d.ts.map +1 -0
- package/dist/lib/media-ops.js +60 -0
- package/dist/lib/nav-tree.d.ts +7 -0
- package/dist/lib/nav-tree.d.ts.map +1 -1
- package/dist/lib/nav.d.ts +38 -0
- package/dist/lib/nav.d.ts.map +1 -1
- package/dist/lib/pages.d.ts +2 -1
- package/dist/lib/pages.d.ts.map +1 -1
- package/dist/lib/platform-broker.d.ts +4 -2
- package/dist/lib/platform-broker.d.ts.map +1 -1
- package/dist/lib/platform-broker.js +21 -13
- package/dist/lib/reference-type.d.ts +2 -0
- package/dist/lib/reference-type.d.ts.map +1 -0
- package/dist/lib/reference-validation.d.ts +31 -0
- package/dist/lib/reference-validation.d.ts.map +1 -0
- package/dist/lib/reference-validation.js +39 -0
- package/dist/lib/references.d.ts +74 -0
- package/dist/lib/references.d.ts.map +1 -0
- package/dist/lib/registry.d.ts +35 -0
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/{safeRedirect.d.ts → safe-redirect.d.ts} +1 -1
- package/dist/lib/safe-redirect.d.ts.map +1 -0
- package/dist/lib/sidecar-diagnostics.d.ts +20 -0
- package/dist/lib/sidecar-diagnostics.d.ts.map +1 -0
- package/dist/lib/sidecars.d.ts +118 -0
- package/dist/lib/sidecars.d.ts.map +1 -0
- package/dist/lib/sidecars.js +23 -0
- package/dist/lib/slug.d.ts +2 -0
- package/dist/lib/slug.d.ts.map +1 -0
- package/dist/lib/storage-tier.d.ts +17 -0
- package/dist/lib/storage-tier.d.ts.map +1 -0
- package/dist/lib/storage-tier.js +29 -0
- package/dist/lib/tags.d.ts +64 -0
- package/dist/lib/tags.d.ts.map +1 -0
- package/dist/lib/theme-vars.d.ts +9 -0
- package/dist/lib/theme-vars.d.ts.map +1 -1
- package/dist/media/index.d.ts +1 -1
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +18 -14
- package/dist/media/queue.d.ts +2 -0
- package/dist/media/queue.d.ts.map +1 -1
- package/dist/media/utils.d.ts +2 -0
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/media/{videoPoster.d.ts → video-poster.d.ts} +1 -1
- package/dist/media/video-poster.d.ts.map +1 -0
- package/dist/media/worker.d.ts +1 -35
- package/dist/media/worker.d.ts.map +1 -1
- package/dist/schemas/audience.js +2 -2
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +25 -13
- package/dist/schemas/media.d.ts +4 -0
- package/dist/schemas/media.d.ts.map +1 -1
- package/dist/schemas/shared.d.ts +26 -0
- package/dist/schemas/shared.d.ts.map +1 -1
- package/dist/schemas/site-config.d.ts +6 -0
- package/dist/schemas/site-config.d.ts.map +1 -1
- package/dist/schemas/tags.d.ts +27 -0
- package/dist/schemas/tags.d.ts.map +1 -0
- package/dist/storage/index.js +2 -1
- package/dist/storage/memory.d.ts +21 -0
- package/dist/storage/memory.d.ts.map +1 -0
- package/dist/storage/memory.js +129 -0
- package/dist/storage/types.d.ts +9 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/types/database.d.ts.map +1 -1
- package/package.json +26 -1
- package/src/auth/cookies.ts +111 -0
- package/src/collab/rebase.ts +29 -9
- package/src/components/brandguide/ColorSwatchSettings.tsx +1 -1
- package/src/components/brandguide/ColorsEditable.tsx +1 -0
- package/src/components/chat/ChatPanel.tsx +2 -3
- package/src/components/chat/ChatWidget.tsx +2 -3
- package/src/components/docfile/DocFilePane.tsx +4 -12
- package/src/components/editor/ChildBlockWrapper.tsx +13 -19
- package/src/components/editor/ConflictDialog.tsx +27 -35
- package/src/components/editor/DeleteButton.tsx +2 -2
- package/src/components/editor/DragHandle.tsx +16 -3
- package/src/components/editor/DropEdgeIndicator.tsx +36 -10
- package/src/components/editor/InsertButton.tsx +2 -2
- package/src/components/editor/NavGroupRow.tsx +43 -14
- package/src/components/editor/PagesModal.tsx +99 -26
- package/src/components/editor/SectionWrapper.tsx +64 -23
- package/src/components/editor/SettingsButton.tsx +2 -2
- package/src/components/editor/SettingsForm.tsx +19 -2
- package/src/components/editor/StatusIndicator.tsx +4 -4
- package/src/components/editor/TagIndicator.tsx +80 -0
- package/src/components/primitives/DocumentDropZone.tsx +1 -1
- package/src/components/primitives/EditableGrid.tsx +15 -14
- package/src/components/primitives/EditableList.tsx +27 -74
- package/src/components/primitives/HeadingSection.tsx +5 -2
- package/src/components/primitives/ResolvedMedia.tsx +13 -0
- package/src/components/primitives/{defineHeadingSection.tsx → define-heading-section.tsx} +1 -0
- package/src/components/primitives/index.ts +1 -1
- package/src/components/primitives/useEditablePlainText.ts +5 -5
- package/src/components/sections/Button/CTAButton.tsx +3 -1
- package/src/components/sections/DoDontMedia/DoDontMediaBlock.tsx +4 -4
- package/src/components/sections/DoDontMedia/index.tsx +12 -3
- package/src/components/sections/IconList/DoDontToggle.tsx +2 -2
- package/src/components/sections/IconList/IconList.tsx +70 -37
- package/src/components/sections/IconList/IconListSettings.tsx +55 -17
- package/src/components/sections/IconList/index.tsx +10 -3
- package/src/components/sections/LinkHeading/index.tsx +1 -1
- package/src/components/sections/Media/MediaBlock.tsx +13 -2
- package/src/components/sections/Media/index.tsx +12 -4
- package/src/components/sections/Reference/ReferenceList.tsx +214 -0
- package/src/components/sections/Reference/ReferenceSettings.tsx +159 -0
- package/src/components/sections/Reference/index.tsx +47 -0
- package/src/components/sections/SectionSummary/SectionSummaryBlock.tsx +476 -0
- package/src/components/sections/SectionSummary/SectionSummarySettings.tsx +126 -0
- package/src/components/sections/SectionSummary/index.tsx +149 -0
- package/src/components/sections/SubHeading/index.tsx +1 -1
- package/src/components/sections/SubSubHeading/index.tsx +1 -1
- package/src/components/sections/brand-guide.ts +4 -3
- package/src/components/sections/core-sections.ts +2 -0
- package/src/components/shared/BrandSwatchesContext.ts +13 -0
- package/src/components/shared/Button.tsx +47 -34
- package/src/components/shared/Checkbox.tsx +21 -12
- package/src/components/shared/ConfirmDialog.tsx +87 -0
- package/src/components/shared/ConfirmInline.tsx +90 -0
- package/src/components/shared/ErrorBoundary.tsx +6 -18
- package/src/components/shared/Fab.tsx +15 -5
- package/src/components/shared/FabStack.tsx +28 -0
- package/src/components/shared/HistoryChangesModal.tsx +43 -41
- package/src/components/shared/HistoryPopover.tsx +7 -20
- package/src/components/shared/ImageBackgroundField.tsx +92 -0
- package/src/components/shared/{UploadRejectionAlert.tsx → InlineAlert.tsx} +21 -5
- package/src/components/shared/Input.tsx +23 -7
- package/src/components/shared/Navigation.tsx +22 -17
- package/src/components/shared/Notice.tsx +59 -0
- package/src/components/shared/Popover.tsx +7 -11
- package/src/components/shared/ReferenceSourcesContext.ts +27 -0
- package/src/components/shared/Select.tsx +5 -2
- package/src/components/shared/SplitButton.tsx +11 -17
- package/src/components/shared/SummaryAnchorsContext.ts +11 -0
- package/src/components/shared/Textarea.tsx +17 -2
- package/src/components/shared/ToolbarFrame.tsx +28 -0
- package/src/components/shared/VideoSourceField.tsx +1 -1
- package/src/components/shared/copy.ts +18 -0
- package/src/components/shared/icons.tsx +1 -17
- package/src/components/shell/AudienceAddForm.tsx +2 -2
- package/src/components/shell/AudienceDetailsPanel.tsx +23 -5
- package/src/components/shell/AudienceRow.tsx +22 -15
- package/src/components/shell/BugReportFAB.tsx +50 -40
- package/src/components/shell/CredentialList.tsx +33 -13
- package/src/components/shell/DocInspector.tsx +3 -12
- package/src/components/shell/DocumentEditorOverlay.tsx +33 -23
- package/src/components/shell/EditorContext.tsx +7 -0
- package/src/components/shell/EditorLoginForm.tsx +26 -36
- package/src/components/shell/EditorModal.tsx +8 -10
- package/src/components/shell/EditorShell.tsx +501 -338
- package/src/components/shell/HistoryToolbar.tsx +24 -26
- package/src/components/shell/MediaFolderTile.tsx +8 -3
- package/src/components/shell/MediaLibraryModal.tsx +59 -60
- package/src/components/shell/ProcessingIndicator.tsx +2 -2
- package/src/components/shell/RestoreModal.tsx +17 -16
- package/src/components/shell/SetPasswordForm.tsx +3 -3
- package/src/components/shell/SiteSettingsChatbot.tsx +61 -42
- package/src/components/shell/SiteSettingsDisplay.tsx +10 -20
- package/src/components/shell/SiteSettingsModal.tsx +24 -2
- package/src/components/shell/SiteSettingsTags.tsx +143 -0
- package/src/components/shell/SiteSettingsUsers.tsx +36 -26
- package/src/components/shell/SiteSettingsViewerAccess.tsx +2 -2
- package/src/components/shell/ViewerLoginForm.tsx +5 -4
- package/src/components/shell/reference-sources.ts +36 -0
- package/src/deck/index.ts +2 -2
- package/src/document/index.ts +2 -2
- package/src/hooks/useBlockDnd.ts +11 -0
- package/src/hooks/useBuildStatus.ts +53 -6
- package/src/hooks/useDocumentUploads.ts +1 -1
- package/src/hooks/useEditorPersistence.ts +141 -35
- package/src/hooks/useEditorPublish.ts +27 -31
- package/src/hooks/useMediaPipeline.ts +30 -24
- package/src/hooks/useNotice.ts +45 -0
- package/src/hooks/useSortableNavRow.ts +11 -0
- package/src/hooks/useSortableRow.ts +22 -2
- package/src/hooks/useStackedEscape.ts +62 -0
- package/src/lib/block-dnd.ts +6 -1
- package/src/lib/block-move.ts +3 -0
- package/src/lib/brand-swatches.ts +32 -0
- package/src/lib/container-ops.ts +5 -3
- package/src/lib/dexie.ts +24 -2
- package/src/lib/env.ts +9 -0
- package/src/lib/events.ts +1 -2
- package/src/lib/image-background.ts +31 -0
- package/src/lib/image-variant-plan.ts +92 -0
- package/src/lib/index-ops.ts +9 -18
- package/src/lib/index.ts +20 -4
- package/src/lib/loader.ts +28 -88
- package/src/lib/media-ops.ts +112 -0
- package/src/lib/nav-tree.ts +104 -4
- package/src/lib/nav.ts +196 -36
- package/src/lib/pages.ts +2 -3
- package/src/lib/platform-broker.ts +32 -14
- package/src/lib/reference-type.ts +3 -0
- package/src/lib/reference-validation.ts +69 -0
- package/src/lib/references.ts +130 -0
- package/src/lib/registry.ts +37 -0
- package/src/lib/sidecar-diagnostics.ts +29 -0
- package/src/lib/sidecars.ts +221 -0
- package/src/lib/slug.ts +6 -0
- package/src/lib/storage-tier.ts +38 -0
- package/src/lib/tags.ts +165 -0
- package/src/lib/theme-vars.ts +23 -0
- package/src/media/index.ts +1 -1
- package/src/media/queue.ts +3 -0
- package/src/media/utils.ts +19 -1
- package/src/media/{videoPoster.ts → video-poster.ts} +2 -2
- package/src/media/worker.ts +17 -8
- package/src/schemas/index.ts +1 -0
- package/src/schemas/media.ts +7 -2
- package/src/schemas/shared.ts +24 -1
- package/src/schemas/site-config.ts +6 -1
- package/src/schemas/tags.ts +33 -0
- package/src/storage/memory.ts +178 -0
- package/src/storage/types.ts +16 -3
- package/src/types/database.ts +2 -0
- package/dist/chunk-DNY72JZN.js +0 -86
- package/dist/chunk-F2LYQPXV.js +0 -77
- package/dist/chunk-JH762VUH.js +0 -128
- package/dist/chunk-K7DYZXVU.js +0 -138
- package/dist/components/primitives/defineHeadingSection.d.ts.map +0 -1
- package/dist/components/primitives/gridDrop.d.ts.map +0 -1
- package/dist/components/shared/UploadRejectionAlert.d.ts.map +0 -1
- package/dist/components/shell/BuildStatusIndicator.d.ts +0 -7
- package/dist/components/shell/BuildStatusIndicator.d.ts.map +0 -1
- package/dist/components/shell/blockMoveDispatch.d.ts.map +0 -1
- package/dist/hooks/index.d.ts +0 -9
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/lib/grid.d.ts +0 -2
- package/dist/lib/grid.d.ts.map +0 -1
- package/dist/lib/safeRedirect.d.ts.map +0 -1
- package/dist/media/videoPoster.d.ts.map +0 -1
- package/src/components/brandguide/ColorSwatchSettings.d.ts.map +0 -1
- package/src/components/brandguide/Colors.d.ts.map +0 -1
- package/src/components/primitives/CustomParagraph.d.ts.map +0 -1
- package/src/components/primitives/EditableGrid.d.ts.map +0 -1
- package/src/components/primitives/EditablePlainText.d.ts.map +0 -1
- package/src/components/primitives/EditableRichText.d.ts.map +0 -1
- package/src/components/primitives/HeadingSection.d.ts.map +0 -1
- package/src/components/primitives/IconPicker.d.ts.map +0 -1
- package/src/components/primitives/LinkPopover.d.ts.map +0 -1
- package/src/components/primitives/MediaSettingsForms.d.ts.map +0 -1
- package/src/components/primitives/ResolvedMedia.d.ts.map +0 -1
- package/src/components/primitives/RichTextToolbar.d.ts.map +0 -1
- package/src/components/primitives/tiptap-presets.d.ts.map +0 -1
- package/src/components/primitives/useEditableCollection.d.ts.map +0 -1
- package/src/components/primitives/useEditablePlainText.d.ts.map +0 -1
- package/src/components/primitives/useEditableRichText.d.ts.map +0 -1
- package/src/components/sections/Button/CTAButton.d.ts.map +0 -1
- package/src/components/sections/Button/index.d.ts.map +0 -1
- package/src/components/sections/Colors/index.d.ts.map +0 -1
- package/src/components/sections/IconList/IconList.d.ts.map +0 -1
- package/src/components/sections/IconList/IconListSettings.d.ts.map +0 -1
- package/src/components/sections/IconList/index.d.ts.map +0 -1
- package/src/components/sections/LinkHeading/index.d.ts.map +0 -1
- package/src/components/sections/Prose/Prose.d.ts.map +0 -1
- package/src/components/sections/Prose/index.d.ts.map +0 -1
- package/src/components/sections/SubHeading/index.d.ts.map +0 -1
- package/src/components/sections/SubSubHeading/index.d.ts.map +0 -1
- package/src/components/sections/register-schemas.d.ts.map +0 -1
- package/src/components/shared/Button.d.ts.map +0 -1
- package/src/components/shared/Checkbox.d.ts.map +0 -1
- package/src/components/shared/FormLabel.d.ts.map +0 -1
- package/src/components/shared/IconButton.d.ts.map +0 -1
- package/src/components/shared/Input.d.ts.map +0 -1
- package/src/components/shared/Select.d.ts.map +0 -1
- package/src/components/shared/icons.d.ts.map +0 -1
- package/src/components/shell/BuildStatusIndicator.tsx +0 -59
- package/src/components/shell/MediaLibraryContext.d.ts.map +0 -1
- package/src/hooks/index.ts +0 -8
- package/src/hooks/useResolvedMedia.d.ts.map +0 -1
- package/src/lib/cn.d.ts.map +0 -1
- package/src/lib/grid.d.ts.map +0 -1
- package/src/lib/grid.ts +0 -7
- package/src/lib/icons.d.ts.map +0 -1
- package/src/lib/loader.d.ts.map +0 -1
- package/src/lib/nav.d.ts.map +0 -1
- package/src/lib/registry.d.ts.map +0 -1
- package/src/lib/sanitize.d.ts.map +0 -1
- package/src/media/github.d.ts.map +0 -1
- package/src/media/index.d.ts.map +0 -1
- package/src/media/queue.d.ts.map +0 -1
- package/src/media/resolve.d.ts.map +0 -1
- package/src/media/types.d.ts.map +0 -1
- package/src/media/utils.d.ts.map +0 -1
- package/src/media/videoPoster.d.ts.map +0 -1
- package/src/schemas/auth.d.ts.map +0 -1
- package/src/schemas/media-grid-options.d.ts.map +0 -1
- package/src/schemas/media.d.ts.map +0 -1
- package/src/schemas/sections.d.ts.map +0 -1
- package/src/schemas/shared.d.ts.map +0 -1
- package/src/schemas/site-config.d.ts.map +0 -1
- /package/dist/{chunk-B7VBSE5X.js → chunk-3JDTXOIG.js} +0 -0
- /package/dist/{chunk-CXZ5YJG4.js → chunk-L45X7DKX.js} +0 -0
- /package/src/components/primitives/{gridDrop.ts → grid-drop.ts} +0 -0
- /package/src/components/shell/{blockMoveDispatch.ts → block-move-dispatch.ts} +0 -0
- /package/src/lib/{safeRedirect.ts → safe-redirect.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragHandle.d.ts","sourceRoot":"","sources":["../../../src/components/editor/DragHandle.tsx"],"names":[],"mappings":"AAKA,
|
|
1
|
+
{"version":3,"file":"DragHandle.d.ts","sourceRoot":"","sources":["../../../src/components/editor/DragHandle.tsx"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,UAAU,+GAgBrB,CAAC"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
|
+
import type { CSSProperties } from "react";
|
|
1
2
|
/**
|
|
2
|
-
* The
|
|
3
|
-
*
|
|
3
|
+
* The insertion line shown at an edge of a row/cell during a closest-edge
|
|
4
|
+
* drag-to-reorder, paired with `useSortableRow`'s (or `useSortableNavRow`'s)
|
|
5
|
+
* `closestEdge`. `top`/`bottom` render a horizontal line spanning the row;
|
|
6
|
+
* `left`/`right` render a vertical one spanning its height.
|
|
4
7
|
*
|
|
5
|
-
* `inset` starts
|
|
6
|
-
* distinguishing "drop inside this group" from "drop before this group"
|
|
8
|
+
* `inset` starts a horizontal line at the nested-row indent — the ONLY thing
|
|
9
|
+
* distinguishing "drop inside this group" from "drop before this group", and
|
|
7
10
|
* a group's last member slot from the top-level slot that follows it.
|
|
11
|
+
*
|
|
12
|
+
* `style` is the escape hatch for a caller whose perpendicular offset differs
|
|
13
|
+
* from the default (a wider cell gutter, a caller-specific `top`) — it wins
|
|
14
|
+
* over the default Tailwind transform/position via normal inline-style
|
|
15
|
+
* precedence, so callers only need to override the property that differs.
|
|
8
16
|
*/
|
|
9
|
-
export declare function DropEdgeIndicator({ edge, inset }: {
|
|
10
|
-
edge: "top" | "bottom" | null;
|
|
17
|
+
export declare function DropEdgeIndicator({ edge, inset, style, }: {
|
|
18
|
+
edge: "top" | "bottom" | "left" | "right" | null;
|
|
11
19
|
inset?: boolean;
|
|
20
|
+
style?: CSSProperties;
|
|
12
21
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
13
22
|
//# sourceMappingURL=DropEdgeIndicator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropEdgeIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/editor/DropEdgeIndicator.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"DropEdgeIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/editor/DropEdgeIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,KAAa,EACb,KAAK,GACN,EAAE;IACD,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,kDAmBA"}
|
|
@@ -3,6 +3,9 @@ import type { NavLocation } from "../../lib/nav-tree";
|
|
|
3
3
|
interface Props {
|
|
4
4
|
group: NavGroupEntry;
|
|
5
5
|
entryIndex: number;
|
|
6
|
+
/** Total top-level entries — groups move among these only (never into a
|
|
7
|
+
* group, unlike a page). */
|
|
8
|
+
entryCount: number;
|
|
6
9
|
memberCount: number;
|
|
7
10
|
/** Opens the settings panel on mount. The `+ Add group` flow sets this so a
|
|
8
11
|
* brand-new group lands with its label input focused. */
|
|
@@ -21,6 +24,6 @@ interface Props {
|
|
|
21
24
|
* non-dragging ones then cleared the dragging row's state. */
|
|
22
25
|
onDragStateChange?: (groupId: string, dragging: boolean) => void;
|
|
23
26
|
}
|
|
24
|
-
export declare function NavGroupRow({ group, entryIndex, memberCount, autoOpenSettings, onRename, onSetStartCollapsed, onDelete, onMove, onDragStateChange, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare function NavGroupRow({ group, entryIndex, entryCount, memberCount, autoOpenSettings, onRename, onSetStartCollapsed, onDelete, onMove, onDragStateChange, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
25
28
|
export {};
|
|
26
29
|
//# sourceMappingURL=NavGroupRow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavGroupRow.d.ts","sourceRoot":"","sources":["../../../src/components/editor/NavGroupRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"NavGroupRow.d.ts","sourceRoot":"","sources":["../../../src/components/editor/NavGroupRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAatD,UAAU,KAAK;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB;iCAC6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB;8DAC0D;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mBAAmB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACrD;;;;;;;mEAO+D;IAC/D,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAClE;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAwB,EACpE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,GACnE,EAAE,KAAK,2CAmHP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagesModal.d.ts","sourceRoot":"","sources":["../../../src/components/editor/PagesModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"PagesModal.d.ts","sourceRoot":"","sources":["../../../src/components/editor/PagesModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAUtE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOlE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;IAClG,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACzE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAkLhD"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { WrapperProps } from "../../lib/registry";
|
|
2
|
-
export declare function SectionWrapper({ sectionId, sectionType, status, dirty, index, isLast, containerId, isContainerBlock, definition, options, audiences, access, onAccessChange, onStatusChange, onSectionChange, onReorder, onRequestInsert, onDelete, onMoveSection, onAddChild, mainStatus, contentDiffersFromMain, isLocalOnly, lockedBy, onTakeover, onEditIntent, children, }: WrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function SectionWrapper({ sectionId, sectionType, status, dirty, index, isLast, sectionCount, containerId, isContainerBlock, definition, options, audiences, access, onAccessChange, tagging, onStatusChange, onSectionChange, onReorder, onRequestInsert, onDelete, onMoveSection, onAddChild, mainStatus, contentDiffersFromMain, isLocalOnly, lockedBy, onTakeover, onEditIntent, children, }: WrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=SectionWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/editor/SectionWrapper.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SectionWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/editor/SectionWrapper.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,WAAW,EACX,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,eAAe,EACf,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,YAAY,2CA8Xd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsForm.d.ts","sourceRoot":"","sources":["../../../src/components/editor/SettingsForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsForm.d.ts","sourceRoot":"","sources":["../../../src/components/editor/SettingsForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,oBAAoB,CAAC;AAe3E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CAC9C;AAmLD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB,2CAiCjF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TagEntry } from "../../schemas/tags";
|
|
2
|
+
interface TagIndicatorProps {
|
|
3
|
+
/** The site's tag registry, already reconciled (siteTags). */
|
|
4
|
+
tags: TagEntry[];
|
|
5
|
+
/** The ids of the tags on this section. */
|
|
6
|
+
assignedIds: string[];
|
|
7
|
+
onToggle: (tagId: string, tagged: boolean) => void;
|
|
8
|
+
/** Create a tag from a typed name and put it on this section. */
|
|
9
|
+
onCreate: (label: string) => void;
|
|
10
|
+
/** Display-only mode — the pill still summarizes, but the picker never opens. */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function TagIndicator({ tags, assignedIds, onToggle, onCreate, disabled }: TagIndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=TagIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/editor/TagIndicator.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAMnD,UAAU,iBAAiB;IACzB,8DAA8D;IAC9D,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,iEAAiE;IACjE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAyDlG"}
|
|
@@ -6,35 +6,44 @@ import {
|
|
|
6
6
|
buildBlockDragData,
|
|
7
7
|
buildBlockDropData,
|
|
8
8
|
canDropBlock,
|
|
9
|
-
isBlockDragData
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import "../../chunk-K7DYZXVU.js";
|
|
13
|
-
import {
|
|
14
|
-
AddIcon
|
|
15
|
-
} from "../../chunk-JH762VUH.js";
|
|
9
|
+
isBlockDragData,
|
|
10
|
+
useEditorContext
|
|
11
|
+
} from "../../chunk-NX7TFHA4.js";
|
|
16
12
|
import {
|
|
17
13
|
Kbd,
|
|
18
14
|
Popover,
|
|
19
15
|
PopoverItem,
|
|
20
16
|
Tooltip
|
|
21
|
-
} from "../../chunk-
|
|
22
|
-
import "../../chunk-
|
|
17
|
+
} from "../../chunk-JCDZAFX2.js";
|
|
18
|
+
import "../../chunk-GGYY3JQJ.js";
|
|
19
|
+
import {
|
|
20
|
+
CheckboxBox
|
|
21
|
+
} from "../../chunk-JR24U7FJ.js";
|
|
22
|
+
import {
|
|
23
|
+
DropEdgeIndicator
|
|
24
|
+
} from "../../chunk-RIITGTV3.js";
|
|
23
25
|
import {
|
|
24
26
|
IconButton
|
|
25
27
|
} from "../../chunk-IIDKW7AV.js";
|
|
26
|
-
import "../../chunk-
|
|
27
|
-
import "../../chunk-
|
|
28
|
+
import "../../chunk-HHNPSKPT.js";
|
|
29
|
+
import "../../chunk-CDBURDPX.js";
|
|
30
|
+
import "../../chunk-XDEPXTBY.js";
|
|
28
31
|
import {
|
|
29
32
|
cn
|
|
30
33
|
} from "../../chunk-7EOSDFS3.js";
|
|
31
|
-
import
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
import "../../chunk-
|
|
34
|
+
import {
|
|
35
|
+
tagDisplayLabel
|
|
36
|
+
} from "../../chunk-4WQ36ZP7.js";
|
|
37
|
+
import "../../chunk-GNF6KFQ7.js";
|
|
38
|
+
import "../../chunk-S7QRHUWO.js";
|
|
39
|
+
import {
|
|
40
|
+
REFERENCE_TYPE
|
|
41
|
+
} from "../../chunk-5GFACGSN.js";
|
|
42
|
+
import "../../chunk-APIJPTFG.js";
|
|
35
43
|
import "../../chunk-JSBRDJBE.js";
|
|
36
44
|
|
|
37
45
|
// src/components/editor/InsertButton.tsx
|
|
46
|
+
import { Plus } from "lucide-react";
|
|
38
47
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
39
48
|
function InsertButton({ index, onInsert }) {
|
|
40
49
|
return /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -46,7 +55,7 @@ function InsertButton({ index, onInsert }) {
|
|
|
46
55
|
] }), children: /* @__PURE__ */ jsx(
|
|
47
56
|
IconButton,
|
|
48
57
|
{
|
|
49
|
-
icon: /* @__PURE__ */ jsx(
|
|
58
|
+
icon: /* @__PURE__ */ jsx(Plus, { size: 18 }),
|
|
50
59
|
label: "Add section",
|
|
51
60
|
className: "pointer-events-auto rounded-md text-base-contrast-light/80 hover:bg-base-contrast-light/10 hover:text-base-contrast",
|
|
52
61
|
tabIndex: -1,
|
|
@@ -204,10 +213,10 @@ function deriveStatusDisplay({ mainStatus, savedStatus, contentDiffers, isLocalO
|
|
|
204
213
|
};
|
|
205
214
|
}
|
|
206
215
|
var dotColorClasses = {
|
|
207
|
-
live: "bg-
|
|
208
|
-
draft: "bg-
|
|
209
|
-
archived: "bg-white border-
|
|
210
|
-
modified: "bg-
|
|
216
|
+
live: "bg-status-live-text",
|
|
217
|
+
draft: "bg-status-draft-text",
|
|
218
|
+
archived: "bg-white border-status-draft-text",
|
|
219
|
+
modified: "bg-status-modified-text"
|
|
211
220
|
};
|
|
212
221
|
var STATUSES = ["draft", "live", "archived"];
|
|
213
222
|
function StatusRadioList({ status, onChange, onClose, ariaLabel = "Section status" }) {
|
|
@@ -333,20 +342,70 @@ function AudienceIndicator({ access, audiences, onChange, disabled }) {
|
|
|
333
342
|
}
|
|
334
343
|
|
|
335
344
|
// src/components/editor/SectionWrapper.tsx
|
|
336
|
-
import { useState as useState4, useRef as useRef2, useEffect as useEffect2 } from "react";
|
|
337
|
-
import { ArrowRightLeft, Plus } from "lucide-react";
|
|
345
|
+
import { useState as useState4, useRef as useRef2, useEffect as useEffect2, useId } from "react";
|
|
346
|
+
import { ArrowRightLeft, Plus as Plus3, ChevronUp, ChevronDown } from "lucide-react";
|
|
347
|
+
|
|
348
|
+
// src/components/editor/TagIndicator.tsx
|
|
349
|
+
import { useState as useState2 } from "react";
|
|
350
|
+
import { Plus as Plus2 } from "lucide-react";
|
|
351
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
352
|
+
function TagIndicator({ tags, assignedIds, onToggle, onCreate, disabled }) {
|
|
353
|
+
const [draft, setDraft] = useState2("");
|
|
354
|
+
const assigned = tags.filter((t) => assignedIds.includes(t.id));
|
|
355
|
+
const labelText = assigned.length === 0 ? "No tags" : assigned.length === 1 ? tagDisplayLabel(assigned[0].label) : `${assigned.length} tags`;
|
|
356
|
+
const ariaSummary = assigned.length === 0 ? "none" : assigned.map((t) => tagDisplayLabel(t.label)).join(", ");
|
|
357
|
+
function submit(e) {
|
|
358
|
+
e.preventDefault();
|
|
359
|
+
const label = draft.trim();
|
|
360
|
+
if (!label) return;
|
|
361
|
+
onCreate(label);
|
|
362
|
+
setDraft("");
|
|
363
|
+
}
|
|
364
|
+
return /* @__PURE__ */ jsx5(
|
|
365
|
+
IndicatorPill,
|
|
366
|
+
{
|
|
367
|
+
dots: [],
|
|
368
|
+
label: labelText,
|
|
369
|
+
ariaLabel: `Tags: ${ariaSummary}`,
|
|
370
|
+
buttonClassName: assigned.length === 0 ? "text-base-contrast-light" : void 0,
|
|
371
|
+
disabled,
|
|
372
|
+
clickContent: /* @__PURE__ */ jsxs5("div", { className: "w-56 py-1", children: [
|
|
373
|
+
tags.length > 0 && /* @__PURE__ */ jsx5("ul", { role: "list", className: "max-h-64 overflow-y-auto", children: tags.map((t) => {
|
|
374
|
+
const checked = assignedIds.includes(t.id);
|
|
375
|
+
return /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsxs5(PopoverItem, { role: "checkbox", "aria-checked": checked, onClick: () => onToggle(t.id, !checked), children: [
|
|
376
|
+
/* @__PURE__ */ jsx5(CheckboxBox, { checked }),
|
|
377
|
+
/* @__PURE__ */ jsx5("span", { className: cn("truncate font-medium text-base-contrast", !t.label && "italic text-base-contrast/60"), children: tagDisplayLabel(t.label) })
|
|
378
|
+
] }) }, t.id);
|
|
379
|
+
}) }),
|
|
380
|
+
/* @__PURE__ */ jsxs5("form", { onSubmit: submit, className: cn("flex items-center gap-1 px-3 py-1.5", tags.length > 0 && "border-t border-base-200"), children: [
|
|
381
|
+
/* @__PURE__ */ jsx5(
|
|
382
|
+
"input",
|
|
383
|
+
{
|
|
384
|
+
"aria-label": "New tag",
|
|
385
|
+
value: draft,
|
|
386
|
+
placeholder: tags.length > 0 ? "New tag" : "Create the first tag",
|
|
387
|
+
onChange: (e) => setDraft(e.target.value),
|
|
388
|
+
className: "min-w-0 flex-1 rounded border border-base-200 bg-base px-2 py-1 text-xs text-base-contrast focus:border-base-contrast focus:outline-none"
|
|
389
|
+
}
|
|
390
|
+
),
|
|
391
|
+
/* @__PURE__ */ jsx5(IconButton, { icon: /* @__PURE__ */ jsx5(Plus2, { size: 14 }), label: "Create tag", size: "sm", type: "submit" })
|
|
392
|
+
] })
|
|
393
|
+
] })
|
|
394
|
+
}
|
|
395
|
+
);
|
|
396
|
+
}
|
|
338
397
|
|
|
339
398
|
// src/components/editor/LockBadge.tsx
|
|
340
399
|
import { Lock } from "lucide-react";
|
|
341
|
-
import { jsx as
|
|
400
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
342
401
|
function LockBadge({ email, onTakeover }) {
|
|
343
|
-
return /* @__PURE__ */
|
|
344
|
-
/* @__PURE__ */
|
|
345
|
-
/* @__PURE__ */
|
|
402
|
+
return /* @__PURE__ */ jsxs6("span", { className: "pointer-events-auto inline-flex items-center gap-1.5 rounded-full bg-status-modified-bg px-2 py-0.5 text-xs font-medium text-status-modified-text align-middle", children: [
|
|
403
|
+
/* @__PURE__ */ jsx6(Lock, { size: 12, strokeWidth: 2.5, "aria-hidden": "true" }),
|
|
404
|
+
/* @__PURE__ */ jsxs6("span", { className: "whitespace-nowrap", children: [
|
|
346
405
|
email,
|
|
347
406
|
" is editing"
|
|
348
407
|
] }),
|
|
349
|
-
onTakeover && /* @__PURE__ */
|
|
408
|
+
onTakeover && /* @__PURE__ */ jsx6(
|
|
350
409
|
"button",
|
|
351
410
|
{
|
|
352
411
|
type: "button",
|
|
@@ -361,24 +420,12 @@ function LockBadge({ email, onTakeover }) {
|
|
|
361
420
|
] });
|
|
362
421
|
}
|
|
363
422
|
|
|
364
|
-
// src/components/shell/EditorContext.tsx
|
|
365
|
-
import { createContext, useContext, useState as useState2, useCallback as useCallback2 } from "react";
|
|
366
|
-
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
367
|
-
var EditorContext = createContext(null);
|
|
368
|
-
function useEditorContext() {
|
|
369
|
-
const context = useContext(EditorContext);
|
|
370
|
-
if (!context) {
|
|
371
|
-
throw new Error("useEditorContext must be used within an EditorProvider");
|
|
372
|
-
}
|
|
373
|
-
return context;
|
|
374
|
-
}
|
|
375
|
-
|
|
376
423
|
// src/components/shell/EditorModalContext.tsx
|
|
377
|
-
import { createContext
|
|
424
|
+
import { createContext, useContext, useState as useState3, useCallback as useCallback2 } from "react";
|
|
378
425
|
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
379
|
-
var EditorModalContext =
|
|
426
|
+
var EditorModalContext = createContext(null);
|
|
380
427
|
function useEditorModal() {
|
|
381
|
-
const context =
|
|
428
|
+
const context = useContext(EditorModalContext);
|
|
382
429
|
if (!context) {
|
|
383
430
|
throw new Error("useEditorModal must be used within an EditorModalProvider");
|
|
384
431
|
}
|
|
@@ -386,7 +433,7 @@ function useEditorModal() {
|
|
|
386
433
|
}
|
|
387
434
|
|
|
388
435
|
// src/components/editor/SectionWrapper.tsx
|
|
389
|
-
import { Fragment as Fragment2, jsx as jsx8, jsxs as
|
|
436
|
+
import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
390
437
|
function SectionWrapper({
|
|
391
438
|
sectionId,
|
|
392
439
|
sectionType,
|
|
@@ -394,6 +441,7 @@ function SectionWrapper({
|
|
|
394
441
|
dirty,
|
|
395
442
|
index,
|
|
396
443
|
isLast,
|
|
444
|
+
sectionCount,
|
|
397
445
|
containerId,
|
|
398
446
|
isContainerBlock,
|
|
399
447
|
definition,
|
|
@@ -401,6 +449,7 @@ function SectionWrapper({
|
|
|
401
449
|
audiences,
|
|
402
450
|
access,
|
|
403
451
|
onAccessChange,
|
|
452
|
+
tagging,
|
|
404
453
|
onStatusChange,
|
|
405
454
|
onSectionChange,
|
|
406
455
|
onReorder,
|
|
@@ -432,6 +481,7 @@ function SectionWrapper({
|
|
|
432
481
|
const handleRef = useRef2(null);
|
|
433
482
|
const [isDragging, setIsDragging] = useState4(false);
|
|
434
483
|
const [closestEdge, setClosestEdge] = useState4(null);
|
|
484
|
+
const dragHintId = useId();
|
|
435
485
|
const hasSettings = !!((definition.settings || definition.settingsForm) && onSectionChange);
|
|
436
486
|
useEffect2(() => {
|
|
437
487
|
const block = blockRef.current;
|
|
@@ -469,7 +519,8 @@ function SectionWrapper({
|
|
|
469
519
|
blockId: sectionId,
|
|
470
520
|
containerId,
|
|
471
521
|
index,
|
|
472
|
-
isContainer: isContainerBlock
|
|
522
|
+
isContainer: isContainerBlock,
|
|
523
|
+
isReference: sectionType === REFERENCE_TYPE
|
|
473
524
|
}),
|
|
474
525
|
onGenerateDragPreview: () => {
|
|
475
526
|
dropElement.style.opacity = "0.4";
|
|
@@ -517,7 +568,7 @@ function SectionWrapper({
|
|
|
517
568
|
cancelled = true;
|
|
518
569
|
cleanup?.();
|
|
519
570
|
};
|
|
520
|
-
}, [sectionId, index, containerId, isContainerBlock, isEditMode, isLocked]);
|
|
571
|
+
}, [sectionId, sectionType, index, containerId, isContainerBlock, isEditMode, isLocked]);
|
|
521
572
|
function handleSettingsClick() {
|
|
522
573
|
if (!onSectionChange) return;
|
|
523
574
|
if (definition.settingsForm) {
|
|
@@ -550,14 +601,14 @@ function SectionWrapper({
|
|
|
550
601
|
}
|
|
551
602
|
if (!isEditMode) {
|
|
552
603
|
if (status && status !== "live") {
|
|
553
|
-
return /* @__PURE__ */
|
|
604
|
+
return /* @__PURE__ */ jsxs7(
|
|
554
605
|
"div",
|
|
555
606
|
{
|
|
556
607
|
className: "relative",
|
|
557
608
|
"data-section-id": sectionId,
|
|
558
609
|
"data-section-type": sectionType,
|
|
559
610
|
children: [
|
|
560
|
-
/* @__PURE__ */ jsx8("div", { className: "pointer-events-none absolute right-0 bottom-full z-30 mb-1", children: /* @__PURE__ */
|
|
611
|
+
/* @__PURE__ */ jsx8("div", { className: "pointer-events-none absolute right-0 bottom-full z-30 mb-1", children: /* @__PURE__ */ jsxs7(
|
|
561
612
|
"span",
|
|
562
613
|
{
|
|
563
614
|
className: cn(
|
|
@@ -578,7 +629,7 @@ function SectionWrapper({
|
|
|
578
629
|
return /* @__PURE__ */ jsx8(Fragment2, { children });
|
|
579
630
|
}
|
|
580
631
|
const alwaysShow = showAllChrome || isActive;
|
|
581
|
-
return /* @__PURE__ */
|
|
632
|
+
return /* @__PURE__ */ jsxs7(
|
|
582
633
|
"div",
|
|
583
634
|
{
|
|
584
635
|
ref: blockRef,
|
|
@@ -603,26 +654,52 @@ function SectionWrapper({
|
|
|
603
654
|
children: /* @__PURE__ */ jsx8(InsertButton, { index, onInsert: onRequestInsert })
|
|
604
655
|
}
|
|
605
656
|
),
|
|
606
|
-
!isLocked && /* @__PURE__ */
|
|
657
|
+
!isLocked && /* @__PURE__ */ jsxs7(
|
|
607
658
|
"div",
|
|
608
659
|
{
|
|
609
660
|
className: cn(
|
|
610
661
|
"absolute left-0 bottom-full z-30 hover:z-[60] mb-1 flex items-center gap-1.5 transition-opacity",
|
|
611
|
-
|
|
662
|
+
// group-focus-within: this cluster's own tab stops (DragHandle,
|
|
663
|
+
// Move up/down) would otherwise be focusable but invisible —
|
|
664
|
+
// hover alone doesn't cover keyboard navigation.
|
|
665
|
+
alwaysShow ? "opacity-100" : "opacity-0 group-hover:opacity-100 group-focus-within:opacity-100"
|
|
612
666
|
),
|
|
613
667
|
children: [
|
|
614
|
-
/* @__PURE__ */
|
|
615
|
-
/* @__PURE__ */ jsx8(DragHandle, { ref: handleRef }),
|
|
668
|
+
/* @__PURE__ */ jsxs7("div", { className: "relative -ml-[34px] flex flex-col items-center", children: [
|
|
669
|
+
/* @__PURE__ */ jsx8(DragHandle, { ref: handleRef, tabIndex: 0, "aria-describedby": dragHintId }),
|
|
616
670
|
onRequestInsert && !isDragging && chromeReady && // Below xl the gutter can't fit the plus beside the handle, so it
|
|
617
671
|
// hangs below it (absolute → no row-height contribution: the handle
|
|
618
672
|
// stays put and the pair stacks DOWN instead of centering).
|
|
619
673
|
/* @__PURE__ */ jsx8("div", { className: "absolute top-full xl:hidden", children: /* @__PURE__ */ jsx8(InsertButton, { index, onInsert: onRequestInsert }) })
|
|
620
674
|
] }),
|
|
621
|
-
/* @__PURE__ */ jsx8("span", { className: "pointer-events-none select-none whitespace-nowrap text-sm capitalize text-base-contrast-light/80", children: definition.label })
|
|
675
|
+
/* @__PURE__ */ jsx8("span", { className: "pointer-events-none select-none whitespace-nowrap text-sm capitalize text-base-contrast-light/80", children: definition.label }),
|
|
676
|
+
onReorder && /* @__PURE__ */ jsxs7("div", { className: "pointer-events-auto flex items-center", children: [
|
|
677
|
+
/* @__PURE__ */ jsx8(
|
|
678
|
+
IconButton,
|
|
679
|
+
{
|
|
680
|
+
icon: /* @__PURE__ */ jsx8(ChevronUp, { size: 14 }),
|
|
681
|
+
label: sectionCount ? `Move up (position ${index + 1} of ${sectionCount})` : "Move up",
|
|
682
|
+
size: "sm",
|
|
683
|
+
disabled: index === 0,
|
|
684
|
+
onClick: () => onReorder(index, index - 1)
|
|
685
|
+
}
|
|
686
|
+
),
|
|
687
|
+
/* @__PURE__ */ jsx8(
|
|
688
|
+
IconButton,
|
|
689
|
+
{
|
|
690
|
+
icon: /* @__PURE__ */ jsx8(ChevronDown, { size: 14 }),
|
|
691
|
+
label: sectionCount ? `Move down (position ${index + 1} of ${sectionCount})` : "Move down",
|
|
692
|
+
size: "sm",
|
|
693
|
+
disabled: isLast,
|
|
694
|
+
onClick: () => onReorder(index, index + 1)
|
|
695
|
+
}
|
|
696
|
+
)
|
|
697
|
+
] }),
|
|
698
|
+
/* @__PURE__ */ jsx8("span", { id: dragHintId, className: "sr-only", children: "Use Move up / Move down to reorder with the keyboard." })
|
|
622
699
|
]
|
|
623
700
|
}
|
|
624
701
|
),
|
|
625
|
-
/* @__PURE__ */
|
|
702
|
+
/* @__PURE__ */ jsxs7(
|
|
626
703
|
"div",
|
|
627
704
|
{
|
|
628
705
|
className: cn(
|
|
@@ -657,22 +734,26 @@ function SectionWrapper({
|
|
|
657
734
|
onChange: (newAccess) => onAccessChange?.(newAccess)
|
|
658
735
|
}
|
|
659
736
|
) }),
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
737
|
+
/* @__PURE__ */ jsx8("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx8(
|
|
738
|
+
TagIndicator,
|
|
739
|
+
{
|
|
740
|
+
tags: tagging.tags,
|
|
741
|
+
assignedIds: tagging.assignedIds,
|
|
742
|
+
disabled: isLocked || !tagging.onToggle || !tagging.onCreate,
|
|
743
|
+
onToggle: (tagId, tagged) => tagging.onToggle?.(tagId, tagged),
|
|
744
|
+
onCreate: (label) => tagging.onCreate?.(label)
|
|
745
|
+
}
|
|
746
|
+
) }),
|
|
747
|
+
!isLocked && onAddChild && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: "Add a block", children: /* @__PURE__ */ jsx8(
|
|
664
748
|
IconButton,
|
|
665
749
|
{
|
|
666
|
-
icon: /* @__PURE__ */ jsx8(
|
|
750
|
+
icon: /* @__PURE__ */ jsx8(Plus3, { size: 16 }),
|
|
667
751
|
label: "Add block",
|
|
668
752
|
onClick: onAddChild,
|
|
669
753
|
className: "pointer-events-auto hover:text-primary"
|
|
670
754
|
}
|
|
671
755
|
) }),
|
|
672
|
-
!isLocked && onMoveSection && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: /* @__PURE__ */
|
|
673
|
-
/* @__PURE__ */ jsx8(Kbd, { children: "Move" }),
|
|
674
|
-
" to page"
|
|
675
|
-
] }), children: /* @__PURE__ */ jsx8(
|
|
756
|
+
!isLocked && onMoveSection && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: "Move to page", children: /* @__PURE__ */ jsx8(
|
|
676
757
|
IconButton,
|
|
677
758
|
{
|
|
678
759
|
icon: /* @__PURE__ */ jsx8(ArrowRightLeft, { size: 16 }),
|
|
@@ -681,28 +762,18 @@ function SectionWrapper({
|
|
|
681
762
|
className: "pointer-events-auto hover:text-primary"
|
|
682
763
|
}
|
|
683
764
|
) }),
|
|
684
|
-
!isLocked && hasSettings && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: /* @__PURE__ */
|
|
685
|
-
|
|
686
|
-
" settings"
|
|
687
|
-
] }), children: /* @__PURE__ */ jsx8(SettingsButton, { onClick: handleSettingsClick }) }),
|
|
688
|
-
!isLocked && onDelete && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
689
|
-
/* @__PURE__ */ jsx8(Kbd, { children: "Delete" }),
|
|
690
|
-
" section"
|
|
691
|
-
] }), children: /* @__PURE__ */ jsx8(DeleteButton, { onDelete }) })
|
|
765
|
+
!isLocked && hasSettings && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: "Edit settings", children: /* @__PURE__ */ jsx8(SettingsButton, { onClick: handleSettingsClick }) }),
|
|
766
|
+
!isLocked && onDelete && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: "Delete section", children: /* @__PURE__ */ jsx8(DeleteButton, { onDelete }) })
|
|
692
767
|
]
|
|
693
768
|
}
|
|
694
769
|
),
|
|
695
|
-
|
|
696
|
-
|
|
770
|
+
/* @__PURE__ */ jsx8(
|
|
771
|
+
DropEdgeIndicator,
|
|
697
772
|
{
|
|
698
|
-
|
|
699
|
-
style: {
|
|
700
|
-
top: "calc(var(--section-gap) / 2 * -1)",
|
|
701
|
-
transform: "translateY(-50%)"
|
|
702
|
-
}
|
|
773
|
+
edge: closestEdge === "bottom" && !isLast ? null : closestEdge,
|
|
774
|
+
style: closestEdge === "top" ? { top: "calc(var(--section-gap) / 2 * -1)" } : closestEdge === "bottom" ? { transform: "none" } : void 0
|
|
703
775
|
}
|
|
704
776
|
),
|
|
705
|
-
closestEdge === "bottom" && isLast && /* @__PURE__ */ jsx8("div", { className: "absolute right-0 bottom-0 left-0 z-10 h-0.5 bg-primary" }),
|
|
706
777
|
isLocked ? (
|
|
707
778
|
// React 19 supports the boolean `inert` prop — blocks focus, pointer,
|
|
708
779
|
// and edits to another editor's locked content. Only wrapped when
|
|
@@ -10,7 +10,7 @@ interface DocumentDropZoneProps {
|
|
|
10
10
|
*
|
|
11
11
|
* Deliberately thin on validation: every rejection (wrong type, too large, no
|
|
12
12
|
* documents store) belongs to `uploadDocument`, which already routes typed copy
|
|
13
|
-
* through the pipeline's `onUploadError` → `
|
|
13
|
+
* through the pipeline's `onUploadError` → `InlineAlert` channel. The
|
|
14
14
|
* one judgement made here is WHICH file of a multi-file drop to hand over.
|
|
15
15
|
*/
|
|
16
16
|
export declare function DocumentDropZone({ onDocumentSelected, className }: DocumentDropZoneProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableGrid.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/EditableGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"EditableGrid.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/EditableGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAU3E,UAAU,iBAAiB,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IAClF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;2FACuF;IACvF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,KAAK,EACL,SAAS,GACV,EAAE,iBAAiB,CAAC,CAAC,CAAC,2CAqItB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableList.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/EditableList.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EditableList.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/EditableList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAS9C,UAAU,iBAAiB,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,GACV,EAAE,iBAAiB,CAAC,CAAC,CAAC,2CA8CtB"}
|
|
@@ -3,8 +3,11 @@ interface Props {
|
|
|
3
3
|
tag: "h2" | "h3" | "h4";
|
|
4
4
|
placeholder: string;
|
|
5
5
|
className?: string;
|
|
6
|
+
/** Overrides the heading-derived id — the `<heading>-<reference id>` anchor stamped on a copy a
|
|
7
|
+
* Reference pulled in (withNavAnchors). */
|
|
8
|
+
anchor?: string;
|
|
6
9
|
onChange?: (heading: string) => void;
|
|
7
10
|
}
|
|
8
|
-
export declare function HeadingSection({ heading, tag, placeholder, className, onChange }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function HeadingSection({ heading, tag, placeholder, className, anchor, onChange }: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
12
|
export {};
|
|
10
13
|
//# sourceMappingURL=HeadingSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadingSection.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/HeadingSection.tsx"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"HeadingSection.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/HeadingSection.tsx"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;gDAC4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAY/F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ImageBackdrop } from "../../lib/image-background";
|
|
1
2
|
interface ResolvedMediaProps {
|
|
2
3
|
imageId: string | undefined;
|
|
3
4
|
src?: string;
|
|
@@ -8,7 +9,10 @@ interface ResolvedMediaProps {
|
|
|
8
9
|
className?: string;
|
|
9
10
|
imgClassName?: string;
|
|
10
11
|
invertFrom?: string;
|
|
12
|
+
/** Painted above the loading placeholder and below the media, so it holds in
|
|
13
|
+
* the zero-JS viewer (where the placeholder never fades) and after load. */
|
|
14
|
+
backdrop?: ImageBackdrop;
|
|
11
15
|
}
|
|
12
|
-
export declare function ResolvedMedia({ imageId, src: propSrc, srcset: propSrcset, alt: propAlt, width: propWidth, height: propHeight, className, imgClassName, invertFrom, }: ResolvedMediaProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function ResolvedMedia({ imageId, src: propSrc, srcset: propSrcset, alt: propAlt, width: propWidth, height: propHeight, className, imgClassName, invertFrom, backdrop, }: ResolvedMediaProps): import("react/jsx-runtime").JSX.Element;
|
|
13
17
|
export {};
|
|
14
18
|
//# sourceMappingURL=ResolvedMedia.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvedMedia.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/ResolvedMedia.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ResolvedMedia.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/ResolvedMedia.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,EAClB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,GACT,EAAE,kBAAkB,2CAyFpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-heading-section.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/define-heading-section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,UAAU,oBAAoB,CAAC,CAAC,SAAS,MAAM;IAC7C,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,uFAAuF;IACvF,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;;;;;GA6CrF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-drop.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/grid-drop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,WAAW,EACX,IAAI,EACJ,cAAc,GACf,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,MAAM,CAIT"}
|
|
@@ -5,7 +5,7 @@ export { EditableGrid } from "./EditableGrid";
|
|
|
5
5
|
export { ImageDropZone } from "./ImageDropZone";
|
|
6
6
|
export { ResolvedMedia } from "./ResolvedMedia";
|
|
7
7
|
export { LinkPopover } from "./LinkPopover";
|
|
8
|
-
export { defineHeadingSection } from "./
|
|
8
|
+
export { defineHeadingSection } from "./define-heading-section";
|
|
9
9
|
export { MediaBlock } from "../sections/Media/MediaBlock";
|
|
10
10
|
export { LinkField } from "../shared/LinkField";
|
|
11
11
|
export { usePages, PagesContext, type PagesContextValue } from "../shared/PagesContext";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|