@riverbankcms/sdk 0.144.0 → 0.146.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
- package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +688 -519
- package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +3381 -2017
- package/dist/_dts/ai/src/contracts/proposals.d.ts +5643 -66
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +513 -6
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
- package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
- package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -26
- package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
- package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
- package/dist/_dts/api/src/communications.d.ts +32 -24
- package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
- package/dist/_dts/api/src/endpoints.d.ts +316 -134
- package/dist/_dts/api/src/event-visibility.d.ts +20 -0
- package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
- package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
- package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
- package/dist/_dts/api/src/index.d.ts +7 -1
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +22 -2
- package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
- package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +30 -11
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
- package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
- package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
- package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
- package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
- package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
- package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
- package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
- package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
- package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
- package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +4 -38
- package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
- package/dist/_dts/api/src/types.d.ts +8 -1
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
- package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -0
- package/dist/_dts/blocks/src/index.d.ts +3 -1
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
- package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
- package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
- package/dist/_dts/blocks/src/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
- package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +23 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
- package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -3
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
- package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
- package/dist/_dts/core/src/editor-state.d.ts +2 -1
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
- package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
- package/dist/_dts/core/src/public-profile.d.ts +12 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +711 -242
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
- package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -3
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -1
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
- package/dist/_dts/sdk/src/client/types.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
- package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -8
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +6 -2
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +10 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
- package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
- package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
- package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
- package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
- package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
- package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
- package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
- package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
- package/dist/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
- package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
- package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
- package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
- package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
- package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
- package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BEQNSptH.mjs} +1 -1
- package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-AMr-s5vw.mjs} +168 -95
- package/dist/client/bookings.mjs +239 -110
- package/dist/client/{carousel-D8zuffZr.mjs → carousel-Bbt_QgJy.mjs} +1 -1
- package/dist/client/{cart-DeMGJViN.mjs → cart-CnWi30zJ.mjs} +3 -3
- package/dist/client/{checkout-DXc06Km2.mjs → checkout-f3nkWgd4.mjs} +3 -3
- package/dist/client/client.mjs +3222 -1612
- package/dist/client/{context-CDLCfDep.mjs → context-Bc8T6pCe.mjs} +1 -1
- package/dist/client/{dates-ClFx7Epy.mjs → dates-DUsCEzLb.mjs} +2 -3
- package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
- package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
- package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
- package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-CA3frIH5.mjs} +4 -4
- package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
- package/dist/client/{form-BjqKaBJ7.mjs → form-C2h3YAcg.mjs} +135 -104
- package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-lwMuMTH9.mjs} +3 -3
- package/dist/client/hooks.mjs +1023 -148
- package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-DJ2bLODV.mjs} +3 -3
- package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-8Pu5K32g.mjs} +225 -102
- package/dist/client/{pricing-Bl1CAl28.mjs → pricing-HHx3IgBz.mjs} +1 -1
- package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-C_1odnAf.mjs} +3 -3
- package/dist/client/{productList-U874PGO7.mjs → productList-CtCv-Nmx.mjs} +3 -3
- package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-Dcgsncxb.mjs} +111 -55
- package/dist/client/rendering/client.mjs +1389 -722
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +3136 -1400
- package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
- package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
- package/dist/client/{shop-BXjXhM9P.mjs → shop-DQXrQ8kJ.mjs} +7 -7
- package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
- package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-cuaONpkJ.mjs} +4 -4
- package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +500 -165
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-base.css +11 -0
- package/dist/preview-next/keepAlive.mjs +460 -165
- package/dist/preview-next/middleware.mjs +461 -165
- package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-h5IgbSp4.mjs} +485 -165
- package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
- package/dist/{separator-o8GHb1xh.mjs → separator-BpHS1KZK.mjs} +1 -1
- package/dist/server/components.mjs +3088 -1307
- package/dist/server/config-validation.mjs +927 -109
- package/dist/server/config.mjs +927 -109
- package/dist/server/data.mjs +939 -110
- package/dist/server/index.mjs +513 -169
- package/dist/server/next.mjs +2874 -1195
- package/dist/server/page-converter.mjs +420 -79
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3071 -1289
- package/dist/server/rendering.mjs +3169 -1350
- package/dist/server/routing.mjs +1085 -159
- package/dist/server/server.mjs +1042 -291
- package/dist/server/theme-bridge.mjs +1658 -137
- package/dist/server/theme.mjs +6 -4
- package/dist/styles/index.css +186 -65
- package/package.json +2 -1
package/dist/client/hooks.mjs
CHANGED
|
@@ -899,15 +899,6 @@ function parseMailingListContentVersionId(value) {
|
|
|
899
899
|
const parsed = parseContentVersionId(value);
|
|
900
900
|
return parsed.ok ? parsed.value : null;
|
|
901
901
|
}
|
|
902
|
-
function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
|
|
903
|
-
const parsedBlockId = parseMailingListBlockId(blockId);
|
|
904
|
-
const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
|
|
905
|
-
return parsedBlockId !== null && parsedContentVersionId !== null ? {
|
|
906
|
-
tag: "block_ref",
|
|
907
|
-
blockId: parsedBlockId,
|
|
908
|
-
contentVersionId: parsedContentVersionId
|
|
909
|
-
} : null;
|
|
910
|
-
}
|
|
911
902
|
//#endregion
|
|
912
903
|
//#region ../core/src/secret.ts
|
|
913
904
|
/**
|
|
@@ -6705,6 +6696,15 @@ function asSiteStyleId(value) {
|
|
|
6705
6696
|
function asDesignSystemTemplateId(value) {
|
|
6706
6697
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
6707
6698
|
}
|
|
6699
|
+
function toNonEmptyReadonlyArray(values) {
|
|
6700
|
+
const [first, ...rest] = values;
|
|
6701
|
+
return first === void 0 ? null : [first, ...rest];
|
|
6702
|
+
}
|
|
6703
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
6704
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
6705
|
+
if (!result) throw new Error(message);
|
|
6706
|
+
return result;
|
|
6707
|
+
}
|
|
6708
6708
|
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
6709
6709
|
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
6710
6710
|
}
|
|
@@ -6907,16 +6907,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
6907
6907
|
"_frameStyles",
|
|
6908
6908
|
"_sectionStyles",
|
|
6909
6909
|
"_containerStyles",
|
|
6910
|
-
"_cardStyles"
|
|
6911
|
-
"_transitionStyles",
|
|
6912
|
-
"styleGroup"
|
|
6910
|
+
"_cardStyles"
|
|
6913
6911
|
];
|
|
6914
6912
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
6915
6913
|
"_contentCardStyles",
|
|
6916
6914
|
"_heroLayoutStyles",
|
|
6917
6915
|
"_textCardStyles"
|
|
6918
6916
|
];
|
|
6919
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
6917
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
6918
|
+
...themeV2RuntimeStyleFieldNames,
|
|
6919
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
6920
|
+
"styleGroup"
|
|
6921
|
+
];
|
|
6920
6922
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
6921
6923
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
6922
6924
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -8051,6 +8053,7 @@ const publicEventLoaderQuerySchemaShape = {
|
|
|
8051
8053
|
seriesSlug: z.string().optional(),
|
|
8052
8054
|
includeOccurrenceId: z.string().optional(),
|
|
8053
8055
|
readIntent: z.string().optional(),
|
|
8056
|
+
detailAdmission: z.string().optional(),
|
|
8054
8057
|
detailLevel: z.string().optional(),
|
|
8055
8058
|
readProfile: z.string().optional()
|
|
8056
8059
|
};
|
|
@@ -8217,11 +8220,11 @@ const publicEventBookingAvailabilitySchema = z.discriminatedUnion("kind", [z.obj
|
|
|
8217
8220
|
"series_archived",
|
|
8218
8221
|
"parent_archived",
|
|
8219
8222
|
"parent_inconsistent",
|
|
8220
|
-
"not_public",
|
|
8221
8223
|
"already_started",
|
|
8222
8224
|
"enrollment_closed"
|
|
8223
8225
|
])
|
|
8224
8226
|
})]);
|
|
8227
|
+
const publicEventBookingClosedDetailSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("opensSoon") }), z.object({ kind: z.literal("paused") })]);
|
|
8225
8228
|
const publicRunSessionSchema = z.object({
|
|
8226
8229
|
occurrenceId: z.string(),
|
|
8227
8230
|
startsAt: z.string(),
|
|
@@ -8266,6 +8269,7 @@ const publicEventBaseSchema = z.object({
|
|
|
8266
8269
|
destination: publicEventDestinationSchema,
|
|
8267
8270
|
requiresRegistration: z.boolean(),
|
|
8268
8271
|
bookingAvailability: publicEventBookingAvailabilitySchema,
|
|
8272
|
+
bookingClosedDetail: publicEventBookingClosedDetailSchema.optional(),
|
|
8269
8273
|
deliveryMode: z.enum([
|
|
8270
8274
|
"in_person",
|
|
8271
8275
|
"online",
|
|
@@ -8550,6 +8554,75 @@ const calendarWindowPageSchema = z.discriminatedUnion("kind", [z.object({
|
|
|
8550
8554
|
nextCursor: calendarSourceCursorSchema
|
|
8551
8555
|
})]);
|
|
8552
8556
|
//#endregion
|
|
8557
|
+
//#region ../api/src/defineEndpointDefinitions.ts
|
|
8558
|
+
/**
|
|
8559
|
+
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
8560
|
+
* method, and parameter contract for the typed URL builders.
|
|
8561
|
+
*/
|
|
8562
|
+
function defineEndpointDefinitions(definitions) {
|
|
8563
|
+
return definitions;
|
|
8564
|
+
}
|
|
8565
|
+
//#endregion
|
|
8566
|
+
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
8567
|
+
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8568
|
+
subscribeNewsletter: {
|
|
8569
|
+
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
8570
|
+
method: "POST",
|
|
8571
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8572
|
+
auth: "public",
|
|
8573
|
+
responseKind: "json"
|
|
8574
|
+
},
|
|
8575
|
+
confirmNewsletter: {
|
|
8576
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
8577
|
+
method: "GET",
|
|
8578
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8579
|
+
auth: "public",
|
|
8580
|
+
responseKind: "text"
|
|
8581
|
+
},
|
|
8582
|
+
unsubscribeNewsletter: {
|
|
8583
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
8584
|
+
method: "GET",
|
|
8585
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8586
|
+
auth: "public",
|
|
8587
|
+
responseKind: "text"
|
|
8588
|
+
},
|
|
8589
|
+
unsubscribeNewsletterPost: {
|
|
8590
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
8591
|
+
method: "POST",
|
|
8592
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8593
|
+
auth: "public",
|
|
8594
|
+
responseKind: "text"
|
|
8595
|
+
},
|
|
8596
|
+
confirmNewsletterPost: {
|
|
8597
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
8598
|
+
method: "POST",
|
|
8599
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8600
|
+
auth: "public",
|
|
8601
|
+
responseKind: "text"
|
|
8602
|
+
},
|
|
8603
|
+
getNewsletterPreferences: {
|
|
8604
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
8605
|
+
method: "GET",
|
|
8606
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8607
|
+
auth: "public",
|
|
8608
|
+
responseKind: "text"
|
|
8609
|
+
},
|
|
8610
|
+
saveNewsletterPreferences: {
|
|
8611
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
8612
|
+
method: "POST",
|
|
8613
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8614
|
+
auth: "public",
|
|
8615
|
+
responseKind: "text"
|
|
8616
|
+
},
|
|
8617
|
+
getNewsletterArchive: {
|
|
8618
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
8619
|
+
method: "GET",
|
|
8620
|
+
tags: ["public-newsletter-{siteId}"],
|
|
8621
|
+
auth: "public",
|
|
8622
|
+
responseKind: "text"
|
|
8623
|
+
}
|
|
8624
|
+
});
|
|
8625
|
+
//#endregion
|
|
8553
8626
|
//#region ../api/src/apiEndpointTypes.ts
|
|
8554
8627
|
function allowedDemoMutationPolicy() {
|
|
8555
8628
|
return {
|
|
@@ -8641,17 +8714,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
|
|
|
8641
8714
|
}
|
|
8642
8715
|
};
|
|
8643
8716
|
//#endregion
|
|
8644
|
-
//#region ../api/src/defineEndpointDefinitions.ts
|
|
8645
|
-
/**
|
|
8646
|
-
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
8647
|
-
* method, and parameter contract for the typed URL builders.
|
|
8648
|
-
*/
|
|
8649
|
-
function defineEndpointDefinitions(definitions) {
|
|
8650
|
-
return definitions;
|
|
8651
|
-
}
|
|
8652
|
-
//#endregion
|
|
8653
8717
|
//#region ../api/src/appointmentEndpointDefinitions.ts
|
|
8654
8718
|
const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8719
|
+
...defineEndpointDefinitions({
|
|
8720
|
+
listGroupedAppointmentServices: {
|
|
8721
|
+
path: "/sites/{siteId}/bookings/services/grouped",
|
|
8722
|
+
method: "GET",
|
|
8723
|
+
auth: "user",
|
|
8724
|
+
responseKind: "json",
|
|
8725
|
+
errors: ["server:internal_error"]
|
|
8726
|
+
},
|
|
8727
|
+
reorderAppointmentServices: {
|
|
8728
|
+
path: "/sites/{siteId}/bookings/services/order",
|
|
8729
|
+
method: "PUT",
|
|
8730
|
+
auth: "user",
|
|
8731
|
+
responseKind: "json",
|
|
8732
|
+
errors: [
|
|
8733
|
+
"validation:invalid_input",
|
|
8734
|
+
"auth:forbidden",
|
|
8735
|
+
"resource:not_found",
|
|
8736
|
+
"resource:conflict",
|
|
8737
|
+
"server:internal_error"
|
|
8738
|
+
]
|
|
8739
|
+
},
|
|
8740
|
+
listAppointmentServiceCategories: {
|
|
8741
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
8742
|
+
method: "GET",
|
|
8743
|
+
auth: "user",
|
|
8744
|
+
responseKind: "json",
|
|
8745
|
+
errors: ["server:internal_error"]
|
|
8746
|
+
},
|
|
8747
|
+
createAppointmentServiceCategory: {
|
|
8748
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
8749
|
+
method: "POST",
|
|
8750
|
+
auth: "user",
|
|
8751
|
+
responseKind: "json",
|
|
8752
|
+
errors: [
|
|
8753
|
+
"validation:invalid_input",
|
|
8754
|
+
"auth:forbidden",
|
|
8755
|
+
"resource:conflict",
|
|
8756
|
+
"server:internal_error"
|
|
8757
|
+
]
|
|
8758
|
+
},
|
|
8759
|
+
updateAppointmentServiceCategory: {
|
|
8760
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
8761
|
+
method: "PUT",
|
|
8762
|
+
auth: "user",
|
|
8763
|
+
responseKind: "json",
|
|
8764
|
+
errors: [
|
|
8765
|
+
"validation:invalid_input",
|
|
8766
|
+
"auth:forbidden",
|
|
8767
|
+
"resource:not_found",
|
|
8768
|
+
"resource:conflict",
|
|
8769
|
+
"server:internal_error"
|
|
8770
|
+
]
|
|
8771
|
+
},
|
|
8772
|
+
deleteAppointmentServiceCategory: {
|
|
8773
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
8774
|
+
method: "DELETE",
|
|
8775
|
+
auth: "user",
|
|
8776
|
+
responseKind: "json",
|
|
8777
|
+
errors: [
|
|
8778
|
+
"auth:forbidden",
|
|
8779
|
+
"resource:not_found",
|
|
8780
|
+
"server:internal_error"
|
|
8781
|
+
]
|
|
8782
|
+
},
|
|
8783
|
+
reorderAppointmentServiceCategories: {
|
|
8784
|
+
path: "/sites/{siteId}/bookings/service-categories/order",
|
|
8785
|
+
method: "PUT",
|
|
8786
|
+
auth: "user",
|
|
8787
|
+
responseKind: "json",
|
|
8788
|
+
errors: [
|
|
8789
|
+
"validation:invalid_input",
|
|
8790
|
+
"auth:forbidden",
|
|
8791
|
+
"resource:conflict",
|
|
8792
|
+
"server:internal_error"
|
|
8793
|
+
]
|
|
8794
|
+
}
|
|
8795
|
+
}),
|
|
8655
8796
|
listAppointmentResources: {
|
|
8656
8797
|
path: "/sites/{siteId}/bookings/resources",
|
|
8657
8798
|
method: "GET",
|
|
@@ -9362,6 +9503,13 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
|
|
|
9362
9503
|
errors: [],
|
|
9363
9504
|
responseKind: "blob"
|
|
9364
9505
|
},
|
|
9506
|
+
exportEventOfferingRegistrationsCsv: {
|
|
9507
|
+
path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv",
|
|
9508
|
+
method: "GET",
|
|
9509
|
+
auth: "user",
|
|
9510
|
+
errors: [],
|
|
9511
|
+
responseKind: "blob"
|
|
9512
|
+
},
|
|
9365
9513
|
updateEventSeriesRegistration: {
|
|
9366
9514
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
|
|
9367
9515
|
method: "PATCH",
|
|
@@ -9372,6 +9520,19 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
|
|
|
9372
9520
|
"resource:not_found",
|
|
9373
9521
|
"server:internal_error"
|
|
9374
9522
|
]
|
|
9523
|
+
},
|
|
9524
|
+
saveEventSeriesRegistrationAnswers: {
|
|
9525
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers",
|
|
9526
|
+
method: "PUT",
|
|
9527
|
+
auth: "user",
|
|
9528
|
+
responseKind: "json",
|
|
9529
|
+
errors: [
|
|
9530
|
+
"validation:invalid_input",
|
|
9531
|
+
"auth:forbidden",
|
|
9532
|
+
"resource:not_found",
|
|
9533
|
+
"resource:conflict",
|
|
9534
|
+
"server:internal_error"
|
|
9535
|
+
]
|
|
9375
9536
|
}
|
|
9376
9537
|
});
|
|
9377
9538
|
//#endregion
|
|
@@ -9792,46 +9953,185 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
9792
9953
|
responseKind: "json",
|
|
9793
9954
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
9794
9955
|
},
|
|
9795
|
-
|
|
9796
|
-
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/
|
|
9956
|
+
scheduleNewsletterCampaign: {
|
|
9957
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule",
|
|
9797
9958
|
method: "POST",
|
|
9798
9959
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9799
9960
|
auth: "user",
|
|
9800
9961
|
responseKind: "json",
|
|
9801
9962
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
9802
9963
|
},
|
|
9803
|
-
|
|
9804
|
-
path: "/sites/{siteId}/newsletter/
|
|
9805
|
-
method: "
|
|
9964
|
+
unscheduleNewsletterCampaign: {
|
|
9965
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule",
|
|
9966
|
+
method: "POST",
|
|
9967
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9968
|
+
auth: "user",
|
|
9969
|
+
responseKind: "json",
|
|
9970
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
9971
|
+
},
|
|
9972
|
+
stopNewsletterCampaign: {
|
|
9973
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop",
|
|
9974
|
+
method: "POST",
|
|
9806
9975
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9807
9976
|
auth: "user",
|
|
9977
|
+
responseKind: "json",
|
|
9978
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
9979
|
+
},
|
|
9980
|
+
testSendNewsletterCampaign: {
|
|
9981
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
|
|
9982
|
+
method: "POST",
|
|
9983
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9984
|
+
auth: "user",
|
|
9985
|
+
responseKind: "json",
|
|
9986
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
9987
|
+
}
|
|
9988
|
+
});
|
|
9989
|
+
//#endregion
|
|
9990
|
+
//#region ../api/src/sdkEventEndpointDefinitions.ts
|
|
9991
|
+
/**
|
|
9992
|
+
* The SDK's Event graph: the Events themselves and the occurrences of one run.
|
|
9993
|
+
* Extracted from `endpoints.ts` so this family can be read, and added to, on
|
|
9994
|
+
* its own. New entries here must declare `errors`; the
|
|
9995
|
+
* require-api-endpoint-errors lint enforces that here as in endpoints.ts.
|
|
9996
|
+
*/
|
|
9997
|
+
const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
9998
|
+
sdkListEvents: {
|
|
9999
|
+
path: "/sdk/{siteId}/events",
|
|
10000
|
+
method: "GET",
|
|
10001
|
+
auth: "service",
|
|
9808
10002
|
responseKind: "json"
|
|
9809
10003
|
},
|
|
9810
|
-
|
|
9811
|
-
path: "/
|
|
10004
|
+
sdkUpsertEvent: {
|
|
10005
|
+
path: "/sdk/{siteId}/events",
|
|
9812
10006
|
method: "POST",
|
|
10007
|
+
auth: "service",
|
|
10008
|
+
responseKind: "json",
|
|
9813
10009
|
errors: [
|
|
9814
10010
|
"validation:invalid_input",
|
|
9815
10011
|
"resource:not_found",
|
|
9816
|
-
"
|
|
10012
|
+
"resource:conflict",
|
|
10013
|
+
"billing:plan_limit_exceeded",
|
|
9817
10014
|
"server:internal_error"
|
|
9818
|
-
]
|
|
9819
|
-
|
|
9820
|
-
|
|
10015
|
+
]
|
|
10016
|
+
},
|
|
10017
|
+
sdkGetEvent: {
|
|
10018
|
+
path: "/sdk/{siteId}/events/{identifier}",
|
|
10019
|
+
method: "GET",
|
|
10020
|
+
auth: "service",
|
|
9821
10021
|
responseKind: "json"
|
|
9822
10022
|
},
|
|
9823
|
-
|
|
9824
|
-
path: "/
|
|
10023
|
+
sdkDeleteEvent: {
|
|
10024
|
+
path: "/sdk/{siteId}/events/{identifier}",
|
|
10025
|
+
method: "DELETE",
|
|
10026
|
+
auth: "service",
|
|
10027
|
+
responseKind: "json",
|
|
10028
|
+
errors: [
|
|
10029
|
+
"resource:not_found",
|
|
10030
|
+
"resource:conflict",
|
|
10031
|
+
"server:internal_error"
|
|
10032
|
+
]
|
|
10033
|
+
},
|
|
10034
|
+
sdkTakeEventOffline: {
|
|
10035
|
+
path: "/sdk/{siteId}/events/{identifier}/lifecycle",
|
|
9825
10036
|
method: "POST",
|
|
10037
|
+
auth: "service",
|
|
10038
|
+
responseKind: "json",
|
|
9826
10039
|
errors: [
|
|
10040
|
+
"resource:not_found",
|
|
9827
10041
|
"validation:invalid_input",
|
|
10042
|
+
"resource:conflict",
|
|
10043
|
+
"server:internal_error"
|
|
10044
|
+
]
|
|
10045
|
+
},
|
|
10046
|
+
sdkListEventOccurrences: {
|
|
10047
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
|
|
10048
|
+
method: "GET",
|
|
10049
|
+
auth: "service",
|
|
10050
|
+
responseKind: "json",
|
|
10051
|
+
errors: [
|
|
9828
10052
|
"resource:not_found",
|
|
9829
|
-
"
|
|
10053
|
+
"validation:invalid_input",
|
|
9830
10054
|
"server:internal_error"
|
|
9831
|
-
]
|
|
9832
|
-
|
|
9833
|
-
|
|
9834
|
-
|
|
10055
|
+
]
|
|
10056
|
+
},
|
|
10057
|
+
sdkAddEventOccurrence: {
|
|
10058
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
|
|
10059
|
+
method: "POST",
|
|
10060
|
+
auth: "service",
|
|
10061
|
+
responseKind: "json",
|
|
10062
|
+
errors: [
|
|
10063
|
+
"resource:not_found",
|
|
10064
|
+
"validation:invalid_input",
|
|
10065
|
+
"resource:conflict",
|
|
10066
|
+
"server:internal_error"
|
|
10067
|
+
]
|
|
10068
|
+
},
|
|
10069
|
+
sdkUpdateEventOccurrence: {
|
|
10070
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
|
|
10071
|
+
method: "PATCH",
|
|
10072
|
+
auth: "service",
|
|
10073
|
+
responseKind: "json",
|
|
10074
|
+
errors: [
|
|
10075
|
+
"resource:not_found",
|
|
10076
|
+
"validation:invalid_input",
|
|
10077
|
+
"resource:conflict",
|
|
10078
|
+
"server:internal_error"
|
|
10079
|
+
]
|
|
10080
|
+
},
|
|
10081
|
+
sdkCancelEventOccurrence: {
|
|
10082
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
|
|
10083
|
+
method: "POST",
|
|
10084
|
+
auth: "service",
|
|
10085
|
+
responseKind: "json",
|
|
10086
|
+
errors: [
|
|
10087
|
+
"resource:not_found",
|
|
10088
|
+
"resource:conflict",
|
|
10089
|
+
"server:internal_error"
|
|
10090
|
+
]
|
|
10091
|
+
},
|
|
10092
|
+
sdkDeleteEventOccurrence: {
|
|
10093
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
|
|
10094
|
+
method: "DELETE",
|
|
10095
|
+
auth: "service",
|
|
10096
|
+
responseKind: "json",
|
|
10097
|
+
errors: [
|
|
10098
|
+
"resource:not_found",
|
|
10099
|
+
"resource:conflict",
|
|
10100
|
+
"server:internal_error"
|
|
10101
|
+
]
|
|
10102
|
+
}
|
|
10103
|
+
});
|
|
10104
|
+
//#endregion
|
|
10105
|
+
//#region ../api/src/sdkPageDesignEndpointDefinitions.ts
|
|
10106
|
+
/**
|
|
10107
|
+
* SDK management endpoints for a page's draft design (issue 1497), spread into
|
|
10108
|
+
* `ENDPOINT_DEFINITIONS` like the other endpoint-definition modules. New
|
|
10109
|
+
* entries here must declare `errors`, which the require-api-endpoint-errors
|
|
10110
|
+
* lint enforces.
|
|
10111
|
+
*/
|
|
10112
|
+
const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10113
|
+
sdkGetPageDesign: {
|
|
10114
|
+
path: "/sdk/{siteId}/pages/{identifier}/design",
|
|
10115
|
+
method: "GET",
|
|
10116
|
+
auth: "service",
|
|
10117
|
+
responseKind: "json",
|
|
10118
|
+
errors: [
|
|
10119
|
+
"resource:not_found",
|
|
10120
|
+
"validation:invalid_input",
|
|
10121
|
+
"server:internal_error"
|
|
10122
|
+
]
|
|
10123
|
+
},
|
|
10124
|
+
sdkSavePageDesign: {
|
|
10125
|
+
path: "/sdk/{siteId}/pages/{identifier}/design",
|
|
10126
|
+
method: "POST",
|
|
10127
|
+
auth: "service",
|
|
10128
|
+
responseKind: "json",
|
|
10129
|
+
errors: [
|
|
10130
|
+
"resource:not_found",
|
|
10131
|
+
"validation:invalid_input",
|
|
10132
|
+
"resource:conflict",
|
|
10133
|
+
"server:internal_error"
|
|
10134
|
+
]
|
|
9835
10135
|
}
|
|
9836
10136
|
});
|
|
9837
10137
|
//#endregion
|
|
@@ -10079,6 +10379,45 @@ const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10079
10379
|
}
|
|
10080
10380
|
});
|
|
10081
10381
|
//#endregion
|
|
10382
|
+
//#region ../api/src/siteManagementEndpointDefinitions.ts
|
|
10383
|
+
const SITE_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10384
|
+
createSite: {
|
|
10385
|
+
path: "/sites/manage",
|
|
10386
|
+
method: "POST",
|
|
10387
|
+
tags: ["site"],
|
|
10388
|
+
auth: "user",
|
|
10389
|
+
responseKind: "json"
|
|
10390
|
+
},
|
|
10391
|
+
updateSite: {
|
|
10392
|
+
path: "/sites/manage",
|
|
10393
|
+
method: "PUT",
|
|
10394
|
+
tags: ["site"],
|
|
10395
|
+
auth: "user",
|
|
10396
|
+
responseKind: "json"
|
|
10397
|
+
},
|
|
10398
|
+
changeSiteAddress: {
|
|
10399
|
+
path: "/sites/{siteId}/address",
|
|
10400
|
+
method: "PUT",
|
|
10401
|
+
auth: "user",
|
|
10402
|
+
responseKind: "json",
|
|
10403
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
10404
|
+
},
|
|
10405
|
+
getSiteAddressAvailability: {
|
|
10406
|
+
path: "/sites/{siteId}/address/availability",
|
|
10407
|
+
method: "GET",
|
|
10408
|
+
auth: "user",
|
|
10409
|
+
responseKind: "json"
|
|
10410
|
+
},
|
|
10411
|
+
deleteSite: {
|
|
10412
|
+
path: "/sites/{siteId}",
|
|
10413
|
+
method: "DELETE",
|
|
10414
|
+
tags: ["site", "site-{siteId}"],
|
|
10415
|
+
auth: "user",
|
|
10416
|
+
responseKind: "json",
|
|
10417
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
10418
|
+
}
|
|
10419
|
+
});
|
|
10420
|
+
//#endregion
|
|
10082
10421
|
//#region ../api/src/eventManagementEndpointDefinitions.ts
|
|
10083
10422
|
const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10084
10423
|
listEvents: {
|
|
@@ -10126,6 +10465,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10126
10465
|
"server:internal_error"
|
|
10127
10466
|
]
|
|
10128
10467
|
},
|
|
10468
|
+
/**
|
|
10469
|
+
* The web address of an event's own page. A course page belongs to the
|
|
10470
|
+
* event itself, so its address is written here rather than through a run.
|
|
10471
|
+
*/
|
|
10472
|
+
updateEventAddress: {
|
|
10473
|
+
path: "/sites/{siteId}/bookings/events/{eventId}/address",
|
|
10474
|
+
method: "PATCH",
|
|
10475
|
+
tags: [
|
|
10476
|
+
"site-{siteId}",
|
|
10477
|
+
"event-series-{siteId}",
|
|
10478
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
10479
|
+
TAG_TEMPLATES.siteRedirects
|
|
10480
|
+
],
|
|
10481
|
+
auth: "user",
|
|
10482
|
+
responseKind: "json",
|
|
10483
|
+
errors: [
|
|
10484
|
+
"validation:invalid_input",
|
|
10485
|
+
"resource:not_found",
|
|
10486
|
+
"resource:conflict",
|
|
10487
|
+
"server:internal_error"
|
|
10488
|
+
]
|
|
10489
|
+
},
|
|
10129
10490
|
createWholeSeriesRun: {
|
|
10130
10491
|
path: "/sites/{siteId}/bookings/events/{eventId}/runs",
|
|
10131
10492
|
method: "POST",
|
|
@@ -10152,6 +10513,20 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10152
10513
|
"server:internal_error"
|
|
10153
10514
|
]
|
|
10154
10515
|
},
|
|
10516
|
+
updateCourseBookingSettings: {
|
|
10517
|
+
path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings",
|
|
10518
|
+
method: "PATCH",
|
|
10519
|
+
tags: ["site-{siteId}", "event-series-{siteId}"],
|
|
10520
|
+
auth: "user",
|
|
10521
|
+
responseKind: "json",
|
|
10522
|
+
errors: [
|
|
10523
|
+
"validation:invalid_input",
|
|
10524
|
+
"auth:forbidden",
|
|
10525
|
+
"resource:not_found",
|
|
10526
|
+
"resource:conflict",
|
|
10527
|
+
"server:internal_error"
|
|
10528
|
+
]
|
|
10529
|
+
},
|
|
10155
10530
|
cancelWholeSeriesRun: {
|
|
10156
10531
|
path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
|
|
10157
10532
|
method: "POST",
|
|
@@ -10164,6 +10539,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10164
10539
|
"resource:conflict",
|
|
10165
10540
|
"server:internal_error"
|
|
10166
10541
|
]
|
|
10542
|
+
},
|
|
10543
|
+
/**
|
|
10544
|
+
* The Content tab's one write: the short introduction, image and
|
|
10545
|
+
* description of an event's page, published without its layout.
|
|
10546
|
+
*/
|
|
10547
|
+
saveEventPageWords: {
|
|
10548
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
|
|
10549
|
+
method: "PUT",
|
|
10550
|
+
tags: [
|
|
10551
|
+
TAG_TEMPLATES.siteCollection,
|
|
10552
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
10553
|
+
TAG_TEMPLATES.pageSurfaceById
|
|
10554
|
+
],
|
|
10555
|
+
auth: "user",
|
|
10556
|
+
responseKind: "json",
|
|
10557
|
+
errors: [
|
|
10558
|
+
"auth:forbidden",
|
|
10559
|
+
"validation:invalid_input",
|
|
10560
|
+
"resource:not_found",
|
|
10561
|
+
"resource:conflict",
|
|
10562
|
+
"server:internal_error"
|
|
10563
|
+
]
|
|
10167
10564
|
}
|
|
10168
10565
|
});
|
|
10169
10566
|
//#endregion
|
|
@@ -10596,18 +10993,56 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10596
10993
|
responseKind: "json"
|
|
10597
10994
|
}
|
|
10598
10995
|
});
|
|
10996
|
+
//#endregion
|
|
10997
|
+
//#region ../api/src/clientErrorReporting.ts
|
|
10998
|
+
const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
|
|
10999
|
+
path: "/client/error-report",
|
|
11000
|
+
method: "POST",
|
|
11001
|
+
auth: "user",
|
|
11002
|
+
errors: [],
|
|
11003
|
+
responseKind: "json"
|
|
11004
|
+
} });
|
|
11005
|
+
const CLIENT_ERROR_REPORT_LIMITS = {
|
|
11006
|
+
pathname: 1024,
|
|
11007
|
+
name: 120,
|
|
11008
|
+
message: 2e3,
|
|
11009
|
+
stack: 8e3,
|
|
11010
|
+
digest: 128,
|
|
11011
|
+
componentStack: 8e3,
|
|
11012
|
+
sourceLocation: 1024
|
|
11013
|
+
};
|
|
11014
|
+
const clientErrorEventSchema = z.enum([
|
|
11015
|
+
"dashboard:route-error",
|
|
11016
|
+
"dashboard:app-error",
|
|
11017
|
+
"client:error-boundary",
|
|
11018
|
+
"client:window-error",
|
|
11019
|
+
"client:unhandled-rejection"
|
|
11020
|
+
]);
|
|
11021
|
+
z.object({
|
|
11022
|
+
event: clientErrorEventSchema,
|
|
11023
|
+
pathname: z.string().startsWith("/").max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
11024
|
+
name: z.string().max(CLIENT_ERROR_REPORT_LIMITS.name),
|
|
11025
|
+
message: z.string().max(CLIENT_ERROR_REPORT_LIMITS.message),
|
|
11026
|
+
stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
|
|
11027
|
+
digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
|
|
11028
|
+
componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
|
|
11029
|
+
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
11030
|
+
}).strict();
|
|
10599
11031
|
({
|
|
11032
|
+
...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
|
|
11033
|
+
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10600
11034
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
10601
11035
|
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
10602
11036
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
10603
11037
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
10604
11038
|
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
10605
|
-
...BILLING_ENDPOINT_DEFINITIONS
|
|
11039
|
+
...BILLING_ENDPOINT_DEFINITIONS,
|
|
11040
|
+
...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
|
|
10606
11041
|
}), TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, { ...SITE_API_KEY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings, {
|
|
10607
11042
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10608
11043
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
10609
11044
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
10610
|
-
}, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicBookingServices, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
|
|
11045
|
+
}, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicBookingServices, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS }, { ...SDK_EVENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
|
|
10611
11046
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
10612
11047
|
z.object({
|
|
10613
11048
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -10834,6 +11269,17 @@ const navigationLinkInputSchemaOptions = [
|
|
|
10834
11269
|
];
|
|
10835
11270
|
z.discriminatedUnion("kind", navigationLinkInputSchemaOptions);
|
|
10836
11271
|
//#endregion
|
|
11272
|
+
//#region ../blocks/src/pageRenderAdmission.ts
|
|
11273
|
+
/** Pair a published version with the content it authorises at the render boundary. */
|
|
11274
|
+
function readPublishedBlockPlacement(id, content) {
|
|
11275
|
+
if (id == null && content == null) return null;
|
|
11276
|
+
if (id == null || content == null) throw new Error("Published block placement requires both an ID and content");
|
|
11277
|
+
return {
|
|
11278
|
+
id,
|
|
11279
|
+
content
|
|
11280
|
+
};
|
|
11281
|
+
}
|
|
11282
|
+
//#endregion
|
|
10837
11283
|
//#region ../theme-core/src/site-styles/styleTags.ts
|
|
10838
11284
|
/**
|
|
10839
11285
|
* Descriptive style-axis metadata for button personalities and palette
|
|
@@ -12957,11 +13403,260 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
12957
13403
|
*/
|
|
12958
13404
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
12959
13405
|
//#endregion
|
|
12960
|
-
//#region ../theme-core/src/site-styles/
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
12964
|
-
|
|
13406
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
13407
|
+
/**
|
|
13408
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
13409
|
+
* same order, so the flat option list and the grouped families agree.
|
|
13410
|
+
*/
|
|
13411
|
+
const transitionCatalogueFamilies = [
|
|
13412
|
+
{
|
|
13413
|
+
id: "gradient",
|
|
13414
|
+
label: "Gradient"
|
|
13415
|
+
},
|
|
13416
|
+
{
|
|
13417
|
+
id: "wave",
|
|
13418
|
+
label: "Wave"
|
|
13419
|
+
},
|
|
13420
|
+
{
|
|
13421
|
+
id: "angle",
|
|
13422
|
+
label: "Angle"
|
|
13423
|
+
}
|
|
13424
|
+
];
|
|
13425
|
+
const mediumHeight = "6rem + 2px";
|
|
13426
|
+
const compactHeight = "4.5rem + 2px";
|
|
13427
|
+
const largeHeight = "7rem + 2px";
|
|
13428
|
+
/**
|
|
13429
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
13430
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
13431
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
13432
|
+
*
|
|
13433
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
13434
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
13435
|
+
*/
|
|
13436
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
13437
|
+
{
|
|
13438
|
+
intent: "soft-fade-short",
|
|
13439
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
13440
|
+
family: "gradient",
|
|
13441
|
+
variantId: "soft",
|
|
13442
|
+
label: "Soft",
|
|
13443
|
+
variantLabel: "Soft",
|
|
13444
|
+
treatment: {
|
|
13445
|
+
kind: "soft-fade",
|
|
13446
|
+
height: "medium",
|
|
13447
|
+
curve: "soft"
|
|
13448
|
+
},
|
|
13449
|
+
size: "medium",
|
|
13450
|
+
heightExpression: mediumHeight,
|
|
13451
|
+
shape: { kind: "fade" }
|
|
13452
|
+
},
|
|
13453
|
+
{
|
|
13454
|
+
intent: "soft-fade-long",
|
|
13455
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
13456
|
+
family: "gradient",
|
|
13457
|
+
variantId: "spacious",
|
|
13458
|
+
label: "Spacious",
|
|
13459
|
+
variantLabel: "Spacious",
|
|
13460
|
+
treatment: {
|
|
13461
|
+
kind: "soft-fade",
|
|
13462
|
+
height: "large",
|
|
13463
|
+
curve: "spacious"
|
|
13464
|
+
},
|
|
13465
|
+
size: "spacious",
|
|
13466
|
+
heightExpression: "10rem",
|
|
13467
|
+
shape: { kind: "fade" }
|
|
13468
|
+
},
|
|
13469
|
+
{
|
|
13470
|
+
intent: "soft-fade-expansive",
|
|
13471
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
13472
|
+
family: "gradient",
|
|
13473
|
+
variantId: "expansive",
|
|
13474
|
+
label: "Expansive",
|
|
13475
|
+
variantLabel: "Expansive",
|
|
13476
|
+
treatment: {
|
|
13477
|
+
kind: "soft-fade",
|
|
13478
|
+
height: "expansive",
|
|
13479
|
+
curve: "expansive"
|
|
13480
|
+
},
|
|
13481
|
+
size: "expansive",
|
|
13482
|
+
heightExpression: "14rem",
|
|
13483
|
+
shape: { kind: "fade" }
|
|
13484
|
+
},
|
|
13485
|
+
{
|
|
13486
|
+
intent: "wave-edge-balanced",
|
|
13487
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
13488
|
+
family: "wave",
|
|
13489
|
+
variantId: "balanced",
|
|
13490
|
+
label: "Balanced wave",
|
|
13491
|
+
variantLabel: "Balanced",
|
|
13492
|
+
treatment: {
|
|
13493
|
+
kind: "wave-edge",
|
|
13494
|
+
height: "medium",
|
|
13495
|
+
amplitude: "balanced",
|
|
13496
|
+
rhythm: "double",
|
|
13497
|
+
symmetry: "symmetrical"
|
|
13498
|
+
},
|
|
13499
|
+
size: "medium",
|
|
13500
|
+
heightExpression: mediumHeight,
|
|
13501
|
+
shape: {
|
|
13502
|
+
kind: "wave",
|
|
13503
|
+
mask: "balanced"
|
|
13504
|
+
}
|
|
13505
|
+
},
|
|
13506
|
+
{
|
|
13507
|
+
intent: "wave-edge",
|
|
13508
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
13509
|
+
family: "wave",
|
|
13510
|
+
variantId: "classic",
|
|
13511
|
+
label: "Classic wave",
|
|
13512
|
+
variantLabel: "Classic",
|
|
13513
|
+
treatment: {
|
|
13514
|
+
kind: "wave-edge",
|
|
13515
|
+
height: "medium",
|
|
13516
|
+
amplitude: "balanced",
|
|
13517
|
+
rhythm: "double",
|
|
13518
|
+
symmetry: "asymmetrical"
|
|
13519
|
+
},
|
|
13520
|
+
size: "medium",
|
|
13521
|
+
heightExpression: mediumHeight,
|
|
13522
|
+
shape: {
|
|
13523
|
+
kind: "wave",
|
|
13524
|
+
mask: "classic"
|
|
13525
|
+
}
|
|
13526
|
+
},
|
|
13527
|
+
{
|
|
13528
|
+
intent: "wave-edge-gentle",
|
|
13529
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
13530
|
+
family: "wave",
|
|
13531
|
+
variantId: "gentle",
|
|
13532
|
+
label: "Gentle wave",
|
|
13533
|
+
variantLabel: "Gentle",
|
|
13534
|
+
treatment: {
|
|
13535
|
+
kind: "wave-edge",
|
|
13536
|
+
height: "compact",
|
|
13537
|
+
amplitude: "subtle",
|
|
13538
|
+
rhythm: "single",
|
|
13539
|
+
symmetry: "symmetrical"
|
|
13540
|
+
},
|
|
13541
|
+
size: "compact",
|
|
13542
|
+
heightExpression: compactHeight,
|
|
13543
|
+
shape: {
|
|
13544
|
+
kind: "wave",
|
|
13545
|
+
mask: "gentle"
|
|
13546
|
+
}
|
|
13547
|
+
},
|
|
13548
|
+
{
|
|
13549
|
+
intent: "wave-edge-bold",
|
|
13550
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
13551
|
+
family: "wave",
|
|
13552
|
+
variantId: "bold",
|
|
13553
|
+
label: "Bold wave",
|
|
13554
|
+
variantLabel: "Bold",
|
|
13555
|
+
treatment: {
|
|
13556
|
+
kind: "wave-edge",
|
|
13557
|
+
height: "large",
|
|
13558
|
+
amplitude: "bold",
|
|
13559
|
+
rhythm: "double",
|
|
13560
|
+
symmetry: "symmetrical"
|
|
13561
|
+
},
|
|
13562
|
+
size: "large",
|
|
13563
|
+
heightExpression: largeHeight,
|
|
13564
|
+
shape: {
|
|
13565
|
+
kind: "wave",
|
|
13566
|
+
mask: "bold"
|
|
13567
|
+
}
|
|
13568
|
+
},
|
|
13569
|
+
{
|
|
13570
|
+
intent: "wave-edge-drift",
|
|
13571
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
13572
|
+
family: "wave",
|
|
13573
|
+
variantId: "drift",
|
|
13574
|
+
label: "Drift wave",
|
|
13575
|
+
variantLabel: "Drift",
|
|
13576
|
+
treatment: {
|
|
13577
|
+
kind: "wave-edge",
|
|
13578
|
+
height: "medium",
|
|
13579
|
+
amplitude: "balanced",
|
|
13580
|
+
rhythm: "double",
|
|
13581
|
+
symmetry: "drift"
|
|
13582
|
+
},
|
|
13583
|
+
size: "medium",
|
|
13584
|
+
heightExpression: mediumHeight,
|
|
13585
|
+
shape: {
|
|
13586
|
+
kind: "wave",
|
|
13587
|
+
mask: "drift"
|
|
13588
|
+
}
|
|
13589
|
+
},
|
|
13590
|
+
{
|
|
13591
|
+
intent: "angle-edge-subtle",
|
|
13592
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
13593
|
+
family: "angle",
|
|
13594
|
+
variantId: "subtle",
|
|
13595
|
+
label: "Subtle angle",
|
|
13596
|
+
variantLabel: "Subtle",
|
|
13597
|
+
treatment: {
|
|
13598
|
+
kind: "angle-edge",
|
|
13599
|
+
height: "compact",
|
|
13600
|
+
slope: "subtle",
|
|
13601
|
+
direction: "forward"
|
|
13602
|
+
},
|
|
13603
|
+
size: "compact",
|
|
13604
|
+
heightExpression: compactHeight,
|
|
13605
|
+
shape: {
|
|
13606
|
+
kind: "angle",
|
|
13607
|
+
polygon: {
|
|
13608
|
+
startTopPercent: 34,
|
|
13609
|
+
endTopPercent: 18
|
|
13610
|
+
}
|
|
13611
|
+
}
|
|
13612
|
+
},
|
|
13613
|
+
{
|
|
13614
|
+
intent: "angle-edge",
|
|
13615
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
13616
|
+
family: "angle",
|
|
13617
|
+
variantId: "balanced",
|
|
13618
|
+
label: "Balanced angle",
|
|
13619
|
+
variantLabel: "Balanced",
|
|
13620
|
+
treatment: {
|
|
13621
|
+
kind: "angle-edge",
|
|
13622
|
+
height: "medium",
|
|
13623
|
+
slope: "balanced",
|
|
13624
|
+
direction: "forward"
|
|
13625
|
+
},
|
|
13626
|
+
size: "medium",
|
|
13627
|
+
heightExpression: mediumHeight,
|
|
13628
|
+
shape: {
|
|
13629
|
+
kind: "angle",
|
|
13630
|
+
polygon: {
|
|
13631
|
+
startTopPercent: 42,
|
|
13632
|
+
endTopPercent: 8
|
|
13633
|
+
}
|
|
13634
|
+
}
|
|
13635
|
+
},
|
|
13636
|
+
{
|
|
13637
|
+
intent: "angle-edge-steep",
|
|
13638
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
13639
|
+
family: "angle",
|
|
13640
|
+
variantId: "steep",
|
|
13641
|
+
label: "Steep angle",
|
|
13642
|
+
variantLabel: "Steep",
|
|
13643
|
+
treatment: {
|
|
13644
|
+
kind: "angle-edge",
|
|
13645
|
+
height: "large",
|
|
13646
|
+
slope: "steep",
|
|
13647
|
+
direction: "forward"
|
|
13648
|
+
},
|
|
13649
|
+
size: "large",
|
|
13650
|
+
heightExpression: largeHeight,
|
|
13651
|
+
shape: {
|
|
13652
|
+
kind: "angle",
|
|
13653
|
+
polygon: {
|
|
13654
|
+
startTopPercent: 54,
|
|
13655
|
+
endTopPercent: 0
|
|
13656
|
+
}
|
|
13657
|
+
}
|
|
13658
|
+
}
|
|
13659
|
+
]);
|
|
12965
13660
|
//#endregion
|
|
12966
13661
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
12967
13662
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -12972,42 +13667,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
12972
13667
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
12973
13668
|
};
|
|
12974
13669
|
}
|
|
12975
|
-
|
|
13670
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
13671
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
13672
|
+
/**
|
|
13673
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
13674
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
13675
|
+
*/
|
|
13676
|
+
function requireCatalogueValue(values, intent) {
|
|
13677
|
+
const value = values.get(intent);
|
|
13678
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
13679
|
+
return value;
|
|
13680
|
+
}
|
|
12976
13681
|
const noneBoundaryOption = {
|
|
12977
13682
|
id: asBoundaryOptionId("break:none"),
|
|
12978
13683
|
label: "None",
|
|
12979
13684
|
transitionAfter: "none",
|
|
12980
13685
|
treatment: { kind: "none" }
|
|
12981
13686
|
};
|
|
12982
|
-
const
|
|
12983
|
-
id:
|
|
12984
|
-
label:
|
|
12985
|
-
transitionAfter:
|
|
12986
|
-
treatment:
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
13687
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
13688
|
+
id: entry.optionId,
|
|
13689
|
+
label: entry.label,
|
|
13690
|
+
transitionAfter: entry.intent,
|
|
13691
|
+
treatment: entry.treatment
|
|
13692
|
+
}]));
|
|
13693
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
13694
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
13695
|
+
}
|
|
13696
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
13697
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
13698
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
13699
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
13700
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
13701
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
13702
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
13703
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
13704
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
13705
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
13706
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
13707
|
+
/**
|
|
13708
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
13709
|
+
*/
|
|
13710
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
13711
|
+
const noneTransitionVariant = {
|
|
13712
|
+
familyId: "none",
|
|
13713
|
+
variantId: "none",
|
|
13714
|
+
label: "None",
|
|
13715
|
+
boundaryOption: noneBoundaryOption
|
|
12991
13716
|
};
|
|
12992
|
-
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
12996
|
-
|
|
12997
|
-
|
|
12998
|
-
|
|
12999
|
-
|
|
13000
|
-
|
|
13717
|
+
function transitionVariantForEntry(entry) {
|
|
13718
|
+
return {
|
|
13719
|
+
familyId: entry.family,
|
|
13720
|
+
variantId: entry.variantId,
|
|
13721
|
+
label: entry.variantLabel,
|
|
13722
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
13723
|
+
};
|
|
13724
|
+
}
|
|
13725
|
+
const sectionTransitionFamilies = [{
|
|
13726
|
+
id: "none",
|
|
13727
|
+
label: "None",
|
|
13728
|
+
variants: [noneTransitionVariant]
|
|
13729
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
13730
|
+
id: family.id,
|
|
13731
|
+
label: family.label,
|
|
13732
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
13733
|
+
}))];
|
|
13734
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
13735
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
13736
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
13737
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
13738
|
+
function stableTreatmentKey(treatment) {
|
|
13739
|
+
switch (treatment.kind) {
|
|
13740
|
+
case "none": return "none";
|
|
13741
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
13742
|
+
case "wave-edge": return [
|
|
13743
|
+
treatment.kind,
|
|
13744
|
+
treatment.height,
|
|
13745
|
+
treatment.amplitude,
|
|
13746
|
+
treatment.rhythm,
|
|
13747
|
+
treatment.symmetry
|
|
13748
|
+
].join(":");
|
|
13749
|
+
case "angle-edge": return [
|
|
13750
|
+
treatment.kind,
|
|
13751
|
+
treatment.height,
|
|
13752
|
+
treatment.slope,
|
|
13753
|
+
treatment.direction
|
|
13754
|
+
].join(":");
|
|
13755
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
13756
|
+
}
|
|
13757
|
+
}
|
|
13758
|
+
requireThemeColorToken$1("background");
|
|
13759
|
+
function requireThemeColorToken$1(value) {
|
|
13760
|
+
const token = parseThemeColorToken(value);
|
|
13761
|
+
if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
|
|
13762
|
+
return token;
|
|
13763
|
+
}
|
|
13764
|
+
//#endregion
|
|
13765
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
13766
|
+
const defaultHeaderBrandPreferences = {
|
|
13767
|
+
brandDisplay: "auto",
|
|
13768
|
+
logoSize: "auto"
|
|
13001
13769
|
};
|
|
13002
|
-
asBoundaryOptionId("break:expansive");
|
|
13003
|
-
asBoundaryOptionId("break:wave");
|
|
13004
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
13005
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
13006
|
-
asBoundaryOptionId("break:wave-bold");
|
|
13007
|
-
asBoundaryOptionId("break:wave-drift");
|
|
13008
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
13009
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
13010
|
-
asBoundaryOptionId("break:angle-steep");
|
|
13011
13770
|
asBoundaryOptionId("break:unknown");
|
|
13012
13771
|
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
13013
13772
|
kind: z.literal("user-pinned"),
|
|
@@ -13134,14 +13893,11 @@ function validateUniquePageDesignPins(intent, ctx) {
|
|
|
13134
13893
|
label: "block Look pin"
|
|
13135
13894
|
});
|
|
13136
13895
|
addDuplicateStringIssues(ctx, {
|
|
13137
|
-
values: intent.boundaryPins.map((pin) =>
|
|
13896
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
13138
13897
|
path: ["boundaryPins"],
|
|
13139
13898
|
label: "boundary pin"
|
|
13140
13899
|
});
|
|
13141
13900
|
}
|
|
13142
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
13143
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
13144
|
-
}
|
|
13145
13901
|
//#endregion
|
|
13146
13902
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
13147
13903
|
/**
|
|
@@ -14769,6 +15525,13 @@ z.object({
|
|
|
14769
15525
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
14770
15526
|
authority: styleAuthoritySchema
|
|
14771
15527
|
}).strict();
|
|
15528
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
15529
|
+
asPageFlowPresetId("generated-default");
|
|
15530
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
15531
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
15532
|
+
asLayoutVariantKey("classic");
|
|
15533
|
+
asLayoutVariantKey("micro");
|
|
15534
|
+
asBoundaryOptionId("break:wave");
|
|
14772
15535
|
//#endregion
|
|
14773
15536
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
14774
15537
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -14792,7 +15555,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
14792
15555
|
}
|
|
14793
15556
|
/**
|
|
14794
15557
|
* Default design rules translate semantic page-level choices into the current
|
|
14795
|
-
* runtime's section background
|
|
15558
|
+
* runtime's section background vocabulary.
|
|
14796
15559
|
*/
|
|
14797
15560
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
14798
15561
|
sectionSurfaces: {
|
|
@@ -14827,8 +15590,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
14827
15590
|
color: "surface",
|
|
14828
15591
|
opacity: .88
|
|
14829
15592
|
}
|
|
14830
|
-
}
|
|
14831
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
15593
|
+
}
|
|
14832
15594
|
});
|
|
14833
15595
|
/**
|
|
14834
15596
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -16563,19 +17325,11 @@ const curatedSiteStyles = [
|
|
|
16563
17325
|
})
|
|
16564
17326
|
];
|
|
16565
17327
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
16566
|
-
asPageFlowPresetId("generated-default");
|
|
16567
|
-
asSiteStyleId("site-style:south-west-twerk-school");
|
|
16568
|
-
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
16569
|
-
asLayoutVariantKey("classic");
|
|
16570
|
-
asLayoutVariantKey("micro");
|
|
16571
|
-
asBoundaryOptionId("break:wave");
|
|
16572
|
-
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
16573
17328
|
//#endregion
|
|
16574
17329
|
//#region ../theme-core/src/site-styles/resolver.ts
|
|
16575
17330
|
const blockDesignFallback = {
|
|
16576
17331
|
sectionSurface: "base",
|
|
16577
17332
|
contentFrame: plainFrame,
|
|
16578
|
-
transitionAfter: "none",
|
|
16579
17333
|
sectionHeight: "default",
|
|
16580
17334
|
heroLegibility: "none",
|
|
16581
17335
|
imageSurfaceTreatment: { kind: "none" },
|
|
@@ -16586,7 +17340,7 @@ const blockDesignFallback = {
|
|
|
16586
17340
|
accordionIconTreatment: null,
|
|
16587
17341
|
composition: null
|
|
16588
17342
|
};
|
|
16589
|
-
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.
|
|
17343
|
+
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
16590
17344
|
//#endregion
|
|
16591
17345
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
16592
17346
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
@@ -17179,7 +17933,8 @@ const siteOptionSources = [
|
|
|
17179
17933
|
"eventCategories",
|
|
17180
17934
|
"eventSeries",
|
|
17181
17935
|
"venues",
|
|
17182
|
-
"staffMembers"
|
|
17936
|
+
"staffMembers",
|
|
17937
|
+
"appointmentServiceCategories"
|
|
17183
17938
|
];
|
|
17184
17939
|
const mediaDeliverySchema = z.object({
|
|
17185
17940
|
sizes: z.string().optional(),
|
|
@@ -28226,13 +28981,13 @@ const hours = stack({
|
|
|
28226
28981
|
as: "p",
|
|
28227
28982
|
className: "rb-caption rb-opacity-70"
|
|
28228
28983
|
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
28229
|
-
const socials = inline({ className: "rb-
|
|
28984
|
+
const socials = inline({ className: "rb-footer-socials" }, [link({
|
|
28230
28985
|
href: { $bind: { from: "social.href" } },
|
|
28231
28986
|
target: "_blank",
|
|
28232
28987
|
rel: "noreferrer noopener",
|
|
28233
28988
|
"aria-label": { $bind: { from: "social.label" } },
|
|
28234
|
-
className: "rb-nav-text transition-theme-standard"
|
|
28235
|
-
}, [icon({ className: "rb-
|
|
28989
|
+
className: "rb-footer-social-link rb-nav-text transition-theme-standard"
|
|
28990
|
+
}, [icon({ className: "rb-footer-social-icon" }, bind("social.icon"), when("social.icon")), text({ as: "span" }, bind("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
|
|
28236
28991
|
const authoredCopy = richText({
|
|
28237
28992
|
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
28238
28993
|
style: textColorStyle("text/80")
|
|
@@ -29873,6 +30628,15 @@ const appointmentServicesBlockDefinition = {
|
|
|
29873
30628
|
required: false,
|
|
29874
30629
|
ui: { intent: "content" }
|
|
29875
30630
|
},
|
|
30631
|
+
createSiteOptionSelectField({
|
|
30632
|
+
id: "categoryId",
|
|
30633
|
+
label: "Category",
|
|
30634
|
+
description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
|
|
30635
|
+
required: false,
|
|
30636
|
+
multiple: false,
|
|
30637
|
+
optionSource: "appointmentServiceCategories",
|
|
30638
|
+
ui: { intent: "content" }
|
|
30639
|
+
}),
|
|
29876
30640
|
sectionStylesField({
|
|
29877
30641
|
id: "_sectionStyles",
|
|
29878
30642
|
label: "Section styles",
|
|
@@ -29907,6 +30671,7 @@ const appointmentServicesBlockDefinition = {
|
|
|
29907
30671
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
29908
30672
|
el("appointment-services", {
|
|
29909
30673
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
30674
|
+
categoryId: { $bind: { from: "content.categoryId" } },
|
|
29910
30675
|
services: { $bind: { from: "data.services" } },
|
|
29911
30676
|
pathname: { $bind: { from: "$root.pathname" } },
|
|
29912
30677
|
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
@@ -37734,6 +38499,11 @@ const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
|
|
|
37734
38499
|
});
|
|
37735
38500
|
return z.NEVER;
|
|
37736
38501
|
});
|
|
38502
|
+
const mailingListSignupBlockSourceRefSchema = z.object({
|
|
38503
|
+
tag: z.literal("block_ref"),
|
|
38504
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
38505
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
38506
|
+
});
|
|
37737
38507
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
37738
38508
|
const newsletterSourceCommonSchema = z.object({
|
|
37739
38509
|
siteId: z.string().optional(),
|
|
@@ -37748,7 +38518,15 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
37748
38518
|
newsletterSourceCommonSchema.extend({
|
|
37749
38519
|
source: z.literal("block"),
|
|
37750
38520
|
blockId: z.string().nullable().optional(),
|
|
37751
|
-
|
|
38521
|
+
newsletterBlockSubmission: z.discriminatedUnion("tag", [
|
|
38522
|
+
z.object({
|
|
38523
|
+
tag: z.literal("ready"),
|
|
38524
|
+
sourceRef: mailingListSignupBlockSourceRefSchema
|
|
38525
|
+
}),
|
|
38526
|
+
z.object({ tag: z.literal("unpublished-form") }),
|
|
38527
|
+
z.object({ tag: z.literal("unpublished-settings") }),
|
|
38528
|
+
z.object({ tag: z.literal("unavailable") })
|
|
38529
|
+
])
|
|
37752
38530
|
}),
|
|
37753
38531
|
newsletterSourceCommonSchema.extend({
|
|
37754
38532
|
source: z.literal("signed-footer"),
|
|
@@ -37777,11 +38555,7 @@ const newsletterHydrationSchema = z.object({
|
|
|
37777
38555
|
target: z.discriminatedUnion("tag", [
|
|
37778
38556
|
z.object({
|
|
37779
38557
|
tag: z.literal("block-source"),
|
|
37780
|
-
sourceRef:
|
|
37781
|
-
tag: z.literal("block_ref"),
|
|
37782
|
-
blockId: mailingListSignupBlockIdSchema,
|
|
37783
|
-
contentVersionId: mailingListContentVersionIdSchema
|
|
37784
|
-
}).nullable()
|
|
38558
|
+
sourceRef: mailingListSignupBlockSourceRefSchema.nullable()
|
|
37785
38559
|
}),
|
|
37786
38560
|
z.object({
|
|
37787
38561
|
tag: z.literal("signed-footer-source"),
|
|
@@ -37790,7 +38564,11 @@ const newsletterHydrationSchema = z.object({
|
|
|
37790
38564
|
token: signedMailingListSourceTokenSchema
|
|
37791
38565
|
})
|
|
37792
38566
|
}),
|
|
37793
|
-
z.object({ tag: z.literal("preview") })
|
|
38567
|
+
z.object({ tag: z.literal("preview") }),
|
|
38568
|
+
z.object({
|
|
38569
|
+
tag: z.literal("unpublished-preview"),
|
|
38570
|
+
reason: z.enum(["unpublished-form", "unpublished-settings"])
|
|
38571
|
+
})
|
|
37794
38572
|
]),
|
|
37795
38573
|
setupRevision: z.number().int().positive().nullable(),
|
|
37796
38574
|
choiceProvider: z.enum([
|
|
@@ -37859,16 +38637,21 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
37859
38637
|
});
|
|
37860
38638
|
function projectNewsletterFormHydrationTarget(source) {
|
|
37861
38639
|
switch (source.source) {
|
|
37862
|
-
case "block": {
|
|
37863
|
-
|
|
37864
|
-
|
|
38640
|
+
case "block": switch (source.newsletterBlockSubmission.tag) {
|
|
38641
|
+
case "unpublished-form":
|
|
38642
|
+
case "unpublished-settings": return {
|
|
38643
|
+
tag: "unpublished-preview",
|
|
38644
|
+
reason: source.newsletterBlockSubmission.tag
|
|
38645
|
+
};
|
|
38646
|
+
case "ready": return {
|
|
37865
38647
|
tag: "block-source",
|
|
37866
|
-
sourceRef
|
|
38648
|
+
sourceRef: source.newsletterBlockSubmission.sourceRef
|
|
37867
38649
|
};
|
|
37868
|
-
return {
|
|
38650
|
+
case "unavailable": return {
|
|
37869
38651
|
tag: "block-source",
|
|
37870
38652
|
sourceRef: null
|
|
37871
38653
|
};
|
|
38654
|
+
default: return assertNever$3(source.newsletterBlockSubmission);
|
|
37872
38655
|
}
|
|
37873
38656
|
case "signed-footer": return {
|
|
37874
38657
|
tag: "signed-footer-source",
|
|
@@ -40379,6 +41162,17 @@ function coerceToString(value) {
|
|
|
40379
41162
|
return "";
|
|
40380
41163
|
}
|
|
40381
41164
|
/**
|
|
41165
|
+
* The appointment-services catalogue (issue 1403) pairs the services with the
|
|
41166
|
+
* site's ordered categories. Both are needed to group them, so that response
|
|
41167
|
+
* is passed through whole; any other `{ services }` wrapper is unwrapped.
|
|
41168
|
+
*/
|
|
41169
|
+
function coerceServicesPayload(record) {
|
|
41170
|
+
return Array.isArray(record.services) && Array.isArray(record.categories) ? {
|
|
41171
|
+
services: record.services,
|
|
41172
|
+
categories: record.categories
|
|
41173
|
+
} : record.services;
|
|
41174
|
+
}
|
|
41175
|
+
/**
|
|
40382
41176
|
* Extract data from API response.
|
|
40383
41177
|
* Unwraps common response wrappers: { data }, { form }, { entries }, { services }, { teamMembers }
|
|
40384
41178
|
*
|
|
@@ -40393,7 +41187,7 @@ function coercePayload(payload) {
|
|
|
40393
41187
|
if ("data" in record && typeof record.data !== "function") return record.data;
|
|
40394
41188
|
if ("form" in record && typeof record.form !== "function") return record.form;
|
|
40395
41189
|
if ("entries" in record && typeof record.entries !== "function") return record.entries;
|
|
40396
|
-
if ("services" in record && typeof record.services !== "function") return record
|
|
41190
|
+
if ("services" in record && typeof record.services !== "function") return coerceServicesPayload(record);
|
|
40397
41191
|
if ("teamMembers" in record && typeof record.teamMembers !== "function") return record.teamMembers;
|
|
40398
41192
|
}
|
|
40399
41193
|
return payload;
|
|
@@ -40913,6 +41707,46 @@ z.object({ acceptExtraSiteCharge: z.boolean().optional() });
|
|
|
40913
41707
|
//#region ../surfaces/src/index.ts
|
|
40914
41708
|
const SURFACE_IDS = ["core", "macadamia"];
|
|
40915
41709
|
const DEFAULT_SURFACE_ID = "core";
|
|
41710
|
+
/**
|
|
41711
|
+
* Root hosts for each surface, keyed by deployment tier. The tier-keyed shape
|
|
41712
|
+
* makes it impossible to mis-order entries: callers like
|
|
41713
|
+
* `buildSurfaceAwareDashboardOriginForSurfaceId` look up by tier directly
|
|
41714
|
+
* rather than relying on positional alignment between arrays.
|
|
41715
|
+
*/
|
|
41716
|
+
const SURFACE_ROOT_HOSTS = {
|
|
41717
|
+
core: {
|
|
41718
|
+
local: "localhost",
|
|
41719
|
+
prod: "riverbankcms.com"
|
|
41720
|
+
},
|
|
41721
|
+
macadamia: {
|
|
41722
|
+
local: "macadamia.localhost",
|
|
41723
|
+
prod: "macadamia.studio"
|
|
41724
|
+
}
|
|
41725
|
+
};
|
|
41726
|
+
const SURFACE_SITE_ROOT_HOSTS = {
|
|
41727
|
+
core: {
|
|
41728
|
+
local: "localhost",
|
|
41729
|
+
prod: "riverbanksites.com"
|
|
41730
|
+
},
|
|
41731
|
+
macadamia: {
|
|
41732
|
+
local: "macadamia.localhost",
|
|
41733
|
+
prod: "macadamia.studio"
|
|
41734
|
+
}
|
|
41735
|
+
};
|
|
41736
|
+
const SURFACE_SITE_ROOT_HOST_ALIASES = { core: { prod: ["preview.riverbanksites.com"] } };
|
|
41737
|
+
function surfaceHostTableValues(table) {
|
|
41738
|
+
return Object.values(table).flatMap((byTier) => Object.values(byTier).flat());
|
|
41739
|
+
}
|
|
41740
|
+
function siteSlugLabelUnderRoot(host, siteRootHost) {
|
|
41741
|
+
if (!host.endsWith(`.${siteRootHost}`)) return [];
|
|
41742
|
+
return host.slice(0, host.length - siteRootHost.length - 1).split(".").slice(-1);
|
|
41743
|
+
}
|
|
41744
|
+
function deriveSurfaceOwnedSiteSlugs() {
|
|
41745
|
+
const siteRootHosts = [...surfaceHostTableValues(SURFACE_SITE_ROOT_HOSTS), ...surfaceHostTableValues(SURFACE_SITE_ROOT_HOST_ALIASES)];
|
|
41746
|
+
const labels = [...surfaceHostTableValues(SURFACE_ROOT_HOSTS), ...siteRootHosts].flatMap((host) => siteRootHosts.flatMap((root) => siteSlugLabelUnderRoot(host, root)));
|
|
41747
|
+
return [...new Set(labels)].sort();
|
|
41748
|
+
}
|
|
41749
|
+
deriveSurfaceOwnedSiteSlugs();
|
|
40916
41750
|
[...SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID)];
|
|
40917
41751
|
//#endregion
|
|
40918
41752
|
//#region ../api/src/accountApi.ts
|
|
@@ -41295,7 +42129,12 @@ const appointmentSetupServiceDraftSchema = z.object({
|
|
|
41295
42129
|
venue: appointmentSetupVenueChoiceSchema,
|
|
41296
42130
|
timezone: z.string().trim().min(1).nullable(),
|
|
41297
42131
|
payment: appointmentSetupPaymentDraftSchema,
|
|
41298
|
-
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
42132
|
+
assignment: appointmentSetupServiceAssignmentDraftSchema,
|
|
42133
|
+
/**
|
|
42134
|
+
* The service's category, or null for "Other" (issue 1403). Omitted leaves
|
|
42135
|
+
* an existing service's category alone and puts a new one in "Other".
|
|
42136
|
+
*/
|
|
42137
|
+
categoryId: z.string().uuid().nullable().optional()
|
|
41299
42138
|
}).superRefine((service, ctx) => {
|
|
41300
42139
|
if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
|
|
41301
42140
|
code: "custom",
|
|
@@ -41536,6 +42375,7 @@ function parsePublicProductCategorySelector(value) {
|
|
|
41536
42375
|
productCategoryEntryId: record.productCategoryEntryId
|
|
41537
42376
|
};
|
|
41538
42377
|
}
|
|
42378
|
+
z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
|
|
41539
42379
|
//#endregion
|
|
41540
42380
|
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
41541
42381
|
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|
|
@@ -42006,21 +42846,42 @@ function resolveSiteCustomBlocks(site) {
|
|
|
42006
42846
|
}
|
|
42007
42847
|
//#endregion
|
|
42008
42848
|
//#region src/rendering/helpers/pageRuntimeSupport.ts
|
|
42009
|
-
function
|
|
42849
|
+
function collectMediaAssetSidecar(mediaAssets) {
|
|
42850
|
+
return Array.isArray(mediaAssets) && mediaAssets.length > 0 ? mediaAssets : void 0;
|
|
42851
|
+
}
|
|
42852
|
+
function readBlockContentId(value, name) {
|
|
42853
|
+
if (value === null || value === void 0) return null;
|
|
42854
|
+
if (typeof value === "string") return value;
|
|
42855
|
+
throw new Error(`Invalid ${name} in page: expected string or null`);
|
|
42856
|
+
}
|
|
42857
|
+
function readTransportedBlockIdentity(block, kind, stage) {
|
|
42858
|
+
return {
|
|
42859
|
+
draftContentId: readBlockContentId(block.draftContentId, "draft content id"),
|
|
42860
|
+
publishedPlacement: stage === "preview" ? readPublishedBlockPlacement(readBlockContentId(block.publishedContentId, "published content id"), sanitizeNullableSdkRuntimeBlockContent(kind, readNestedContentRecord(block.publishedContent))) : null
|
|
42861
|
+
};
|
|
42862
|
+
}
|
|
42863
|
+
function convertPageResponseBlock(block, stage) {
|
|
42010
42864
|
if (!isRecord(block)) throw new Error("Invalid block format in page API response");
|
|
42865
|
+
const header = readTransportedBlockHeader(block);
|
|
42866
|
+
const admission = readInvalidBlockAdmission(block.admission);
|
|
42867
|
+
return {
|
|
42868
|
+
...header,
|
|
42869
|
+
...readTransportedBlockIdentity(block, header.kind, stage),
|
|
42870
|
+
content: sanitizeSdkRuntimeBlockContent(header.kind, readContentRecord(block.content) ?? {}),
|
|
42871
|
+
draftContent: sanitizeNullableSdkRuntimeBlockContent(header.kind, readNestedContentRecord(block.draftContent)),
|
|
42872
|
+
...admission ? { admission } : {}
|
|
42873
|
+
};
|
|
42874
|
+
}
|
|
42875
|
+
function readTransportedBlockHeader(block) {
|
|
42011
42876
|
if (typeof block.id !== "string" && block.id !== null) throw new Error(`Invalid block id in page: expected string or null, got ${typeof block.id}`);
|
|
42012
42877
|
if (typeof block.kind !== "string") throw new Error(`Invalid block kind in page: expected string, got ${typeof block.kind}`);
|
|
42013
42878
|
if (typeof block.purpose !== "string") throw new Error(`Invalid block purpose in page: expected string, got ${typeof block.purpose}`);
|
|
42014
42879
|
if (block.contentVersionId !== void 0 && block.contentVersionId !== null && typeof block.contentVersionId !== "string") throw new Error(`Invalid content version id in page: expected string or null, got ${typeof block.contentVersionId}`);
|
|
42015
|
-
const admission = readInvalidBlockAdmission(block.admission);
|
|
42016
42880
|
return {
|
|
42017
42881
|
id: block.id,
|
|
42018
42882
|
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
42019
42883
|
kind: block.kind,
|
|
42020
|
-
purpose: block.purpose
|
|
42021
|
-
content: sanitizeSdkRuntimeBlockContent(block.kind, readContentRecord(block.content) ?? {}),
|
|
42022
|
-
draftContent: sanitizeNullableSdkRuntimeBlockContent(block.kind, readNestedContentRecord(block.draftContent)),
|
|
42023
|
-
...admission ? { admission } : {}
|
|
42884
|
+
purpose: block.purpose
|
|
42024
42885
|
};
|
|
42025
42886
|
}
|
|
42026
42887
|
function readInvalidBlockAdmission(value) {
|
|
@@ -42033,7 +42894,7 @@ function buildPageOutline(input) {
|
|
|
42033
42894
|
name: input.name,
|
|
42034
42895
|
path: input.path ?? input.fallbackPath,
|
|
42035
42896
|
purpose: input.purpose,
|
|
42036
|
-
blocks: input.blocks.map(convertPageResponseBlock)
|
|
42897
|
+
blocks: input.blocks.map((block) => convertPageResponseBlock(block, input.previewStage))
|
|
42037
42898
|
};
|
|
42038
42899
|
}
|
|
42039
42900
|
function buildRenderablePageOutline(input) {
|
|
@@ -42059,6 +42920,8 @@ function projectRenderablePageOutline(page) {
|
|
|
42059
42920
|
function admitSdkRuntimePageBlock(block, customBlocks) {
|
|
42060
42921
|
const base = {
|
|
42061
42922
|
id: block.id,
|
|
42923
|
+
draftContentId: block.draftContentId,
|
|
42924
|
+
publishedPlacement: block.publishedPlacement,
|
|
42062
42925
|
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
42063
42926
|
kind: block.kind,
|
|
42064
42927
|
purpose: block.purpose,
|
|
@@ -42120,6 +42983,40 @@ function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
|
|
|
42120
42983
|
*
|
|
42121
42984
|
* Use this in client components for dynamic page loading.
|
|
42122
42985
|
*/
|
|
42986
|
+
async function loadUsePageSuccess(input) {
|
|
42987
|
+
const { client, site, pageResponse, siteId, path, pageId, preview } = input;
|
|
42988
|
+
const pageData = pageResponse.page;
|
|
42989
|
+
const mediaAssets = collectMediaAssetSidecar(pageResponse.mediaAssets);
|
|
42990
|
+
const previewStage = preview ? "preview" : "published";
|
|
42991
|
+
const pageOutline = buildRenderablePageOutline({
|
|
42992
|
+
name: pageData.name,
|
|
42993
|
+
path: pageData.path ?? path,
|
|
42994
|
+
fallbackPath: path,
|
|
42995
|
+
purpose: pageData.purpose,
|
|
42996
|
+
blocks: pageData.blocks,
|
|
42997
|
+
previewStage,
|
|
42998
|
+
customBlocks: resolveSiteCustomBlocks(site)
|
|
42999
|
+
});
|
|
43000
|
+
const resolvedData = await prefetchBlockData(projectRenderablePageOutline(pageOutline), {
|
|
43001
|
+
siteId,
|
|
43002
|
+
pageId: pageId ?? pageData.id,
|
|
43003
|
+
previewStage
|
|
43004
|
+
}, client);
|
|
43005
|
+
return {
|
|
43006
|
+
loading: false,
|
|
43007
|
+
error: null,
|
|
43008
|
+
page: pageOutline,
|
|
43009
|
+
runtimeJoins: pageData.runtimeJoins,
|
|
43010
|
+
theme: requireSdkTheme(site.theme, siteId),
|
|
43011
|
+
siteId,
|
|
43012
|
+
resolvedData,
|
|
43013
|
+
dataContext: { previewStage },
|
|
43014
|
+
mailingList: site.mailingList,
|
|
43015
|
+
sdkConfig: site.sdkConfig ?? null,
|
|
43016
|
+
supabaseUrl: site.supabaseUrl,
|
|
43017
|
+
...mediaAssets ? { mediaAssets } : {}
|
|
43018
|
+
};
|
|
43019
|
+
}
|
|
42123
43020
|
/**
|
|
42124
43021
|
* Client-side React hook to fetch all data needed for <Page> component.
|
|
42125
43022
|
*
|
|
@@ -42210,36 +43107,17 @@ function usePage(params) {
|
|
|
42210
43107
|
if (cancelled) return;
|
|
42211
43108
|
if ("entry" in pageResponse) throw new Error("This path resolves to a content entry, not a page. Use useContent() instead, which handles both pages and entries. For entries, useContent() returns the raw entry data for custom rendering.");
|
|
42212
43109
|
if ("pageSurface" in pageResponse) throw new Error("This path resolves to a page surface, not a page. Use useContent() instead, which handles pages, entries, and page surfaces.");
|
|
42213
|
-
const
|
|
42214
|
-
|
|
42215
|
-
|
|
42216
|
-
|
|
42217
|
-
name: pageData.name,
|
|
42218
|
-
path: canonicalPagePath,
|
|
42219
|
-
fallbackPath: path,
|
|
42220
|
-
purpose: pageData.purpose,
|
|
42221
|
-
blocks: pageData.blocks,
|
|
42222
|
-
customBlocks: resolveSiteCustomBlocks(site)
|
|
42223
|
-
});
|
|
42224
|
-
const resolvedData = await prefetchBlockData(projectRenderablePageOutline(pageOutline), {
|
|
43110
|
+
const success = await loadUsePageSuccess({
|
|
43111
|
+
client,
|
|
43112
|
+
site,
|
|
43113
|
+
pageResponse,
|
|
42225
43114
|
siteId,
|
|
42226
|
-
|
|
42227
|
-
|
|
42228
|
-
|
|
42229
|
-
if (cancelled) return;
|
|
42230
|
-
setResult({
|
|
42231
|
-
loading: false,
|
|
42232
|
-
error: null,
|
|
42233
|
-
page: pageOutline,
|
|
42234
|
-
runtimeBoundaries: pageData.runtimeBoundaries,
|
|
42235
|
-
theme: requireSdkTheme(site.theme, siteId),
|
|
42236
|
-
siteId,
|
|
42237
|
-
resolvedData,
|
|
42238
|
-
mailingList: site.mailingList,
|
|
42239
|
-
sdkConfig: site.sdkConfig ?? null,
|
|
42240
|
-
supabaseUrl: site.supabaseUrl,
|
|
42241
|
-
...mediaAssets ? { mediaAssets } : {}
|
|
43115
|
+
path,
|
|
43116
|
+
pageId,
|
|
43117
|
+
preview
|
|
42242
43118
|
});
|
|
43119
|
+
if (cancelled) return;
|
|
43120
|
+
setResult(success);
|
|
42243
43121
|
} catch (error) {
|
|
42244
43122
|
if (cancelled) return;
|
|
42245
43123
|
setResult({
|
|
@@ -42266,9 +43144,6 @@ function usePage(params) {
|
|
|
42266
43144
|
]);
|
|
42267
43145
|
return result;
|
|
42268
43146
|
}
|
|
42269
|
-
function toMediaAssetSidecar(mediaAssets) {
|
|
42270
|
-
return mediaAssets ?? [];
|
|
42271
|
-
}
|
|
42272
43147
|
//#endregion
|
|
42273
43148
|
//#region src/hooks/index.ts
|
|
42274
43149
|
/**
|