camox 0.44.0 → 0.45.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/dist/components/AuthGate.js +0 -6
- package/dist/components/DeviceSelector.js +96 -0
- package/dist/components/PlatformLabel.js +20 -24
- package/dist/core/components/lexical/HighlightNode.js +1 -1
- package/dist/core/components/lexical/InlineContentEditable.js +15 -19
- package/dist/core/components/lexical/InlineLexicalEditor.js +54 -74
- package/dist/core/components/lexical/InlineStylesPlugin.js +53 -53
- package/dist/core/components/lexical/MaxLengthPlugin.js +59 -0
- package/dist/core/components/lexical/SelectionBroadcaster.js +53 -54
- package/dist/core/components/lexical/SidebarLexicalEditor.js +322 -229
- package/dist/core/components/lexical/SummaryToggleGuard.js +42 -0
- package/dist/core/components/lexical/TextLinkPopover.js +169 -180
- package/dist/core/createApp.d.ts +241 -312
- package/dist/core/createApp.js +123 -29
- package/dist/core/createBlock.d.ts +5 -5
- package/dist/core/createBlock.js +385 -152
- package/dist/core/createCollection.d.ts +55 -0
- package/dist/core/createCollection.js +93 -0
- package/dist/core/createLayout.d.ts +197 -61
- package/dist/core/createLayout.js +114 -56
- package/dist/core/defineDocument.d.ts +3 -5
- package/dist/core/derivedRoutes.js +49 -1
- package/dist/core/dom.d.ts +13 -4
- package/dist/core/dom.js +44 -1
- package/dist/core/editing/BlockEditingRuntime.d.ts +16 -0
- package/dist/core/editing/BlockEditingRuntime.js +6 -15
- package/dist/core/editing/CompleteBlockEditingRuntime.js +28 -23
- package/dist/core/editing/createEditableBlock.d.ts +754 -633
- package/dist/core/editing/createEditableBlock.js +2113 -1066
- package/dist/core/editing/referenceWrites.js +51 -0
- package/dist/core/editing/useLatestRecord.js +90 -0
- package/dist/core/hooks/useArtifactHost.js +139 -0
- package/dist/core/hooks/useFieldSelection.js +43 -18
- package/dist/core/hooks/useIsEditable.js +12 -10
- package/dist/core/hooks/useOverlayMessage.js +15 -19
- package/dist/core/lib/artifact.d.ts +21 -0
- package/dist/core/lib/artifact.js +154 -0
- package/dist/core/lib/artifactColors.js +123 -0
- package/dist/core/lib/artifactData.d.ts +1 -0
- package/dist/core/lib/artifactData.js +131 -0
- package/dist/core/lib/artifactHost.js +205 -0
- package/dist/core/lib/artifactRuntime.js +36 -0
- package/dist/core/lib/artifactTheme.js +57 -0
- package/dist/core/lib/contentType.d.ts +302 -106
- package/dist/core/lib/contentType.js +201 -173
- package/dist/core/lib/fieldTypes.js +3 -0
- package/dist/core/lib/iconTypes.d.ts +3 -3
- package/dist/core/lib/icons.d.ts +4 -4
- package/dist/core/lib/icons.js +40 -44
- package/dist/core/lib/imagePlaceholder.js +177 -0
- package/dist/core/lib/imageTransform.js +1 -1
- package/dist/core/lib/lexicalReact.d.ts +3 -1
- package/dist/core/lib/lexicalState.js +1 -1
- package/dist/core/lib/previewPaused.js +9 -0
- package/dist/core/lib/recordScope.js +316 -0
- package/dist/core/lib/reference.d.ts +81 -0
- package/dist/core/lib/reference.js +29 -0
- package/dist/core/lib/textLinks.js +7 -5
- package/dist/core/lib/textStyles.d.ts +5 -7
- package/dist/core/lib/textStyles.js +2 -2
- package/dist/core/notFound.d.ts +7 -0
- package/dist/core/notFound.js +11 -0
- package/dist/core/pageDestinations.js +6 -3
- package/dist/core/recordItem.js +34 -0
- package/dist/core/requestContext.d.ts +26 -0
- package/dist/core/requestContext.js +20 -0
- package/dist/features/canvas/CamoxCanvas.js +1734 -0
- package/dist/features/canvas/CanvasBlockFrame.js +353 -0
- package/dist/features/canvas/CanvasBlockHeader.js +55 -0
- package/dist/features/canvas/CanvasLoadingScreen.js +35 -0
- package/dist/features/canvas/CanvasOverlays.js +254 -0
- package/dist/features/canvas/CanvasPageEdge.js +87 -0
- package/dist/features/canvas/CanvasPageFrame.js +335 -0
- package/dist/features/canvas/CanvasPageHeader.js +125 -0
- package/dist/features/canvas/CanvasPreviewPageSlot.js +103 -0
- package/dist/features/canvas/CanvasShelfMarker.js +255 -0
- package/dist/features/canvas/DerivedPagePathInput.js +238 -0
- package/dist/features/canvas/canvasCamera.js +229 -0
- package/dist/features/canvas/canvasFlight.js +104 -0
- package/dist/features/canvas/canvasFrameCapture.js +364 -0
- package/dist/features/canvas/canvasFrameDocument.js +317 -0
- package/dist/features/canvas/canvasFrameMode.js +53 -0
- package/dist/features/canvas/canvasInsertionSeams.js +44 -0
- package/dist/features/canvas/canvasItems.js +120 -0
- package/dist/features/canvas/canvasOverlayGeometry.js +240 -0
- package/dist/features/canvas/canvasPages.js +79 -0
- package/dist/features/canvas/canvasScreenSpace.js +26 -0
- package/dist/features/canvas/canvasSelection.js +18 -0
- package/dist/features/canvas/canvasStore.js +149 -0
- package/dist/features/canvas/canvasThumbnails.js +304 -0
- package/dist/features/canvas/canvasZoom.js +10 -0
- package/dist/features/canvas/sidebar/CanvasInspector.js +202 -0
- package/dist/features/canvas/sidebar/CanvasNavigator.js +226 -0
- package/dist/features/canvas/sidebar/CanvasSidebar.js +60 -0
- package/dist/features/canvas/sidebar/CanvasSidebarFrame.js +48 -0
- package/dist/features/canvas/sidebar/CanvasSidebarSkeleton.js +39 -0
- package/dist/features/canvas/sidebar/CatalogBlockInspector.js +189 -0
- package/dist/features/canvas/sidebar/CuratedPageInspector.js +69 -0
- package/dist/features/canvas/sidebar/DerivedPageInspector.js +37 -0
- package/dist/features/canvas/sidebar/LayoutPageBlocks.js +78 -0
- package/dist/features/canvas/sidebar/LayoutPageOverview.js +71 -0
- package/dist/features/canvas/sidebar/PageInspector.js +157 -0
- package/dist/features/canvas/sidebar/PageInspectorSkeleton.js +90 -0
- package/dist/features/canvas/sidebar/PageOverview.js +27 -0
- package/dist/features/canvas/sidebar/SingletonPageInspector.js +31 -0
- package/dist/features/canvas/useCanvasCamera.js +803 -0
- package/dist/features/canvas/useCanvasFrame.js +149 -0
- package/dist/features/canvas/useCanvasFrameInput.js +97 -0
- package/dist/features/canvas/useCanvasNearness.js +57 -0
- package/dist/features/canvas/useDiscoveredPreviewPaths.js +62 -0
- package/dist/features/content/CamoxContent.d.ts +2 -5
- package/dist/features/content/CamoxContent.js +174 -271
- package/dist/features/content/CollectionItemSheetContext.js +106 -0
- package/dist/features/content/ContentAssets.js +315 -0
- package/dist/features/content/ContentCollection.js +663 -0
- package/dist/features/content/collection-form.js +58 -0
- package/dist/features/content/components/AssetCard.js +80 -84
- package/dist/features/content/components/AssetCardSkeleton.js +4 -8
- package/dist/features/content/components/ContentSidebar.js +129 -18
- package/dist/features/content/components/ContentSidebarGroup.js +37 -0
- package/dist/features/content/components/DeleteCollectionItemButton.js +202 -0
- package/dist/features/content/components/MissingFromLocale.js +282 -0
- package/dist/features/content/components/UploadDropZone.js +27 -31
- package/dist/features/content/components/UploadProgressDrawer.js +90 -98
- package/dist/features/navigation/navigation.d.ts +66 -20
- package/dist/features/navigation/navigation.js +257 -90
- package/dist/features/og/defaultFonts.js +8 -8
- package/dist/features/og/geist-variable-ttf-base64.js +1 -1
- package/dist/features/og/imageResponse.d.ts +8 -0
- package/dist/features/og/imageResponse.js +26 -0
- package/dist/features/page/CuratedPageContent.js +167 -0
- package/dist/features/page/DerivedPageContent.js +26 -30
- package/dist/features/page/SharedLayoutContent.js +25 -27
- package/dist/features/preview/CamoxPreview.d.ts +23 -61
- package/dist/features/preview/CamoxPreview.js +816 -537
- package/dist/features/preview/EditablePageContent.js +1 -1
- package/dist/features/preview/EditablePageExperience.js +16 -22
- package/dist/features/preview/components/AddBlockDialog.js +270 -0
- package/dist/features/preview/components/AssetFieldEditor.js +173 -154
- package/dist/features/preview/components/AssetLightbox.js +181 -134
- package/dist/features/preview/components/AssetPickerModal.js +153 -170
- package/dist/features/preview/components/BlockActionsPopover.js +150 -149
- package/dist/features/preview/components/BlockErrorBoundary.js +8 -12
- package/dist/features/preview/components/BlockThumbnail.js +176 -100
- package/dist/features/preview/components/CanvasPreview.js +243 -0
- package/dist/features/preview/components/CreatePageModal.js +128 -137
- package/dist/features/preview/components/DebouncedFieldEditor.js +29 -33
- package/dist/features/preview/components/DerivedLayoutDialog.js +21 -19
- package/dist/features/preview/components/DrillRow.js +150 -0
- package/dist/features/preview/components/FieldOverlayStyles.js +11 -8
- package/dist/features/preview/components/FieldToolbar.js +160 -110
- package/dist/features/preview/components/Frame.js +108 -20
- package/dist/features/preview/components/IconFieldEditor.js +62 -66
- package/dist/features/preview/components/ItemFieldsEditor.js +231 -205
- package/dist/features/preview/components/LinkFieldEditor.js +135 -139
- package/dist/features/preview/components/Metadata.js +22 -30
- package/dist/features/preview/components/MobilePreviewDrawer.js +89 -108
- package/dist/features/preview/components/MultipleAssetFieldEditor.js +334 -246
- package/dist/features/preview/components/OverlayTracker.js +9 -41
- package/dist/features/preview/components/Overlays.js +81 -69
- package/dist/features/preview/components/PageInfo.js +1748 -0
- package/dist/features/preview/components/PageInfoSkeleton.js +51 -0
- package/dist/features/preview/components/PageLocationFieldset.js +112 -116
- package/dist/features/preview/components/PageNavigatorHeader.js +24 -0
- package/dist/features/preview/components/PageNicknameField.js +22 -26
- package/dist/features/preview/components/PagePicker.js +128 -130
- package/dist/features/preview/components/PageTree.js +525 -532
- package/dist/features/preview/components/PreviewActivation.js +28 -32
- package/dist/features/preview/components/PreviewPanel.js +620 -319
- package/dist/features/preview/components/PreviewToolbar.js +105 -333
- package/dist/features/preview/components/RecordCard.js +80 -0
- package/dist/features/preview/components/RecordCombobox.js +178 -0
- package/dist/features/preview/components/ReferenceFieldEditor.js +149 -0
- package/dist/features/preview/components/ReferenceListFieldEditor.js +432 -0
- package/dist/features/preview/components/RemovedBlockPlaceholder.js +95 -0
- package/dist/features/preview/components/RepeatableItemsList.js +125 -138
- package/dist/features/preview/components/SelectionEditor.js +993 -0
- package/dist/features/preview/components/ShikiMarkdown.js +14 -18
- package/dist/features/preview/components/SidebarSection.js +52 -64
- package/dist/features/preview/components/StudioEditingFallback.js +56 -0
- package/dist/features/preview/components/UnlinkAssetButton.js +104 -107
- package/dist/features/preview/components/blockGridNavigation.js +15 -0
- package/dist/features/preview/components/contentFieldSchema.js +8 -0
- package/dist/features/preview/components/useFieldWriter.js +200 -0
- package/dist/features/preview/components/useRecordView.js +383 -0
- package/dist/features/preview/components/useRepeatableItemActions.js +35 -37
- package/dist/features/preview/components/useUpdateBlockPosition.js +37 -37
- package/dist/features/preview/editingFrame.js +197 -0
- package/dist/features/preview/overlayHighlights.js +17 -44
- package/dist/features/preview/overlayMessages.js +72 -1
- package/dist/features/preview/pageRecord.js +189 -0
- package/dist/features/preview/previewConstants.js +6 -2
- package/dist/features/preview/previewPageFrame.js +95 -0
- package/dist/features/preview/previewPreparation.js +7 -0
- package/dist/features/preview/previewSelection.js +32 -63
- package/dist/features/preview/previewStore.js +225 -123
- package/dist/features/preview/referencePickerFocus.js +29 -0
- package/dist/features/preview/repeatableItemTargets.js +56 -0
- package/dist/features/preview/selectionReveal.js +21 -0
- package/dist/features/preview/usePreviewViewportActions.js +114 -0
- package/dist/features/preview/viewportContinuity.js +109 -0
- package/dist/features/provider/AuthenticatedCamoxProvider.js +69 -44
- package/dist/features/provider/CamoxProvider.d.ts +3 -6
- package/dist/features/provider/CamoxProvider.js +38 -50
- package/dist/features/provider/CoreCamoxProvider.js +66 -50
- package/dist/features/provider/LocalhostPreviewProvider.js +78 -114
- package/dist/features/provider/PreviewSignInPage.js +54 -0
- package/dist/features/provider/components/CamoxAppContext.js +11 -11
- package/dist/features/provider/components/CommandPalette.js +75 -82
- package/dist/features/provider/useAdminShortcuts.js +7 -11
- package/dist/features/routes/pageRuntime.d.ts +44 -4
- package/dist/features/routes/pageRuntime.js +244 -137
- package/dist/features/runtime/RuntimeChrome.js +117 -115
- package/dist/features/runtime/alternates.js +64 -0
- package/dist/features/runtime/analytics.d.ts +7 -0
- package/dist/features/runtime/analytics.js +66 -0
- package/dist/features/runtime/artifactSources.js +87 -0
- package/dist/features/runtime/editingFallback.js +20 -0
- package/dist/features/runtime/linkPrefetch.js +97 -0
- package/dist/features/runtime/livePages.js +62 -0
- package/dist/features/runtime/llmsTxt.js +40 -0
- package/dist/features/runtime/loopbackFetch.js +18 -0
- package/dist/features/runtime/navigationAccessibility.js +51 -0
- package/dist/features/runtime/navigationTarget.js +23 -2
- package/dist/features/runtime/pageApp.js +229 -158
- package/dist/features/runtime/pageBlockTypes.js +20 -0
- package/dist/features/runtime/pageClient.d.ts +2 -4
- package/dist/features/runtime/pageClient.js +18 -3
- package/dist/features/runtime/pageNavigation.js +254 -32
- package/dist/features/runtime/pageServer.d.ts +2 -4
- package/dist/features/runtime/pageServer.js +6 -2
- package/dist/features/runtime/pageViewport.js +7 -0
- package/dist/features/runtime/runtime.d.ts +59 -24
- package/dist/features/runtime/runtime.js +779 -191
- package/dist/features/runtime/runtimeChromeLoader.js +58 -0
- package/dist/features/runtime/runtimeRoutes.d.ts +19 -0
- package/dist/features/runtime/runtimeRoutes.js +25 -0
- package/dist/features/runtime/scrollRestoration.js +133 -0
- package/dist/features/runtime/studioApp.d.ts +4 -3
- package/dist/features/runtime/studioApp.js +5 -9
- package/dist/features/runtime/studioClient.d.ts +2 -4
- package/dist/features/runtime/studioClient.js +12 -3
- package/dist/features/runtime/studioServer.d.ts +2 -4
- package/dist/features/runtime/studioServer.js +6 -1
- package/dist/features/runtime/worker.d.ts +6 -0
- package/dist/features/runtime/worker.js +23 -0
- package/dist/features/runtime/workerRequest.js +44 -0
- package/dist/features/studio/CamoxStudio.d.ts +2 -6
- package/dist/features/studio/CamoxStudio.js +34 -49
- package/dist/features/studio/FollowAgentProvider.js +338 -0
- package/dist/features/studio/components/ChatSidebar.js +356 -0
- package/dist/features/studio/components/DraftsControl.js +676 -0
- package/dist/features/studio/components/FaviconDialog.js +318 -0
- package/dist/features/studio/components/LocalePicker.js +785 -0
- package/dist/features/studio/components/Navbar.js +123 -103
- package/dist/features/studio/components/ProjectMenu.js +239 -260
- package/dist/features/studio/components/RenameDraftDialog.js +206 -0
- package/dist/features/studio/components/ReviewDraftSheet.js +1472 -0
- package/dist/features/studio/components/ThreadComposer.js +157 -0
- package/dist/features/studio/components/ThreadMarkdown.js +113 -0
- package/dist/features/studio/components/ThreadMessages.js +270 -0
- package/dist/features/studio/components/UserButton.js +34 -23
- package/dist/features/studio/draftLabel.js +33 -0
- package/dist/features/studio/draftNotice.js +13 -0
- package/dist/features/studio/followAgent.js +250 -0
- package/dist/features/studio/followAgentContext.js +7 -0
- package/dist/features/studio/localeOptions.js +118 -0
- package/dist/features/studio/localeSwitch.js +19 -0
- package/dist/features/studio/routes.js +48 -1
- package/dist/features/studio/studioStore.js +64 -1
- package/dist/features/studio/useTheme.js +24 -27
- package/dist/features/vite/artifactRuntimeMinification.js +36 -0
- package/dist/features/vite/blockBoilerplate.js +6 -5
- package/dist/features/vite/blockChunks.js +31 -0
- package/dist/features/vite/bundlerLogs.js +17 -0
- package/dist/features/vite/definitionsSync.js +158 -226
- package/dist/features/vite/devAuthentication.js +4 -16
- package/dist/features/vite/devSignIn.js +87 -0
- package/dist/features/vite/iconGeneration.js +1 -1
- package/dist/features/vite/layoutGeneration.js +11 -1
- package/dist/features/vite/publishSeededContent.js +30 -0
- package/dist/features/vite/routeGeneration.js +6 -7
- package/dist/features/vite/runtimeDev.js +80 -99
- package/dist/features/vite/vite.d.ts +51 -31
- package/dist/features/vite/vite.js +224 -127
- package/dist/features/vite/workerBuild.js +39 -0
- package/dist/hooks/use-debounced-field.js +116 -47
- package/dist/hooks/use-file-upload.js +114 -67
- package/dist/hooks/use-marquee-selection.js +32 -36
- package/dist/hooks/use-page-destinations.js +69 -37
- package/dist/lib/api-client-server.d.ts +5 -0
- package/dist/lib/api-client-server.js +10 -4
- package/dist/lib/api-client.d.ts +6 -0
- package/dist/lib/api-client.js +51 -16
- package/dist/lib/api-socket.js +17 -0
- package/dist/lib/auth-page-styles.js +39 -0
- package/dist/lib/auth.js +117 -61
- package/dist/lib/collection-cache.js +23 -0
- package/dist/lib/draft-scope.d.ts +4 -0
- package/dist/lib/draft-scope.js +222 -0
- package/dist/lib/html.js +12 -0
- package/dist/lib/link-pages.js +154 -0
- package/dist/lib/locale-path.d.ts +22 -0
- package/dist/lib/locale-path.js +57 -0
- package/dist/lib/normalized-data.js +252 -152
- package/dist/lib/preview-handoff.js +2 -2
- package/dist/lib/queries.d.ts +11 -0
- package/dist/lib/queries.js +70 -141
- package/dist/lib/studio-reads.d.ts +14 -0
- package/dist/lib/studio-reads.js +574 -0
- package/dist/lib/use-project-room.js +50 -50
- package/dist/lib/use-thread.js +310 -0
- package/dist/lib/utils.js +25 -29
- package/dist/lib/view-locale-context.js +22 -0
- package/dist/lib/view-locale.js +46 -0
- package/dist/package.js +5 -0
- package/dist/studio-overlays.css +41 -151
- package/dist/studio.css +2 -2
- package/package.json +70 -73
- package/skills/camox/SKILL.md +16 -11
- package/skills/camox/references/artifacts.md +179 -0
- package/skills/camox/references/block-definitions.md +75 -59
- package/skills/camox/references/cli-common.md +9 -11
- package/skills/camox/references/cli-content.md +92 -69
- package/skills/camox/references/cli-publishing.md +26 -0
- package/skills/camox/references/dom-integrations.md +27 -0
- package/skills/camox/references/field-styling.md +4 -4
- package/skills/camox/references/layout-definitions.md +16 -14
- package/skills/camox/references/localization.md +56 -0
- package/skills/camox/references/routed-layouts.md +133 -15
- package/skills/camox-expand/SKILL.md +69 -0
- package/skills/camox-expand/references/jobs.md +39 -0
- package/skills/camoxify/SKILL.md +29 -7
- package/dist/core/components/AddBlockControlBar.js +0 -78
- package/dist/core/hooks/useRequireDraftSource.js +0 -23
- package/dist/features/metadata/sitemap.d.ts +0 -8
- package/dist/features/metadata/sitemap.js +0 -17
- package/dist/features/og/imageResponse.node.d.ts +0 -12
- package/dist/features/og/imageResponse.node.js +0 -49
- package/dist/features/og/imageResponse.workerd.d.ts +0 -12
- package/dist/features/og/imageResponse.workerd.js +0 -40
- package/dist/features/page/PublishedPageContent.js +0 -205
- package/dist/features/page/PublishedPageExperience.js +0 -23
- package/dist/features/preview/DerivedPreview.js +0 -134
- package/dist/features/preview/commentsEnabled.js +0 -8
- package/dist/features/preview/components/AddBlockSidebar.js +0 -381
- package/dist/features/preview/components/AttachedComments.js +0 -331
- package/dist/features/preview/components/CommentHeader.js +0 -122
- package/dist/features/preview/components/CommentSidebar.js +0 -29
- package/dist/features/preview/components/CommentTargetQuote.js +0 -167
- package/dist/features/preview/components/DerivedLayoutSidebar.d.ts +0 -5
- package/dist/features/preview/components/DerivedLayoutSidebar.js +0 -179
- package/dist/features/preview/components/DerivedPageInfoSidebar.js +0 -69
- package/dist/features/preview/components/LeftSidebar.js +0 -68
- package/dist/features/preview/components/PageEditorSidebar.js +0 -563
- package/dist/features/preview/components/PageInfoSidebar.js +0 -1551
- package/dist/features/preview/components/PageNavigatorSidebar.js +0 -78
- package/dist/features/preview/components/PageStatusBadge.js +0 -97
- package/dist/features/preview/components/PeekedBlock.js +0 -217
- package/dist/features/preview/components/PreviewComments.js +0 -56
- package/dist/features/preview/components/PreviewToolbarSpacer.js +0 -43
- package/dist/features/preview/components/PublicationRow.js +0 -422
- package/dist/features/preview/components/PublishDialog.js +0 -194
- package/dist/features/preview/components/RightSidebar.js +0 -59
- package/dist/features/preview/components/SendFeedbackDialog.js +0 -83
- package/dist/features/preview/previewCommentsStore.js +0 -135
- package/dist/features/preview/publication.js +0 -81
- package/dist/features/preview/usePageComments.js +0 -39
- package/dist/features/runtime/SharedChromeContext.js +0 -7
- package/dist/features/studio/components/EnvironmentMenu.js +0 -425
- package/dist/features/vite/appGeneration.js +0 -89
- package/dist/lib/view-queries.js +0 -28
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/Matches.d.ts +0 -114
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/RouterProvider.d.ts +0 -25
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/config.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/defer.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/fileRoute.d.ts +0 -20
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/global.d.ts +0 -8
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/hash-scroll.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/index.d.ts +0 -18
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/link.d.ts +0 -161
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/load-matches.d.ts +0 -6
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/location.d.ts +0 -54
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/lru-cache.d.ts +0 -8
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/manifest.d.ts +0 -32
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.d.ts +0 -115
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/not-found.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/redirect.d.ts +0 -49
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/rewrite.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/root.d.ts +0 -6
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/route.d.ts +0 -343
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/routeInfo.d.ts +0 -48
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/router.d.ts +0 -695
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/scroll-restoration.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/searchMiddleware.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/searchParams.d.ts +0 -5
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/ssr/serializer/RawStream.d.ts +0 -38
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/ssr/serializer/seroval-plugins.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/ssr/serializer/transformer.d.ts +0 -65
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/stores.d.ts +0 -69
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/structuralSharing.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/typePrimitives.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useLoaderData.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useLoaderDeps.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useNavigate.d.ts +0 -10
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useParams.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useRouteContext.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/useSearch.d.ts +0 -1
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/utils.d.ts +0 -28
- package/dist/node_modules/.pnpm/@tanstack_router-core@1.168.14/node_modules/@tanstack/router-core/dist/esm/validators.d.ts +0 -49
- package/skills/camox/references/cli-environments.md +0 -37
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
import { actionsStore } from "../../provider/actionsStore.js";
|
|
2
|
-
import { usePageBlocks } from "../../../lib/normalized-data.js";
|
|
3
2
|
import { useCamoxApp } from "../../provider/components/CamoxAppContext.js";
|
|
4
|
-
import {
|
|
3
|
+
import { usePageBlocks } from "../../../lib/normalized-data.js";
|
|
5
4
|
import { formatShortcut } from "../../../lib/utils.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { blockMutations, repeatableItemMutations } from "../../../lib/queries.js";
|
|
6
|
+
import { isBlockSelection, previewStore, selectionForPage, selectionItemId } from "../previewStore.js";
|
|
8
7
|
import { useUpdateBlockPosition } from "./useUpdateBlockPosition.js";
|
|
9
8
|
import { usePreviewedPage } from "../CamoxPreview.js";
|
|
10
9
|
import { c } from "react/compiler-runtime";
|
|
11
|
-
import { useMutation } from "@tanstack/react-query";
|
|
12
10
|
import * as React from "react";
|
|
13
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
11
|
import { useSelector } from "@xstate/store-react";
|
|
12
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { useMutation } from "@tanstack/react-query";
|
|
15
14
|
import { Copy, Trash2 } from "lucide-react";
|
|
15
|
+
import { toast } from "@camox/ui/toaster";
|
|
16
16
|
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from "@camox/ui/alert-dialog";
|
|
17
|
+
import { Command as Command$1, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from "@camox/ui/command";
|
|
17
18
|
import { Popover, PopoverContent, PopoverTrigger } from "@camox/ui/popover";
|
|
18
|
-
import { toast } from "@camox/ui/toaster";
|
|
19
|
-
import { Command, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from "@camox/ui/command";
|
|
20
19
|
|
|
21
20
|
//#region src/features/preview/components/BlockActionsPopover.tsx
|
|
22
|
-
const BlockActionsPopover = ({ block, children, open, onOpenChange, align = "start", isLayoutBlock,
|
|
21
|
+
const BlockActionsPopover = ({ block, children, open, onOpenChange, align = "start", isLayoutBlock, layoutSlot }) => {
|
|
23
22
|
const [blockToDelete, setBlockToDelete] = React.useState(null);
|
|
24
23
|
const page = usePreviewedPage();
|
|
25
24
|
const { pageBlocks } = usePageBlocks(page);
|
|
26
25
|
const deleteBlock = useMutation(blockMutations.delete());
|
|
27
26
|
const duplicateBlock = useMutation(blockMutations.duplicate());
|
|
28
27
|
const deleteManyBlocks = useMutation(blockMutations.deleteMany());
|
|
29
|
-
const handleDeleteBlock = async (
|
|
28
|
+
const handleDeleteBlock = async (block) => {
|
|
30
29
|
try {
|
|
31
|
-
await deleteBlock.mutateAsync({ id:
|
|
32
|
-
toast.success(`Deleted "${
|
|
30
|
+
await deleteBlock.mutateAsync({ id: block.id });
|
|
31
|
+
toast.success(`Deleted "${block.summary || block.type}" block`);
|
|
33
32
|
} catch (error) {
|
|
34
33
|
console.error("Failed to delete block:", error);
|
|
35
34
|
toast.error("Could not delete block");
|
|
@@ -37,59 +36,59 @@ const BlockActionsPopover = ({ block, children, open, onOpenChange, align = "sta
|
|
|
37
36
|
setBlockToDelete(null);
|
|
38
37
|
}
|
|
39
38
|
};
|
|
40
|
-
const handleDuplicateBlock = async (
|
|
39
|
+
const handleDuplicateBlock = async (block) => {
|
|
41
40
|
try {
|
|
42
|
-
await duplicateBlock.mutateAsync({ id:
|
|
43
|
-
toast.success(`Duplicated "${
|
|
44
|
-
} catch (
|
|
45
|
-
console.error("Failed to duplicate block:",
|
|
41
|
+
await duplicateBlock.mutateAsync({ id: block.id });
|
|
42
|
+
toast.success(`Duplicated "${block.summary}" block`);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.error("Failed to duplicate block:", error);
|
|
46
45
|
toast.error("Could not duplicate block");
|
|
47
46
|
}
|
|
48
47
|
};
|
|
49
|
-
const handleAddBlockAbove = (
|
|
48
|
+
const handleAddBlockAbove = (block) => {
|
|
50
49
|
if (!page) return;
|
|
51
|
-
const blockIndex = pageBlocks.findIndex((b) => b.id ===
|
|
50
|
+
const blockIndex = pageBlocks.findIndex((b) => b.id === block.id);
|
|
52
51
|
const afterPosition = blockIndex > 0 ? pageBlocks[blockIndex - 1].position : "";
|
|
53
52
|
previewStore.send({
|
|
54
|
-
type: "
|
|
53
|
+
type: "openAddBlockDialog",
|
|
55
54
|
afterPosition
|
|
56
55
|
});
|
|
57
56
|
};
|
|
58
|
-
const handleAddBlockBelow = (
|
|
57
|
+
const handleAddBlockBelow = (block) => {
|
|
59
58
|
previewStore.send({
|
|
60
|
-
type: "
|
|
61
|
-
afterPosition:
|
|
59
|
+
type: "openAddBlockDialog",
|
|
60
|
+
afterPosition: block.position
|
|
62
61
|
});
|
|
63
62
|
};
|
|
64
|
-
const getBlocksAbove = (
|
|
63
|
+
const getBlocksAbove = (block) => {
|
|
65
64
|
if (!page) return [];
|
|
66
|
-
const
|
|
67
|
-
return pageBlocks.slice(0,
|
|
65
|
+
const blockIndex = pageBlocks.findIndex((b) => b.id === block.id);
|
|
66
|
+
return pageBlocks.slice(0, blockIndex);
|
|
68
67
|
};
|
|
69
|
-
const getBlocksBelow = (
|
|
68
|
+
const getBlocksBelow = (block) => {
|
|
70
69
|
if (!page) return [];
|
|
71
|
-
const
|
|
72
|
-
return pageBlocks.slice(
|
|
70
|
+
const blockIndex = pageBlocks.findIndex((b) => b.id === block.id);
|
|
71
|
+
return pageBlocks.slice(blockIndex + 1);
|
|
73
72
|
};
|
|
74
|
-
const handleDeleteBlocksAbove = async (
|
|
75
|
-
const blocksAbove = getBlocksAbove(
|
|
73
|
+
const handleDeleteBlocksAbove = async (block) => {
|
|
74
|
+
const blocksAbove = getBlocksAbove(block);
|
|
76
75
|
if (blocksAbove.length === 0) return;
|
|
77
76
|
try {
|
|
78
|
-
await deleteManyBlocks.mutateAsync({ blockIds: blocksAbove.map((
|
|
77
|
+
await deleteManyBlocks.mutateAsync({ blockIds: blocksAbove.map((b) => b.id) });
|
|
79
78
|
toast.success(`Deleted ${blocksAbove.length} block${blocksAbove.length === 1 ? "" : "s"}`);
|
|
80
|
-
} catch (
|
|
81
|
-
console.error("Failed to delete blocks above:",
|
|
79
|
+
} catch (error) {
|
|
80
|
+
console.error("Failed to delete blocks above:", error);
|
|
82
81
|
toast.error("Could not delete blocks");
|
|
83
82
|
}
|
|
84
83
|
};
|
|
85
|
-
const handleDeleteBlocksBelow = async (
|
|
86
|
-
const blocksBelow = getBlocksBelow(
|
|
84
|
+
const handleDeleteBlocksBelow = async (block) => {
|
|
85
|
+
const blocksBelow = getBlocksBelow(block);
|
|
87
86
|
if (blocksBelow.length === 0) return;
|
|
88
87
|
try {
|
|
89
|
-
await deleteManyBlocks.mutateAsync({ blockIds: blocksBelow.map((
|
|
88
|
+
await deleteManyBlocks.mutateAsync({ blockIds: blocksBelow.map((b) => b.id) });
|
|
90
89
|
toast.success(`Deleted ${blocksBelow.length} block${blocksBelow.length === 1 ? "" : "s"}`);
|
|
91
|
-
} catch (
|
|
92
|
-
console.error("Failed to delete blocks below:",
|
|
90
|
+
} catch (error) {
|
|
91
|
+
console.error("Failed to delete blocks below:", error);
|
|
93
92
|
toast.error("Could not delete blocks");
|
|
94
93
|
}
|
|
95
94
|
};
|
|
@@ -99,13 +98,13 @@ const BlockActionsPopover = ({ block, children, open, onOpenChange, align = "sta
|
|
|
99
98
|
children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: children }), block && /* @__PURE__ */ jsx(PopoverContent, {
|
|
100
99
|
className: "w-75 p-0",
|
|
101
100
|
align,
|
|
102
|
-
children: /* @__PURE__ */ jsxs(Command, { children: [/* @__PURE__ */ jsx(CommandInput, { placeholder: "Search actions..." }), /* @__PURE__ */ jsxs(CommandList, {
|
|
101
|
+
children: /* @__PURE__ */ jsxs(Command$1, { children: [/* @__PURE__ */ jsx(CommandInput, { placeholder: "Search actions..." }), /* @__PURE__ */ jsxs(CommandList, {
|
|
103
102
|
className: "max-h-[350px]",
|
|
104
103
|
children: [
|
|
105
|
-
isLayoutBlock &&
|
|
104
|
+
isLayoutBlock && layoutSlot === "before" && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(CommandGroup, { children: /* @__PURE__ */ jsx(CommandItem, {
|
|
106
105
|
onSelect: () => {
|
|
107
106
|
previewStore.send({
|
|
108
|
-
type: "
|
|
107
|
+
type: "openAddBlockDialog",
|
|
109
108
|
afterPosition: ""
|
|
110
109
|
});
|
|
111
110
|
onOpenChange(false);
|
|
@@ -115,11 +114,11 @@ const BlockActionsPopover = ({ block, children, open, onOpenChange, align = "sta
|
|
|
115
114
|
children: [/* @__PURE__ */ jsx("span", { className: "w-4" }), "Add block below"]
|
|
116
115
|
})
|
|
117
116
|
}) }) }),
|
|
118
|
-
isLayoutBlock &&
|
|
117
|
+
isLayoutBlock && layoutSlot === "after" && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(CommandGroup, { children: /* @__PURE__ */ jsx(CommandItem, {
|
|
119
118
|
onSelect: () => {
|
|
120
119
|
const lastPageBlock = pageBlocks[pageBlocks.length - 1];
|
|
121
120
|
previewStore.send({
|
|
122
|
-
type: "
|
|
121
|
+
type: "openAddBlockDialog",
|
|
123
122
|
afterPosition: lastPageBlock?.position
|
|
124
123
|
});
|
|
125
124
|
onOpenChange(false);
|
|
@@ -208,7 +207,7 @@ const BlockActionsPopover = ({ block, children, open, onOpenChange, align = "sta
|
|
|
208
207
|
})]
|
|
209
208
|
}), /* @__PURE__ */ jsx(AlertDialog, {
|
|
210
209
|
open: !!blockToDelete,
|
|
211
|
-
onOpenChange: (
|
|
210
|
+
onOpenChange: (open) => !open && setBlockToDelete(null),
|
|
212
211
|
children: /* @__PURE__ */ jsxs(AlertDialogContent, { children: [/* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: "Delete block" }), /* @__PURE__ */ jsxs(AlertDialogDescription, { children: [
|
|
213
212
|
"Are you sure you want to delete ",
|
|
214
213
|
/* @__PURE__ */ jsx("strong", { children: blockToDelete?.summary }),
|
|
@@ -224,62 +223,68 @@ const BlockActionsPopover = ({ block, children, open, onOpenChange, align = "sta
|
|
|
224
223
|
})] })] })
|
|
225
224
|
})] });
|
|
226
225
|
};
|
|
226
|
+
/** The page's selection when it is inside a block, which block actions apply to. */
|
|
227
|
+
function blockSelectionForPage(context, pageId) {
|
|
228
|
+
const selection = selectionForPage(context, pageId);
|
|
229
|
+
return isBlockSelection(selection) ? selection : null;
|
|
230
|
+
}
|
|
227
231
|
function isLayoutBlockId(page, blockId) {
|
|
228
232
|
if (!page?.layout) return false;
|
|
229
|
-
return new Set([...page.layout.beforeBlockIds, ...page.layout.afterBlockIds]).has(blockId);
|
|
233
|
+
return (/* @__PURE__ */ new Set([...page.layout.beforeBlockIds, ...page.layout.afterBlockIds])).has(blockId);
|
|
230
234
|
}
|
|
231
235
|
function useBlockActionsShortcuts() {
|
|
232
|
-
const $ = c(
|
|
233
|
-
if ($[0] !== "a91fc105ded90c35296c42adc5eec1823e26e305818bf9026d22b67a24a3ca04") {
|
|
234
|
-
for (let $i = 0; $i < 20; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
235
|
-
$[0] = "a91fc105ded90c35296c42adc5eec1823e26e305818bf9026d22b67a24a3ca04";
|
|
236
|
-
}
|
|
236
|
+
const $ = c(24);
|
|
237
237
|
const camoxApp = useCamoxApp();
|
|
238
238
|
const page = usePreviewedPage();
|
|
239
239
|
const { pageBlocks } = usePageBlocks(page);
|
|
240
|
-
const selection = useSelector(previewStore, _temp);
|
|
241
|
-
const requireDraft = useRequireDraftSource();
|
|
242
240
|
let t0;
|
|
243
|
-
if ($[
|
|
244
|
-
t0 =
|
|
241
|
+
if ($[0] !== page.page.id) {
|
|
242
|
+
t0 = (state) => selectionForPage(state.context, page.page.id);
|
|
243
|
+
$[0] = page.page.id;
|
|
245
244
|
$[1] = t0;
|
|
246
245
|
} else t0 = $[1];
|
|
247
|
-
const
|
|
246
|
+
const selection = useSelector(previewStore, t0);
|
|
248
247
|
let t1;
|
|
249
248
|
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
250
|
-
t1 = blockMutations.
|
|
249
|
+
t1 = blockMutations.delete();
|
|
251
250
|
$[2] = t1;
|
|
252
251
|
} else t1 = $[2];
|
|
253
|
-
const
|
|
254
|
-
const updatePositionMutation = useUpdateBlockPosition();
|
|
252
|
+
const { mutateAsync: deleteBlock } = useMutation(t1);
|
|
255
253
|
let t2;
|
|
256
254
|
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
257
|
-
t2 =
|
|
255
|
+
t2 = blockMutations.duplicate();
|
|
258
256
|
$[3] = t2;
|
|
259
257
|
} else t2 = $[3];
|
|
260
|
-
const
|
|
258
|
+
const { mutateAsync: duplicateBlock } = useMutation(t2);
|
|
259
|
+
const { mutateAsync: updatePosition } = useUpdateBlockPosition();
|
|
261
260
|
let t3;
|
|
262
261
|
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
263
|
-
t3 = repeatableItemMutations.
|
|
262
|
+
t3 = repeatableItemMutations.delete();
|
|
264
263
|
$[4] = t3;
|
|
265
264
|
} else t3 = $[4];
|
|
266
|
-
const
|
|
265
|
+
const { mutateAsync: deleteRepeatableItem } = useMutation(t3);
|
|
267
266
|
let t4;
|
|
268
|
-
if ($[5]
|
|
269
|
-
t4 = ()
|
|
267
|
+
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
268
|
+
t4 = repeatableItemMutations.duplicate();
|
|
269
|
+
$[5] = t4;
|
|
270
|
+
} else t4 = $[5];
|
|
271
|
+
const { mutateAsync: duplicateRepeatableItem } = useMutation(t4);
|
|
272
|
+
let t5;
|
|
273
|
+
if ($[6] !== deleteBlock || $[7] !== deleteRepeatableItem || $[8] !== duplicateBlock || $[9] !== duplicateRepeatableItem || $[10] !== page || $[11] !== pageBlocks || $[12] !== updatePosition) {
|
|
274
|
+
t5 = () => {
|
|
270
275
|
const actions = [
|
|
271
276
|
{
|
|
272
277
|
id: "delete-selected",
|
|
273
278
|
label: "Delete selected",
|
|
274
|
-
groupLabel: "
|
|
279
|
+
groupLabel: "Website",
|
|
275
280
|
shortcut: {
|
|
276
281
|
key: "Backspace",
|
|
277
282
|
withMeta: true
|
|
278
283
|
},
|
|
279
284
|
checkIfAvailable: () => {
|
|
280
285
|
const ctx = previewStore.getSnapshot().context;
|
|
281
|
-
if (ctx.
|
|
282
|
-
const sel = ctx.
|
|
286
|
+
if (ctx.view !== "canvas") return false;
|
|
287
|
+
const sel = blockSelectionForPage(ctx, page.page.id);
|
|
283
288
|
if (!sel) return false;
|
|
284
289
|
if (isLayoutBlockId(page, sel.blockId)) return false;
|
|
285
290
|
const itemId = selectionItemId(sel);
|
|
@@ -296,126 +301,125 @@ function useBlockActionsShortcuts() {
|
|
|
296
301
|
return pageBlocks.length > 1;
|
|
297
302
|
},
|
|
298
303
|
execute: () => {
|
|
299
|
-
|
|
300
|
-
const sel_0 = previewStore.getSnapshot().context.selection;
|
|
304
|
+
const sel_0 = blockSelectionForPage(previewStore.getSnapshot().context, page.page.id);
|
|
301
305
|
if (!sel_0) return;
|
|
302
306
|
const itemId_0 = selectionItemId(sel_0);
|
|
303
307
|
if (itemId_0 != null) {
|
|
304
|
-
deleteRepeatableItem
|
|
308
|
+
deleteRepeatableItem({ id: itemId_0 }).then(_temp4, _temp5);
|
|
305
309
|
previewStore.send({ type: "selectParent" });
|
|
306
310
|
return;
|
|
307
311
|
}
|
|
308
312
|
const block_0 = pageBlocks.find((b_0) => b_0.id === sel_0.blockId);
|
|
309
|
-
|
|
313
|
+
deleteBlock({ id: sel_0.blockId }).then(() => toast.success(`Deleted "${block_0?.summary || block_0?.type}" block`), _temp6);
|
|
310
314
|
previewStore.send({ type: "clearSelection" });
|
|
311
315
|
}
|
|
312
316
|
},
|
|
313
317
|
{
|
|
314
318
|
id: "duplicate-selected",
|
|
315
319
|
label: "Duplicate selected",
|
|
316
|
-
groupLabel: "
|
|
320
|
+
groupLabel: "Website",
|
|
317
321
|
shortcut: {
|
|
318
322
|
key: "d",
|
|
319
323
|
withMeta: true
|
|
320
324
|
},
|
|
321
325
|
checkIfAvailable: () => {
|
|
322
326
|
const ctx_0 = previewStore.getSnapshot().context;
|
|
323
|
-
if (ctx_0.
|
|
324
|
-
const sel_1 = ctx_0.
|
|
327
|
+
if (ctx_0.view !== "canvas") return false;
|
|
328
|
+
const sel_1 = blockSelectionForPage(ctx_0, page.page.id);
|
|
325
329
|
if (!sel_1) return false;
|
|
326
330
|
if (isLayoutBlockId(page, sel_1.blockId)) return false;
|
|
327
331
|
return true;
|
|
328
332
|
},
|
|
329
333
|
execute: () => {
|
|
330
|
-
|
|
331
|
-
const sel_2 = previewStore.getSnapshot().context.selection;
|
|
334
|
+
const sel_2 = blockSelectionForPage(previewStore.getSnapshot().context, page.page.id);
|
|
332
335
|
if (!sel_2) return;
|
|
333
336
|
const itemId_1 = selectionItemId(sel_2);
|
|
334
337
|
if (itemId_1 != null) {
|
|
335
|
-
duplicateRepeatableItem
|
|
338
|
+
duplicateRepeatableItem({ id: itemId_1 }).then(_temp7, _temp8);
|
|
336
339
|
return;
|
|
337
340
|
}
|
|
338
341
|
const block_1 = pageBlocks.find((b_1) => b_1.id === sel_2.blockId);
|
|
339
|
-
|
|
342
|
+
duplicateBlock({ id: sel_2.blockId }).then(() => toast.success(`Duplicated "${block_1?.summary}" block`), _temp9);
|
|
340
343
|
}
|
|
341
344
|
},
|
|
342
345
|
{
|
|
343
346
|
id: "move-block-up",
|
|
344
347
|
label: "Move block up",
|
|
345
|
-
groupLabel: "
|
|
348
|
+
groupLabel: "Website",
|
|
346
349
|
shortcut: {
|
|
347
350
|
key: "ArrowUp",
|
|
348
351
|
withAlt: true
|
|
349
352
|
},
|
|
350
353
|
checkIfAvailable: () => {
|
|
351
354
|
const ctx_1 = previewStore.getSnapshot().context;
|
|
352
|
-
if (ctx_1.
|
|
353
|
-
const sel_3 = ctx_1.
|
|
355
|
+
if (ctx_1.view !== "canvas") return false;
|
|
356
|
+
const sel_3 = blockSelectionForPage(ctx_1, page.page.id);
|
|
354
357
|
if (!sel_3 || !page) return false;
|
|
355
358
|
if (isLayoutBlockId(page, sel_3.blockId)) return false;
|
|
356
359
|
return pageBlocks.findIndex((b_2) => b_2.id === sel_3.blockId) > 0;
|
|
357
360
|
},
|
|
358
361
|
execute: () => {
|
|
359
|
-
|
|
360
|
-
const sel_4 = previewStore.getSnapshot().context.selection;
|
|
362
|
+
const sel_4 = blockSelectionForPage(previewStore.getSnapshot().context, page.page.id);
|
|
361
363
|
if (!sel_4 || !page) return;
|
|
362
364
|
const index_0 = pageBlocks.findIndex((b_3) => b_3.id === sel_4.blockId);
|
|
363
365
|
if (index_0 <= 0) return;
|
|
364
366
|
const afterPosition = index_0 > 1 ? pageBlocks[index_0 - 2].position : void 0;
|
|
365
367
|
const beforePosition = pageBlocks[index_0 - 1].position;
|
|
366
|
-
|
|
368
|
+
updatePosition({
|
|
367
369
|
id: sel_4.blockId,
|
|
368
370
|
afterPosition,
|
|
369
371
|
beforePosition
|
|
370
|
-
}).then(
|
|
372
|
+
}).then(_temp10, _temp11);
|
|
371
373
|
}
|
|
372
374
|
},
|
|
373
375
|
{
|
|
374
376
|
id: "move-block-down",
|
|
375
377
|
label: "Move block down",
|
|
376
|
-
groupLabel: "
|
|
378
|
+
groupLabel: "Website",
|
|
377
379
|
shortcut: {
|
|
378
380
|
key: "ArrowDown",
|
|
379
381
|
withAlt: true
|
|
380
382
|
},
|
|
381
383
|
checkIfAvailable: () => {
|
|
382
384
|
const ctx_2 = previewStore.getSnapshot().context;
|
|
383
|
-
if (ctx_2.
|
|
384
|
-
const sel_5 = ctx_2.
|
|
385
|
+
if (ctx_2.view !== "canvas") return false;
|
|
386
|
+
const sel_5 = blockSelectionForPage(ctx_2, page.page.id);
|
|
385
387
|
if (!sel_5 || !page) return false;
|
|
386
388
|
if (isLayoutBlockId(page, sel_5.blockId)) return false;
|
|
387
389
|
const index_1 = pageBlocks.findIndex((b_4) => b_4.id === sel_5.blockId);
|
|
388
390
|
return index_1 !== -1 && index_1 < pageBlocks.length - 1;
|
|
389
391
|
},
|
|
390
392
|
execute: () => {
|
|
391
|
-
|
|
392
|
-
const sel_6 = previewStore.getSnapshot().context.selection;
|
|
393
|
+
const sel_6 = blockSelectionForPage(previewStore.getSnapshot().context, page.page.id);
|
|
393
394
|
if (!sel_6 || !page) return;
|
|
394
395
|
const index_2 = pageBlocks.findIndex((b_5) => b_5.id === sel_6.blockId);
|
|
395
396
|
if (index_2 === -1 || index_2 >= pageBlocks.length - 1) return;
|
|
396
397
|
const afterPosition_0 = pageBlocks[index_2 + 1].position;
|
|
397
398
|
const beforePosition_0 = index_2 + 2 < pageBlocks.length ? pageBlocks[index_2 + 2].position : void 0;
|
|
398
|
-
|
|
399
|
+
updatePosition({
|
|
399
400
|
id: sel_6.blockId,
|
|
400
401
|
afterPosition: afterPosition_0,
|
|
401
402
|
beforePosition: beforePosition_0
|
|
402
|
-
}).then(
|
|
403
|
+
}).then(_temp12, _temp13);
|
|
403
404
|
}
|
|
404
405
|
},
|
|
405
406
|
{
|
|
406
407
|
id: "add-block-below",
|
|
407
408
|
label: "Add block below",
|
|
408
|
-
groupLabel: "
|
|
409
|
+
groupLabel: "Website",
|
|
409
410
|
shortcut: { key: "o" },
|
|
410
|
-
checkIfAvailable:
|
|
411
|
+
checkIfAvailable: () => {
|
|
412
|
+
const ctx_3 = previewStore.getSnapshot().context;
|
|
413
|
+
if (ctx_3.view !== "canvas") return false;
|
|
414
|
+
return blockSelectionForPage(ctx_3, page.page.id) !== null;
|
|
415
|
+
},
|
|
411
416
|
execute: () => {
|
|
412
|
-
|
|
413
|
-
const sel_7 = previewStore.getSnapshot().context.selection;
|
|
417
|
+
const sel_7 = blockSelectionForPage(previewStore.getSnapshot().context, page.page.id);
|
|
414
418
|
if (!sel_7 || !page) return;
|
|
415
419
|
const block_2 = pageBlocks.find((b_6) => b_6.id === sel_7.blockId);
|
|
416
420
|
if (!block_2) return;
|
|
417
421
|
previewStore.send({
|
|
418
|
-
type: "
|
|
422
|
+
type: "openAddBlockDialog",
|
|
419
423
|
afterPosition: block_2.position
|
|
420
424
|
});
|
|
421
425
|
}
|
|
@@ -423,21 +427,24 @@ function useBlockActionsShortcuts() {
|
|
|
423
427
|
{
|
|
424
428
|
id: "add-block-above",
|
|
425
429
|
label: "Add block above",
|
|
426
|
-
groupLabel: "
|
|
430
|
+
groupLabel: "Website",
|
|
427
431
|
shortcut: {
|
|
428
432
|
key: "o",
|
|
429
433
|
withShift: true
|
|
430
434
|
},
|
|
431
|
-
checkIfAvailable:
|
|
435
|
+
checkIfAvailable: () => {
|
|
436
|
+
const ctx_4 = previewStore.getSnapshot().context;
|
|
437
|
+
if (ctx_4.view !== "canvas") return false;
|
|
438
|
+
return blockSelectionForPage(ctx_4, page.page.id) !== null;
|
|
439
|
+
},
|
|
432
440
|
execute: () => {
|
|
433
|
-
|
|
434
|
-
const sel_8 = previewStore.getSnapshot().context.selection;
|
|
441
|
+
const sel_8 = blockSelectionForPage(previewStore.getSnapshot().context, page.page.id);
|
|
435
442
|
if (!sel_8 || !page) return;
|
|
436
443
|
const blockIndex = pageBlocks.findIndex((b_7) => b_7.id === sel_8.blockId);
|
|
437
444
|
if (blockIndex === -1) return;
|
|
438
445
|
const afterPosition_1 = blockIndex > 0 ? pageBlocks[blockIndex - 1].position : "";
|
|
439
446
|
previewStore.send({
|
|
440
|
-
type: "
|
|
447
|
+
type: "openAddBlockDialog",
|
|
441
448
|
afterPosition: afterPosition_1
|
|
442
449
|
});
|
|
443
450
|
}
|
|
@@ -450,80 +457,74 @@ function useBlockActionsShortcuts() {
|
|
|
450
457
|
return () => {
|
|
451
458
|
actionsStore.send({
|
|
452
459
|
type: "unregisterManyActions",
|
|
453
|
-
ids: actions.map(
|
|
460
|
+
ids: actions.map(_temp14)
|
|
454
461
|
});
|
|
455
462
|
};
|
|
456
463
|
};
|
|
457
|
-
$[
|
|
458
|
-
$[
|
|
459
|
-
$[
|
|
460
|
-
$[
|
|
461
|
-
$[
|
|
462
|
-
$[
|
|
463
|
-
$[
|
|
464
|
-
$[
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
t5 = [
|
|
464
|
+
$[6] = deleteBlock;
|
|
465
|
+
$[7] = deleteRepeatableItem;
|
|
466
|
+
$[8] = duplicateBlock;
|
|
467
|
+
$[9] = duplicateRepeatableItem;
|
|
468
|
+
$[10] = page;
|
|
469
|
+
$[11] = pageBlocks;
|
|
470
|
+
$[12] = updatePosition;
|
|
471
|
+
$[13] = t5;
|
|
472
|
+
} else t5 = $[13];
|
|
473
|
+
let t6;
|
|
474
|
+
if ($[14] !== camoxApp || $[15] !== deleteBlock || $[16] !== deleteRepeatableItem || $[17] !== duplicateBlock || $[18] !== duplicateRepeatableItem || $[19] !== page || $[20] !== pageBlocks || $[21] !== selection || $[22] !== updatePosition) {
|
|
475
|
+
t6 = [
|
|
470
476
|
selection,
|
|
471
477
|
page,
|
|
472
478
|
pageBlocks,
|
|
473
479
|
camoxApp,
|
|
474
|
-
|
|
480
|
+
deleteBlock,
|
|
481
|
+
duplicateBlock,
|
|
482
|
+
updatePosition,
|
|
483
|
+
deleteRepeatableItem,
|
|
484
|
+
duplicateRepeatableItem
|
|
475
485
|
];
|
|
476
486
|
$[14] = camoxApp;
|
|
477
|
-
$[15] =
|
|
478
|
-
$[16] =
|
|
479
|
-
$[17] =
|
|
480
|
-
$[18] =
|
|
481
|
-
$[19] =
|
|
482
|
-
|
|
483
|
-
|
|
487
|
+
$[15] = deleteBlock;
|
|
488
|
+
$[16] = deleteRepeatableItem;
|
|
489
|
+
$[17] = duplicateBlock;
|
|
490
|
+
$[18] = duplicateRepeatableItem;
|
|
491
|
+
$[19] = page;
|
|
492
|
+
$[20] = pageBlocks;
|
|
493
|
+
$[21] = selection;
|
|
494
|
+
$[22] = updatePosition;
|
|
495
|
+
$[23] = t6;
|
|
496
|
+
} else t6 = $[23];
|
|
497
|
+
React.useEffect(t5, t6);
|
|
484
498
|
}
|
|
485
|
-
function
|
|
499
|
+
function _temp14(a) {
|
|
486
500
|
return a.id;
|
|
487
501
|
}
|
|
488
|
-
function
|
|
489
|
-
const ctx_4 = previewStore.getSnapshot().context;
|
|
490
|
-
if (ctx_4.mode !== "editing-draft") return false;
|
|
491
|
-
return ctx_4.selection !== null;
|
|
492
|
-
}
|
|
493
|
-
function _temp10() {
|
|
494
|
-
const ctx_3 = previewStore.getSnapshot().context;
|
|
495
|
-
if (ctx_3.mode !== "editing-draft") return false;
|
|
496
|
-
return ctx_3.selection !== null;
|
|
497
|
-
}
|
|
498
|
-
function _temp1() {
|
|
502
|
+
function _temp13() {
|
|
499
503
|
return toast.error("Could not move block");
|
|
500
504
|
}
|
|
501
|
-
function
|
|
502
|
-
function
|
|
505
|
+
function _temp12() {}
|
|
506
|
+
function _temp11() {
|
|
503
507
|
return toast.error("Could not move block");
|
|
504
508
|
}
|
|
505
|
-
function
|
|
506
|
-
function
|
|
509
|
+
function _temp10() {}
|
|
510
|
+
function _temp9() {
|
|
507
511
|
return toast.error("Could not duplicate block");
|
|
508
512
|
}
|
|
509
|
-
function
|
|
513
|
+
function _temp8() {
|
|
510
514
|
return toast.error("Could not duplicate item");
|
|
511
515
|
}
|
|
512
|
-
function
|
|
516
|
+
function _temp7() {
|
|
513
517
|
return toast.success("Duplicated item");
|
|
514
518
|
}
|
|
515
|
-
function
|
|
519
|
+
function _temp6() {
|
|
516
520
|
return toast.error("Could not delete block");
|
|
517
521
|
}
|
|
518
|
-
function
|
|
522
|
+
function _temp5() {
|
|
519
523
|
return toast.error("Could not delete item");
|
|
520
524
|
}
|
|
521
|
-
function
|
|
525
|
+
function _temp4() {
|
|
522
526
|
return toast.success("Deleted item");
|
|
523
527
|
}
|
|
524
|
-
function _temp(state) {
|
|
525
|
-
return state.context.selection;
|
|
526
|
-
}
|
|
527
528
|
|
|
528
529
|
//#endregion
|
|
529
530
|
export { BlockActionsPopover, useBlockActionsShortcuts };
|
|
@@ -35,27 +35,23 @@ var BlockErrorBoundaryInner = class extends React.Component {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
const BlockErrorBoundary = (t0) => {
|
|
38
|
-
const $ = c(
|
|
39
|
-
if ($[0] !== "46b0d65b4c2052002160e1a82931512b726f6f897f121eb303d9f5030172ca60") {
|
|
40
|
-
for (let $i = 0; $i < 6; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
41
|
-
$[0] = "46b0d65b4c2052002160e1a82931512b726f6f897f121eb303d9f5030172ca60";
|
|
42
|
-
}
|
|
38
|
+
const $ = c(5);
|
|
43
39
|
const { blockId, blockType, children } = t0;
|
|
44
40
|
const isAuthenticated = useIsAuthenticated();
|
|
45
41
|
let t1;
|
|
46
|
-
if ($[
|
|
42
|
+
if ($[0] !== blockId || $[1] !== blockType || $[2] !== children || $[3] !== isAuthenticated) {
|
|
47
43
|
t1 = /* @__PURE__ */ jsx(BlockErrorBoundaryInner, {
|
|
48
44
|
blockId,
|
|
49
45
|
blockType,
|
|
50
46
|
isAuthenticated,
|
|
51
47
|
children
|
|
52
48
|
});
|
|
53
|
-
$[
|
|
54
|
-
$[
|
|
55
|
-
$[
|
|
56
|
-
$[
|
|
57
|
-
$[
|
|
58
|
-
} else t1 = $[
|
|
49
|
+
$[0] = blockId;
|
|
50
|
+
$[1] = blockType;
|
|
51
|
+
$[2] = children;
|
|
52
|
+
$[3] = isAuthenticated;
|
|
53
|
+
$[4] = t1;
|
|
54
|
+
} else t1 = $[4];
|
|
59
55
|
return t1;
|
|
60
56
|
};
|
|
61
57
|
|