@batterai/editor-shell 0.1.0
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/CHANGELOG.md +5 -0
- package/LICENSE +101 -0
- package/README.md +11 -0
- package/dist/App.d.ts +4 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/App.js +388 -0
- package/dist/App.js.map +1 -0
- package/dist/app/AppCanvas.d.ts +52 -0
- package/dist/app/AppCanvas.d.ts.map +1 -0
- package/dist/app/AppCanvas.js +43 -0
- package/dist/app/AppCanvas.js.map +1 -0
- package/dist/app/AppDialogs.d.ts +25 -0
- package/dist/app/AppDialogs.d.ts.map +1 -0
- package/dist/app/AppDialogs.js +16 -0
- package/dist/app/AppDialogs.js.map +1 -0
- package/dist/app/AppInspectorPanel.d.ts +66 -0
- package/dist/app/AppInspectorPanel.d.ts.map +1 -0
- package/dist/app/AppInspectorPanel.js +94 -0
- package/dist/app/AppInspectorPanel.js.map +1 -0
- package/dist/app/AppStates.d.ts +5 -0
- package/dist/app/AppStates.d.ts.map +1 -0
- package/dist/app/AppStates.js +8 -0
- package/dist/app/AppStates.js.map +1 -0
- package/dist/app/AppTypes.d.ts +18 -0
- package/dist/app/AppTypes.d.ts.map +1 -0
- package/dist/app/AppTypes.js +2 -0
- package/dist/app/AppTypes.js.map +1 -0
- package/dist/app/OperationErrorBanner.d.ts +5 -0
- package/dist/app/OperationErrorBanner.d.ts.map +1 -0
- package/dist/app/OperationErrorBanner.js +5 -0
- package/dist/app/OperationErrorBanner.js.map +1 -0
- package/dist/app/capability-guards.d.ts +9 -0
- package/dist/app/capability-guards.d.ts.map +1 -0
- package/dist/app/capability-guards.js +22 -0
- package/dist/app/capability-guards.js.map +1 -0
- package/dist/app/deriveSelectionState.d.ts +31 -0
- package/dist/app/deriveSelectionState.d.ts.map +1 -0
- package/dist/app/deriveSelectionState.js +79 -0
- package/dist/app/deriveSelectionState.js.map +1 -0
- package/dist/app/helpers.d.ts +31 -0
- package/dist/app/helpers.d.ts.map +1 -0
- package/dist/app/helpers.js +145 -0
- package/dist/app/helpers.js.map +1 -0
- package/dist/app/hostServices.d.ts +2 -0
- package/dist/app/hostServices.d.ts.map +1 -0
- package/dist/app/hostServices.js +2 -0
- package/dist/app/hostServices.js.map +1 -0
- package/dist/app/persistence-machine.d.ts +27 -0
- package/dist/app/persistence-machine.d.ts.map +1 -0
- package/dist/app/persistence-machine.js +66 -0
- package/dist/app/persistence-machine.js.map +1 -0
- package/dist/app/useCollectionEditing.d.ts +30 -0
- package/dist/app/useCollectionEditing.d.ts.map +1 -0
- package/dist/app/useCollectionEditing.js +80 -0
- package/dist/app/useCollectionEditing.js.map +1 -0
- package/dist/app/useCommitActions.d.ts +64 -0
- package/dist/app/useCommitActions.d.ts.map +1 -0
- package/dist/app/useCommitActions.js +319 -0
- package/dist/app/useCommitActions.js.map +1 -0
- package/dist/app/useEditorCollaboration.d.ts +30 -0
- package/dist/app/useEditorCollaboration.d.ts.map +1 -0
- package/dist/app/useEditorCollaboration.js +374 -0
- package/dist/app/useEditorCollaboration.js.map +1 -0
- package/dist/app/useEditorEffects.d.ts +42 -0
- package/dist/app/useEditorEffects.d.ts.map +1 -0
- package/dist/app/useEditorEffects.js +105 -0
- package/dist/app/useEditorEffects.js.map +1 -0
- package/dist/app/useEditorRuntime.d.ts +34 -0
- package/dist/app/useEditorRuntime.d.ts.map +1 -0
- package/dist/app/useEditorRuntime.js +68 -0
- package/dist/app/useEditorRuntime.js.map +1 -0
- package/dist/app/useEditorState.d.ts +55 -0
- package/dist/app/useEditorState.d.ts.map +1 -0
- package/dist/app/useEditorState.js +68 -0
- package/dist/app/useEditorState.js.map +1 -0
- package/dist/app/usePageOps.d.ts +37 -0
- package/dist/app/usePageOps.d.ts.map +1 -0
- package/dist/app/usePageOps.js +69 -0
- package/dist/app/usePageOps.js.map +1 -0
- package/dist/app/usePersistence.d.ts +48 -0
- package/dist/app/usePersistence.d.ts.map +1 -0
- package/dist/app/usePersistence.js +344 -0
- package/dist/app/usePersistence.js.map +1 -0
- package/dist/app/usePreviewSession.d.ts +22 -0
- package/dist/app/usePreviewSession.d.ts.map +1 -0
- package/dist/app/usePreviewSession.js +21 -0
- package/dist/app/usePreviewSession.js.map +1 -0
- package/dist/app/useWorkspaceDocumentSync.d.ts +33 -0
- package/dist/app/useWorkspaceDocumentSync.d.ts.map +1 -0
- package/dist/app/useWorkspaceDocumentSync.js +128 -0
- package/dist/app/useWorkspaceDocumentSync.js.map +1 -0
- package/dist/appearance.d.ts +6 -0
- package/dist/appearance.d.ts.map +1 -0
- package/dist/appearance.js +53 -0
- package/dist/appearance.js.map +1 -0
- package/dist/bindingChips.d.ts +28 -0
- package/dist/bindingChips.d.ts.map +1 -0
- package/dist/bindingChips.js +93 -0
- package/dist/bindingChips.js.map +1 -0
- package/dist/block-factory.d.ts +21 -0
- package/dist/block-factory.d.ts.map +1 -0
- package/dist/block-factory.js +78 -0
- package/dist/block-factory.js.map +1 -0
- package/dist/blockHost.d.ts +22 -0
- package/dist/blockHost.d.ts.map +1 -0
- package/dist/blockHost.js +103 -0
- package/dist/blockHost.js.map +1 -0
- package/dist/blockInteraction.d.ts +11 -0
- package/dist/blockInteraction.d.ts.map +1 -0
- package/dist/blockInteraction.js +16 -0
- package/dist/blockInteraction.js.map +1 -0
- package/dist/blockPresets.d.ts +4 -0
- package/dist/blockPresets.d.ts.map +1 -0
- package/dist/blockPresets.js +11 -0
- package/dist/blockPresets.js.map +1 -0
- package/dist/collaboration.d.ts +41 -0
- package/dist/collaboration.d.ts.map +1 -0
- package/dist/collaboration.js +4 -0
- package/dist/collaboration.js.map +1 -0
- package/dist/collectionItemAddress.d.ts +12 -0
- package/dist/collectionItemAddress.d.ts.map +1 -0
- package/dist/collectionItemAddress.js +19 -0
- package/dist/collectionItemAddress.js.map +1 -0
- package/dist/components/AddCollectionItemControl.d.ts +15 -0
- package/dist/components/AddCollectionItemControl.d.ts.map +1 -0
- package/dist/components/AddCollectionItemControl.js +19 -0
- package/dist/components/AddCollectionItemControl.js.map +1 -0
- package/dist/components/AuditHistoryPanel.d.ts +10 -0
- package/dist/components/AuditHistoryPanel.d.ts.map +1 -0
- package/dist/components/AuditHistoryPanel.js +11 -0
- package/dist/components/AuditHistoryPanel.js.map +1 -0
- package/dist/components/Canvas.d.ts +64 -0
- package/dist/components/Canvas.d.ts.map +1 -0
- package/dist/components/Canvas.js +238 -0
- package/dist/components/Canvas.js.map +1 -0
- package/dist/components/CollaborationLayer.d.ts +13 -0
- package/dist/components/CollaborationLayer.d.ts.map +1 -0
- package/dist/components/CollaborationLayer.js +91 -0
- package/dist/components/CollaborationLayer.js.map +1 -0
- package/dist/components/DesignSettingsPanel.d.ts +10 -0
- package/dist/components/DesignSettingsPanel.d.ts.map +1 -0
- package/dist/components/DesignSettingsPanel.js +26 -0
- package/dist/components/DesignSettingsPanel.js.map +1 -0
- package/dist/components/EditableDate.d.ts +24 -0
- package/dist/components/EditableDate.d.ts.map +1 -0
- package/dist/components/EditableDate.js +41 -0
- package/dist/components/EditableDate.js.map +1 -0
- package/dist/components/EditableText.d.ts +23 -0
- package/dist/components/EditableText.d.ts.map +1 -0
- package/dist/components/EditableText.js +53 -0
- package/dist/components/EditableText.js.map +1 -0
- package/dist/components/FieldControl.d.ts +15 -0
- package/dist/components/FieldControl.d.ts.map +1 -0
- package/dist/components/FieldControl.js +64 -0
- package/dist/components/FieldControl.js.map +1 -0
- package/dist/components/IconFieldEditor.d.ts +9 -0
- package/dist/components/IconFieldEditor.d.ts.map +1 -0
- package/dist/components/IconFieldEditor.js +15 -0
- package/dist/components/IconFieldEditor.js.map +1 -0
- package/dist/components/ImageFieldEditor.d.ts +15 -0
- package/dist/components/ImageFieldEditor.d.ts.map +1 -0
- package/dist/components/ImageFieldEditor.js +37 -0
- package/dist/components/ImageFieldEditor.js.map +1 -0
- package/dist/components/Inspector.d.ts +55 -0
- package/dist/components/Inspector.d.ts.map +1 -0
- package/dist/components/Inspector.js +44 -0
- package/dist/components/Inspector.js.map +1 -0
- package/dist/components/LayoutBlockEditor.d.ts +32 -0
- package/dist/components/LayoutBlockEditor.d.ts.map +1 -0
- package/dist/components/LayoutBlockEditor.js +176 -0
- package/dist/components/LayoutBlockEditor.js.map +1 -0
- package/dist/components/LicenseWatermark.d.ts +5 -0
- package/dist/components/LicenseWatermark.d.ts.map +1 -0
- package/dist/components/LicenseWatermark.js +7 -0
- package/dist/components/LicenseWatermark.js.map +1 -0
- package/dist/components/NestedBlockItem.d.ts +26 -0
- package/dist/components/NestedBlockItem.d.ts.map +1 -0
- package/dist/components/NestedBlockItem.js +164 -0
- package/dist/components/NestedBlockItem.js.map +1 -0
- package/dist/components/NestedInsertSlot.d.ts +18 -0
- package/dist/components/NestedInsertSlot.d.ts.map +1 -0
- package/dist/components/NestedInsertSlot.js +51 -0
- package/dist/components/NestedInsertSlot.js.map +1 -0
- package/dist/components/NewPageDialog.d.ts +9 -0
- package/dist/components/NewPageDialog.d.ts.map +1 -0
- package/dist/components/NewPageDialog.js +12 -0
- package/dist/components/NewPageDialog.js.map +1 -0
- package/dist/components/PageFrame.d.ts +75 -0
- package/dist/components/PageFrame.d.ts.map +1 -0
- package/dist/components/PageFrame.js +87 -0
- package/dist/components/PageFrame.js.map +1 -0
- package/dist/components/PageInspector.d.ts +16 -0
- package/dist/components/PageInspector.d.ts.map +1 -0
- package/dist/components/PageInspector.js +56 -0
- package/dist/components/PageInspector.js.map +1 -0
- package/dist/components/PresetSaveDialog.d.ts +8 -0
- package/dist/components/PresetSaveDialog.d.ts.map +1 -0
- package/dist/components/PresetSaveDialog.js +7 -0
- package/dist/components/PresetSaveDialog.js.map +1 -0
- package/dist/components/ReferenceChipsEditor.d.ts +23 -0
- package/dist/components/ReferenceChipsEditor.d.ts.map +1 -0
- package/dist/components/ReferenceChipsEditor.js +68 -0
- package/dist/components/ReferenceChipsEditor.js.map +1 -0
- package/dist/components/TopBar.d.ts +49 -0
- package/dist/components/TopBar.d.ts.map +1 -0
- package/dist/components/TopBar.js +41 -0
- package/dist/components/TopBar.js.map +1 -0
- package/dist/components/canvas/CanvasBoard.d.ts +97 -0
- package/dist/components/canvas/CanvasBoard.d.ts.map +1 -0
- package/dist/components/canvas/CanvasBoard.js +35 -0
- package/dist/components/canvas/CanvasBoard.js.map +1 -0
- package/dist/components/canvas/EditableCanvasTitle.d.ts +13 -0
- package/dist/components/canvas/EditableCanvasTitle.d.ts.map +1 -0
- package/dist/components/canvas/EditableCanvasTitle.js +74 -0
- package/dist/components/canvas/EditableCanvasTitle.js.map +1 -0
- package/dist/components/canvas/camera.d.ts +9 -0
- package/dist/components/canvas/camera.d.ts.map +1 -0
- package/dist/components/canvas/camera.js +31 -0
- package/dist/components/canvas/camera.js.map +1 -0
- package/dist/components/canvas/column-window.d.ts +10 -0
- package/dist/components/canvas/column-window.d.ts.map +1 -0
- package/dist/components/canvas/column-window.js +46 -0
- package/dist/components/canvas/column-window.js.map +1 -0
- package/dist/components/canvas/keyboard-nav.d.ts +7 -0
- package/dist/components/canvas/keyboard-nav.d.ts.map +1 -0
- package/dist/components/canvas/keyboard-nav.js +44 -0
- package/dist/components/canvas/keyboard-nav.js.map +1 -0
- package/dist/components/canvas/links.d.ts +2 -0
- package/dist/components/canvas/links.d.ts.map +1 -0
- package/dist/components/canvas/links.js +7 -0
- package/dist/components/canvas/links.js.map +1 -0
- package/dist/components/editable-text/BindingInlineEditor.d.ts +13 -0
- package/dist/components/editable-text/BindingInlineEditor.d.ts.map +1 -0
- package/dist/components/editable-text/BindingInlineEditor.js +24 -0
- package/dist/components/editable-text/BindingInlineEditor.js.map +1 -0
- package/dist/components/editable-text/BindingPicker.d.ts +10 -0
- package/dist/components/editable-text/BindingPicker.d.ts.map +1 -0
- package/dist/components/editable-text/BindingPicker.js +20 -0
- package/dist/components/editable-text/BindingPicker.js.map +1 -0
- package/dist/components/editable-text/RichTextToolbar.d.ts +13 -0
- package/dist/components/editable-text/RichTextToolbar.d.ts.map +1 -0
- package/dist/components/editable-text/RichTextToolbar.js +24 -0
- package/dist/components/editable-text/RichTextToolbar.js.map +1 -0
- package/dist/components/editable-text/bindingHtml.d.ts +19 -0
- package/dist/components/editable-text/bindingHtml.d.ts.map +1 -0
- package/dist/components/editable-text/bindingHtml.js +106 -0
- package/dist/components/editable-text/bindingHtml.js.map +1 -0
- package/dist/components/editable-text/editableTextDom.d.ts +5 -0
- package/dist/components/editable-text/editableTextDom.d.ts.map +1 -0
- package/dist/components/editable-text/editableTextDom.js +24 -0
- package/dist/components/editable-text/editableTextDom.js.map +1 -0
- package/dist/components/editable-text/floatingPosition.d.ts +25 -0
- package/dist/components/editable-text/floatingPosition.d.ts.map +1 -0
- package/dist/components/editable-text/floatingPosition.js +35 -0
- package/dist/components/editable-text/floatingPosition.js.map +1 -0
- package/dist/components/editable-text/formatting.d.ts +15 -0
- package/dist/components/editable-text/formatting.d.ts.map +1 -0
- package/dist/components/editable-text/formatting.js +82 -0
- package/dist/components/editable-text/formatting.js.map +1 -0
- package/dist/components/editable-text/richCommands.d.ts +9 -0
- package/dist/components/editable-text/richCommands.d.ts.map +1 -0
- package/dist/components/editable-text/richCommands.js +41 -0
- package/dist/components/editable-text/richCommands.js.map +1 -0
- package/dist/components/editable-text/richHtml.d.ts +5 -0
- package/dist/components/editable-text/richHtml.d.ts.map +1 -0
- package/dist/components/editable-text/richHtml.js +150 -0
- package/dist/components/editable-text/richHtml.js.map +1 -0
- package/dist/components/editable-text/selection.d.ts +12 -0
- package/dist/components/editable-text/selection.d.ts.map +1 -0
- package/dist/components/editable-text/selection.js +119 -0
- package/dist/components/editable-text/selection.js.map +1 -0
- package/dist/components/editable-text/types.d.ts +32 -0
- package/dist/components/editable-text/types.d.ts.map +1 -0
- package/dist/components/editable-text/types.js +2 -0
- package/dist/components/editable-text/types.js.map +1 -0
- package/dist/components/editable-text/useEditableText.d.ts +35 -0
- package/dist/components/editable-text/useEditableText.d.ts.map +1 -0
- package/dist/components/editable-text/useEditableText.js +395 -0
- package/dist/components/editable-text/useEditableText.js.map +1 -0
- package/dist/components/image-editor/ImageEditorDialog.d.ts +16 -0
- package/dist/components/image-editor/ImageEditorDialog.d.ts.map +1 -0
- package/dist/components/image-editor/ImageEditorDialog.js +137 -0
- package/dist/components/image-editor/ImageEditorDialog.js.map +1 -0
- package/dist/components/image-editor/ImagePreview.d.ts +15 -0
- package/dist/components/image-editor/ImagePreview.d.ts.map +1 -0
- package/dist/components/image-editor/ImagePreview.js +16 -0
- package/dist/components/image-editor/ImagePreview.js.map +1 -0
- package/dist/components/image-editor/MediaBrowser.d.ts +22 -0
- package/dist/components/image-editor/MediaBrowser.d.ts.map +1 -0
- package/dist/components/image-editor/MediaBrowser.js +16 -0
- package/dist/components/image-editor/MediaBrowser.js.map +1 -0
- package/dist/components/image-editor/UsageSettingsForm.d.ts +10 -0
- package/dist/components/image-editor/UsageSettingsForm.d.ts.map +1 -0
- package/dist/components/image-editor/UsageSettingsForm.js +29 -0
- package/dist/components/image-editor/UsageSettingsForm.js.map +1 -0
- package/dist/components/image-editor/preview-style.d.ts +7 -0
- package/dist/components/image-editor/preview-style.d.ts.map +1 -0
- package/dist/components/image-editor/preview-style.js +47 -0
- package/dist/components/image-editor/preview-style.js.map +1 -0
- package/dist/components/image-editor/stage.d.ts +14 -0
- package/dist/components/image-editor/stage.d.ts.map +1 -0
- package/dist/components/image-editor/stage.js +116 -0
- package/dist/components/image-editor/stage.js.map +1 -0
- package/dist/components/image-editor/types.d.ts +38 -0
- package/dist/components/image-editor/types.d.ts.map +1 -0
- package/dist/components/image-editor/types.js +10 -0
- package/dist/components/image-editor/types.js.map +1 -0
- package/dist/components/image-editor/usage-conversion.d.ts +35 -0
- package/dist/components/image-editor/usage-conversion.d.ts.map +1 -0
- package/dist/components/image-editor/usage-conversion.js +249 -0
- package/dist/components/image-editor/usage-conversion.js.map +1 -0
- package/dist/components/inspector/CollectionItemFields.d.ts +10 -0
- package/dist/components/inspector/CollectionItemFields.d.ts.map +1 -0
- package/dist/components/inspector/CollectionItemFields.js +13 -0
- package/dist/components/inspector/CollectionItemFields.js.map +1 -0
- package/dist/components/inspector/ContentBindingControl.d.ts +14 -0
- package/dist/components/inspector/ContentBindingControl.d.ts.map +1 -0
- package/dist/components/inspector/ContentBindingControl.js +42 -0
- package/dist/components/inspector/ContentBindingControl.js.map +1 -0
- package/dist/components/inspector/PinControl.d.ts +10 -0
- package/dist/components/inspector/PinControl.d.ts.map +1 -0
- package/dist/components/inspector/PinControl.js +14 -0
- package/dist/components/inspector/PinControl.js.map +1 -0
- package/dist/components/inspector/constants.d.ts +8 -0
- package/dist/components/inspector/constants.d.ts.map +1 -0
- package/dist/components/inspector/constants.js +12 -0
- package/dist/components/inspector/constants.js.map +1 -0
- package/dist/components/inspector/content-item-label.d.ts +2 -0
- package/dist/components/inspector/content-item-label.d.ts.map +1 -0
- package/dist/components/inspector/content-item-label.js +23 -0
- package/dist/components/inspector/content-item-label.js.map +1 -0
- package/dist/components/page-frame/InsertSlot.d.ts +19 -0
- package/dist/components/page-frame/InsertSlot.d.ts.map +1 -0
- package/dist/components/page-frame/InsertSlot.js +55 -0
- package/dist/components/page-frame/InsertSlot.js.map +1 -0
- package/dist/components/page-frame/PageFrameBlockList.d.ts +43 -0
- package/dist/components/page-frame/PageFrameBlockList.d.ts.map +1 -0
- package/dist/components/page-frame/PageFrameBlockList.js +204 -0
- package/dist/components/page-frame/PageFrameBlockList.js.map +1 -0
- package/dist/components/page-frame/PageFrameControls.d.ts +23 -0
- package/dist/components/page-frame/PageFrameControls.d.ts.map +1 -0
- package/dist/components/page-frame/PageFrameControls.js +36 -0
- package/dist/components/page-frame/PageFrameControls.js.map +1 -0
- package/dist/components/page-frame/PageFramePathEditor.d.ts +33 -0
- package/dist/components/page-frame/PageFramePathEditor.d.ts.map +1 -0
- package/dist/components/page-frame/PageFramePathEditor.js +5 -0
- package/dist/components/page-frame/PageFramePathEditor.js.map +1 -0
- package/dist/components/page-frame/viewport.d.ts +26 -0
- package/dist/components/page-frame/viewport.d.ts.map +1 -0
- package/dist/components/page-frame/viewport.js +37 -0
- package/dist/components/page-frame/viewport.js.map +1 -0
- package/dist/content-model.d.ts +36 -0
- package/dist/content-model.d.ts.map +1 -0
- package/dist/content-model.js +15 -0
- package/dist/content-model.js.map +1 -0
- package/dist/contentModel.d.ts +3 -0
- package/dist/contentModel.d.ts.map +1 -0
- package/dist/contentModel.js +2 -0
- package/dist/contentModel.js.map +1 -0
- package/dist/designSettings.d.ts +11 -0
- package/dist/designSettings.d.ts.map +1 -0
- package/dist/designSettings.js +96 -0
- package/dist/designSettings.js.map +1 -0
- package/dist/drag-transfer.d.ts +28 -0
- package/dist/drag-transfer.d.ts.map +1 -0
- package/dist/drag-transfer.js +42 -0
- package/dist/drag-transfer.js.map +1 -0
- package/dist/editor/app/AppCanvas.d.ts +2 -0
- package/dist/editor/app/AppCanvas.d.ts.map +1 -0
- package/dist/editor/app/AppCanvas.js +2 -0
- package/dist/editor/app/AppCanvas.js.map +1 -0
- package/dist/editor/app/AppDialogs.d.ts +2 -0
- package/dist/editor/app/AppDialogs.d.ts.map +1 -0
- package/dist/editor/app/AppDialogs.js +2 -0
- package/dist/editor/app/AppDialogs.js.map +1 -0
- package/dist/editor/app/AppInspectorPanel.d.ts +2 -0
- package/dist/editor/app/AppInspectorPanel.d.ts.map +1 -0
- package/dist/editor/app/AppInspectorPanel.js +2 -0
- package/dist/editor/app/AppInspectorPanel.js.map +1 -0
- package/dist/editor/app/deriveSelectionState.d.ts +2 -0
- package/dist/editor/app/deriveSelectionState.d.ts.map +1 -0
- package/dist/editor/app/deriveSelectionState.js +2 -0
- package/dist/editor/app/deriveSelectionState.js.map +1 -0
- package/dist/editor/app/helpers.d.ts +2 -0
- package/dist/editor/app/helpers.d.ts.map +1 -0
- package/dist/editor/app/helpers.js +2 -0
- package/dist/editor/app/helpers.js.map +1 -0
- package/dist/editor/app/useCollectionEditing.d.ts +2 -0
- package/dist/editor/app/useCollectionEditing.d.ts.map +1 -0
- package/dist/editor/app/useCollectionEditing.js +2 -0
- package/dist/editor/app/useCollectionEditing.js.map +1 -0
- package/dist/editor/app/useCommitActions.d.ts +2 -0
- package/dist/editor/app/useCommitActions.d.ts.map +1 -0
- package/dist/editor/app/useCommitActions.js +2 -0
- package/dist/editor/app/useCommitActions.js.map +1 -0
- package/dist/editor/app/useEditorEffects.d.ts +2 -0
- package/dist/editor/app/useEditorEffects.d.ts.map +1 -0
- package/dist/editor/app/useEditorEffects.js +2 -0
- package/dist/editor/app/useEditorEffects.js.map +1 -0
- package/dist/editor/app/useEditorRuntime.d.ts +2 -0
- package/dist/editor/app/useEditorRuntime.d.ts.map +1 -0
- package/dist/editor/app/useEditorRuntime.js +2 -0
- package/dist/editor/app/useEditorRuntime.js.map +1 -0
- package/dist/editor/app/useEditorState.d.ts +2 -0
- package/dist/editor/app/useEditorState.d.ts.map +1 -0
- package/dist/editor/app/useEditorState.js +2 -0
- package/dist/editor/app/useEditorState.js.map +1 -0
- package/dist/editor/app/usePageOps.d.ts +2 -0
- package/dist/editor/app/usePageOps.d.ts.map +1 -0
- package/dist/editor/app/usePageOps.js +2 -0
- package/dist/editor/app/usePageOps.js.map +1 -0
- package/dist/editor/app/usePersistence.d.ts +2 -0
- package/dist/editor/app/usePersistence.d.ts.map +1 -0
- package/dist/editor/app/usePersistence.js +2 -0
- package/dist/editor/app/usePersistence.js.map +1 -0
- package/dist/editor/app/usePreviewSession.d.ts +2 -0
- package/dist/editor/app/usePreviewSession.d.ts.map +1 -0
- package/dist/editor/app/usePreviewSession.js +2 -0
- package/dist/editor/app/usePreviewSession.js.map +1 -0
- package/dist/editor/app/useWorkspaceDocumentSync.d.ts +2 -0
- package/dist/editor/app/useWorkspaceDocumentSync.d.ts.map +1 -0
- package/dist/editor/app/useWorkspaceDocumentSync.js +2 -0
- package/dist/editor/app/useWorkspaceDocumentSync.js.map +1 -0
- package/dist/editor/bindingChips.d.ts +2 -0
- package/dist/editor/bindingChips.d.ts.map +1 -0
- package/dist/editor/bindingChips.js +2 -0
- package/dist/editor/bindingChips.js.map +1 -0
- package/dist/editor/blockInteraction.d.ts +2 -0
- package/dist/editor/blockInteraction.d.ts.map +1 -0
- package/dist/editor/blockInteraction.js +2 -0
- package/dist/editor/blockInteraction.js.map +1 -0
- package/dist/editor/blockPresets.d.ts +2 -0
- package/dist/editor/blockPresets.d.ts.map +1 -0
- package/dist/editor/blockPresets.js +2 -0
- package/dist/editor/blockPresets.js.map +1 -0
- package/dist/editor/collectionItemAddress.d.ts +2 -0
- package/dist/editor/collectionItemAddress.d.ts.map +1 -0
- package/dist/editor/collectionItemAddress.js +2 -0
- package/dist/editor/collectionItemAddress.js.map +1 -0
- package/dist/editor/contentModel.d.ts +2 -0
- package/dist/editor/contentModel.d.ts.map +1 -0
- package/dist/editor/contentModel.js +2 -0
- package/dist/editor/contentModel.js.map +1 -0
- package/dist/editor/designSettings.d.ts +2 -0
- package/dist/editor/designSettings.d.ts.map +1 -0
- package/dist/editor/designSettings.js +2 -0
- package/dist/editor/designSettings.js.map +1 -0
- package/dist/editor/editorClipboard.d.ts +2 -0
- package/dist/editor/editorClipboard.d.ts.map +1 -0
- package/dist/editor/editorClipboard.js +2 -0
- package/dist/editor/editorClipboard.js.map +1 -0
- package/dist/editor/formatDate.d.ts +2 -0
- package/dist/editor/formatDate.d.ts.map +1 -0
- package/dist/editor/formatDate.js +2 -0
- package/dist/editor/formatDate.js.map +1 -0
- package/dist/editor/iconCatalog.d.ts +2 -0
- package/dist/editor/iconCatalog.d.ts.map +1 -0
- package/dist/editor/iconCatalog.js +2 -0
- package/dist/editor/iconCatalog.js.map +1 -0
- package/dist/editor/pageActions.d.ts +2 -0
- package/dist/editor/pageActions.d.ts.map +1 -0
- package/dist/editor/pageActions.js +2 -0
- package/dist/editor/pageActions.js.map +1 -0
- package/dist/editor/pagePaths.d.ts +2 -0
- package/dist/editor/pagePaths.d.ts.map +1 -0
- package/dist/editor/pagePaths.js +2 -0
- package/dist/editor/pagePaths.js.map +1 -0
- package/dist/editor/pagesActions.d.ts +2 -0
- package/dist/editor/pagesActions.d.ts.map +1 -0
- package/dist/editor/pagesActions.js +2 -0
- package/dist/editor/pagesActions.js.map +1 -0
- package/dist/editor/renderActions.d.ts +2 -0
- package/dist/editor/renderActions.d.ts.map +1 -0
- package/dist/editor/renderActions.js +2 -0
- package/dist/editor/renderActions.js.map +1 -0
- package/dist/editor/translation.d.ts +2 -0
- package/dist/editor/translation.d.ts.map +1 -0
- package/dist/editor/translation.js +2 -0
- package/dist/editor/translation.js.map +1 -0
- package/dist/editor/useCanvasBackStack.d.ts +2 -0
- package/dist/editor/useCanvasBackStack.d.ts.map +1 -0
- package/dist/editor/useCanvasBackStack.js +2 -0
- package/dist/editor/useCanvasBackStack.js.map +1 -0
- package/dist/editor/useCanvasCamera.d.ts +2 -0
- package/dist/editor/useCanvasCamera.d.ts.map +1 -0
- package/dist/editor/useCanvasCamera.js +2 -0
- package/dist/editor/useCanvasCamera.js.map +1 -0
- package/dist/editor/useCanvasFocus.d.ts +2 -0
- package/dist/editor/useCanvasFocus.d.ts.map +1 -0
- package/dist/editor/useCanvasFocus.js +2 -0
- package/dist/editor/useCanvasFocus.js.map +1 -0
- package/dist/editor/useCanvasKeyboardNav.d.ts +2 -0
- package/dist/editor/useCanvasKeyboardNav.d.ts.map +1 -0
- package/dist/editor/useCanvasKeyboardNav.js +2 -0
- package/dist/editor/useCanvasKeyboardNav.js.map +1 -0
- package/dist/editor/useClipboardActions.d.ts +2 -0
- package/dist/editor/useClipboardActions.d.ts.map +1 -0
- package/dist/editor/useClipboardActions.js +2 -0
- package/dist/editor/useClipboardActions.js.map +1 -0
- package/dist/editor/useColumnWindow.d.ts +2 -0
- package/dist/editor/useColumnWindow.d.ts.map +1 -0
- package/dist/editor/useColumnWindow.js +2 -0
- package/dist/editor/useColumnWindow.js.map +1 -0
- package/dist/editor/useEditorHistory.d.ts +2 -0
- package/dist/editor/useEditorHistory.d.ts.map +1 -0
- package/dist/editor/useEditorHistory.js +2 -0
- package/dist/editor/useEditorHistory.js.map +1 -0
- package/dist/editor/usePagePathEditor.d.ts +2 -0
- package/dist/editor/usePagePathEditor.d.ts.map +1 -0
- package/dist/editor/usePagePathEditor.js +2 -0
- package/dist/editor/usePagePathEditor.js.map +1 -0
- package/dist/editor/usePageTitleEditor.d.ts +2 -0
- package/dist/editor/usePageTitleEditor.d.ts.map +1 -0
- package/dist/editor/usePageTitleEditor.js +2 -0
- package/dist/editor/usePageTitleEditor.js.map +1 -0
- package/dist/editor/useTextFocusIntent.d.ts +2 -0
- package/dist/editor/useTextFocusIntent.d.ts.map +1 -0
- package/dist/editor/useTextFocusIntent.js +2 -0
- package/dist/editor/useTextFocusIntent.js.map +1 -0
- package/dist/editorClipboard.d.ts +23 -0
- package/dist/editorClipboard.d.ts.map +1 -0
- package/dist/editorClipboard.js +46 -0
- package/dist/editorClipboard.js.map +1 -0
- package/dist/fields-bridge.d.ts +26 -0
- package/dist/fields-bridge.d.ts.map +1 -0
- package/dist/fields-bridge.js +217 -0
- package/dist/fields-bridge.js.map +1 -0
- package/dist/formatDate.d.ts +8 -0
- package/dist/formatDate.d.ts.map +1 -0
- package/dist/formatDate.js +34 -0
- package/dist/formatDate.js.map +1 -0
- package/dist/grid-state.d.ts +29 -0
- package/dist/grid-state.d.ts.map +1 -0
- package/dist/grid-state.js +207 -0
- package/dist/grid-state.js.map +1 -0
- package/dist/history/commands.d.ts +29 -0
- package/dist/history/commands.d.ts.map +1 -0
- package/dist/history/commands.js +63 -0
- package/dist/history/commands.js.map +1 -0
- package/dist/history/diff.d.ts +22 -0
- package/dist/history/diff.d.ts.map +1 -0
- package/dist/history/diff.js +259 -0
- package/dist/history/diff.js.map +1 -0
- package/dist/history/transforms.d.ts +19 -0
- package/dist/history/transforms.d.ts.map +1 -0
- package/dist/history/transforms.js +69 -0
- package/dist/history/transforms.js.map +1 -0
- package/dist/history/types.d.ts +23 -0
- package/dist/history/types.d.ts.map +1 -0
- package/dist/history/types.js +11 -0
- package/dist/history/types.js.map +1 -0
- package/dist/host-services.d.ts +57 -0
- package/dist/host-services.d.ts.map +1 -0
- package/dist/host-services.js +2 -0
- package/dist/host-services.js.map +1 -0
- package/dist/iconCatalog.d.ts +16 -0
- package/dist/iconCatalog.d.ts.map +1 -0
- package/dist/iconCatalog.js +32 -0
- package/dist/iconCatalog.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/insert-menu.d.ts +17 -0
- package/dist/insert-menu.d.ts.map +1 -0
- package/dist/insert-menu.js +35 -0
- package/dist/insert-menu.js.map +1 -0
- package/dist/model/bind-map.d.ts +6 -0
- package/dist/model/bind-map.d.ts.map +1 -0
- package/dist/model/bind-map.js +6 -0
- package/dist/model/bind-map.js.map +1 -0
- package/dist/model/layout-columns.d.ts +51 -0
- package/dist/model/layout-columns.d.ts.map +1 -0
- package/dist/model/layout-columns.js +74 -0
- package/dist/model/layout-columns.js.map +1 -0
- package/dist/model/page-topology.d.ts +20 -0
- package/dist/model/page-topology.d.ts.map +1 -0
- package/dist/model/page-topology.js +94 -0
- package/dist/model/page-topology.js.map +1 -0
- package/dist/model/page-tree-bridge.d.ts +81 -0
- package/dist/model/page-tree-bridge.d.ts.map +1 -0
- package/dist/model/page-tree-bridge.js +234 -0
- package/dist/model/page-tree-bridge.js.map +1 -0
- package/dist/model/prop-access.d.ts +69 -0
- package/dist/model/prop-access.d.ts.map +1 -0
- package/dist/model/prop-access.js +94 -0
- package/dist/model/prop-access.js.map +1 -0
- package/dist/mount.d.ts +25 -0
- package/dist/mount.d.ts.map +1 -0
- package/dist/mount.js +26 -0
- package/dist/mount.js.map +1 -0
- package/dist/page-actions.d.ts +26 -0
- package/dist/page-actions.d.ts.map +1 -0
- package/dist/page-actions.js +118 -0
- package/dist/page-actions.js.map +1 -0
- package/dist/pageActions.d.ts +4 -0
- package/dist/pageActions.d.ts.map +1 -0
- package/dist/pageActions.js +4 -0
- package/dist/pageActions.js.map +1 -0
- package/dist/pagePaths.d.ts +30 -0
- package/dist/pagePaths.d.ts.map +1 -0
- package/dist/pagePaths.js +102 -0
- package/dist/pagePaths.js.map +1 -0
- package/dist/pagesActions.d.ts +60 -0
- package/dist/pagesActions.d.ts.map +1 -0
- package/dist/pagesActions.js +216 -0
- package/dist/pagesActions.js.map +1 -0
- package/dist/preview-auth.d.ts +29 -0
- package/dist/preview-auth.d.ts.map +1 -0
- package/dist/preview-auth.js +18 -0
- package/dist/preview-auth.js.map +1 -0
- package/dist/renderActions.d.ts +30 -0
- package/dist/renderActions.d.ts.map +1 -0
- package/dist/renderActions.js +2 -0
- package/dist/renderActions.js.map +1 -0
- package/dist/translation.d.ts +78 -0
- package/dist/translation.d.ts.map +1 -0
- package/dist/translation.js +64 -0
- package/dist/translation.js.map +1 -0
- package/dist/types.d.ts +128 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/useCanvasBackStack.d.ts +19 -0
- package/dist/useCanvasBackStack.d.ts.map +1 -0
- package/dist/useCanvasBackStack.js +49 -0
- package/dist/useCanvasBackStack.js.map +1 -0
- package/dist/useCanvasCamera.d.ts +37 -0
- package/dist/useCanvasCamera.d.ts.map +1 -0
- package/dist/useCanvasCamera.js +247 -0
- package/dist/useCanvasCamera.js.map +1 -0
- package/dist/useCanvasFocus.d.ts +32 -0
- package/dist/useCanvasFocus.d.ts.map +1 -0
- package/dist/useCanvasFocus.js +114 -0
- package/dist/useCanvasFocus.js.map +1 -0
- package/dist/useCanvasKeyboardNav.d.ts +32 -0
- package/dist/useCanvasKeyboardNav.d.ts.map +1 -0
- package/dist/useCanvasKeyboardNav.js +185 -0
- package/dist/useCanvasKeyboardNav.js.map +1 -0
- package/dist/useClipboardActions.d.ts +37 -0
- package/dist/useClipboardActions.d.ts.map +1 -0
- package/dist/useClipboardActions.js +126 -0
- package/dist/useClipboardActions.js.map +1 -0
- package/dist/useColumnWindow.d.ts +29 -0
- package/dist/useColumnWindow.d.ts.map +1 -0
- package/dist/useColumnWindow.js +80 -0
- package/dist/useColumnWindow.js.map +1 -0
- package/dist/useEditorHistory.d.ts +18 -0
- package/dist/useEditorHistory.d.ts.map +1 -0
- package/dist/useEditorHistory.js +91 -0
- package/dist/useEditorHistory.js.map +1 -0
- package/dist/usePagePathEditor.d.ts +36 -0
- package/dist/usePagePathEditor.d.ts.map +1 -0
- package/dist/usePagePathEditor.js +163 -0
- package/dist/usePagePathEditor.js.map +1 -0
- package/dist/usePageTitleEditor.d.ts +17 -0
- package/dist/usePageTitleEditor.d.ts.map +1 -0
- package/dist/usePageTitleEditor.js +101 -0
- package/dist/usePageTitleEditor.js.map +1 -0
- package/dist/useTextFocusIntent.d.ts +13 -0
- package/dist/useTextFocusIntent.d.ts.map +1 -0
- package/dist/useTextFocusIntent.js +70 -0
- package/dist/useTextFocusIntent.js.map +1 -0
- package/package.json +58 -0
- package/styles/index.css +196 -0
- package/styles/preview-auth.css +17 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/** Reserved portable block prop for Canvas design settings. */
|
|
2
|
+
export const DESIGN_PROP = "design";
|
|
3
|
+
function isPropValue(value) {
|
|
4
|
+
if (!value || typeof value !== "object")
|
|
5
|
+
return false;
|
|
6
|
+
const kind = value.kind;
|
|
7
|
+
return kind === "literal" || kind === "binding" || kind === "rich";
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Unwrap a stored prop to its plain value. Mirrors proof's `propDisplayValue`
|
|
11
|
+
* (apps/proof/src/editor-app.ts): a literal yields its value; a rich value
|
|
12
|
+
* yields its plain text; a binding yields "" (unresolved at the editor edge —
|
|
13
|
+
* live resolution happens through the resolver, never here). A raw value is
|
|
14
|
+
* returned verbatim. This is a DATA accessor, not a renderer: it never escapes
|
|
15
|
+
* or sanitizes — the single escaping boundary stays at the render sink
|
|
16
|
+
* (EditableText display / bind-core `escape.ts`), preserving invariant S1.
|
|
17
|
+
*/
|
|
18
|
+
export function unwrapProp(stored) {
|
|
19
|
+
if (!isPropValue(stored))
|
|
20
|
+
return stored;
|
|
21
|
+
if (stored.kind === "literal")
|
|
22
|
+
return stored.value;
|
|
23
|
+
if (stored.kind === "rich") {
|
|
24
|
+
return stored.rich.doc
|
|
25
|
+
.map((node) => (node.t === "text" ? node.text : ""))
|
|
26
|
+
.join("");
|
|
27
|
+
}
|
|
28
|
+
return "";
|
|
29
|
+
}
|
|
30
|
+
/** Wrap a plain value as a `{kind:"literal"}` PropValue (ingest direction). */
|
|
31
|
+
export function literal(value) {
|
|
32
|
+
return { kind: "literal", value };
|
|
33
|
+
}
|
|
34
|
+
/** Wrap a whole raw prop record as `{kind:"literal"}` PropValues — the
|
|
35
|
+
* canonical props for a `BlockNode` built from a raw source (block definition
|
|
36
|
+
* defaults, a preset, a wire block). */
|
|
37
|
+
export function literalProps(raw) {
|
|
38
|
+
const props = {};
|
|
39
|
+
for (const [key, value] of Object.entries(raw))
|
|
40
|
+
props[key] = literal(value);
|
|
41
|
+
return props;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Unwrap a `BlockNode`'s whole prop record to plain values — the multi-key
|
|
45
|
+
* form of `readProp`, for the few consumers that need a raw props object
|
|
46
|
+
* (`@batterai/block-sdk`'s `BlockConfig.props`, the login-copy reader, the
|
|
47
|
+
* unknown-block JSON dump, the collection-list config reader).
|
|
48
|
+
*/
|
|
49
|
+
export function rawProps(block) {
|
|
50
|
+
const out = {};
|
|
51
|
+
for (const [key, value] of Object.entries(block.props))
|
|
52
|
+
out[key] = unwrapProp(value);
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Read a block prop by key — the ONE read accessor. Returns the plain value
|
|
57
|
+
* (unwrapped from a `PropValue`, or a raw value verbatim), exactly as the
|
|
58
|
+
* pre-convergence `block.props[key]` did, so every downstream guard
|
|
59
|
+
* (`asString`, `typeof x === "string"`, `Array.isArray`, …) keeps working
|
|
60
|
+
* unchanged.
|
|
61
|
+
*/
|
|
62
|
+
export function readProp(block, key) {
|
|
63
|
+
if (!block)
|
|
64
|
+
return undefined;
|
|
65
|
+
return unwrapProp(block.props[key]);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Write a block prop by key — the ONE write accessor. Returns a NEW `BlockNode`
|
|
69
|
+
* with `props[key]` set to a `{kind:"literal"}` PropValue (immutable update;
|
|
70
|
+
* the input is not mutated). `undefined` deletes the key.
|
|
71
|
+
*/
|
|
72
|
+
export function writeProp(block, key, value) {
|
|
73
|
+
return writeProps(block, { [key]: value });
|
|
74
|
+
}
|
|
75
|
+
/** Merge a patch of plain values in one immutable write — the multi-key form of
|
|
76
|
+
* `writeProp`, used by the inspector's props-patch path. Each value is wrapped
|
|
77
|
+
* as a literal `PropValue`; `undefined` deletes the key. */
|
|
78
|
+
export function writeProps(block, patch) {
|
|
79
|
+
const props = { ...block.props };
|
|
80
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
81
|
+
if (value === undefined)
|
|
82
|
+
delete props[key];
|
|
83
|
+
else
|
|
84
|
+
props[key] = literal(value);
|
|
85
|
+
}
|
|
86
|
+
return { ...block, props };
|
|
87
|
+
}
|
|
88
|
+
/** Whether a block carries a value for `key` (presence, not truthiness) —
|
|
89
|
+
* routes the `"key" in block.props` / `hasOwnProperty` checks through the
|
|
90
|
+
* accessor without collapsing a stored empty string to "absent". */
|
|
91
|
+
export function hasProp(block, key) {
|
|
92
|
+
return Object.prototype.hasOwnProperty.call(block.props, key);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=prop-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prop-access.js","sourceRoot":"","sources":["../../src/model/prop-access.ts"],"names":[],"mappings":"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"}
|
package/dist/mount.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
|
+
import type { BlockPackage } from "@batterai/contract";
|
|
3
|
+
import type { AnyEditorContentModel } from "./content-model";
|
|
4
|
+
import type { AnyEditorShellHostServices } from "./host-services";
|
|
5
|
+
import type { EditorPreviewAuthConfig } from "./preview-auth";
|
|
6
|
+
import type { EditorShellLicenseState } from "./types";
|
|
7
|
+
import type { EditorShellAppearance } from "./appearance";
|
|
8
|
+
import type { EditorCollaborationConfig } from "./collaboration";
|
|
9
|
+
export type MountEditorConfig<HostServices extends AnyEditorShellHostServices = AnyEditorShellHostServices, ContentModel extends AnyEditorContentModel = AnyEditorContentModel> = {
|
|
10
|
+
hostServices: HostServices;
|
|
11
|
+
contentModel: ContentModel;
|
|
12
|
+
defaultPageId?: string;
|
|
13
|
+
license?: EditorShellLicenseState;
|
|
14
|
+
previewAuth?: EditorPreviewAuthConfig;
|
|
15
|
+
blockPackages: readonly BlockPackage[];
|
|
16
|
+
appearance?: EditorShellAppearance;
|
|
17
|
+
collaboration?: EditorCollaborationConfig;
|
|
18
|
+
strictMode?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export type MountedEditor = {
|
|
21
|
+
unmount: () => void;
|
|
22
|
+
};
|
|
23
|
+
export declare function createEditorElement<HostServices extends AnyEditorShellHostServices, ContentModel extends AnyEditorContentModel>(config: MountEditorConfig<HostServices, ContentModel>): ReactElement;
|
|
24
|
+
export declare function mountEditor<HostServices extends AnyEditorShellHostServices, ContentModel extends AnyEditorContentModel>(container: Element | DocumentFragment, config: MountEditorConfig<HostServices, ContentModel>): MountedEditor;
|
|
25
|
+
//# sourceMappingURL=mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,CAC3B,YAAY,SAAS,0BAA0B,GAAG,0BAA0B,EAC5E,YAAY,SAAS,qBAAqB,GAAG,qBAAqB,IAChE;IACF,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,YAAY,SAAS,0BAA0B,EAC/C,YAAY,SAAS,qBAAqB,EAE1C,MAAM,EAAE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,GACpD,YAAY,CAYd;AAED,wBAAgB,WAAW,CACzB,YAAY,SAAS,0BAA0B,EAC/C,YAAY,SAAS,qBAAqB,EAE1C,SAAS,EAAE,OAAO,GAAG,gBAAgB,EACrC,MAAM,EAAE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,GACpD,aAAa,CAQf"}
|
package/dist/mount.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StrictMode, createElement } from "react";
|
|
2
|
+
import { createRoot } from "react-dom/client";
|
|
3
|
+
import { App } from "./App.js";
|
|
4
|
+
export function createEditorElement(config) {
|
|
5
|
+
const editor = createElement(App, {
|
|
6
|
+
contentModel: config.contentModel,
|
|
7
|
+
defaultPageId: config.defaultPageId,
|
|
8
|
+
hostServices: config.hostServices,
|
|
9
|
+
license: config.license,
|
|
10
|
+
previewAuth: config.previewAuth,
|
|
11
|
+
blockPackages: config.blockPackages,
|
|
12
|
+
appearance: config.appearance,
|
|
13
|
+
collaboration: config.collaboration,
|
|
14
|
+
});
|
|
15
|
+
return config.strictMode === false ? editor : createElement(StrictMode, null, editor);
|
|
16
|
+
}
|
|
17
|
+
export function mountEditor(container, config) {
|
|
18
|
+
const root = createRoot(container);
|
|
19
|
+
root.render(createEditorElement(config));
|
|
20
|
+
return {
|
|
21
|
+
unmount() {
|
|
22
|
+
root.unmount();
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=mount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA4B5B,MAAM,UAAU,mBAAmB,CAIjC,MAAqD;IAErD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE;QAChC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,WAAW,CAIzB,SAAqC,EACrC,MAAqD;IAErD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO;QACL,OAAO;YACL,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BlockNode, PageNode } from "@batterai/bind-core";
|
|
2
|
+
import { type LayoutColumnView } from "./model/layout-columns";
|
|
3
|
+
import type { BlockDesignSettings, CanvasPage } from "./types";
|
|
4
|
+
export declare const LAYOUT_BLOCK_TYPE = "layout.columns";
|
|
5
|
+
export declare function layoutItems(block: BlockNode): LayoutColumnView[];
|
|
6
|
+
export declare function findBlock(page: CanvasPage, blockId: string | null): BlockNode | null;
|
|
7
|
+
export declare function updateBlockProp(page: CanvasPage, blockId: string, propName: string, value: unknown): CanvasPage;
|
|
8
|
+
export declare function updateBlockProps(page: CanvasPage, blockId: string, props: Record<string, unknown>): CanvasPage;
|
|
9
|
+
export declare function updateBlockDesign(page: CanvasPage, blockId: string, design: BlockDesignSettings): CanvasPage;
|
|
10
|
+
export declare function appendBlock(page: CanvasPage, block: BlockNode): CanvasPage;
|
|
11
|
+
export declare function appendBlocks(page: CanvasPage, blocks: PageNode[]): CanvasPage;
|
|
12
|
+
export declare function insertBlock(page: CanvasPage, index: number, block: BlockNode): CanvasPage;
|
|
13
|
+
export declare function insertBlocks(page: CanvasPage, index: number, inserted: PageNode[]): CanvasPage;
|
|
14
|
+
export declare function insertBlocksAfter(page: CanvasPage, anchorId: string | null, inserted: PageNode[]): CanvasPage;
|
|
15
|
+
export declare function appendBlockToColumn(page: CanvasPage, columnId: string, block: BlockNode): CanvasPage;
|
|
16
|
+
export declare function appendBlocksToColumn(page: CanvasPage, columnId: string, blocks: PageNode[]): CanvasPage;
|
|
17
|
+
export declare function insertBlocksToColumn(page: CanvasPage, columnId: string, index: number, inserted: PageNode[]): CanvasPage;
|
|
18
|
+
export declare function removeBlock(page: CanvasPage, blockId: string): CanvasPage;
|
|
19
|
+
export declare function replaceBlock(page: CanvasPage, blockId: string, replacement: BlockNode): CanvasPage;
|
|
20
|
+
export declare function duplicateBlock(page: CanvasPage, blockId: string): CanvasPage;
|
|
21
|
+
export declare function connectedSiblingSelection(page: CanvasPage, anchorId: string | null, targetId: string): string[];
|
|
22
|
+
export declare function blocksById(page: CanvasPage, ids: string[]): BlockNode[];
|
|
23
|
+
export declare function moveBlock(page: CanvasPage, blockId: string, direction: -1 | 1): CanvasPage;
|
|
24
|
+
export declare function moveBlockToTopLevel(page: CanvasPage, blockId: string, index: number): CanvasPage;
|
|
25
|
+
export declare function moveBlockToColumn(page: CanvasPage, blockId: string, columnId: string, index: number): CanvasPage;
|
|
26
|
+
//# sourceMappingURL=page-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-actions.d.ts","sourceRoot":"","sources":["../src/page-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { freshBlock as mintFreshBlock } from "./block-factory.js";
|
|
2
|
+
import { columnsView, isLayoutColumnsNode } from "./model/layout-columns.js";
|
|
3
|
+
import { childIdsOf, collectBlockIds, dropIndexToInsertIndex, duplicateNode, findNode, insertNodesAfter, insertNodesAt, moveNodeTo, parentIdOf, patchNodeProps, removeNode, replaceNode as replaceNodeInPage, setLayoutColumns, } from "./model/page-tree-bridge.js";
|
|
4
|
+
export const LAYOUT_BLOCK_TYPE = "layout.columns";
|
|
5
|
+
const LAYOUT_ITEMS_PROP = "items";
|
|
6
|
+
export function layoutItems(block) {
|
|
7
|
+
return isLayoutColumnsNode(block) ? columnsView(block) : [];
|
|
8
|
+
}
|
|
9
|
+
export function findBlock(page, blockId) {
|
|
10
|
+
return findNode(page, blockId);
|
|
11
|
+
}
|
|
12
|
+
export function updateBlockProp(page, blockId, propName, value) {
|
|
13
|
+
if (propName === LAYOUT_ITEMS_PROP) {
|
|
14
|
+
return setLayoutColumns(page, blockId, value);
|
|
15
|
+
}
|
|
16
|
+
return patchNodeProps(page, blockId, { [propName]: value });
|
|
17
|
+
}
|
|
18
|
+
export function updateBlockProps(page, blockId, props) {
|
|
19
|
+
if (LAYOUT_ITEMS_PROP in props) {
|
|
20
|
+
const { [LAYOUT_ITEMS_PROP]: items, ...rest } = props;
|
|
21
|
+
const withItems = setLayoutColumns(page, blockId, items);
|
|
22
|
+
return Object.keys(rest).length ? patchNodeProps(withItems, blockId, rest) : withItems;
|
|
23
|
+
}
|
|
24
|
+
return patchNodeProps(page, blockId, props);
|
|
25
|
+
}
|
|
26
|
+
export function updateBlockDesign(page, blockId, design) {
|
|
27
|
+
return patchNodeProps(page, blockId, { design });
|
|
28
|
+
}
|
|
29
|
+
export function appendBlock(page, block) {
|
|
30
|
+
return appendBlocks(page, [block]);
|
|
31
|
+
}
|
|
32
|
+
export function appendBlocks(page, blocks) {
|
|
33
|
+
return insertNodesAt(page, null, page.root.length, blocks);
|
|
34
|
+
}
|
|
35
|
+
export function insertBlock(page, index, block) {
|
|
36
|
+
return insertNodesAt(page, null, index, [block]);
|
|
37
|
+
}
|
|
38
|
+
export function insertBlocks(page, index, inserted) {
|
|
39
|
+
return insertNodesAt(page, null, index, inserted);
|
|
40
|
+
}
|
|
41
|
+
export function insertBlocksAfter(page, anchorId, inserted) {
|
|
42
|
+
const nested = anchorId ? findParentId(page, anchorId) !== null : false;
|
|
43
|
+
const placeable = nested ? inserted.filter((block) => blockType(block) !== LAYOUT_BLOCK_TYPE) : inserted;
|
|
44
|
+
return insertNodesAfter(page, anchorId, placeable);
|
|
45
|
+
}
|
|
46
|
+
export function appendBlockToColumn(page, columnId, block) {
|
|
47
|
+
return appendBlocksToColumn(page, columnId, [block]);
|
|
48
|
+
}
|
|
49
|
+
export function appendBlocksToColumn(page, columnId, blocks) {
|
|
50
|
+
return insertNodesAt(page, columnId, columnChildCount(page, columnId), blocks);
|
|
51
|
+
}
|
|
52
|
+
export function insertBlocksToColumn(page, columnId, index, inserted) {
|
|
53
|
+
return insertNodesAt(page, columnId, index, inserted);
|
|
54
|
+
}
|
|
55
|
+
export function removeBlock(page, blockId) {
|
|
56
|
+
return removeNode(page, blockId);
|
|
57
|
+
}
|
|
58
|
+
export function replaceBlock(page, blockId, replacement) {
|
|
59
|
+
return replaceNodeInPage(page, blockId, replacement);
|
|
60
|
+
}
|
|
61
|
+
export function duplicateBlock(page, blockId) {
|
|
62
|
+
return duplicateNode(page, blockId, mintFreshBlock);
|
|
63
|
+
}
|
|
64
|
+
export function connectedSiblingSelection(page, anchorId, targetId) {
|
|
65
|
+
if (!anchorId)
|
|
66
|
+
return [targetId];
|
|
67
|
+
const root = page.root;
|
|
68
|
+
const anchorParent = parentIdOf(root, anchorId);
|
|
69
|
+
const targetParent = parentIdOf(root, targetId);
|
|
70
|
+
if (anchorParent === undefined || anchorParent !== targetParent)
|
|
71
|
+
return [targetId];
|
|
72
|
+
const siblings = childIdsOf(root, anchorParent);
|
|
73
|
+
const from = siblings.indexOf(anchorId);
|
|
74
|
+
const to = siblings.indexOf(targetId);
|
|
75
|
+
if (from < 0 || to < 0)
|
|
76
|
+
return [targetId];
|
|
77
|
+
const [start, end] = from < to ? [from, to] : [to, from];
|
|
78
|
+
return siblings.slice(start, end + 1);
|
|
79
|
+
}
|
|
80
|
+
export function blocksById(page, ids) {
|
|
81
|
+
const wanted = new Set(ids);
|
|
82
|
+
return collectBlockIds(page.root)
|
|
83
|
+
.filter((id) => wanted.has(id))
|
|
84
|
+
.map((id) => findNode(page, id))
|
|
85
|
+
.filter((block) => block !== null);
|
|
86
|
+
}
|
|
87
|
+
export function moveBlock(page, blockId, direction) {
|
|
88
|
+
const root = page.root;
|
|
89
|
+
const parentId = parentIdOf(root, blockId);
|
|
90
|
+
if (parentId === undefined)
|
|
91
|
+
return page;
|
|
92
|
+
const siblings = childIdsOf(root, parentId);
|
|
93
|
+
const index = siblings.indexOf(blockId);
|
|
94
|
+
const nextIndex = index + direction;
|
|
95
|
+
if (index < 0 || nextIndex < 0 || nextIndex >= siblings.length)
|
|
96
|
+
return page;
|
|
97
|
+
return moveNodeTo(page, blockId, parentId, nextIndex);
|
|
98
|
+
}
|
|
99
|
+
export function moveBlockToTopLevel(page, blockId, index) {
|
|
100
|
+
return moveNodeTo(page, blockId, null, dropIndexToInsertIndex(page, blockId, null, index));
|
|
101
|
+
}
|
|
102
|
+
export function moveBlockToColumn(page, blockId, columnId, index) {
|
|
103
|
+
const block = findNode(page, blockId);
|
|
104
|
+
if (!block || block.blockType === LAYOUT_BLOCK_TYPE)
|
|
105
|
+
return page;
|
|
106
|
+
return moveNodeTo(page, blockId, columnId, dropIndexToInsertIndex(page, blockId, columnId, index));
|
|
107
|
+
}
|
|
108
|
+
function blockType(node) {
|
|
109
|
+
return node.kind === "block" ? node.blockType : "";
|
|
110
|
+
}
|
|
111
|
+
function findParentId(page, blockId) {
|
|
112
|
+
const parent = parentIdOf(page.root, blockId);
|
|
113
|
+
return parent ?? null;
|
|
114
|
+
}
|
|
115
|
+
function columnChildCount(page, columnId) {
|
|
116
|
+
return childIdsOf(page.root, columnId).length;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=page-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-actions.js","sourceRoot":"","sources":["../src/page-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { appendBlock, appendBlocks, appendBlocksToColumn, appendBlockToColumn, blocksById, connectedSiblingSelection, duplicateBlock, findBlock, insertBlock, insertBlocks, insertBlocksAfter, insertBlocksToColumn, layoutItems, LAYOUT_BLOCK_TYPE, moveBlock, moveBlockToColumn, moveBlockToTopLevel, removeBlock, replaceBlock, updateBlockDesign, updateBlockProp, updateBlockProps, } from "./page-actions";
|
|
2
|
+
export { createBlockFromDefinition, createBlockFromPreset, createBlocksFromPreset, freshBlock, freshBlocks, makeSharedFromBlock, } from "./block-factory";
|
|
3
|
+
export { createPage, joinPagePath, normalizePagePath, slugifyPathSegment, splitPagePath, uniquePagePath, } from "./pagePaths";
|
|
4
|
+
//# sourceMappingURL=pageActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageActions.d.ts","sourceRoot":"","sources":["../src/pageActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,yBAAyB,EACzB,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { appendBlock, appendBlocks, appendBlocksToColumn, appendBlockToColumn, blocksById, connectedSiblingSelection, duplicateBlock, findBlock, insertBlock, insertBlocks, insertBlocksAfter, insertBlocksToColumn, layoutItems, LAYOUT_BLOCK_TYPE, moveBlock, moveBlockToColumn, moveBlockToTopLevel, removeBlock, replaceBlock, updateBlockDesign, updateBlockProp, updateBlockProps, } from "./page-actions.js";
|
|
2
|
+
export { createBlockFromDefinition, createBlockFromPreset, createBlocksFromPreset, freshBlock, freshBlocks, makeSharedFromBlock, } from "./block-factory.js";
|
|
3
|
+
export { createPage, joinPagePath, normalizePagePath, slugifyPathSegment, splitPagePath, uniquePagePath, } from "./pagePaths.js";
|
|
4
|
+
//# sourceMappingURL=pageActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageActions.js","sourceRoot":"","sources":["../src/pageActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,yBAAyB,EACzB,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CanvasPage } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Page path / slug helpers — the URL-shape concern of the multi-page canvas,
|
|
4
|
+
* split out of `pageActions` so each file keeps one responsibility (A6). These
|
|
5
|
+
* are genuinely-app helpers (slug normalization, uniqueness, new-page seeding);
|
|
6
|
+
* they never touch the block tree. `pageActions` re-exports them so existing
|
|
7
|
+
* import sites are unchanged.
|
|
8
|
+
*/
|
|
9
|
+
export type ParentPathOption = {
|
|
10
|
+
pageId: string | null;
|
|
11
|
+
path: string;
|
|
12
|
+
label: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function descendantPageIds(pages: readonly CanvasPage[], pageId: string): Set<string>;
|
|
15
|
+
/**
|
|
16
|
+
* The "move this page under…" choices offered in the page-path editor: the root
|
|
17
|
+
* level plus every other page's path, minus the page itself and its own
|
|
18
|
+
* descendants (which would create a cycle). Sorted by path for a stable menu.
|
|
19
|
+
*/
|
|
20
|
+
export declare function parentPathOptions(pages: CanvasPage[], page: CanvasPage): ParentPathOption[];
|
|
21
|
+
export declare function slugifyPathSegment(value: string): string;
|
|
22
|
+
export declare function normalizePagePath(value: string | undefined): string;
|
|
23
|
+
export declare function splitPagePath(value: string | undefined): {
|
|
24
|
+
parentPath: string | null;
|
|
25
|
+
segment: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function joinPagePath(parentPath: string | null | undefined, segment: string): string;
|
|
28
|
+
export declare function uniquePagePath(value: string, existing: readonly CanvasPage[], ignorePageIds?: ReadonlySet<string>): string;
|
|
29
|
+
export declare function createPage(title: string, parent: CanvasPage | null, existing: CanvasPage[]): CanvasPage;
|
|
30
|
+
//# sourceMappingURL=pagePaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagePaths.d.ts","sourceRoot":"","sources":["../src/pagePaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;GAMG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAW3F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAmB3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,UAO/C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CASnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQvG;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI3F;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,aAAa,GAAE,WAAW,CAAC,MAAM,CAAa,GAC7C,MAAM,CAgBR;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,QAAQ,EAAE,UAAU,EAAE,GACrB,UAAU,CAkBZ"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export function descendantPageIds(pages, pageId) {
|
|
2
|
+
const descendants = new Set();
|
|
3
|
+
const queue = [pageId];
|
|
4
|
+
for (const id of queue) {
|
|
5
|
+
for (const page of pages) {
|
|
6
|
+
if (page.parentId !== id || descendants.has(page.id))
|
|
7
|
+
continue;
|
|
8
|
+
descendants.add(page.id);
|
|
9
|
+
queue.push(page.id);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return descendants;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The "move this page under…" choices offered in the page-path editor: the root
|
|
16
|
+
* level plus every other page's path, minus the page itself and its own
|
|
17
|
+
* descendants (which would create a cycle). Sorted by path for a stable menu.
|
|
18
|
+
*/
|
|
19
|
+
export function parentPathOptions(pages, page) {
|
|
20
|
+
const blockedIds = descendantPageIds(pages, page.id);
|
|
21
|
+
blockedIds.add(page.id);
|
|
22
|
+
return [
|
|
23
|
+
{ pageId: null, path: "/", label: "Top level" },
|
|
24
|
+
...pages
|
|
25
|
+
.filter((candidate) => candidate.path &&
|
|
26
|
+
normalizePagePath(candidate.path) !== "/" &&
|
|
27
|
+
!blockedIds.has(candidate.id))
|
|
28
|
+
.map((candidate) => ({
|
|
29
|
+
pageId: candidate.id,
|
|
30
|
+
path: normalizePagePath(candidate.path),
|
|
31
|
+
label: candidate.title,
|
|
32
|
+
}))
|
|
33
|
+
.sort((a, b) => a.path.localeCompare(b.path)),
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
export function slugifyPathSegment(value) {
|
|
37
|
+
return (value
|
|
38
|
+
.toLowerCase()
|
|
39
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
40
|
+
.replace(/(^-|-$)/g, "") || "page");
|
|
41
|
+
}
|
|
42
|
+
export function normalizePagePath(value) {
|
|
43
|
+
const raw = (value ?? "/").trim();
|
|
44
|
+
if (!raw || raw === "/")
|
|
45
|
+
return "/";
|
|
46
|
+
const segments = raw
|
|
47
|
+
.split("/")
|
|
48
|
+
.map((segment) => segment.trim())
|
|
49
|
+
.filter(Boolean)
|
|
50
|
+
.map(slugifyPathSegment);
|
|
51
|
+
return segments.length ? `/${segments.join("/")}` : "/";
|
|
52
|
+
}
|
|
53
|
+
export function splitPagePath(value) {
|
|
54
|
+
const path = normalizePagePath(value);
|
|
55
|
+
if (path === "/")
|
|
56
|
+
return { parentPath: null, segment: "" };
|
|
57
|
+
const lastSlash = path.lastIndexOf("/");
|
|
58
|
+
return {
|
|
59
|
+
parentPath: lastSlash === 0 ? "/" : path.slice(0, lastSlash),
|
|
60
|
+
segment: path.slice(lastSlash + 1),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function joinPagePath(parentPath, segment) {
|
|
64
|
+
const cleanSegment = slugifyPathSegment(segment);
|
|
65
|
+
const parent = normalizePagePath(parentPath ?? "/");
|
|
66
|
+
return parent === "/" ? `/${cleanSegment}` : `${parent}/${cleanSegment}`;
|
|
67
|
+
}
|
|
68
|
+
export function uniquePagePath(value, existing, ignorePageIds = new Set()) {
|
|
69
|
+
const original = normalizePagePath(value);
|
|
70
|
+
const taken = (candidate) => existing.some((page) => !ignorePageIds.has(page.id) && normalizePagePath(page.path) === candidate);
|
|
71
|
+
if (!taken(original))
|
|
72
|
+
return original;
|
|
73
|
+
const { parentPath, segment } = splitPagePath(original);
|
|
74
|
+
const baseSegment = segment || "page";
|
|
75
|
+
let counter = 2;
|
|
76
|
+
let candidate = joinPagePath(parentPath ?? "/", `${baseSegment}-${counter}`);
|
|
77
|
+
while (taken(candidate)) {
|
|
78
|
+
counter += 1;
|
|
79
|
+
candidate = joinPagePath(parentPath ?? "/", `${baseSegment}-${counter}`);
|
|
80
|
+
}
|
|
81
|
+
return candidate;
|
|
82
|
+
}
|
|
83
|
+
export function createPage(title, parent, existing) {
|
|
84
|
+
const cleanTitle = title.trim() || "New page";
|
|
85
|
+
const base = slugifyPathSegment(cleanTitle);
|
|
86
|
+
let id = base;
|
|
87
|
+
let counter = 2;
|
|
88
|
+
while (existing.some((page) => page.id === id)) {
|
|
89
|
+
id = `${base}-${counter}`;
|
|
90
|
+
counter += 1;
|
|
91
|
+
}
|
|
92
|
+
const parentPath = parent?.path === "/" ? "" : (parent?.path ?? "");
|
|
93
|
+
const path = uniquePagePath(`${parentPath}/${base}`, existing);
|
|
94
|
+
return {
|
|
95
|
+
id,
|
|
96
|
+
title: cleanTitle,
|
|
97
|
+
path,
|
|
98
|
+
parentId: parent?.id ?? null,
|
|
99
|
+
root: [],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=pagePaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagePaths.js","sourceRoot":"","sources":["../src/pagePaths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createPage as createEditorPage, joinPagePath, normalizePagePath, splitPagePath, uniquePagePath } from "./pagePaths";
|
|
2
|
+
import type { BlockNode } from "@batterai/bind-core";
|
|
3
|
+
import type { CanvasPage } from "./types";
|
|
4
|
+
export { descendantPageIds } from "./pagePaths";
|
|
5
|
+
export { createEditorPage as createPage, joinPagePath, normalizePagePath, splitPagePath, uniquePagePath, };
|
|
6
|
+
export type PagePathChange = {
|
|
7
|
+
pageId: string;
|
|
8
|
+
before: string;
|
|
9
|
+
after: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Multi-page canvas layer: every page on the board is in memory at once and
|
|
13
|
+
* block/column ids are unique across pages, so operations locate the owning
|
|
14
|
+
* page by id and delegate to the single-page actions in pageActions.ts.
|
|
15
|
+
*/
|
|
16
|
+
export declare function pageOfBlock(pages: CanvasPage[], blockId: string | null): CanvasPage | null;
|
|
17
|
+
export declare function pageOfColumn(pages: CanvasPage[], columnId: string): CanvasPage | null;
|
|
18
|
+
export declare function findBlockInPages(pages: CanvasPage[], blockId: string | null): BlockNode | null;
|
|
19
|
+
export declare function updatePage(pages: CanvasPage[], pageId: string, fn: (page: CanvasPage) => CanvasPage): CanvasPage[];
|
|
20
|
+
export declare function canUsePageAsParent(pages: readonly CanvasPage[], pageId: string, parentId: string | null): boolean;
|
|
21
|
+
export declare function updatePagePathCascade(pages: CanvasPage[], pageId: string, parentId: string | null, requestedPath: string): {
|
|
22
|
+
pages: CanvasPage[];
|
|
23
|
+
changes: PagePathChange[];
|
|
24
|
+
};
|
|
25
|
+
/** Apply a single-page action to whichever page owns the block; no-op when
|
|
26
|
+
* the block is not on the board. */
|
|
27
|
+
export declare function updateOwningPage(pages: CanvasPage[], blockId: string, fn: (page: CanvasPage) => CanvasPage): CanvasPage[];
|
|
28
|
+
/** Apply a single-page action to whichever page owns the layout column. */
|
|
29
|
+
export declare function updatePageOwningColumn(pages: CanvasPage[], columnId: string, fn: (page: CanvasPage) => CanvasPage): CanvasPage[];
|
|
30
|
+
/** Move a block to a top-level position, possibly on another page. */
|
|
31
|
+
export declare function moveBlockToPageIndex(pages: CanvasPage[], blockId: string, targetPageId: string, index: number): CanvasPage[];
|
|
32
|
+
/** Is this the id of a top-level (not column-nested) block on any page? */
|
|
33
|
+
export declare function isTopLevelBlock(pages: CanvasPage[], blockId: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Can a placed block be dropped ON TOP of another for the swap/replace choice?
|
|
36
|
+
* The blocks may sit anywhere — top level or inside a column, same or different
|
|
37
|
+
* page. The one hard rule is that a layout block can never live inside a column
|
|
38
|
+
* (layouts don't nest), so a swap/replace that would move a layout block into a
|
|
39
|
+
* column slot is rejected. Same block, or an unknown id, is never valid.
|
|
40
|
+
*/
|
|
41
|
+
export declare function canDropBlockOnBlock(pages: CanvasPage[], sourceId: string, targetId: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Swap two blocks' positions (the "Swap" drop choice). Both are kept; each
|
|
44
|
+
* takes the other's slot — top level, inside a column, or on a different page.
|
|
45
|
+
* Each page substitutes whichever of the two ids it owns (block ids are unique
|
|
46
|
+
* across pages), the slot preserved by `page-tree.ts`'s `replacePageNode` — so
|
|
47
|
+
* no index math and no second tree walker.
|
|
48
|
+
*/
|
|
49
|
+
export declare function swapBlocks(pages: CanvasPage[], aId: string, bId: string): CanvasPage[];
|
|
50
|
+
/**
|
|
51
|
+
* Replace a block with another (the "Replace" drop choice): the dragged
|
|
52
|
+
* source takes the target's slot and the target is removed. The source is
|
|
53
|
+
* pulled out of its own slot in the same pass. Works at any nesting level and
|
|
54
|
+
* across pages via `page-tree.ts` (remove source, substitute at target).
|
|
55
|
+
*/
|
|
56
|
+
export declare function replaceBlock(pages: CanvasPage[], sourceId: string, targetId: string): CanvasPage[];
|
|
57
|
+
/** Move a block into a layout column, possibly on another page. Layout
|
|
58
|
+
* blocks never nest, regardless of the target page. */
|
|
59
|
+
export declare function moveBlockToColumnInPages(pages: CanvasPage[], blockId: string, columnId: string, index: number): CanvasPage[];
|
|
60
|
+
//# sourceMappingURL=pagesActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagesActions.d.ts","sourceRoot":"","sources":["../src/pagesActions.ts"],"names":[],"mappings":"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"}
|