@riverbankcms/sdk 0.107.0 → 0.109.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/README.md +21 -1
- package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +48 -28
- package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-B7OL4sfR.mjs} +10 -9
- package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +633 -220
- package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +5764 -1556
- package/dist/_dts/ai/src/contracts/proposals.d.ts +15383 -11388
- package/dist/_dts/api/src/blocks.d.ts +41 -7
- package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +177 -127
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
- package/dist/_dts/api/src/cache-tags.d.ts +3 -0
- package/dist/_dts/api/src/common/envelope.d.ts +7 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
- package/dist/_dts/api/src/courses.d.ts +1 -0
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
- package/dist/_dts/api/src/endpoints.d.ts +134 -0
- package/dist/_dts/api/src/footer-settings.d.ts +1 -0
- package/dist/_dts/api/src/footerSettings.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +7 -4
- package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
- package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
- package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +309 -1
- package/dist/_dts/api/src/siteBanner.d.ts +2 -2
- package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +144 -60
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +35 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +74 -28
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
- package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +33 -2
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
- package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
- package/dist/_dts/content-editor/src/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
- package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
- package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
- package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
- package/dist/_dts/content-model/src/index.d.ts +3 -0
- package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/editor-state.d.ts +4 -0
- package/dist/_dts/core/src/footer-composition.d.ts +143 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/public-profile.d.ts +73 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -205
- package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
- package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
- package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
- package/dist/_dts/path-utils/src/index.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
- package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
- package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
- package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
- package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
- package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
- package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
- package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +58 -20
- package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
- package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
- package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +900 -827
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
- package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +45 -33
- package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +104 -86
- package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
- package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
- package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +117 -150
- package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
- package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1264 -138
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
- package/dist/cli/index.mjs +68552 -66955
- package/dist/cli/init-docs/content/cli-reference.md +50 -7
- package/dist/cli/init-docs/content/content-management.md +7 -4
- package/dist/cli/init-docs/content/workflow-publish.md +5 -1
- package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
- package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
- package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
- package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
- package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
- package/dist/client/{accordion-DAIBVpTS.mjs → accordion-CeGreumd.mjs} +1 -1
- package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
- package/dist/client/bookings.mjs +637 -328
- package/dist/client/{buttons-DJgynGHQ.mjs → buttons-DoFV7KDL.mjs} +618 -306
- package/dist/client/{carousel-D-SLfX8r.mjs → carousel-B2jDtogf.mjs} +1 -1
- package/dist/client/{cart-CEgbgJhX.mjs → cart-D-jZ-vaY.mjs} +3 -3
- package/dist/client/{checkout-CXWrCRAA.mjs → checkout-Dza-LA7N.mjs} +3 -3
- package/dist/client/client.mjs +2497 -1216
- package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
- package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-TYkNychb.mjs} +7 -7
- package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
- package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-mNrpryE9.mjs} +2 -2
- package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
- package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-YhKN018y.mjs} +2 -2
- package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
- package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
- package/dist/client/{form-CH1lCusH.mjs → form-AcAL45rA.mjs} +2 -2
- package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-uEC52ueD.mjs} +3 -3
- package/dist/client/hooks.mjs +1249 -841
- package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-_wJDSUYe.mjs} +3 -3
- package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
- package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
- package/dist/client/{pricing-BIbzmV0G.mjs → pricing-BSYVghwo.mjs} +1 -1
- package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-Dyk90sMs.mjs} +3 -3
- package/dist/client/{productList-Cc7OMrqN.mjs → productList-BCKThwAI.mjs} +3 -3
- package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-CkXxkdSR.mjs} +96 -33
- package/dist/client/rendering/client.mjs +1278 -523
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2308 -1028
- package/dist/client/{shop-CQ_YbCnn.mjs → shop-DeltVH10.mjs} +6 -6
- package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
- package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-B8v-lH_F.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
- package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
- package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-Cmh14fc7.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +213 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +213 -0
- package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-CTO7CRPk.mjs} +213 -0
- package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
- package/dist/{separator-BoMSQnsP.mjs → separator-CI5wZNXT.mjs} +1 -1
- package/dist/server/components.mjs +2370 -1132
- package/dist/server/config-validation.mjs +1256 -842
- package/dist/server/config.mjs +1256 -843
- package/dist/server/data.mjs +1249 -841
- package/dist/server/date-time.mjs +386 -0
- package/dist/server/index.mjs +214 -1
- package/dist/server/navigation.mjs +9 -3
- package/dist/server/next.mjs +3421 -1949
- package/dist/server/page-converter.mjs +1236 -659
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2074 -1060
- package/dist/server/rendering.mjs +2370 -1132
- package/dist/server/routing.mjs +1543 -1062
- package/dist/server/server.mjs +1464 -843
- package/dist/server/theme-bridge.mjs +1581 -474
- package/dist/server/theme.mjs +614 -305
- package/dist/styles/index.css +12 -1
- package/package.json +7 -1
- package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
- package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
- package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
|
@@ -30,15 +30,15 @@ export type StyledContainerConfig = {
|
|
|
30
30
|
* Base CSS classes always applied to the container element.
|
|
31
31
|
*
|
|
32
32
|
* This element is the containing block for absolute-positioned background layers.
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* Decorative background layers clip in their own absolute frame so this
|
|
34
|
+
* foreground root can leave focus rings and editor chrome visible.
|
|
35
35
|
*
|
|
36
|
-
* @default 'rb-relative rb-isolate rb-overflow-
|
|
36
|
+
* @default 'rb-relative rb-isolate rb-overflow-visible'
|
|
37
37
|
*/
|
|
38
38
|
baseClassName?: string;
|
|
39
39
|
/**
|
|
40
40
|
* CSS class to apply to background image layer.
|
|
41
|
-
* @default 'rb-absolute rb-z-
|
|
41
|
+
* @default 'rb-absolute rb-z-0'
|
|
42
42
|
*/
|
|
43
43
|
imageClassName?: string;
|
|
44
44
|
/**
|
|
@@ -37,13 +37,13 @@ export type StyledSectionConfig = {
|
|
|
37
37
|
background?: string;
|
|
38
38
|
/**
|
|
39
39
|
* Path to the section styles data in the content (e.g., '_sectionStyles').
|
|
40
|
-
* This path is used for binding className
|
|
40
|
+
* This path is used for binding className and background layers.
|
|
41
41
|
* @default '_sectionStyles'
|
|
42
42
|
*/
|
|
43
43
|
bindFrom?: string;
|
|
44
44
|
/**
|
|
45
45
|
* CSS class to apply to background image layer.
|
|
46
|
-
* @default 'rb-absolute rb-z-
|
|
46
|
+
* @default 'rb-absolute rb-z-0'
|
|
47
47
|
*/
|
|
48
48
|
imageClassName?: string;
|
|
49
49
|
/**
|
|
@@ -63,15 +63,6 @@ export type StyledSectionConfig = {
|
|
|
63
63
|
* Browser fetch priority hint for the automatic background image layer.
|
|
64
64
|
*/
|
|
65
65
|
backgroundImageFetchPriority?: MediaImageFetchPriority;
|
|
66
|
-
/**
|
|
67
|
-
* Force section overflow visible instead of deriving it from the background.
|
|
68
|
-
*
|
|
69
|
-
* Useful for layouts with animated foreground elements where no clipped
|
|
70
|
-
* section background image is being rendered.
|
|
71
|
-
*
|
|
72
|
-
* @default false
|
|
73
|
-
*/
|
|
74
|
-
allowOverflow?: boolean;
|
|
75
66
|
/**
|
|
76
67
|
* Optional path to a boolean flag in block content that should trigger
|
|
77
68
|
* full-width section behavior (removing horizontal `rb-px-*` classes).
|
|
@@ -88,7 +79,7 @@ export type StyledSectionConfig = {
|
|
|
88
79
|
* - Creating a section wrapper with background theme
|
|
89
80
|
* - Adding background color/gradient/image layers
|
|
90
81
|
* - Binding className to section styles with transform
|
|
91
|
-
* -
|
|
82
|
+
* - Keeping foreground overflow visible while decorative backgrounds clip independently
|
|
92
83
|
* - Wrapping content children
|
|
93
84
|
*
|
|
94
85
|
* Use this helper to eliminate 25+ lines of boilerplate section setup code.
|
|
@@ -20,7 +20,7 @@ export type AllowedNodeType = (typeof ALLOWED_NODE_TYPES)[number];
|
|
|
20
20
|
* $bind.transforms within custom block layouts. Transform IDs
|
|
21
21
|
* not in this list will be rejected during validation.
|
|
22
22
|
*/
|
|
23
|
-
export declare const ALLOWED_TRANSFORM_IDS: readonly ["string.uppercase", "value.fallback", "date.formatShort", "array.length", "value.jsonArray", "value.csv", "array.marqueeLoop", "value.mapToken", "layout.maxWidthClass", "layout.headerRootClass", "layout.footerRootClass", "layout.headerRootStyle", "layout.headerSectionBackground", "layout.classicNavMode", "layout.footerRootStyle", "ui.headerNavLinkClass", "ui.headingClassFromAlignment", "ui.bodyClassFromAlignment", "ui.stackAlignFromAlignment", "ui.sectionStateTone", "ui.heroContentWrapperClass", "ui.heroCtaJustify", "ui.heroStackJustifyFromVerticalAlignment", "ui.heroGridClassFromVerticalAlignment", "ui.conditionalClass", "ui.twoColumnContainerClass", "ui.twoColumnFlexBasis", "ui.imageGalleryFilterClass", "ui.imageGalleryTileClass", "ui.imageGalleryTileStyle", "ui.imageGalleryMarqueeTileStyle", "ui.imageGalleryMarqueeDuration", "ui.imageGalleryMarqueeDirection", "ui.imageFragmentClass", "ui.imageFragmentSize", "media.fromUrl", "background.resolveStyle", "background.resolveColorsStyle", "background.
|
|
23
|
+
export declare const ALLOWED_TRANSFORM_IDS: readonly ["string.uppercase", "value.fallback", "date.formatShort", "array.length", "value.jsonArray", "value.csv", "array.marqueeLoop", "value.mapToken", "layout.maxWidthClass", "layout.headerRootClass", "layout.footerRootClass", "layout.headerRootStyle", "layout.headerSectionBackground", "layout.classicNavMode", "layout.footerRootStyle", "ui.headerNavLinkClass", "ui.headingClassFromAlignment", "ui.bodyClassFromAlignment", "ui.stackAlignFromAlignment", "ui.sectionStateTone", "ui.heroContentWrapperClass", "ui.heroCtaJustify", "ui.heroStackJustifyFromVerticalAlignment", "ui.heroGridClassFromVerticalAlignment", "ui.conditionalClass", "ui.twoColumnContainerClass", "ui.twoColumnFlexBasis", "ui.imageGalleryFilterClass", "ui.imageGalleryTileClass", "ui.imageGalleryTileStyle", "ui.imageGalleryMarqueeTileStyle", "ui.imageGalleryMarqueeDuration", "ui.imageGalleryMarqueeDirection", "ui.imageFragmentClass", "ui.imageFragmentSize", "media.fromUrl", "background.resolveStyle", "background.resolveColorsStyle", "background.resolveFrameClassName", "background.resolveImageStyle", "background.resolveImageClassName", "background.resolveOverlayStyle", "links.resolve", "links.label", "content.interpolateRichTextTokens", "boxStyles.spacing", "boxStyles.resolveRootClass", "boxStyles.resolveRootStyle", "boxStyles.semanticGap", "boxStyles.semanticGapValue", "boxStyles.cardVariantClass", "containerStyles.resolveBoxClassName"];
|
|
24
24
|
export type AllowedTransformId = (typeof ALLOWED_TRANSFORM_IDS)[number];
|
|
25
25
|
/**
|
|
26
26
|
* Set for O(1) lookup of allowed node types.
|
|
@@ -2463,7 +2463,7 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
2463
2463
|
className: string | null;
|
|
2464
2464
|
titleText: string;
|
|
2465
2465
|
bodyText: string;
|
|
2466
|
-
stepLabels: readonly ("
|
|
2466
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
2467
2467
|
summaryButtonText: string;
|
|
2468
2468
|
}>;
|
|
2469
2469
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -2543,7 +2543,7 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
2543
2543
|
className: string | null;
|
|
2544
2544
|
titleText: string;
|
|
2545
2545
|
bodyText: string;
|
|
2546
|
-
stepLabels: readonly ("
|
|
2546
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
2547
2547
|
summaryButtonText: string;
|
|
2548
2548
|
}>;
|
|
2549
2549
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -2555,7 +2555,7 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
2555
2555
|
className: string | null;
|
|
2556
2556
|
titleText: string;
|
|
2557
2557
|
bodyText: string;
|
|
2558
|
-
stepLabels: readonly ("
|
|
2558
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
2559
2559
|
summaryButtonText: string;
|
|
2560
2560
|
}>;
|
|
2561
2561
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -2606,7 +2606,7 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
2606
2606
|
className: string | null;
|
|
2607
2607
|
titleText: string;
|
|
2608
2608
|
bodyText: string;
|
|
2609
|
-
stepLabels: readonly ("
|
|
2609
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
2610
2610
|
summaryButtonText: string;
|
|
2611
2611
|
}>;
|
|
2612
2612
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -2686,7 +2686,7 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
2686
2686
|
className: string | null;
|
|
2687
2687
|
titleText: string;
|
|
2688
2688
|
bodyText: string;
|
|
2689
|
-
stepLabels: readonly ("
|
|
2689
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
2690
2690
|
summaryButtonText: string;
|
|
2691
2691
|
}>;
|
|
2692
2692
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -2698,7 +2698,7 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
2698
2698
|
className: string | null;
|
|
2699
2699
|
titleText: string;
|
|
2700
2700
|
bodyText: string;
|
|
2701
|
-
stepLabels: readonly ("
|
|
2701
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
2702
2702
|
summaryButtonText: string;
|
|
2703
2703
|
}>;
|
|
2704
2704
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -1250,7 +1250,7 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
1250
1250
|
className: string | null;
|
|
1251
1251
|
titleText: string;
|
|
1252
1252
|
bodyText: string;
|
|
1253
|
-
stepLabels: readonly ("
|
|
1253
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
1254
1254
|
summaryButtonText: string;
|
|
1255
1255
|
}>;
|
|
1256
1256
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -1330,7 +1330,7 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
1330
1330
|
className: string | null;
|
|
1331
1331
|
titleText: string;
|
|
1332
1332
|
bodyText: string;
|
|
1333
|
-
stepLabels: readonly ("
|
|
1333
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
1334
1334
|
summaryButtonText: string;
|
|
1335
1335
|
}>;
|
|
1336
1336
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -1342,7 +1342,7 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
1342
1342
|
className: string | null;
|
|
1343
1343
|
titleText: string;
|
|
1344
1344
|
bodyText: string;
|
|
1345
|
-
stepLabels: readonly ("
|
|
1345
|
+
stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
|
|
1346
1346
|
summaryButtonText: string;
|
|
1347
1347
|
}>;
|
|
1348
1348
|
hydration: Readonly<Omit<import("../nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
|
|
@@ -20,8 +20,8 @@ export declare const eventLayoutSchema: z.ZodEnum<{
|
|
|
20
20
|
compact: "compact";
|
|
21
21
|
}>;
|
|
22
22
|
export declare const eventCalendarDisplayModeSchema: z.ZodEnum<{
|
|
23
|
-
list: "list";
|
|
24
23
|
calendar: "calendar";
|
|
24
|
+
list: "list";
|
|
25
25
|
combined: "combined";
|
|
26
26
|
timetable: "timetable";
|
|
27
27
|
"week-board": "week-board";
|
|
@@ -36,8 +36,8 @@ export declare const columnOptionSchema: z.ZodEnum<{
|
|
|
36
36
|
4: "4";
|
|
37
37
|
}>;
|
|
38
38
|
export declare const weekStartSchema: z.ZodEnum<{
|
|
39
|
-
sunday: "sunday";
|
|
40
39
|
monday: "monday";
|
|
40
|
+
sunday: "sunday";
|
|
41
41
|
}>;
|
|
42
42
|
export declare const filterAutoShowSchema: z.ZodEnum<{
|
|
43
43
|
auto: "auto";
|
|
@@ -68,8 +68,8 @@ export declare const internalResolvedLinkSchema: z.ZodObject<{
|
|
|
68
68
|
routeId: z.ZodString;
|
|
69
69
|
entityId: z.ZodString;
|
|
70
70
|
entityType: z.ZodEnum<{
|
|
71
|
-
page: "page";
|
|
72
71
|
content: "content";
|
|
72
|
+
page: "page";
|
|
73
73
|
}>;
|
|
74
74
|
href: z.ZodString;
|
|
75
75
|
title: z.ZodString;
|
|
@@ -83,8 +83,8 @@ export declare const internalLinkSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
83
83
|
routeId: z.ZodString;
|
|
84
84
|
entityId: z.ZodString;
|
|
85
85
|
entityType: z.ZodEnum<{
|
|
86
|
-
page: "page";
|
|
87
86
|
content: "content";
|
|
87
|
+
page: "page";
|
|
88
88
|
}>;
|
|
89
89
|
href: z.ZodString;
|
|
90
90
|
title: z.ZodString;
|
|
@@ -118,8 +118,8 @@ export declare const linkSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.Zod
|
|
|
118
118
|
routeId: z.ZodString;
|
|
119
119
|
entityId: z.ZodString;
|
|
120
120
|
entityType: z.ZodEnum<{
|
|
121
|
-
page: "page";
|
|
122
121
|
content: "content";
|
|
122
|
+
page: "page";
|
|
123
123
|
}>;
|
|
124
124
|
href: z.ZodString;
|
|
125
125
|
title: z.ZodString;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ApiClient } from '../../api/src/request';
|
|
2
|
+
import { type FooterEditorTarget } from './footerComposer';
|
|
3
|
+
export declare function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, manageLinksHref, manageSettingsHref, legalRegion, initialTarget, variant, canEdit, onSaved, }: {
|
|
4
|
+
apiClient: ApiClient;
|
|
5
|
+
siteId: string;
|
|
6
|
+
customFooterMode: 'default' | 'blocks' | 'default+blocks' | 'none';
|
|
7
|
+
manageLinksHref: string;
|
|
8
|
+
manageSettingsHref: string;
|
|
9
|
+
legalRegion?: 'integrated' | 'separate';
|
|
10
|
+
initialTarget?: FooterEditorTarget;
|
|
11
|
+
variant?: 'full' | 'sidebar';
|
|
12
|
+
canEdit?: boolean;
|
|
13
|
+
onSaved?: () => void;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
@@ -3,7 +3,7 @@ import type { EditorBlockId } from '../../../core/src/index';
|
|
|
3
3
|
import type { BlockItem } from '../../../editor-blocks/src/block-editor/types';
|
|
4
4
|
import { type ReactNode } from 'react';
|
|
5
5
|
import { type PublishOptions } from '../hooks/useEntryActions';
|
|
6
|
-
import { type ApiClient } from '../services';
|
|
6
|
+
import { type ApiClient, type ContentEditorServices } from '../services';
|
|
7
7
|
import type { DraftWorkflowStatus } from '../types';
|
|
8
8
|
import { type EditorUiState } from '../ui/editorUiStore';
|
|
9
9
|
import type { ResolveBlockManifest } from '../ui/blockValidationView';
|
|
@@ -47,12 +47,16 @@ export type EntryRecoveryConflictState = Readonly<{
|
|
|
47
47
|
discardRecoveredChanges: () => void;
|
|
48
48
|
}>;
|
|
49
49
|
/** Actions returned by useEntryActions */
|
|
50
|
-
export type EntryActions = {
|
|
50
|
+
export type EntryActions = Readonly<{
|
|
51
|
+
kind: 'entryLifecycle';
|
|
51
52
|
saveDraft: () => Promise<void>;
|
|
52
53
|
publish: (options?: PublishOptions) => Promise<void>;
|
|
53
54
|
discardDraft: () => Promise<void>;
|
|
54
55
|
deleteEntry: () => Promise<void>;
|
|
55
|
-
}
|
|
56
|
+
}> | Readonly<{
|
|
57
|
+
kind: 'pageSurfaceDraft';
|
|
58
|
+
saveDraft: () => Promise<void>;
|
|
59
|
+
}>;
|
|
56
60
|
export type EntryControllerContextValue = {
|
|
57
61
|
entry: ContentEntrySnapshot;
|
|
58
62
|
baseline: Record<string, unknown>;
|
|
@@ -68,7 +72,6 @@ type BaseInternalProps = {
|
|
|
68
72
|
children: ReactNode;
|
|
69
73
|
apiClient: ApiClient;
|
|
70
74
|
siteId: string;
|
|
71
|
-
entryId: string;
|
|
72
75
|
routeId?: string;
|
|
73
76
|
type: string;
|
|
74
77
|
schema: ContentTypeSchema;
|
|
@@ -84,17 +87,33 @@ type BaseInternalProps = {
|
|
|
84
87
|
historyShortcutsEnabled?: boolean;
|
|
85
88
|
resolveBlockManifest?: ResolveBlockManifest;
|
|
86
89
|
};
|
|
87
|
-
type
|
|
90
|
+
type EditorOwnerServiceProps = Readonly<{
|
|
91
|
+
owner: {
|
|
92
|
+
kind: 'contentEntry';
|
|
93
|
+
contentEntryId: string;
|
|
94
|
+
};
|
|
95
|
+
services?: Extract<ContentEditorServices, {
|
|
96
|
+
kind: 'entryLifecycle';
|
|
97
|
+
}>;
|
|
98
|
+
}> | Readonly<{
|
|
99
|
+
owner: {
|
|
100
|
+
kind: 'pageSurface';
|
|
101
|
+
pageSurfaceId: string;
|
|
102
|
+
};
|
|
103
|
+
services: Extract<ContentEditorServices, {
|
|
104
|
+
kind: 'pageSurfaceDraft';
|
|
105
|
+
}>;
|
|
106
|
+
}>;
|
|
107
|
+
type PageInternalProps = {
|
|
88
108
|
kind: 'page';
|
|
89
109
|
initialStatus?: 'draft' | 'scheduled' | 'published';
|
|
90
|
-
} & {
|
|
91
110
|
initialBlocks?: BlockItem[];
|
|
92
111
|
};
|
|
93
|
-
type ContentInternalProps =
|
|
112
|
+
type ContentInternalProps = {
|
|
94
113
|
kind: 'content';
|
|
95
114
|
initialBlocks?: BlockItem[];
|
|
96
115
|
};
|
|
97
|
-
type EntryControllerProviderProps = PageInternalProps | ContentInternalProps;
|
|
116
|
+
type EntryControllerProviderProps = BaseInternalProps & EditorOwnerServiceProps & (PageInternalProps | ContentInternalProps);
|
|
98
117
|
/**
|
|
99
118
|
* Entry Controller Provider
|
|
100
119
|
*
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type FooterArrangementPlan, type FooterCompositionV1, type FooterModuleId, type FooterNavigationRole, type FooterSection, type PublicProfile } from '../../core/src/index';
|
|
2
|
+
export type FooterEditorTarget = Readonly<{
|
|
3
|
+
kind: 'overview';
|
|
4
|
+
}> | Readonly<{
|
|
5
|
+
kind: 'module';
|
|
6
|
+
moduleId: FooterModuleId;
|
|
7
|
+
}> | Readonly<{
|
|
8
|
+
kind: 'shared-profile';
|
|
9
|
+
section: 'contact' | 'opening-hours' | 'social-links';
|
|
10
|
+
}>;
|
|
11
|
+
export type FooterEditorSource = Readonly<{
|
|
12
|
+
kind: 'footer-local';
|
|
13
|
+
description: string;
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
kind: 'site-identity';
|
|
16
|
+
description: string;
|
|
17
|
+
}> | Readonly<{
|
|
18
|
+
kind: 'footer-menu';
|
|
19
|
+
role: FooterNavigationRole;
|
|
20
|
+
description: string;
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: 'business-address';
|
|
23
|
+
description: string;
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
kind: 'public-profile';
|
|
26
|
+
section: 'contact' | 'opening-hours' | 'social-links';
|
|
27
|
+
description: string;
|
|
28
|
+
}>;
|
|
29
|
+
export type FooterEditorSectionPlan = Readonly<{
|
|
30
|
+
section: FooterSection;
|
|
31
|
+
label: string;
|
|
32
|
+
selected: boolean;
|
|
33
|
+
source: FooterEditorSource;
|
|
34
|
+
availability: 'ready' | 'missing-source';
|
|
35
|
+
status: string | null;
|
|
36
|
+
actions: readonly ('edit' | 'hide' | 'show' | 'manage-links' | 'repair')[];
|
|
37
|
+
}>;
|
|
38
|
+
export type FooterEditorViewPlan = Readonly<{
|
|
39
|
+
scopeLabel: 'All pages';
|
|
40
|
+
shown: readonly FooterEditorSectionPlan[];
|
|
41
|
+
available: readonly FooterEditorSectionPlan[];
|
|
42
|
+
arrangement: FooterArrangementPlan;
|
|
43
|
+
}>;
|
|
44
|
+
type FooterEditorViewPlanInput = Readonly<{
|
|
45
|
+
composition: FooterCompositionV1;
|
|
46
|
+
publicProfile: PublicProfile;
|
|
47
|
+
hasBusinessAddress: boolean;
|
|
48
|
+
hasLogo?: boolean;
|
|
49
|
+
hasMainNavigation?: boolean;
|
|
50
|
+
hasLegalPolicyNavigation?: boolean;
|
|
51
|
+
canEdit: boolean;
|
|
52
|
+
legalRegion?: 'integrated' | 'separate';
|
|
53
|
+
}>;
|
|
54
|
+
export declare function footerModuleLabel(section: FooterSection): string;
|
|
55
|
+
export declare function planFooterEditorView(input: FooterEditorViewPlanInput): FooterEditorViewPlan;
|
|
56
|
+
export {};
|
|
@@ -3,7 +3,7 @@ import type { EditorUiStoreInstance } from '../ui/editorUiStore';
|
|
|
3
3
|
import type { PublishEntryResult } from '../services/contentEntryServices';
|
|
4
4
|
/** Services interface for entry operations */
|
|
5
5
|
export type EntryServices = {
|
|
6
|
-
deleteEntry
|
|
6
|
+
deleteEntry?: () => Promise<void>;
|
|
7
7
|
};
|
|
8
8
|
export type PublishOptions = {
|
|
9
9
|
mode?: 'default' | 'now';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ContentEntrySnapshot } from
|
|
2
|
-
import type { EditorUiState } from
|
|
3
|
-
import type { PublishEntryResult } from
|
|
1
|
+
import type { ContentEntrySnapshot } from '../../../content-model/src/index';
|
|
2
|
+
import type { EditorUiState } from '../ui/editorUiStore';
|
|
3
|
+
import type { PublishEntryResult } from '../services/contentEntryServices';
|
|
4
4
|
type StoreApi<T> = {
|
|
5
5
|
getState: () => T;
|
|
6
6
|
};
|
|
7
7
|
export declare function usePublishEntryMutation<TEntry extends ContentEntrySnapshot = ContentEntrySnapshot, TPublishPayload = unknown>({ publishFn, siteId, type, entryId, isPage, pageId, uiStore, }: {
|
|
8
|
-
publishFn
|
|
8
|
+
publishFn?: (payload: TPublishPayload | undefined) => Promise<PublishEntryResult<TEntry>>;
|
|
9
9
|
siteId: string;
|
|
10
10
|
type: string;
|
|
11
11
|
entryId: string;
|
|
@@ -18,7 +18,7 @@ export declare function usePublishEntryMutation<TEntry extends ContentEntrySnaps
|
|
|
18
18
|
publishedBlocks?: readonly import("../../../api/src/index").PublishedBlockBaseline[];
|
|
19
19
|
}>, Error, TPublishPayload | undefined, unknown>;
|
|
20
20
|
export declare function useDiscardDraftMutation<TEntry = unknown>({ discardFn, siteId, type, entryId, isPage, pageId, }: {
|
|
21
|
-
discardFn
|
|
21
|
+
discardFn?: () => Promise<TEntry>;
|
|
22
22
|
siteId: string;
|
|
23
23
|
type: string;
|
|
24
24
|
entryId: string;
|
|
@@ -23,6 +23,8 @@ export { PreviewTextEditor } from './primitives/PreviewTextEditor';
|
|
|
23
23
|
export { PreviewInlineTextEditor } from './primitives/PreviewInlineTextEditor';
|
|
24
24
|
export { PreviewRichTextEditor } from './primitives/PreviewRichTextEditor';
|
|
25
25
|
export { recordsEqual as editorValuesEqual } from './ui/stores/utils';
|
|
26
|
+
export { footerModuleLabel, planFooterEditorView, type FooterEditorSectionPlan, type FooterEditorSource, type FooterEditorTarget, type FooterEditorViewPlan, } from './footerComposer';
|
|
27
|
+
export { FooterComposerPanel } from './FooterComposerPanel';
|
|
26
28
|
export { useStoreBinding, parseEditorPath } from './primitives/shared';
|
|
27
29
|
export type { PathInfo } from './primitives/shared';
|
|
28
30
|
export * from './ai/overlayHelpers';
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { RichTextPrimitiveProps } from "../../../blocks/src/index";
|
|
2
2
|
import type { PreviewLinkedEntryFieldBinding } from '../../../blocks/src/system/data/index';
|
|
3
|
+
import { type ReactNode } from 'react';
|
|
3
4
|
type PreviewRichTextEditorProps = RichTextPrimitiveProps & {
|
|
4
5
|
onLinkedEntryFieldFocus?: (binding: PreviewLinkedEntryFieldBinding) => void;
|
|
5
6
|
onBlockFieldFocus?: (path: string) => void;
|
|
7
|
+
renderToolbarHost?: (toolbar: ReactNode) => ReactNode;
|
|
6
8
|
};
|
|
7
9
|
/**
|
|
8
10
|
* Memoized version to prevent unnecessary re-renders.
|
|
9
11
|
* Only re-renders when path, doc, variant, or className props actually change.
|
|
10
12
|
*/
|
|
11
|
-
export declare const PreviewRichTextEditor: import("react").MemoExoticComponent<({ path, linkedEntryField, onLinkedEntryFieldFocus, onBlockFieldFocus, className, doc, variant, placeholder, ariaLabel, }: PreviewRichTextEditorProps) => import("react").JSX.Element>;
|
|
13
|
+
export declare const PreviewRichTextEditor: import("react").MemoExoticComponent<({ path, linkedEntryField, onLinkedEntryFieldFocus, onBlockFieldFocus, className, doc, as: Comp, variant, placeholder, ariaLabel, renderToolbarHost, }: PreviewRichTextEditorProps) => import("react").JSX.Element>;
|
|
12
14
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type ContentTypeKey, type ApiClient, type PublishedBlockBaseline } from
|
|
2
|
-
import type { ContentEntrySnapshot } from
|
|
1
|
+
import { type ContentTypeKey, type ApiClient, type PublishedBlockBaseline, type RouteMetadataPayload } from '../../../api/src/content-editor';
|
|
2
|
+
import type { ContentEntrySnapshot } from '../../../content-model/src/index';
|
|
3
3
|
export type { ApiClient };
|
|
4
|
-
export type ContentEntryServiceConfig<TResponse, TSnapshot extends ContentEntrySnapshot> = {
|
|
4
|
+
export type ContentEntryServiceConfig<TResponse extends object, TSnapshot extends ContentEntrySnapshot> = {
|
|
5
5
|
type: ContentTypeKey;
|
|
6
6
|
siteId: string;
|
|
7
7
|
entryId: string;
|
|
@@ -15,36 +15,20 @@ export type PublishEntryResult<TSnapshot extends ContentEntrySnapshot> = Readonl
|
|
|
15
15
|
publishedContent?: Record<string, unknown> | null;
|
|
16
16
|
publishedBlocks?: readonly PublishedBlockBaseline[];
|
|
17
17
|
}>;
|
|
18
|
-
|
|
19
|
-
saveContent(content: Record<string, unknown>)
|
|
20
|
-
saveMetadata(payload: TMetadataPayload)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
canonicalUrl: string | null;
|
|
36
|
-
publishedMetaTitle: string | null;
|
|
37
|
-
publishedMetaDescription: string | null;
|
|
38
|
-
ogImageId: string | null;
|
|
39
|
-
draftUpdatedAt: string | null;
|
|
40
|
-
updatedBy: string | null;
|
|
41
|
-
}>;
|
|
42
|
-
publishDetailed: (payload: TPublishPayload | undefined) => Promise<{
|
|
43
|
-
snapshot: TSnapshot;
|
|
44
|
-
publishedContent: Record<string, unknown> | undefined;
|
|
45
|
-
publishedBlocks: PublishedBlockBaseline[] | undefined;
|
|
46
|
-
}>;
|
|
47
|
-
publish(payload: TPublishPayload | undefined): Promise<TSnapshot>;
|
|
48
|
-
discardDraft(): Promise<TSnapshot>;
|
|
49
|
-
deleteEntry(): Promise<void>;
|
|
50
|
-
};
|
|
18
|
+
type ContentEditorDraftServices<TSnapshot extends ContentEntrySnapshot = ContentEntrySnapshot, TMetadataPayload extends Record<string, unknown> = RouteMetadataPayload> = Readonly<{
|
|
19
|
+
saveContent: (content: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
20
|
+
saveMetadata: (payload: TMetadataPayload) => Promise<Record<string, unknown>>;
|
|
21
|
+
}>;
|
|
22
|
+
export type ContentEditorServices<TSnapshot extends ContentEntrySnapshot = ContentEntrySnapshot, TMetadataPayload extends Record<string, unknown> = RouteMetadataPayload> = ContentEditorDraftServices<TSnapshot, TMetadataPayload> & (Readonly<{
|
|
23
|
+
kind: 'entryLifecycle';
|
|
24
|
+
publishDetailed: (payload: unknown) => Promise<PublishEntryResult<TSnapshot>>;
|
|
25
|
+
publish: (payload: unknown) => Promise<TSnapshot>;
|
|
26
|
+
discardDraft: () => Promise<TSnapshot>;
|
|
27
|
+
deleteEntry: () => Promise<void>;
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
kind: 'pageSurfaceDraft';
|
|
30
|
+
}>);
|
|
31
|
+
export type EntryLifecycleContentEditorServices<TSnapshot extends ContentEntrySnapshot = ContentEntrySnapshot, TMetadataPayload extends Record<string, unknown> = RouteMetadataPayload> = Extract<ContentEditorServices<TSnapshot, TMetadataPayload>, {
|
|
32
|
+
kind: 'entryLifecycle';
|
|
33
|
+
}>;
|
|
34
|
+
export declare function createContentEntryServices<TResponse extends object, TMetadataPayload extends Record<string, unknown>, TPublishPayload, TSnapshot extends ContentEntrySnapshot>(apiClient: ApiClient, config: ContentEntryServiceConfig<TResponse, TSnapshot>): EntryLifecycleContentEditorServices<TSnapshot, TMetadataPayload>;
|
|
@@ -112,6 +112,7 @@ export type EditorBlockMeta = Readonly<{
|
|
|
112
112
|
purpose: string | null;
|
|
113
113
|
orderIndex: number | null;
|
|
114
114
|
publishedContent: EditorBlockValues | null;
|
|
115
|
+
optimisticHash: string | null;
|
|
115
116
|
}>;
|
|
116
117
|
export type EditorDraftSnapshot = EditorStructuralDraftSnapshot;
|
|
117
118
|
export type DraftBlockInitMetaInput = EditorDraftBlockInitMetaInput;
|
|
@@ -127,6 +128,7 @@ export type EditorBlockItem = Readonly<{
|
|
|
127
128
|
publishedContent?: EditorValueRecord | null;
|
|
128
129
|
bindings?: EditorValueRecord | null;
|
|
129
130
|
purpose?: string | null;
|
|
131
|
+
optimisticHash?: string | null;
|
|
130
132
|
}>;
|
|
131
133
|
type NormalizedEditorBlockBase = Readonly<{
|
|
132
134
|
kind: string;
|
|
@@ -136,6 +138,7 @@ type NormalizedEditorBlockBase = Readonly<{
|
|
|
136
138
|
publishedContent: EditorBlockValues | null;
|
|
137
139
|
bindings: EditorBlockValues | null;
|
|
138
140
|
purpose: string | null;
|
|
141
|
+
optimisticHash: string | null;
|
|
139
142
|
}>;
|
|
140
143
|
export type PersistedEditorBlockItem = EditorPersistedBlock;
|
|
141
144
|
export type PendingEditorBlockItem = NormalizedEditorBlockBase & Readonly<{
|
|
@@ -226,6 +229,7 @@ export type EditorSystemOperation = {
|
|
|
226
229
|
blockId: EditorBlockId;
|
|
227
230
|
savedValues: EditorBlockValues | null;
|
|
228
231
|
acknowledgedVersion: number;
|
|
232
|
+
optimisticHash: string | null;
|
|
229
233
|
} | {
|
|
230
234
|
type: 'autosave-draft-failed';
|
|
231
235
|
blockId: EditorBlockId;
|
|
@@ -293,7 +297,7 @@ export declare function initNewDraftBlock(snapshot: EditorHistorySnapshot, block
|
|
|
293
297
|
export declare function updateDraftBlockBaseline(snapshot: EditorHistorySnapshot, blockId: EditorBlockId, baseline: DraftBlockBaselineInput, meta?: DraftBlockBaselineUpdateMetaInput): EditorHistorySnapshot;
|
|
294
298
|
export declare function removeDraftBlock(snapshot: EditorHistorySnapshot, blockId: EditorBlockId): EditorHistorySnapshot;
|
|
295
299
|
export declare function setDraftPublishedBaselines(snapshot: EditorHistorySnapshot, blocks: readonly BlockPublishedBaselineInput[]): EditorHistorySnapshot;
|
|
296
|
-
export declare function autosaveDraftSucceeded(snapshot: EditorHistorySnapshot, blockId: EditorBlockId, savedValues: EditorBlockValues | null, acknowledgedVersion: number): EditorHistorySnapshot;
|
|
300
|
+
export declare function autosaveDraftSucceeded(snapshot: EditorHistorySnapshot, blockId: EditorBlockId, savedValues: EditorBlockValues | null, acknowledgedVersion: number, optimisticHash: string | null): EditorHistorySnapshot;
|
|
297
301
|
export declare function autosaveDraftFailed(snapshot: EditorHistorySnapshot, blockId: EditorBlockId, message?: string): EditorHistorySnapshot;
|
|
298
302
|
export declare function clearDraftError(snapshot: EditorHistorySnapshot, blockId: EditorBlockId): EditorHistorySnapshot;
|
|
299
303
|
export declare function setDraftPending(snapshot: EditorHistorySnapshot, blockId: EditorBlockId): EditorHistorySnapshot;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FooterModuleId } from '../../../core/src/index';
|
|
1
2
|
import { type EditorUnpublishedState } from '../controller/deriveEditorUnpublishedState';
|
|
2
3
|
import { type AutosaveState } from './stores/autosaveStore';
|
|
3
4
|
import { type GeneratedIconAssetsState } from './stores/generatedIconAssetsStore';
|
|
@@ -33,6 +34,7 @@ export type ActivePreviewField = (Readonly<{
|
|
|
33
34
|
*/
|
|
34
35
|
export type AutosaveAcknowledgement = Readonly<{
|
|
35
36
|
acknowledgedVersion: number;
|
|
37
|
+
optimisticHash?: string | null;
|
|
36
38
|
}>;
|
|
37
39
|
/**
|
|
38
40
|
* Form-facing metadata facade. Consumers pass plain records for ergonomics;
|
|
@@ -65,6 +67,13 @@ export type PreviewInspection = Readonly<{
|
|
|
65
67
|
kind: 'linked-entry';
|
|
66
68
|
entryId: LinkedContentEntryId;
|
|
67
69
|
requestId: number;
|
|
70
|
+
}> | Readonly<{
|
|
71
|
+
kind: 'footer-module';
|
|
72
|
+
moduleId: FooterModuleId;
|
|
73
|
+
requestId: number;
|
|
74
|
+
}> | Readonly<{
|
|
75
|
+
kind: 'footer';
|
|
76
|
+
requestId: number;
|
|
68
77
|
}>;
|
|
69
78
|
export type LinkedEntryState = {
|
|
70
79
|
getSelectedEntryId: () => LinkedContentEntryId | null;
|
|
@@ -184,6 +193,8 @@ export type EditorUiState = {
|
|
|
184
193
|
setPreviewSidebarTab: (tab: PreviewSidebarTab) => void;
|
|
185
194
|
inspectBlock: (blockId: EditorBlockId) => void;
|
|
186
195
|
inspectLinkedEntry: (entryId: string) => void;
|
|
196
|
+
inspectFooterModule: (moduleId: FooterModuleId) => void;
|
|
197
|
+
inspectFooter: () => void;
|
|
187
198
|
clearPreviewInspection: () => void;
|
|
188
199
|
setActivePreviewField: (field: ActivePreviewField) => void;
|
|
189
200
|
requestFocus: (payload: Omit<NonNullable<FocusRequest>, 'requestId'>) => void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry-instance validator, compiled from the content-type field DSL.
|
|
3
|
+
*
|
|
4
|
+
* `ContentTypeSchemaZ` validates schema DOCUMENTS; this validates entry DATA
|
|
5
|
+
* against a schema: required-field presence, rejection of unfilled placeholder
|
|
6
|
+
* sentinels (shared vocabulary in `sentinels.ts`), and basic per-type shape
|
|
7
|
+
* checks. It is intentionally lightweight — enough to power scaffold diagnostics
|
|
8
|
+
* and a CLI pre-flight — not a replacement for server-side write validation.
|
|
9
|
+
*/
|
|
10
|
+
import type { ContentTypeSchema } from './schema';
|
|
11
|
+
export type EntryValidationCode = 'missing_required' | 'unfilled_placeholder' | 'wrong_type' | 'invalid_option';
|
|
12
|
+
export interface EntryValidationError {
|
|
13
|
+
/** Dotted path to the offending value (e.g. `hero.cta.link`, `items[0].label`). */
|
|
14
|
+
path: string;
|
|
15
|
+
/** The field's DSL type. */
|
|
16
|
+
fieldType: string;
|
|
17
|
+
code: EntryValidationCode;
|
|
18
|
+
message: string;
|
|
19
|
+
}
|
|
20
|
+
export interface EntryValidationResult {
|
|
21
|
+
valid: boolean;
|
|
22
|
+
errors: EntryValidationError[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Validate entry data against a content-type schema. Returns all errors so
|
|
26
|
+
* callers can list everything an agent must fix in one pass.
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateEntryInstance(input: {
|
|
29
|
+
schema: ContentTypeSchema;
|
|
30
|
+
data: Record<string, unknown>;
|
|
31
|
+
}): EntryValidationResult;
|