@riverbankcms/sdk 0.123.0 → 0.124.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 +14 -9
- package/dist/{PreviewEditorSidebar-DvJFmC29.mjs → PreviewEditorSidebar-DBmAJJkQ.mjs} +22 -39
- package/dist/{PreviewEditorUI-DVHP4bCo.mjs → PreviewEditorUI-CfGaz9cY.mjs} +3 -3
- package/dist/{PreviewQueryProvider-07EE4uWL.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BE5eFayo.mjs → SdkPreviewModeRuntime-BW9Z8j8T.mjs} +1020 -1234
- package/dist/{SiteChromeCustomizeContext-4hn4A0HX.mjs → SiteChromeCustomizeContext-2z8moxYf.mjs} +1900 -1959
- package/dist/_dts/ai/src/contracts/proposals.d.ts +1236 -4152
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +435 -0
- package/dist/_dts/api/src/bookingClosures.d.ts +3 -3
- package/dist/_dts/api/src/bookingConfig.d.ts +72 -73
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +26 -35
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -15
- package/dist/_dts/api/src/bookingVerticalCatalog.d.ts +746 -0
- package/dist/_dts/api/src/bookingVerticalPreset.d.ts +38 -0
- package/dist/_dts/api/src/bookingVerticals.d.ts +11 -652
- package/dist/_dts/api/src/bookings.d.ts +11 -9
- package/dist/_dts/api/src/cache-tags.d.ts +2 -2
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +10 -10
- package/dist/_dts/api/src/common/envelope.d.ts +2 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +0 -17
- package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +99 -0
- package/dist/_dts/api/src/courses.d.ts +22 -33
- package/dist/_dts/api/src/defineEndpointDefinitions.d.ts +14 -0
- package/dist/_dts/api/src/demoMutationPolicies.d.ts +4 -0
- package/dist/_dts/api/src/endpoints.d.ts +3740 -3733
- package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
- package/dist/_dts/api/src/event-presentation.d.ts +4 -9
- package/dist/_dts/api/src/index.d.ts +9 -11
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +376 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +2 -2
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +272 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +274 -0
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +31 -0
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +152 -0
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +95 -0
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +154 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -962
- package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +52 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +0 -51
- package/dist/_dts/api/src/sdkEntryReadEndpoints.d.ts +23 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -38
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -4
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -15
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +0 -16
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -222
- package/dist/_dts/blocks/src/portal/types.d.ts +3 -3
- package/dist/_dts/blocks/src/subroutes/fold.d.ts +1 -14
- package/dist/_dts/blocks/src/subroutes/index.d.ts +1 -1
- package/dist/_dts/blocks/src/subroutes/kinds.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -11
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -4
- package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +401 -12
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +9 -10
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -13
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +1 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +19 -18
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -11
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +10 -10
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -10
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +162 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +59 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +134 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/discounts.d.ts +85 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +241 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/forms.d.ts +53 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +32 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +220 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +176 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +12 -1121
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +19 -583
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -276
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +1 -12
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +2 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +1 -18
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/runs.d.ts +0 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +1 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/courseRegistrationViewState.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/pricing.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +0 -25
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseEligibility.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCoursePaymentVerification.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationActions.d.ts +35 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationPortal.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationSelection.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +80 -55
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseWaitlistSelection.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +4 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +0 -38
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +0 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +0 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +0 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +0 -11
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +24 -433
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +52 -266
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventFilters.d.ts +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1573 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +1 -3
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -3
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -5
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +0 -5
- package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -3
- package/dist/_dts/core/src/editor-state.d.ts +1 -13
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1580 -120
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +6 -6
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +6 -1
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +27 -4
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -2
- package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +4 -6
- package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -1
- package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +23 -0
- package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +25 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -52
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +3 -81
- package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +6 -9
- package/dist/_dts/sdk/src/client/contentReadOperations.d.ts +40 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -3
- package/dist/_dts/sdk/src/client/management/types.d.ts +3 -91
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +72 -0
- package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +10 -75
- package/dist/_dts/sdk/src/client/types.d.ts +7 -33
- package/dist/_dts/sdk/src/components.d.ts +1 -1
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -6
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/page.d.ts +0 -8
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -34
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +4 -3
- package/dist/_dts/sdk/src/next/catch-all-utils.d.ts +0 -11
- package/dist/_dts/sdk/src/next/catch-all.d.ts +1 -76
- package/dist/_dts/sdk/src/next/types.d.ts +0 -19
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -207
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +0 -7
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +81 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -51
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -1
- package/dist/_dts/sdk/src/routing/entrySubroutes.d.ts +6 -6
- package/dist/_dts/sdk/src/routing/index.d.ts +0 -2
- package/dist/_dts/sdk/src/routing/resolveOccurrence.d.ts +3 -3
- package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +10 -39
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/adapter.d.ts +1 -1
- package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +100 -0
- package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
- package/dist/_dts/site-commands/src/commandContract.d.ts +1242 -0
- package/dist/_dts/site-commands/src/commandDomain.d.ts +20 -0
- package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +7 -0
- package/dist/_dts/site-commands/src/commandValidation.d.ts +10 -0
- package/dist/_dts/site-commands/src/commands.d.ts +729 -2659
- package/dist/_dts/site-commands/src/domain.d.ts +1 -1
- package/dist/_dts/site-commands/src/eventCommandContent.d.ts +11 -0
- package/dist/_dts/site-commands/src/exposure.d.ts +1 -1
- package/dist/_dts/site-commands/src/index.d.ts +6 -0
- package/dist/_dts/site-commands/src/metadata.d.ts +1 -27
- package/dist/_dts/site-commands/src/planner.d.ts +1 -1
- package/dist/_dts/site-commands/src/refContributions.d.ts +1 -1
- package/dist/_dts/site-commands/src/refs.d.ts +1 -4
- package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +378 -0
- package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +46 -0
- package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +2 -2
- package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +21 -0
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +58 -0
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +47 -24
- package/dist/cli/index.mjs +7250 -8478
- package/dist/cli/init-docs/content/cli-reference.md +5 -21
- package/dist/cli/init-docs/content/content-management.md +4 -5
- package/dist/client/{DiscountCodeDisclosure-DIWj-P9v.mjs → DiscountCodeDisclosure-DxvjKvck.mjs} +2 -2
- package/dist/client/{EventCombined.client-De8YWBSr.mjs → EventCombined.client-BydMGc4c.mjs} +5 -16
- package/dist/client/{EventListing.client-seHTjimY.mjs → EventListing.client-vpzhhysN.mjs} +3 -10
- package/dist/client/{LeafletStaticMap-BmQxFcJW.mjs → LeafletStaticMap-CB07rpf8.mjs} +1 -1
- package/dist/client/{MagicLinkForm-OoJAIUIj.mjs → MagicLinkForm-BzyRJ8VF.mjs} +2 -2
- package/dist/client/{StepIndicator-CiZ8kdPk.mjs → StepIndicator-CTcGf8Be.mjs} +2 -2
- package/dist/client/{accordion-6lnN__XJ.mjs → accordion-B-DUDLRD.mjs} +1 -1
- package/dist/client/{bookingForm-5uyqhONU.mjs → bookingForm-DSbClLcZ.mjs} +6 -6
- package/dist/client/bookings.mjs +753 -818
- package/dist/client/{carousel-Dtnifil_.mjs → carousel-B6Ccdx8M.mjs} +1 -1
- package/dist/client/{cart-5Tc5S7NV.mjs → cart-BZh8G8wM.mjs} +3 -3
- package/dist/client/{checkout-CYKKN5Hr.mjs → checkout-o6zaC-kM.mjs} +3 -3
- package/dist/client/client.mjs +6859 -7149
- package/dist/client/{context-BGZNlGXB.mjs → context-CJz1Vlsz.mjs} +40 -43
- package/dist/client/{courseRegistration-CxCBybB4.mjs → courseRegistration-Cf11pNDs.mjs} +606 -621
- package/dist/client/{eventCalendar-Xj2jZS9X.mjs → eventCalendar-BeXrdsSE.mjs} +5 -13
- package/dist/client/{eventCombined-CgcMoOgM.mjs → eventCombined-DA76PZgG.mjs} +3 -3
- package/dist/client/{eventDetails-CEAH8Edc.mjs → eventDetails-BLxg0rok.mjs} +140 -116
- package/dist/client/{eventListing-qyPVQ0wP.mjs → eventListing-tO9LheBX.mjs} +3 -3
- package/dist/client/{eventRegistration-DDu79CtL.mjs → eventRegistration-Cnene9D9.mjs} +165 -68
- package/dist/client/{form-Bc7JKI7I.mjs → form-DZf72CHB.mjs} +2 -2
- package/dist/client/{headerSection-vTku_LEl.mjs → headerSection-Hioja5Cr.mjs} +2 -2
- package/dist/client/hooks.mjs +3452 -2365
- package/dist/client/{locationMap-Bg7X4Jna.mjs → locationMap-DwhUXEix.mjs} +2 -2
- package/dist/client/{newsletterForm-lpylVdp5.mjs → newsletterForm-C350bEQf.mjs} +2 -2
- package/dist/client/{pricing-DE8fjJiT.mjs → pricing-BYWN_ATa.mjs} +3 -19
- package/dist/client/{productDetail-D7Bo2RMH.mjs → productDetail-CCqCyXgU.mjs} +3 -3
- package/dist/client/{productList-VjnZqiqN.mjs → productList-BAiNJrOU.mjs} +3 -3
- package/dist/client/{propsDecoder-DreFXjNP.mjs → propsDecoder-DeunRj6m.mjs} +210 -378
- package/dist/client/rendering/client.mjs +2541 -2813
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +5622 -4734
- package/dist/client/{shop-IRsHHbf7.mjs → shop-DUmCdBtw.mjs} +6 -6
- package/dist/client/{shop-commerce-gnI8PieZ.mjs → shop-commerce-CY27mEUr.mjs} +5 -5
- package/dist/client/{shop-commerce-store-BTbrhObn.mjs → shop-commerce-store-ChXPbWfa.mjs} +1 -1
- package/dist/client/{shopShared-D6KS2_qk.mjs → shopShared-q0kin1cv.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-DCccGCxV.mjs → useDiscountCodeUi-I-92-x2V.mjs} +2 -2
- package/dist/client/{useEventFilters-eGs3rPZQ.mjs → useEventFilters-DlcVluZh.mjs} +59 -124
- package/dist/client/{usePolling-CvSU2sur.mjs → usePolling-Bz7GFV_a.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +1115 -1044
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +1118 -1047
- package/dist/{previewAuthStore-ShY26RNz.mjs → previewAuthStore-CJX21dGi.mjs} +1121 -1047
- package/dist/{sdk-runtime-CJxkFq2B.mjs → sdk-runtime-OnPM8Z69.mjs} +2 -2
- package/dist/{separator-CoFmo8uA.mjs → separator-CPtfzHqA.mjs} +1 -1
- package/dist/server/components.mjs +4560 -3672
- package/dist/server/config-validation.mjs +3454 -2356
- package/dist/server/config.mjs +3454 -2356
- package/dist/server/data.mjs +3452 -2367
- package/dist/server/index.mjs +1501 -1491
- package/dist/server/next.mjs +7524 -8067
- package/dist/server/page-converter.mjs +1898 -2040
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4258 -3373
- package/dist/server/rendering.mjs +6228 -5393
- package/dist/server/routing.mjs +3614 -2509
- package/dist/server/server.mjs +3298 -3479
- package/package.json +1 -1
- package/dist/_dts/api/src/previewContentContract.d.ts +0 -4
- package/dist/_dts/sdk/src/cli/commands/course.d.ts +0 -6
- package/dist/_dts/sdk/src/cli/commands/push/scopes/courses.d.ts +0 -4
- package/dist/_dts/sdk/src/client/management/courses.d.ts +0 -10
- package/dist/_dts/sdk/src/routing/resolveEntrySubroute.d.ts +0 -36
|
@@ -1,78 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Next.js catch-all page factory for Riverbank CMS.
|
|
3
|
-
*
|
|
4
|
-
* Provides a simple, opinionated way to render CMS content in Next.js catch-all routes.
|
|
5
|
-
* Reduces typical page.tsx boilerplate from ~160 lines to ~10 lines.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```tsx
|
|
9
|
-
* // src/app/[[...slug]]/page.tsx
|
|
10
|
-
* import { createCatchAllPage } from '@riverbankcms/sdk/next';
|
|
11
|
-
* import { getRiverbankClient } from '@/lib/builder-client';
|
|
12
|
-
* import config from '@/riverbank.config';
|
|
13
|
-
*
|
|
14
|
-
* const { Page, generateMetadata } = createCatchAllPage({
|
|
15
|
-
* getClient: getRiverbankClient,
|
|
16
|
-
* config,
|
|
17
|
-
* blockOverrides: { hero: MyCustomHero },
|
|
18
|
-
* });
|
|
19
|
-
*
|
|
20
|
-
* export default Page;
|
|
21
|
-
* export { generateMetadata };
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
1
|
import type { CreateCatchAllPageOptions, CreateCatchAllPageResult } from './types';
|
|
25
|
-
/**
|
|
26
|
-
* Factory function to create a Next.js catch-all page component and metadata generator.
|
|
27
|
-
*
|
|
28
|
-
* This provides a simple, opinionated setup for rendering Riverbank CMS content
|
|
29
|
-
* in external SDK sites. It handles:
|
|
30
|
-
*
|
|
31
|
-
* - Page and content entry routing
|
|
32
|
-
* - Preview mode detection (automatically from API key type)
|
|
33
|
-
* - SEO metadata generation
|
|
34
|
-
* - Block overrides for custom components
|
|
35
|
-
* - 404 handling for missing content
|
|
36
|
-
*
|
|
37
|
-
* ## Escape Hatches
|
|
38
|
-
*
|
|
39
|
-
* For customization beyond the defaults, use these options:
|
|
40
|
-
*
|
|
41
|
-
* - `beforeRender`: Intercept before rendering (maintenance mode, access control)
|
|
42
|
-
* - `customMetadata`: Full control over SEO metadata
|
|
43
|
-
* - `wrapper`: Wrap all content (analytics, error boundaries)
|
|
44
|
-
*
|
|
45
|
-
* For maximum control, use the lower-level helpers directly:
|
|
46
|
-
* - `loadContent()` from `@riverbankcms/sdk/rendering`
|
|
47
|
-
* - `Page` component from `@riverbankcms/sdk/rendering`
|
|
48
|
-
* - `generatePageMetadata()` from `@riverbankcms/sdk/metadata`
|
|
49
|
-
*
|
|
50
|
-
* @param options - Configuration options
|
|
51
|
-
* @returns Object with `Page` component and `generateMetadata` function
|
|
52
|
-
*
|
|
53
|
-
* @example Basic usage
|
|
54
|
-
* ```tsx
|
|
55
|
-
* const { Page, generateMetadata } = createCatchAllPage({
|
|
56
|
-
* getClient: getRiverbankClient,
|
|
57
|
-
* config,
|
|
58
|
-
* });
|
|
59
|
-
*
|
|
60
|
-
* export default Page;
|
|
61
|
-
* export { generateMetadata };
|
|
62
|
-
* ```
|
|
63
|
-
*
|
|
64
|
-
* @example With maintenance mode
|
|
65
|
-
* ```tsx
|
|
66
|
-
* const { Page, generateMetadata } = createCatchAllPage({
|
|
67
|
-
* getClient,
|
|
68
|
-
* config,
|
|
69
|
-
* beforeRender: async () => {
|
|
70
|
-
* if (process.env.MAINTENANCE_MODE === 'true') {
|
|
71
|
-
* return <MaintenancePage />;
|
|
72
|
-
* }
|
|
73
|
-
* return null;
|
|
74
|
-
* },
|
|
75
|
-
* });
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
2
|
+
/** Build a Next.js catch-all page and metadata generator for Riverbank content. */
|
|
78
3
|
export declare function createCatchAllPage(options: CreateCatchAllPageOptions): CreateCatchAllPageResult;
|
|
@@ -33,14 +33,6 @@ export interface CatchAllContext {
|
|
|
33
33
|
/** Search parameters from the URL (for filtering, pagination, etc.) */
|
|
34
34
|
searchParams: DataLoaderSearchParams;
|
|
35
35
|
}
|
|
36
|
-
export type CreateCatchAllContentContract = 'compat' | 'native';
|
|
37
|
-
export type CreateCatchAllContentContractResolverContext = Readonly<{
|
|
38
|
-
/** Resolved URL path being loaded, e.g. '/about'. */
|
|
39
|
-
path: string;
|
|
40
|
-
/** Whether preview mode is enabled for this catch-all instance. */
|
|
41
|
-
preview: boolean;
|
|
42
|
-
}>;
|
|
43
|
-
export type CreateCatchAllContentContractSelector = CreateCatchAllContentContract | ((context: CreateCatchAllContentContractResolverContext) => CreateCatchAllContentContract);
|
|
44
36
|
/**
|
|
45
37
|
* Configuration for runtime theme switching when `themes` is provided.
|
|
46
38
|
*
|
|
@@ -188,17 +180,6 @@ export type CreateCatchAllPageOptions = {
|
|
|
188
180
|
* ```
|
|
189
181
|
*/
|
|
190
182
|
preview?: boolean;
|
|
191
|
-
/**
|
|
192
|
-
* Selects the public content API contract used by the catch-all loader.
|
|
193
|
-
*
|
|
194
|
-
* Defaults to `compat`, preserving the long-standing page/entry response
|
|
195
|
-
* shape. Use `native` only after the target site and route are ready to
|
|
196
|
-
* receive native page-surface payloads. A resolver can opt in route-by-route
|
|
197
|
-
* during staged rollouts.
|
|
198
|
-
*
|
|
199
|
-
* @default 'compat'
|
|
200
|
-
*/
|
|
201
|
-
contentContract?: CreateCatchAllContentContractSelector;
|
|
202
183
|
/**
|
|
203
184
|
* Custom block component overrides for rendering.
|
|
204
185
|
* Keys can be full block kind ("block.hero") or short form ("hero").
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AddressedLocationValue, BusinessAddress
|
|
2
|
-
import type {
|
|
1
|
+
import type { AddressedLocationValue, BusinessAddress } from '../../../core/src/index';
|
|
2
|
+
import type { APIEndpoints, SdkRuntimePageSurfaceSubject as ApiSdkRuntimePageSurfaceSubject, SiteBookingOfferingPresetSummary as ApiSiteBookingOfferingPresetSummary } from '../../../api/src/index';
|
|
3
3
|
import type { Media, MediaAssetIndexItem, SiteFooterContent, SiteHeaderContent, Theme } from '../contracts';
|
|
4
4
|
import type { CompiledBoundaryRuntime } from '../../../theme-core/src/site-styles/index';
|
|
5
5
|
import type { RuntimePaletteState } from '../../../theme-core/src/palette/index';
|
|
@@ -281,15 +281,7 @@ export type SiteRouteRecord = {
|
|
|
281
281
|
draftStatus?: string | null;
|
|
282
282
|
publishedAt?: string | null;
|
|
283
283
|
};
|
|
284
|
-
export type
|
|
285
|
-
export type SiteBookingOfferingEngine = 'event_series' | 'course' | 'appointment_service';
|
|
286
|
-
export type SiteBookingOfferingPresetSummary = Readonly<{
|
|
287
|
-
id: string;
|
|
288
|
-
canonicalBehaviour: SiteBookingOfferingCanonicalBehaviour;
|
|
289
|
-
engine: SiteBookingOfferingEngine;
|
|
290
|
-
label: string;
|
|
291
|
-
pluralLabel: string;
|
|
292
|
-
}>;
|
|
284
|
+
export type SiteBookingOfferingPresetSummary = ApiSiteBookingOfferingPresetSummary;
|
|
293
285
|
export type SiteResponse = {
|
|
294
286
|
site: {
|
|
295
287
|
id: string;
|
|
@@ -616,167 +608,13 @@ export type PublicEventTicketTypeRecord = {
|
|
|
616
608
|
createdAt: string;
|
|
617
609
|
updatedAt: string;
|
|
618
610
|
};
|
|
619
|
-
export type
|
|
620
|
-
|
|
621
|
-
mode: 'cms-managed' | 'system-managed';
|
|
622
|
-
path: string;
|
|
623
|
-
}> | Readonly<{
|
|
624
|
-
kind: 'external';
|
|
625
|
-
url: string;
|
|
626
|
-
label: string;
|
|
627
|
-
}>;
|
|
628
|
-
export type PublicEventsResponse = Array<{
|
|
629
|
-
kind?: 'event' | 'course_session';
|
|
630
|
-
recurrence?: ApiPublicEventRecurrence;
|
|
631
|
-
destination: PublicEventDestination;
|
|
632
|
-
id: string;
|
|
633
|
-
occurrenceId: string;
|
|
634
|
-
seriesId: string;
|
|
635
|
-
title: string;
|
|
636
|
-
description: string | null;
|
|
637
|
-
presentation?: {
|
|
638
|
-
cardTitleOverride?: string | null;
|
|
639
|
-
summary?: string | null;
|
|
640
|
-
image?: {
|
|
641
|
-
type: 'image' | 'video' | 'audio' | 'document' | 'spreadsheet' | 'archive';
|
|
642
|
-
purpose?: string;
|
|
643
|
-
placeholder?: boolean;
|
|
644
|
-
assetId?: string;
|
|
645
|
-
src?: string;
|
|
646
|
-
alt?: string;
|
|
647
|
-
width?: number;
|
|
648
|
-
height?: number;
|
|
649
|
-
storageBucket?: string;
|
|
650
|
-
storagePath?: string;
|
|
651
|
-
transform?: {
|
|
652
|
-
rect?: [number, number, number, number];
|
|
653
|
-
hotspot?: {
|
|
654
|
-
x: number;
|
|
655
|
-
y: number;
|
|
656
|
-
radius?: number;
|
|
657
|
-
};
|
|
658
|
-
};
|
|
659
|
-
} | null;
|
|
660
|
-
};
|
|
661
|
-
slug: string;
|
|
662
|
-
path: string | null;
|
|
663
|
-
requiresRegistration: boolean;
|
|
664
|
-
startsAt: string;
|
|
665
|
-
endsAt: string;
|
|
666
|
-
capacity: number | null;
|
|
667
|
-
registeredCount: number;
|
|
668
|
-
availableSpots: number | null;
|
|
669
|
-
waitlistEnabled: boolean;
|
|
670
|
-
venue: {
|
|
671
|
-
id: string;
|
|
672
|
-
name: string;
|
|
673
|
-
address: string | null;
|
|
674
|
-
location?: {
|
|
675
|
-
lat: number;
|
|
676
|
-
lng: number;
|
|
677
|
-
} | null;
|
|
678
|
-
} | null;
|
|
679
|
-
eventCategory: {
|
|
680
|
-
id: string;
|
|
681
|
-
name: string;
|
|
682
|
-
color: string | null;
|
|
683
|
-
} | null;
|
|
684
|
-
teamMembers?: Array<{
|
|
685
|
-
id: string;
|
|
686
|
-
name: string;
|
|
687
|
-
roleLabel: string | null;
|
|
688
|
-
summary: string | null;
|
|
689
|
-
profilePath: string | null;
|
|
690
|
-
}>;
|
|
691
|
-
status?: 'active' | 'draft' | 'archived';
|
|
692
|
-
pricing: PublicEventPricing<PublicEventTicketTypeRecord>;
|
|
693
|
-
paymentTerms: {
|
|
694
|
-
allowedOptions: Array<{
|
|
695
|
-
kind: 'upfront';
|
|
696
|
-
} | {
|
|
697
|
-
kind: 'deferred_manual';
|
|
698
|
-
} | {
|
|
699
|
-
kind: 'instalment_plan';
|
|
700
|
-
plan: Record<string, unknown>;
|
|
701
|
-
}>;
|
|
702
|
-
};
|
|
703
|
-
accessRestriction: 'none' | 'category';
|
|
704
|
-
allowedCategoryIds: string[];
|
|
705
|
-
requireGuestDetails?: boolean;
|
|
706
|
-
timeZone?: string;
|
|
707
|
-
acceptsPasses?: boolean;
|
|
708
|
-
acceptsMemberships?: boolean;
|
|
709
|
-
course?: {
|
|
710
|
-
id: string;
|
|
711
|
-
pricing?: {
|
|
712
|
-
bookingRequirement: 'none' | 'required';
|
|
713
|
-
pricingStrategy: 'free' | 'single' | 'tiered';
|
|
714
|
-
currency: string;
|
|
715
|
-
singlePriceAmount: number | null;
|
|
716
|
-
paymentTerms: {
|
|
717
|
-
allowedOptions: Array<{
|
|
718
|
-
kind: 'upfront';
|
|
719
|
-
} | {
|
|
720
|
-
kind: 'deferred_manual';
|
|
721
|
-
} | {
|
|
722
|
-
kind: 'instalment_plan';
|
|
723
|
-
plan: BookingInstalmentPlanConfig;
|
|
724
|
-
} | {
|
|
725
|
-
kind: 'flexible_balance';
|
|
726
|
-
config: BookingFlexibleBalanceConfig;
|
|
727
|
-
}>;
|
|
728
|
-
};
|
|
729
|
-
options: Array<{
|
|
730
|
-
id: string;
|
|
731
|
-
name: string;
|
|
732
|
-
description: string | null;
|
|
733
|
-
priceAmount: number;
|
|
734
|
-
isActive: boolean;
|
|
735
|
-
sortOrder: number;
|
|
736
|
-
capacityLimit: number | null;
|
|
737
|
-
saleStartsAt: string | null;
|
|
738
|
-
saleEndsAt: string | null;
|
|
739
|
-
attendanceScope?: 'in_person' | 'online' | 'both' | null;
|
|
740
|
-
}>;
|
|
741
|
-
};
|
|
742
|
-
priceCents: number | null;
|
|
743
|
-
currency: string;
|
|
744
|
-
enrollmentOpen: boolean;
|
|
745
|
-
} | null;
|
|
746
|
-
}>;
|
|
611
|
+
export type PublicEventsResponse = NonNullable<APIEndpoints['listPublicEvents']['response']>;
|
|
612
|
+
export type PublicEventDestination = PublicEventsResponse[number]['destination'];
|
|
747
613
|
export type PublicEventDetailsResponse = {
|
|
748
614
|
events: PublicEventsResponse;
|
|
749
615
|
sitePasses: PublicPassesResponse;
|
|
750
616
|
siteMemberships: PublicMembershipsResponse;
|
|
751
617
|
};
|
|
752
|
-
export type PublicCoursesResponse = Array<{
|
|
753
|
-
id: string;
|
|
754
|
-
title: string;
|
|
755
|
-
slug: string;
|
|
756
|
-
description: unknown;
|
|
757
|
-
enrollmentOpen: boolean;
|
|
758
|
-
priceCents: number | null;
|
|
759
|
-
currency: string;
|
|
760
|
-
enrollmentCapacity: number | null;
|
|
761
|
-
acceptsMemberships: boolean;
|
|
762
|
-
status: string;
|
|
763
|
-
sessionsCount: number;
|
|
764
|
-
enrolledCount: number;
|
|
765
|
-
availableSpots: number | null;
|
|
766
|
-
sessions: Array<{
|
|
767
|
-
id: string;
|
|
768
|
-
startsAt: string;
|
|
769
|
-
endsAt: string;
|
|
770
|
-
capacityOverride?: number | null;
|
|
771
|
-
overrides?: Record<string, unknown> | null;
|
|
772
|
-
}>;
|
|
773
|
-
venue: {
|
|
774
|
-
id: string;
|
|
775
|
-
name: string;
|
|
776
|
-
address: string | null;
|
|
777
|
-
} | null;
|
|
778
|
-
contentEntryId: string | null;
|
|
779
|
-
}>;
|
|
780
618
|
export type PublicTeamMembersResponse = {
|
|
781
619
|
teamMembers: PublicTeamMemberBlockItem[];
|
|
782
620
|
};
|
|
@@ -843,29 +681,6 @@ export type PublicMembershipsResponse = {
|
|
|
843
681
|
eligibleCategoryNames: string[];
|
|
844
682
|
}>;
|
|
845
683
|
};
|
|
846
|
-
export type ResolveEntrySubrouteResponse = {
|
|
847
|
-
subroute: {
|
|
848
|
-
kind: 'event-occurrence';
|
|
849
|
-
occurrence: {
|
|
850
|
-
id: string;
|
|
851
|
-
seriesId: string;
|
|
852
|
-
startsAt: string;
|
|
853
|
-
endsAt: string;
|
|
854
|
-
timeZone: string;
|
|
855
|
-
status: string;
|
|
856
|
-
capacityOverride: number | null;
|
|
857
|
-
overridesJson: Record<string, unknown>;
|
|
858
|
-
};
|
|
859
|
-
} | {
|
|
860
|
-
kind: 'course-run';
|
|
861
|
-
run: {
|
|
862
|
-
courseId: string;
|
|
863
|
-
seriesId: string;
|
|
864
|
-
runSlug: string;
|
|
865
|
-
runName: string | null;
|
|
866
|
-
};
|
|
867
|
-
} | null;
|
|
868
|
-
};
|
|
869
684
|
export type ResolveEventOccurrenceResponse = {
|
|
870
685
|
occurrence: {
|
|
871
686
|
id: string;
|
|
@@ -933,7 +748,7 @@ export type SitemapRoutesResponse = {
|
|
|
933
748
|
pageSize: number;
|
|
934
749
|
allowIndexingInProduction: boolean;
|
|
935
750
|
};
|
|
936
|
-
export type PublicEndpointName = 'getSite' | 'getContentByPath' | 'resolveRouteOutcome' | 'resolveRouteDecision' | 'listPublishedEntries' | 'getPublishedEntryPreview' | 'getPublicFormById' | 'listPublicForms' | 'getPublicBookingServices' | 'getPublicWeeklySlotAvailability' | 'getPublicChallenge' | 'listPublicEvents' | 'batchBlockLoaders' | '
|
|
751
|
+
export type PublicEndpointName = 'getSite' | 'getContentByPath' | 'resolveRouteOutcome' | 'resolveRouteDecision' | 'listPublishedEntries' | 'getPublishedEntryPreview' | 'getPublicFormById' | 'listPublicForms' | 'getPublicBookingServices' | 'getPublicWeeklySlotAvailability' | 'getPublicChallenge' | 'listPublicEvents' | 'batchBlockLoaders' | 'listPublicTeamMembers' | 'listPublicProducts' | 'listPublicPasses' | 'listPublicMemberships' | 'resolveEventOccurrence' | 'checkRedirect' | 'getRoutableContent' | 'getPublicRoutableContent' | 'getPublicSitemapRoutes';
|
|
937
752
|
export type PublicAPIEndpoints = {
|
|
938
753
|
getSite: APIEndpointBase<never, {
|
|
939
754
|
id?: string;
|
|
@@ -944,7 +759,6 @@ export type PublicAPIEndpoints = {
|
|
|
944
759
|
getContentByPath: APIEndpointBase<{
|
|
945
760
|
path: string;
|
|
946
761
|
preview?: boolean;
|
|
947
|
-
contentContract?: 'compat' | 'native';
|
|
948
762
|
}, {
|
|
949
763
|
siteId: string;
|
|
950
764
|
}, PageResponse>;
|
|
@@ -1004,7 +818,6 @@ export type PublicAPIEndpoints = {
|
|
|
1004
818
|
categoryIds?: string;
|
|
1005
819
|
venueId?: string;
|
|
1006
820
|
kind?: string;
|
|
1007
|
-
entryId?: string;
|
|
1008
821
|
seriesId?: string;
|
|
1009
822
|
includeOccurrenceId?: string;
|
|
1010
823
|
}, PublicEventsResponse>;
|
|
@@ -1022,7 +835,6 @@ export type PublicAPIEndpoints = {
|
|
|
1022
835
|
venueId?: string;
|
|
1023
836
|
staffMemberId?: string;
|
|
1024
837
|
kind?: string;
|
|
1025
|
-
entryId?: string;
|
|
1026
838
|
seriesId?: string;
|
|
1027
839
|
includeOccurrenceId?: string;
|
|
1028
840
|
};
|
|
@@ -1049,11 +861,6 @@ export type PublicAPIEndpoints = {
|
|
|
1049
861
|
};
|
|
1050
862
|
}>;
|
|
1051
863
|
}>;
|
|
1052
|
-
listPublicCourses: APIEndpointBase<never, {
|
|
1053
|
-
siteId: string;
|
|
1054
|
-
limit?: string;
|
|
1055
|
-
stage?: string;
|
|
1056
|
-
}, PublicCoursesResponse>;
|
|
1057
864
|
listPublicTeamMembers: APIEndpointBase<never, {
|
|
1058
865
|
siteId: string;
|
|
1059
866
|
stage?: string;
|
|
@@ -1070,16 +877,9 @@ export type PublicAPIEndpoints = {
|
|
|
1070
877
|
siteId: string;
|
|
1071
878
|
categories?: string;
|
|
1072
879
|
}, PublicMembershipsResponse>;
|
|
1073
|
-
resolveEntrySubroute: APIEndpointBase<never, {
|
|
1074
|
-
siteId: string;
|
|
1075
|
-
entryId: string;
|
|
1076
|
-
kind: 'event-occurrence' | 'course-run';
|
|
1077
|
-
segment: string;
|
|
1078
|
-
stage?: 'preview' | 'published';
|
|
1079
|
-
}, ResolveEntrySubrouteResponse>;
|
|
1080
880
|
resolveEventOccurrence: APIEndpointBase<never, {
|
|
1081
881
|
siteId: string;
|
|
1082
|
-
|
|
882
|
+
eventSeriesIds: string;
|
|
1083
883
|
segment: string;
|
|
1084
884
|
}, ResolveEventOccurrenceResponse>;
|
|
1085
885
|
checkRedirect: APIEndpointBase<never, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ApiResult, HTTPMethod, PublicAPIEndpoints, PublicEndpointName } from './contracts';
|
|
2
|
-
export declare const PUBLIC_ENDPOINT_NAMES: readonly ["getSite", "getContentByPath", "resolveRouteOutcome", "resolveRouteDecision", "listPublishedEntries", "getPublishedEntryPreview", "getPublicFormById", "listPublicForms", "getPublicBookingServices", "getPublicWeeklySlotAvailability", "getPublicChallenge", "listPublicEvents", "batchBlockLoaders", "
|
|
2
|
+
export declare const PUBLIC_ENDPOINT_NAMES: readonly ["getSite", "getContentByPath", "resolveRouteOutcome", "resolveRouteDecision", "listPublishedEntries", "getPublishedEntryPreview", "getPublicFormById", "listPublicForms", "getPublicBookingServices", "getPublicWeeklySlotAvailability", "getPublicChallenge", "listPublicEvents", "batchBlockLoaders", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "resolveEventOccurrence", "checkRedirect", "getRoutableContent", "getPublicRoutableContent", "getPublicSitemapRoutes"];
|
|
3
3
|
export type ApiClient = <E extends PublicEndpointName>(params: {
|
|
4
4
|
endpoint: E;
|
|
5
5
|
params?: PublicAPIEndpoints[E]['query'];
|
|
@@ -3,6 +3,7 @@ import type { EntrySubrouteContextData, MediaAssetIndexItem, OccurrenceContextDa
|
|
|
3
3
|
import type { SdkCustomBlock } from '../config/types';
|
|
4
4
|
import type { BlockOverrides } from './overrides';
|
|
5
5
|
import type { SiteBookingOfferingPresetSummary } from '../public-api/contracts';
|
|
6
|
+
import type { EventPageSurfaceSubjectWire } from '../../../core/src/index';
|
|
6
7
|
export type ComponentRegistry = Record<string, React.ElementType>;
|
|
7
8
|
export type PageRendererDataContext = {
|
|
8
9
|
siteId?: string;
|
|
@@ -17,7 +18,7 @@ export type PageRendererDataContext = {
|
|
|
17
18
|
entrySubrouteContext?: EntrySubrouteContextData | null;
|
|
18
19
|
contentEntry?: Record<string, unknown> | null;
|
|
19
20
|
pageSurface?: Record<string, unknown> | null;
|
|
20
|
-
subject?:
|
|
21
|
+
subject?: EventPageSurfaceSubjectWire | null;
|
|
21
22
|
editableRouteMetadataFieldIds?: ReadonlyArray<string> | null;
|
|
22
23
|
supabaseUrl?: string;
|
|
23
24
|
mediaAssets?: readonly MediaAssetIndexItem[];
|
|
@@ -61,14 +61,14 @@ export type PageProps = {
|
|
|
61
61
|
dataContext?: {
|
|
62
62
|
/** Occurrence context for event pages (from URL like /events/yoga/2025-01-15) */
|
|
63
63
|
occurrenceContext?: OccurrenceContextData | null;
|
|
64
|
-
/**
|
|
64
|
+
/** Event-occurrence subroute context. */
|
|
65
65
|
entrySubrouteContext?: EntrySubrouteContextData | null;
|
|
66
66
|
/** Content entry data for template pages */
|
|
67
67
|
contentEntry?: Record<string, unknown> | null;
|
|
68
68
|
/** Native page-surface data for page-surface templates */
|
|
69
69
|
pageSurface?: Record<string, unknown> | null;
|
|
70
70
|
/** Subject descriptor for native page-surface templates */
|
|
71
|
-
subject?:
|
|
71
|
+
subject?: import('../../../../core/src/index').EventPageSurfaceSubjectWire | null;
|
|
72
72
|
/** Editable route metadata keys for template-page inline editing */
|
|
73
73
|
editableRouteMetadataFieldIds?: ReadonlyArray<string> | null;
|
|
74
74
|
/** Preview stage: 'preview' for draft content, 'published' for live content */
|
|
@@ -21,7 +21,6 @@ export type LoadContentParams = {
|
|
|
21
21
|
client: RiverbankClient;
|
|
22
22
|
siteId: string;
|
|
23
23
|
path: string;
|
|
24
|
-
contentContract?: 'compat' | 'native';
|
|
25
24
|
/**
|
|
26
25
|
* When true, forces a fresh site config fetch (bypasses caches).
|
|
27
26
|
* Useful right after `riverbankcms push-config` in development.
|
|
@@ -213,12 +212,6 @@ export type PageSurfaceContentResult = {
|
|
|
213
212
|
dataContext: {
|
|
214
213
|
pageSurface: Record<string, unknown>;
|
|
215
214
|
subject: PageSurfaceContentData['subject'];
|
|
216
|
-
/**
|
|
217
|
-
* Event blocks still scope against content-entry-shaped template context.
|
|
218
|
-
* For native event page surfaces this is a surface-derived adapter, not a
|
|
219
|
-
* persisted content entry.
|
|
220
|
-
*/
|
|
221
|
-
contentEntry?: Record<string, unknown> | null;
|
|
222
215
|
};
|
|
223
216
|
theme: Theme;
|
|
224
217
|
siteId: string;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { RiverbankClient } from '../../client/types';
|
|
2
|
+
import type { SdkCustomBlock } from '../../config/types';
|
|
3
|
+
import type { ResolvedBlockData } from '../../data/prefetchBlockData';
|
|
4
|
+
import { type BlockDataLoadPolicy, type ResolveBlockDataDeps } from '../../data/resolveBlockData';
|
|
5
|
+
import type { DataLoaderPreviewStage, DataLoaderRenderTarget } from '../../data/types';
|
|
6
|
+
import type { PageProps } from '../components/Page';
|
|
7
|
+
import { type BindingContext } from './bindings';
|
|
8
|
+
export type Template = {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
templateKey: string;
|
|
12
|
+
blocks: TemplateBlock[];
|
|
13
|
+
};
|
|
14
|
+
type TemplateBlock = {
|
|
15
|
+
id: string;
|
|
16
|
+
blockKind: string;
|
|
17
|
+
scope: 'entry' | 'template';
|
|
18
|
+
content: Record<string, unknown> | null;
|
|
19
|
+
bindings?: Record<string, unknown> | null;
|
|
20
|
+
};
|
|
21
|
+
type EntrySlotBlock = {
|
|
22
|
+
id: string;
|
|
23
|
+
blockId?: string;
|
|
24
|
+
kind: string;
|
|
25
|
+
purpose: string;
|
|
26
|
+
content: Record<string, unknown> | null;
|
|
27
|
+
draftContent?: unknown;
|
|
28
|
+
publishedContent?: unknown;
|
|
29
|
+
orderIndex?: number | null;
|
|
30
|
+
bindings?: Record<string, unknown> | null;
|
|
31
|
+
};
|
|
32
|
+
type TemplateSlotContent = {
|
|
33
|
+
slotKey: string;
|
|
34
|
+
blocks: EntrySlotBlock[];
|
|
35
|
+
};
|
|
36
|
+
type TemplateRenderTargetSource = Omit<Extract<DataLoaderRenderTarget, {
|
|
37
|
+
kind: 'entry-template';
|
|
38
|
+
}>, 'templateId'> | Omit<Extract<DataLoaderRenderTarget, {
|
|
39
|
+
kind: 'page-surface-template';
|
|
40
|
+
}>, 'templateId'>;
|
|
41
|
+
type TemplateEntry = Readonly<{
|
|
42
|
+
id: string;
|
|
43
|
+
type: string | null;
|
|
44
|
+
title: string;
|
|
45
|
+
slug: string | null;
|
|
46
|
+
path: string | null;
|
|
47
|
+
status: string;
|
|
48
|
+
publishAt: string | null;
|
|
49
|
+
content: Record<string, unknown>;
|
|
50
|
+
createdAt: string;
|
|
51
|
+
updatedAt: string;
|
|
52
|
+
}>;
|
|
53
|
+
type TemplateProcessorSupport = Readonly<{
|
|
54
|
+
siteId: string;
|
|
55
|
+
previewStage: DataLoaderPreviewStage;
|
|
56
|
+
blockDataPolicy: BlockDataLoadPolicy;
|
|
57
|
+
client: RiverbankClient;
|
|
58
|
+
deps: ResolveBlockDataDeps;
|
|
59
|
+
customBlocks?: SdkCustomBlock[];
|
|
60
|
+
}>;
|
|
61
|
+
export declare function processEntryTemplate(input: TemplateProcessorSupport & Readonly<{
|
|
62
|
+
templates: Template[] | undefined;
|
|
63
|
+
entrySlots: TemplateSlotContent[] | undefined;
|
|
64
|
+
entry: TemplateEntry;
|
|
65
|
+
}>): Promise<{
|
|
66
|
+
templatePage: PageProps['page'] | null;
|
|
67
|
+
resolvedData: ResolvedBlockData;
|
|
68
|
+
}>;
|
|
69
|
+
export declare function processTemplatePage(input: TemplateProcessorSupport & Readonly<{
|
|
70
|
+
templates: Template[] | undefined;
|
|
71
|
+
slotContent: readonly TemplateSlotContent[] | undefined;
|
|
72
|
+
bindingContext: BindingContext;
|
|
73
|
+
pageName: string;
|
|
74
|
+
pagePath: string;
|
|
75
|
+
pagePurpose: string;
|
|
76
|
+
renderTargetSource: TemplateRenderTargetSource;
|
|
77
|
+
}>): Promise<{
|
|
78
|
+
templatePage: PageProps['page'] | null;
|
|
79
|
+
resolvedData: ResolvedBlockData;
|
|
80
|
+
}>;
|
|
81
|
+
export {};
|
|
@@ -16,7 +16,7 @@ export type { LoadPageParams, LoadPageResult } from './helpers/loadPage';
|
|
|
16
16
|
export { loadContent, isPageContent, isEntryContent, isPageSurfaceContent, } from './helpers/loadContent';
|
|
17
17
|
export type { LoadContentParams, LoadContentResult, ContentEntryData, PagePreviewMetadata, SiteData, } from './helpers/loadContent';
|
|
18
18
|
export type { BlockLoaderMap, DataLoaderContext, DataLoaderFn, DataLoaderOverrides, DataLoaderPreviewStage, DataLoaderRenderTarget, DataLoaderSearchParams, DataLoaderValue, } from '../data/types';
|
|
19
|
-
export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CardStylesContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent,
|
|
19
|
+
export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CardStylesContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, LayoutAlign, LayoutWidth, Media, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, NewsletterSignupPreset, TipTapNode, TipTapMark, LinkValue, InternalLinkValue, ExternalLinkValue, CustomLinkValue, PageLinkValue, EntryLinkValue, RichTextPrimitiveProps, RichTextVariant, PageOutline, BlockOutline, RouteMap, RouteMapEntry, OccurrenceContextData, EntrySubrouteContextData, Theme, ThemeTokens, SectionStylesContent, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, MediaAssetIndexItem, ImageOptions, ResolveImageUrlContext, ResolveImageUrlContextInput, ResolveImageSourceSetOptions, ResolvedImageSourceSet, } from '../contracts';
|
|
20
20
|
export { ImagePresets } from '../contracts';
|
|
21
21
|
export { RichText } from './primitives/RichText';
|
|
22
22
|
export { resolveImageUrl, resolveImageUrlWithContext, resolveImageSourceSetWithContext, } from './image';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { EventScheduleScope as SystemEventScheduleScope, EventSurfacePreset as SystemEventSurfacePreset, RichTextDoc as SystemRichTextDoc } from '../../contracts/system-block-content';
|
|
2
2
|
import type { PublicTeamMemberSummary } from '../../../../api/src/index';
|
|
3
3
|
import type { BookingFlexibleBalanceConfig, BookingInstalmentPlanConfig, LocationCoordinates, PublicCoursePriceDisplay, PublicEventPriceDisplay, PublicEventPricing, PublicEventPricingType } from '../../../../core/src/index';
|
|
4
|
-
import type { AccordionIslandProps as BlocksAccordionIslandProps, BookingFormConfig as BlocksBookingFormConfig, BookingFormInteractiveIslandProps as BlocksBookingFormIslandProps, BookingFormService as BlocksBookingFormService, CarouselIslandProps as BlocksCarouselIslandProps, CourseRegistrationInteractiveIslandProps as BlocksCourseRegistrationIslandProps, CartDisplay as BlocksCartDisplay, CartInteractiveIslandProps as BlocksCartIslandProps, CartLineDisplay as BlocksCartLineDisplay, CheckoutDisplay as BlocksCheckoutDisplay, CheckoutInteractiveIslandProps as BlocksCheckoutIslandProps, EventCalendarInteractiveIslandProps as BlocksEventCalendarIslandProps, EventCombinedInteractiveIslandProps as BlocksEventCombinedIslandProps,
|
|
4
|
+
import type { AccordionIslandProps as BlocksAccordionIslandProps, BookingFormConfig as BlocksBookingFormConfig, BookingFormInteractiveIslandProps as BlocksBookingFormIslandProps, BookingFormService as BlocksBookingFormService, CarouselIslandProps as BlocksCarouselIslandProps, CourseRegistrationInteractiveIslandProps as BlocksCourseRegistrationIslandProps, CartDisplay as BlocksCartDisplay, CartInteractiveIslandProps as BlocksCartIslandProps, CartLineDisplay as BlocksCartLineDisplay, CheckoutDisplay as BlocksCheckoutDisplay, CheckoutInteractiveIslandProps as BlocksCheckoutIslandProps, EventCalendarInteractiveIslandProps as BlocksEventCalendarIslandProps, EventCombinedInteractiveIslandProps as BlocksEventCombinedIslandProps, EventDetailsIslandProps as BlocksEventDetailsIslandProps, EventDetailsOccurrenceContext as BlocksEventDetailsOccurrenceContext, LocationMapIslandProps as BlocksLocationMapIslandProps, EventRegistrationInteractiveIslandProps as BlocksEventRegistrationIslandProps, EventListingDisplay as BlocksEventListingDisplay, EventListingHydration as BlocksEventListingHydration, EventListingInteractiveIslandProps as BlocksEventListingIslandProps, PublicEvent as BlocksPublicEvent, FormInteractiveIslandProps as BlocksFormIslandProps, HeaderSectionIslandProps as BlocksHeaderSectionIslandProps, MembershipCardDisplay as BlocksMembershipCardDisplay, NewsletterFormInteractiveIslandProps as BlocksNewsletterFormIslandProps, PassCardDisplay as BlocksPassCardDisplay, PassesMembershipsDisplay as BlocksPassesMembershipsDisplay, ProductCardDisplay as BlocksProductCardDisplay, ProductDetailDisplay as BlocksProductDetailDisplay, ProductDetailInteractiveIslandProps as BlocksProductDetailIslandProps, ProductListDisplay as BlocksProductListDisplay, ProductListInteractiveIslandProps as BlocksProductListIslandProps, ProductVariantOptionDisplay as BlocksProductVariantOptionDisplay, ShopInteractiveIslandProps as BlocksShopIslandProps } from '../../../../blocks/src/contracts/index';
|
|
5
5
|
export type ResponsiveSlidesToShow = {
|
|
6
6
|
mobile?: number | string;
|
|
7
7
|
tablet?: number | string;
|
|
@@ -135,37 +135,6 @@ export type BookingPricing = {
|
|
|
135
135
|
options: readonly BookingPricingOption[];
|
|
136
136
|
};
|
|
137
137
|
export type PublicEvent = BlocksPublicEvent;
|
|
138
|
-
export type CourseStatus = 'active' | 'draft' | 'cancelled';
|
|
139
|
-
export type CourseVenue = {
|
|
140
|
-
id: string;
|
|
141
|
-
name: string;
|
|
142
|
-
address: string | null;
|
|
143
|
-
};
|
|
144
|
-
export type CourseSession = {
|
|
145
|
-
id: string;
|
|
146
|
-
startsAt: string;
|
|
147
|
-
endsAt: string;
|
|
148
|
-
capacityOverride?: number | null;
|
|
149
|
-
overrides?: Record<string, unknown> | null;
|
|
150
|
-
};
|
|
151
|
-
export type PublicCourse = {
|
|
152
|
-
id: string;
|
|
153
|
-
title: string;
|
|
154
|
-
slug: string;
|
|
155
|
-
description: unknown;
|
|
156
|
-
enrollmentOpen: boolean;
|
|
157
|
-
priceCents: number | null;
|
|
158
|
-
currency: string;
|
|
159
|
-
enrollmentCapacity: number | null;
|
|
160
|
-
acceptsMemberships: boolean;
|
|
161
|
-
status: CourseStatus;
|
|
162
|
-
sessionsCount: number;
|
|
163
|
-
enrolledCount: number;
|
|
164
|
-
availableSpots: number | null;
|
|
165
|
-
sessions: CourseSession[];
|
|
166
|
-
venue: CourseVenue | null;
|
|
167
|
-
contentEntryId: string | null;
|
|
168
|
-
};
|
|
169
138
|
export type PublicPassProduct = {
|
|
170
139
|
id: string;
|
|
171
140
|
productUseCase: 'event_pass' | 'appointment_package';
|
|
@@ -291,27 +260,8 @@ export type EventCalendarIslandProps = BlocksEventCalendarIslandProps;
|
|
|
291
260
|
export type EventCombinedIslandProps = BlocksEventCombinedIslandProps;
|
|
292
261
|
export type EventRegistrationIslandProps = BlocksEventRegistrationIslandProps;
|
|
293
262
|
export type EventDetailsIslandProps = BlocksEventDetailsIslandProps;
|
|
294
|
-
export type EventDetailsContentEntry = BlocksEventDetailsContentEntry;
|
|
295
263
|
export type LocationMapIslandProps = BlocksLocationMapIslandProps;
|
|
296
264
|
export type CourseRegistrationIslandProps = BlocksCourseRegistrationIslandProps;
|
|
297
|
-
export type EventRegistrationContentEntry = EventDetailsContentEntry;
|
|
298
|
-
export type CourseRegistrationContentEntry = {
|
|
299
|
-
id: string;
|
|
300
|
-
slug: string;
|
|
301
|
-
contentTypeSlug: string;
|
|
302
|
-
};
|
|
303
|
-
export type CourseEntrySubrouteContext = {
|
|
304
|
-
kind: 'course-run';
|
|
305
|
-
run: {
|
|
306
|
-
courseId: string;
|
|
307
|
-
seriesId: string;
|
|
308
|
-
runSlug: string;
|
|
309
|
-
runName: string | null;
|
|
310
|
-
};
|
|
311
|
-
} | {
|
|
312
|
-
kind: 'event-occurrence';
|
|
313
|
-
occurrence: OccurrenceContext;
|
|
314
|
-
};
|
|
315
265
|
export type OccurrenceContext = BlocksEventDetailsOccurrenceContext;
|
|
316
266
|
export type HeaderSectionIslandProps = BlocksHeaderSectionIslandProps;
|
|
317
267
|
export type NewsletterPreset = 'emailOnly' | 'emailName' | 'emailFirstLast' | 'emailNameCompany';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { EntrySubrouteContextData, OccurrenceContextData, SystemBlockContentByKind, SystemBlockShortKind, Theme, ThemeTokens } from '../contracts';
|
|
3
3
|
import type { ResolveImageUrlContext } from '../contracts';
|
|
4
|
+
import type { EventPageSurfaceSubjectWire } from '../../../core/src/index';
|
|
4
5
|
/**
|
|
5
6
|
* Props passed to block override components.
|
|
6
7
|
*
|
|
@@ -21,7 +22,7 @@ export type BlockOverrideProps<TContent = Record<string, unknown>, TData = Recor
|
|
|
21
22
|
entrySubrouteContext?: EntrySubrouteContextData | null;
|
|
22
23
|
contentEntry?: Record<string, unknown> | null;
|
|
23
24
|
pageSurface?: Record<string, unknown> | null;
|
|
24
|
-
subject?:
|
|
25
|
+
subject?: EventPageSurfaceSubjectWire | null;
|
|
25
26
|
supabaseUrl?: string;
|
|
26
27
|
imageResolveContext?: ResolveImageUrlContext;
|
|
27
28
|
blockId: string | null;
|