@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/server/config.mjs
CHANGED
|
@@ -54,6 +54,75 @@ const footerModeSchema = z.enum([
|
|
|
54
54
|
"none"
|
|
55
55
|
]);
|
|
56
56
|
//#endregion
|
|
57
|
+
//#region ../api/src/defineEndpointDefinitions.ts
|
|
58
|
+
/**
|
|
59
|
+
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
60
|
+
* method, and parameter contract for the typed URL builders.
|
|
61
|
+
*/
|
|
62
|
+
function defineEndpointDefinitions(definitions) {
|
|
63
|
+
return definitions;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
67
|
+
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
68
|
+
subscribeNewsletter: {
|
|
69
|
+
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
70
|
+
method: "POST",
|
|
71
|
+
tags: ["public-newsletter-{siteId}"],
|
|
72
|
+
auth: "public",
|
|
73
|
+
responseKind: "json"
|
|
74
|
+
},
|
|
75
|
+
confirmNewsletter: {
|
|
76
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
77
|
+
method: "GET",
|
|
78
|
+
tags: ["public-newsletter-{siteId}"],
|
|
79
|
+
auth: "public",
|
|
80
|
+
responseKind: "text"
|
|
81
|
+
},
|
|
82
|
+
unsubscribeNewsletter: {
|
|
83
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
84
|
+
method: "GET",
|
|
85
|
+
tags: ["public-newsletter-{siteId}"],
|
|
86
|
+
auth: "public",
|
|
87
|
+
responseKind: "text"
|
|
88
|
+
},
|
|
89
|
+
unsubscribeNewsletterPost: {
|
|
90
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
91
|
+
method: "POST",
|
|
92
|
+
tags: ["public-newsletter-{siteId}"],
|
|
93
|
+
auth: "public",
|
|
94
|
+
responseKind: "text"
|
|
95
|
+
},
|
|
96
|
+
confirmNewsletterPost: {
|
|
97
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
98
|
+
method: "POST",
|
|
99
|
+
tags: ["public-newsletter-{siteId}"],
|
|
100
|
+
auth: "public",
|
|
101
|
+
responseKind: "text"
|
|
102
|
+
},
|
|
103
|
+
getNewsletterPreferences: {
|
|
104
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
105
|
+
method: "GET",
|
|
106
|
+
tags: ["public-newsletter-{siteId}"],
|
|
107
|
+
auth: "public",
|
|
108
|
+
responseKind: "text"
|
|
109
|
+
},
|
|
110
|
+
saveNewsletterPreferences: {
|
|
111
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
112
|
+
method: "POST",
|
|
113
|
+
tags: ["public-newsletter-{siteId}"],
|
|
114
|
+
auth: "public",
|
|
115
|
+
responseKind: "text"
|
|
116
|
+
},
|
|
117
|
+
getNewsletterArchive: {
|
|
118
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
119
|
+
method: "GET",
|
|
120
|
+
tags: ["public-newsletter-{siteId}"],
|
|
121
|
+
auth: "public",
|
|
122
|
+
responseKind: "text"
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
//#endregion
|
|
57
126
|
//#region ../api/src/apiEndpointTypes.ts
|
|
58
127
|
function allowedDemoMutationPolicy() {
|
|
59
128
|
return {
|
|
@@ -145,17 +214,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
|
|
|
145
214
|
}
|
|
146
215
|
};
|
|
147
216
|
//#endregion
|
|
148
|
-
//#region ../api/src/defineEndpointDefinitions.ts
|
|
149
|
-
/**
|
|
150
|
-
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
151
|
-
* method, and parameter contract for the typed URL builders.
|
|
152
|
-
*/
|
|
153
|
-
function defineEndpointDefinitions(definitions) {
|
|
154
|
-
return definitions;
|
|
155
|
-
}
|
|
156
|
-
//#endregion
|
|
157
217
|
//#region ../api/src/appointmentEndpointDefinitions.ts
|
|
158
218
|
const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
219
|
+
...defineEndpointDefinitions({
|
|
220
|
+
listGroupedAppointmentServices: {
|
|
221
|
+
path: "/sites/{siteId}/bookings/services/grouped",
|
|
222
|
+
method: "GET",
|
|
223
|
+
auth: "user",
|
|
224
|
+
responseKind: "json",
|
|
225
|
+
errors: ["server:internal_error"]
|
|
226
|
+
},
|
|
227
|
+
reorderAppointmentServices: {
|
|
228
|
+
path: "/sites/{siteId}/bookings/services/order",
|
|
229
|
+
method: "PUT",
|
|
230
|
+
auth: "user",
|
|
231
|
+
responseKind: "json",
|
|
232
|
+
errors: [
|
|
233
|
+
"validation:invalid_input",
|
|
234
|
+
"auth:forbidden",
|
|
235
|
+
"resource:not_found",
|
|
236
|
+
"resource:conflict",
|
|
237
|
+
"server:internal_error"
|
|
238
|
+
]
|
|
239
|
+
},
|
|
240
|
+
listAppointmentServiceCategories: {
|
|
241
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
242
|
+
method: "GET",
|
|
243
|
+
auth: "user",
|
|
244
|
+
responseKind: "json",
|
|
245
|
+
errors: ["server:internal_error"]
|
|
246
|
+
},
|
|
247
|
+
createAppointmentServiceCategory: {
|
|
248
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
249
|
+
method: "POST",
|
|
250
|
+
auth: "user",
|
|
251
|
+
responseKind: "json",
|
|
252
|
+
errors: [
|
|
253
|
+
"validation:invalid_input",
|
|
254
|
+
"auth:forbidden",
|
|
255
|
+
"resource:conflict",
|
|
256
|
+
"server:internal_error"
|
|
257
|
+
]
|
|
258
|
+
},
|
|
259
|
+
updateAppointmentServiceCategory: {
|
|
260
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
261
|
+
method: "PUT",
|
|
262
|
+
auth: "user",
|
|
263
|
+
responseKind: "json",
|
|
264
|
+
errors: [
|
|
265
|
+
"validation:invalid_input",
|
|
266
|
+
"auth:forbidden",
|
|
267
|
+
"resource:not_found",
|
|
268
|
+
"resource:conflict",
|
|
269
|
+
"server:internal_error"
|
|
270
|
+
]
|
|
271
|
+
},
|
|
272
|
+
deleteAppointmentServiceCategory: {
|
|
273
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
274
|
+
method: "DELETE",
|
|
275
|
+
auth: "user",
|
|
276
|
+
responseKind: "json",
|
|
277
|
+
errors: [
|
|
278
|
+
"auth:forbidden",
|
|
279
|
+
"resource:not_found",
|
|
280
|
+
"server:internal_error"
|
|
281
|
+
]
|
|
282
|
+
},
|
|
283
|
+
reorderAppointmentServiceCategories: {
|
|
284
|
+
path: "/sites/{siteId}/bookings/service-categories/order",
|
|
285
|
+
method: "PUT",
|
|
286
|
+
auth: "user",
|
|
287
|
+
responseKind: "json",
|
|
288
|
+
errors: [
|
|
289
|
+
"validation:invalid_input",
|
|
290
|
+
"auth:forbidden",
|
|
291
|
+
"resource:conflict",
|
|
292
|
+
"server:internal_error"
|
|
293
|
+
]
|
|
294
|
+
}
|
|
295
|
+
}),
|
|
159
296
|
listAppointmentResources: {
|
|
160
297
|
path: "/sites/{siteId}/bookings/resources",
|
|
161
298
|
method: "GET",
|
|
@@ -866,6 +1003,13 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
|
|
|
866
1003
|
errors: [],
|
|
867
1004
|
responseKind: "blob"
|
|
868
1005
|
},
|
|
1006
|
+
exportEventOfferingRegistrationsCsv: {
|
|
1007
|
+
path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv",
|
|
1008
|
+
method: "GET",
|
|
1009
|
+
auth: "user",
|
|
1010
|
+
errors: [],
|
|
1011
|
+
responseKind: "blob"
|
|
1012
|
+
},
|
|
869
1013
|
updateEventSeriesRegistration: {
|
|
870
1014
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
|
|
871
1015
|
method: "PATCH",
|
|
@@ -876,6 +1020,19 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
|
|
|
876
1020
|
"resource:not_found",
|
|
877
1021
|
"server:internal_error"
|
|
878
1022
|
]
|
|
1023
|
+
},
|
|
1024
|
+
saveEventSeriesRegistrationAnswers: {
|
|
1025
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers",
|
|
1026
|
+
method: "PUT",
|
|
1027
|
+
auth: "user",
|
|
1028
|
+
responseKind: "json",
|
|
1029
|
+
errors: [
|
|
1030
|
+
"validation:invalid_input",
|
|
1031
|
+
"auth:forbidden",
|
|
1032
|
+
"resource:not_found",
|
|
1033
|
+
"resource:conflict",
|
|
1034
|
+
"server:internal_error"
|
|
1035
|
+
]
|
|
879
1036
|
}
|
|
880
1037
|
});
|
|
881
1038
|
//#endregion
|
|
@@ -1296,46 +1453,185 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1296
1453
|
responseKind: "json",
|
|
1297
1454
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1298
1455
|
},
|
|
1299
|
-
|
|
1300
|
-
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/
|
|
1456
|
+
scheduleNewsletterCampaign: {
|
|
1457
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule",
|
|
1301
1458
|
method: "POST",
|
|
1302
1459
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1303
1460
|
auth: "user",
|
|
1304
1461
|
responseKind: "json",
|
|
1305
1462
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1306
1463
|
},
|
|
1307
|
-
|
|
1308
|
-
path: "/sites/{siteId}/newsletter/
|
|
1309
|
-
method: "
|
|
1464
|
+
unscheduleNewsletterCampaign: {
|
|
1465
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule",
|
|
1466
|
+
method: "POST",
|
|
1467
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1468
|
+
auth: "user",
|
|
1469
|
+
responseKind: "json",
|
|
1470
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1471
|
+
},
|
|
1472
|
+
stopNewsletterCampaign: {
|
|
1473
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop",
|
|
1474
|
+
method: "POST",
|
|
1310
1475
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1311
1476
|
auth: "user",
|
|
1477
|
+
responseKind: "json",
|
|
1478
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1479
|
+
},
|
|
1480
|
+
testSendNewsletterCampaign: {
|
|
1481
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
|
|
1482
|
+
method: "POST",
|
|
1483
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1484
|
+
auth: "user",
|
|
1485
|
+
responseKind: "json",
|
|
1486
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1487
|
+
}
|
|
1488
|
+
});
|
|
1489
|
+
//#endregion
|
|
1490
|
+
//#region ../api/src/sdkEventEndpointDefinitions.ts
|
|
1491
|
+
/**
|
|
1492
|
+
* The SDK's Event graph: the Events themselves and the occurrences of one run.
|
|
1493
|
+
* Extracted from `endpoints.ts` so this family can be read, and added to, on
|
|
1494
|
+
* its own. New entries here must declare `errors`; the
|
|
1495
|
+
* require-api-endpoint-errors lint enforces that here as in endpoints.ts.
|
|
1496
|
+
*/
|
|
1497
|
+
const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1498
|
+
sdkListEvents: {
|
|
1499
|
+
path: "/sdk/{siteId}/events",
|
|
1500
|
+
method: "GET",
|
|
1501
|
+
auth: "service",
|
|
1312
1502
|
responseKind: "json"
|
|
1313
1503
|
},
|
|
1314
|
-
|
|
1315
|
-
path: "/
|
|
1504
|
+
sdkUpsertEvent: {
|
|
1505
|
+
path: "/sdk/{siteId}/events",
|
|
1316
1506
|
method: "POST",
|
|
1507
|
+
auth: "service",
|
|
1508
|
+
responseKind: "json",
|
|
1317
1509
|
errors: [
|
|
1318
1510
|
"validation:invalid_input",
|
|
1319
1511
|
"resource:not_found",
|
|
1320
|
-
"
|
|
1512
|
+
"resource:conflict",
|
|
1513
|
+
"billing:plan_limit_exceeded",
|
|
1321
1514
|
"server:internal_error"
|
|
1322
|
-
]
|
|
1323
|
-
|
|
1324
|
-
|
|
1515
|
+
]
|
|
1516
|
+
},
|
|
1517
|
+
sdkGetEvent: {
|
|
1518
|
+
path: "/sdk/{siteId}/events/{identifier}",
|
|
1519
|
+
method: "GET",
|
|
1520
|
+
auth: "service",
|
|
1325
1521
|
responseKind: "json"
|
|
1326
1522
|
},
|
|
1327
|
-
|
|
1328
|
-
path: "/
|
|
1523
|
+
sdkDeleteEvent: {
|
|
1524
|
+
path: "/sdk/{siteId}/events/{identifier}",
|
|
1525
|
+
method: "DELETE",
|
|
1526
|
+
auth: "service",
|
|
1527
|
+
responseKind: "json",
|
|
1528
|
+
errors: [
|
|
1529
|
+
"resource:not_found",
|
|
1530
|
+
"resource:conflict",
|
|
1531
|
+
"server:internal_error"
|
|
1532
|
+
]
|
|
1533
|
+
},
|
|
1534
|
+
sdkTakeEventOffline: {
|
|
1535
|
+
path: "/sdk/{siteId}/events/{identifier}/lifecycle",
|
|
1329
1536
|
method: "POST",
|
|
1537
|
+
auth: "service",
|
|
1538
|
+
responseKind: "json",
|
|
1539
|
+
errors: [
|
|
1540
|
+
"resource:not_found",
|
|
1541
|
+
"validation:invalid_input",
|
|
1542
|
+
"resource:conflict",
|
|
1543
|
+
"server:internal_error"
|
|
1544
|
+
]
|
|
1545
|
+
},
|
|
1546
|
+
sdkListEventOccurrences: {
|
|
1547
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
|
|
1548
|
+
method: "GET",
|
|
1549
|
+
auth: "service",
|
|
1550
|
+
responseKind: "json",
|
|
1330
1551
|
errors: [
|
|
1552
|
+
"resource:not_found",
|
|
1331
1553
|
"validation:invalid_input",
|
|
1554
|
+
"server:internal_error"
|
|
1555
|
+
]
|
|
1556
|
+
},
|
|
1557
|
+
sdkAddEventOccurrence: {
|
|
1558
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
|
|
1559
|
+
method: "POST",
|
|
1560
|
+
auth: "service",
|
|
1561
|
+
responseKind: "json",
|
|
1562
|
+
errors: [
|
|
1332
1563
|
"resource:not_found",
|
|
1333
|
-
"
|
|
1564
|
+
"validation:invalid_input",
|
|
1565
|
+
"resource:conflict",
|
|
1334
1566
|
"server:internal_error"
|
|
1335
|
-
]
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1567
|
+
]
|
|
1568
|
+
},
|
|
1569
|
+
sdkUpdateEventOccurrence: {
|
|
1570
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
|
|
1571
|
+
method: "PATCH",
|
|
1572
|
+
auth: "service",
|
|
1573
|
+
responseKind: "json",
|
|
1574
|
+
errors: [
|
|
1575
|
+
"resource:not_found",
|
|
1576
|
+
"validation:invalid_input",
|
|
1577
|
+
"resource:conflict",
|
|
1578
|
+
"server:internal_error"
|
|
1579
|
+
]
|
|
1580
|
+
},
|
|
1581
|
+
sdkCancelEventOccurrence: {
|
|
1582
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
|
|
1583
|
+
method: "POST",
|
|
1584
|
+
auth: "service",
|
|
1585
|
+
responseKind: "json",
|
|
1586
|
+
errors: [
|
|
1587
|
+
"resource:not_found",
|
|
1588
|
+
"resource:conflict",
|
|
1589
|
+
"server:internal_error"
|
|
1590
|
+
]
|
|
1591
|
+
},
|
|
1592
|
+
sdkDeleteEventOccurrence: {
|
|
1593
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
|
|
1594
|
+
method: "DELETE",
|
|
1595
|
+
auth: "service",
|
|
1596
|
+
responseKind: "json",
|
|
1597
|
+
errors: [
|
|
1598
|
+
"resource:not_found",
|
|
1599
|
+
"resource:conflict",
|
|
1600
|
+
"server:internal_error"
|
|
1601
|
+
]
|
|
1602
|
+
}
|
|
1603
|
+
});
|
|
1604
|
+
//#endregion
|
|
1605
|
+
//#region ../api/src/sdkPageDesignEndpointDefinitions.ts
|
|
1606
|
+
/**
|
|
1607
|
+
* SDK management endpoints for a page's draft design (issue 1497), spread into
|
|
1608
|
+
* `ENDPOINT_DEFINITIONS` like the other endpoint-definition modules. New
|
|
1609
|
+
* entries here must declare `errors`, which the require-api-endpoint-errors
|
|
1610
|
+
* lint enforces.
|
|
1611
|
+
*/
|
|
1612
|
+
const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1613
|
+
sdkGetPageDesign: {
|
|
1614
|
+
path: "/sdk/{siteId}/pages/{identifier}/design",
|
|
1615
|
+
method: "GET",
|
|
1616
|
+
auth: "service",
|
|
1617
|
+
responseKind: "json",
|
|
1618
|
+
errors: [
|
|
1619
|
+
"resource:not_found",
|
|
1620
|
+
"validation:invalid_input",
|
|
1621
|
+
"server:internal_error"
|
|
1622
|
+
]
|
|
1623
|
+
},
|
|
1624
|
+
sdkSavePageDesign: {
|
|
1625
|
+
path: "/sdk/{siteId}/pages/{identifier}/design",
|
|
1626
|
+
method: "POST",
|
|
1627
|
+
auth: "service",
|
|
1628
|
+
responseKind: "json",
|
|
1629
|
+
errors: [
|
|
1630
|
+
"resource:not_found",
|
|
1631
|
+
"validation:invalid_input",
|
|
1632
|
+
"resource:conflict",
|
|
1633
|
+
"server:internal_error"
|
|
1634
|
+
]
|
|
1339
1635
|
}
|
|
1340
1636
|
});
|
|
1341
1637
|
//#endregion
|
|
@@ -2268,15 +2564,6 @@ function parseMailingListContentVersionId(value) {
|
|
|
2268
2564
|
const parsed = parseContentVersionId(value);
|
|
2269
2565
|
return parsed.ok ? parsed.value : null;
|
|
2270
2566
|
}
|
|
2271
|
-
function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
|
|
2272
|
-
const parsedBlockId = parseMailingListBlockId(blockId);
|
|
2273
|
-
const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
|
|
2274
|
-
return parsedBlockId !== null && parsedContentVersionId !== null ? {
|
|
2275
|
-
tag: "block_ref",
|
|
2276
|
-
blockId: parsedBlockId,
|
|
2277
|
-
contentVersionId: parsedContentVersionId
|
|
2278
|
-
} : null;
|
|
2279
|
-
}
|
|
2280
2567
|
//#endregion
|
|
2281
2568
|
//#region ../core/src/secret.ts
|
|
2282
2569
|
/**
|
|
@@ -2925,6 +3212,45 @@ const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2925
3212
|
}
|
|
2926
3213
|
});
|
|
2927
3214
|
//#endregion
|
|
3215
|
+
//#region ../api/src/siteManagementEndpointDefinitions.ts
|
|
3216
|
+
const SITE_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
3217
|
+
createSite: {
|
|
3218
|
+
path: "/sites/manage",
|
|
3219
|
+
method: "POST",
|
|
3220
|
+
tags: ["site"],
|
|
3221
|
+
auth: "user",
|
|
3222
|
+
responseKind: "json"
|
|
3223
|
+
},
|
|
3224
|
+
updateSite: {
|
|
3225
|
+
path: "/sites/manage",
|
|
3226
|
+
method: "PUT",
|
|
3227
|
+
tags: ["site"],
|
|
3228
|
+
auth: "user",
|
|
3229
|
+
responseKind: "json"
|
|
3230
|
+
},
|
|
3231
|
+
changeSiteAddress: {
|
|
3232
|
+
path: "/sites/{siteId}/address",
|
|
3233
|
+
method: "PUT",
|
|
3234
|
+
auth: "user",
|
|
3235
|
+
responseKind: "json",
|
|
3236
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
3237
|
+
},
|
|
3238
|
+
getSiteAddressAvailability: {
|
|
3239
|
+
path: "/sites/{siteId}/address/availability",
|
|
3240
|
+
method: "GET",
|
|
3241
|
+
auth: "user",
|
|
3242
|
+
responseKind: "json"
|
|
3243
|
+
},
|
|
3244
|
+
deleteSite: {
|
|
3245
|
+
path: "/sites/{siteId}",
|
|
3246
|
+
method: "DELETE",
|
|
3247
|
+
tags: ["site", "site-{siteId}"],
|
|
3248
|
+
auth: "user",
|
|
3249
|
+
responseKind: "json",
|
|
3250
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
3251
|
+
}
|
|
3252
|
+
});
|
|
3253
|
+
//#endregion
|
|
2928
3254
|
//#region ../api/src/eventManagementEndpointDefinitions.ts
|
|
2929
3255
|
const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
2930
3256
|
listEvents: {
|
|
@@ -2972,6 +3298,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2972
3298
|
"server:internal_error"
|
|
2973
3299
|
]
|
|
2974
3300
|
},
|
|
3301
|
+
/**
|
|
3302
|
+
* The web address of an event's own page. A course page belongs to the
|
|
3303
|
+
* event itself, so its address is written here rather than through a run.
|
|
3304
|
+
*/
|
|
3305
|
+
updateEventAddress: {
|
|
3306
|
+
path: "/sites/{siteId}/bookings/events/{eventId}/address",
|
|
3307
|
+
method: "PATCH",
|
|
3308
|
+
tags: [
|
|
3309
|
+
"site-{siteId}",
|
|
3310
|
+
"event-series-{siteId}",
|
|
3311
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
3312
|
+
TAG_TEMPLATES.siteRedirects
|
|
3313
|
+
],
|
|
3314
|
+
auth: "user",
|
|
3315
|
+
responseKind: "json",
|
|
3316
|
+
errors: [
|
|
3317
|
+
"validation:invalid_input",
|
|
3318
|
+
"resource:not_found",
|
|
3319
|
+
"resource:conflict",
|
|
3320
|
+
"server:internal_error"
|
|
3321
|
+
]
|
|
3322
|
+
},
|
|
2975
3323
|
createWholeSeriesRun: {
|
|
2976
3324
|
path: "/sites/{siteId}/bookings/events/{eventId}/runs",
|
|
2977
3325
|
method: "POST",
|
|
@@ -2998,6 +3346,20 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2998
3346
|
"server:internal_error"
|
|
2999
3347
|
]
|
|
3000
3348
|
},
|
|
3349
|
+
updateCourseBookingSettings: {
|
|
3350
|
+
path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings",
|
|
3351
|
+
method: "PATCH",
|
|
3352
|
+
tags: ["site-{siteId}", "event-series-{siteId}"],
|
|
3353
|
+
auth: "user",
|
|
3354
|
+
responseKind: "json",
|
|
3355
|
+
errors: [
|
|
3356
|
+
"validation:invalid_input",
|
|
3357
|
+
"auth:forbidden",
|
|
3358
|
+
"resource:not_found",
|
|
3359
|
+
"resource:conflict",
|
|
3360
|
+
"server:internal_error"
|
|
3361
|
+
]
|
|
3362
|
+
},
|
|
3001
3363
|
cancelWholeSeriesRun: {
|
|
3002
3364
|
path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
|
|
3003
3365
|
method: "POST",
|
|
@@ -3010,6 +3372,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
3010
3372
|
"resource:conflict",
|
|
3011
3373
|
"server:internal_error"
|
|
3012
3374
|
]
|
|
3375
|
+
},
|
|
3376
|
+
/**
|
|
3377
|
+
* The Content tab's one write: the short introduction, image and
|
|
3378
|
+
* description of an event's page, published without its layout.
|
|
3379
|
+
*/
|
|
3380
|
+
saveEventPageWords: {
|
|
3381
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
|
|
3382
|
+
method: "PUT",
|
|
3383
|
+
tags: [
|
|
3384
|
+
TAG_TEMPLATES.siteCollection,
|
|
3385
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
3386
|
+
TAG_TEMPLATES.pageSurfaceById
|
|
3387
|
+
],
|
|
3388
|
+
auth: "user",
|
|
3389
|
+
responseKind: "json",
|
|
3390
|
+
errors: [
|
|
3391
|
+
"auth:forbidden",
|
|
3392
|
+
"validation:invalid_input",
|
|
3393
|
+
"resource:not_found",
|
|
3394
|
+
"resource:conflict",
|
|
3395
|
+
"server:internal_error"
|
|
3396
|
+
]
|
|
3013
3397
|
}
|
|
3014
3398
|
});
|
|
3015
3399
|
//#endregion
|
|
@@ -3442,18 +3826,56 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
3442
3826
|
responseKind: "json"
|
|
3443
3827
|
}
|
|
3444
3828
|
});
|
|
3829
|
+
//#endregion
|
|
3830
|
+
//#region ../api/src/clientErrorReporting.ts
|
|
3831
|
+
const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
|
|
3832
|
+
path: "/client/error-report",
|
|
3833
|
+
method: "POST",
|
|
3834
|
+
auth: "user",
|
|
3835
|
+
errors: [],
|
|
3836
|
+
responseKind: "json"
|
|
3837
|
+
} });
|
|
3838
|
+
const CLIENT_ERROR_REPORT_LIMITS = {
|
|
3839
|
+
pathname: 1024,
|
|
3840
|
+
name: 120,
|
|
3841
|
+
message: 2e3,
|
|
3842
|
+
stack: 8e3,
|
|
3843
|
+
digest: 128,
|
|
3844
|
+
componentStack: 8e3,
|
|
3845
|
+
sourceLocation: 1024
|
|
3846
|
+
};
|
|
3847
|
+
const clientErrorEventSchema = z.enum([
|
|
3848
|
+
"dashboard:route-error",
|
|
3849
|
+
"dashboard:app-error",
|
|
3850
|
+
"client:error-boundary",
|
|
3851
|
+
"client:window-error",
|
|
3852
|
+
"client:unhandled-rejection"
|
|
3853
|
+
]);
|
|
3854
|
+
z.object({
|
|
3855
|
+
event: clientErrorEventSchema,
|
|
3856
|
+
pathname: z.string().startsWith("/").max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
3857
|
+
name: z.string().max(CLIENT_ERROR_REPORT_LIMITS.name),
|
|
3858
|
+
message: z.string().max(CLIENT_ERROR_REPORT_LIMITS.message),
|
|
3859
|
+
stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
|
|
3860
|
+
digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
|
|
3861
|
+
componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
|
|
3862
|
+
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
3863
|
+
}).strict();
|
|
3445
3864
|
({
|
|
3865
|
+
...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
|
|
3866
|
+
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3446
3867
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
3447
3868
|
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
3448
3869
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
3449
3870
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
3450
3871
|
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
3451
|
-
...BILLING_ENDPOINT_DEFINITIONS
|
|
3872
|
+
...BILLING_ENDPOINT_DEFINITIONS,
|
|
3873
|
+
...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
|
|
3452
3874
|
}), 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, {
|
|
3453
3875
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3454
3876
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
3455
3877
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
3456
|
-
}, 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 };
|
|
3878
|
+
}, 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 };
|
|
3457
3879
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
3458
3880
|
z.object({
|
|
3459
3881
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -10165,6 +10587,15 @@ function asSiteStyleId(value) {
|
|
|
10165
10587
|
function asDesignSystemTemplateId(value) {
|
|
10166
10588
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
10167
10589
|
}
|
|
10590
|
+
function toNonEmptyReadonlyArray(values) {
|
|
10591
|
+
const [first, ...rest] = values;
|
|
10592
|
+
return first === void 0 ? null : [first, ...rest];
|
|
10593
|
+
}
|
|
10594
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
10595
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
10596
|
+
if (!result) throw new Error(message);
|
|
10597
|
+
return result;
|
|
10598
|
+
}
|
|
10168
10599
|
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
10169
10600
|
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
10170
10601
|
}
|
|
@@ -10367,16 +10798,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
10367
10798
|
"_frameStyles",
|
|
10368
10799
|
"_sectionStyles",
|
|
10369
10800
|
"_containerStyles",
|
|
10370
|
-
"_cardStyles"
|
|
10371
|
-
"_transitionStyles",
|
|
10372
|
-
"styleGroup"
|
|
10801
|
+
"_cardStyles"
|
|
10373
10802
|
];
|
|
10374
10803
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
10375
10804
|
"_contentCardStyles",
|
|
10376
10805
|
"_heroLayoutStyles",
|
|
10377
10806
|
"_textCardStyles"
|
|
10378
10807
|
];
|
|
10379
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
10808
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
10809
|
+
...themeV2RuntimeStyleFieldNames,
|
|
10810
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
10811
|
+
"styleGroup"
|
|
10812
|
+
];
|
|
10380
10813
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
10381
10814
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
10382
10815
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -12102,11 +12535,260 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
12102
12535
|
*/
|
|
12103
12536
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
12104
12537
|
//#endregion
|
|
12105
|
-
//#region ../theme-core/src/site-styles/
|
|
12106
|
-
|
|
12107
|
-
|
|
12108
|
-
|
|
12109
|
-
|
|
12538
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
12539
|
+
/**
|
|
12540
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
12541
|
+
* same order, so the flat option list and the grouped families agree.
|
|
12542
|
+
*/
|
|
12543
|
+
const transitionCatalogueFamilies = [
|
|
12544
|
+
{
|
|
12545
|
+
id: "gradient",
|
|
12546
|
+
label: "Gradient"
|
|
12547
|
+
},
|
|
12548
|
+
{
|
|
12549
|
+
id: "wave",
|
|
12550
|
+
label: "Wave"
|
|
12551
|
+
},
|
|
12552
|
+
{
|
|
12553
|
+
id: "angle",
|
|
12554
|
+
label: "Angle"
|
|
12555
|
+
}
|
|
12556
|
+
];
|
|
12557
|
+
const mediumHeight = "6rem + 2px";
|
|
12558
|
+
const compactHeight = "4.5rem + 2px";
|
|
12559
|
+
const largeHeight = "7rem + 2px";
|
|
12560
|
+
/**
|
|
12561
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
12562
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
12563
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
12564
|
+
*
|
|
12565
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
12566
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
12567
|
+
*/
|
|
12568
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
12569
|
+
{
|
|
12570
|
+
intent: "soft-fade-short",
|
|
12571
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
12572
|
+
family: "gradient",
|
|
12573
|
+
variantId: "soft",
|
|
12574
|
+
label: "Soft",
|
|
12575
|
+
variantLabel: "Soft",
|
|
12576
|
+
treatment: {
|
|
12577
|
+
kind: "soft-fade",
|
|
12578
|
+
height: "medium",
|
|
12579
|
+
curve: "soft"
|
|
12580
|
+
},
|
|
12581
|
+
size: "medium",
|
|
12582
|
+
heightExpression: mediumHeight,
|
|
12583
|
+
shape: { kind: "fade" }
|
|
12584
|
+
},
|
|
12585
|
+
{
|
|
12586
|
+
intent: "soft-fade-long",
|
|
12587
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
12588
|
+
family: "gradient",
|
|
12589
|
+
variantId: "spacious",
|
|
12590
|
+
label: "Spacious",
|
|
12591
|
+
variantLabel: "Spacious",
|
|
12592
|
+
treatment: {
|
|
12593
|
+
kind: "soft-fade",
|
|
12594
|
+
height: "large",
|
|
12595
|
+
curve: "spacious"
|
|
12596
|
+
},
|
|
12597
|
+
size: "spacious",
|
|
12598
|
+
heightExpression: "10rem",
|
|
12599
|
+
shape: { kind: "fade" }
|
|
12600
|
+
},
|
|
12601
|
+
{
|
|
12602
|
+
intent: "soft-fade-expansive",
|
|
12603
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
12604
|
+
family: "gradient",
|
|
12605
|
+
variantId: "expansive",
|
|
12606
|
+
label: "Expansive",
|
|
12607
|
+
variantLabel: "Expansive",
|
|
12608
|
+
treatment: {
|
|
12609
|
+
kind: "soft-fade",
|
|
12610
|
+
height: "expansive",
|
|
12611
|
+
curve: "expansive"
|
|
12612
|
+
},
|
|
12613
|
+
size: "expansive",
|
|
12614
|
+
heightExpression: "14rem",
|
|
12615
|
+
shape: { kind: "fade" }
|
|
12616
|
+
},
|
|
12617
|
+
{
|
|
12618
|
+
intent: "wave-edge-balanced",
|
|
12619
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
12620
|
+
family: "wave",
|
|
12621
|
+
variantId: "balanced",
|
|
12622
|
+
label: "Balanced wave",
|
|
12623
|
+
variantLabel: "Balanced",
|
|
12624
|
+
treatment: {
|
|
12625
|
+
kind: "wave-edge",
|
|
12626
|
+
height: "medium",
|
|
12627
|
+
amplitude: "balanced",
|
|
12628
|
+
rhythm: "double",
|
|
12629
|
+
symmetry: "symmetrical"
|
|
12630
|
+
},
|
|
12631
|
+
size: "medium",
|
|
12632
|
+
heightExpression: mediumHeight,
|
|
12633
|
+
shape: {
|
|
12634
|
+
kind: "wave",
|
|
12635
|
+
mask: "balanced"
|
|
12636
|
+
}
|
|
12637
|
+
},
|
|
12638
|
+
{
|
|
12639
|
+
intent: "wave-edge",
|
|
12640
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
12641
|
+
family: "wave",
|
|
12642
|
+
variantId: "classic",
|
|
12643
|
+
label: "Classic wave",
|
|
12644
|
+
variantLabel: "Classic",
|
|
12645
|
+
treatment: {
|
|
12646
|
+
kind: "wave-edge",
|
|
12647
|
+
height: "medium",
|
|
12648
|
+
amplitude: "balanced",
|
|
12649
|
+
rhythm: "double",
|
|
12650
|
+
symmetry: "asymmetrical"
|
|
12651
|
+
},
|
|
12652
|
+
size: "medium",
|
|
12653
|
+
heightExpression: mediumHeight,
|
|
12654
|
+
shape: {
|
|
12655
|
+
kind: "wave",
|
|
12656
|
+
mask: "classic"
|
|
12657
|
+
}
|
|
12658
|
+
},
|
|
12659
|
+
{
|
|
12660
|
+
intent: "wave-edge-gentle",
|
|
12661
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
12662
|
+
family: "wave",
|
|
12663
|
+
variantId: "gentle",
|
|
12664
|
+
label: "Gentle wave",
|
|
12665
|
+
variantLabel: "Gentle",
|
|
12666
|
+
treatment: {
|
|
12667
|
+
kind: "wave-edge",
|
|
12668
|
+
height: "compact",
|
|
12669
|
+
amplitude: "subtle",
|
|
12670
|
+
rhythm: "single",
|
|
12671
|
+
symmetry: "symmetrical"
|
|
12672
|
+
},
|
|
12673
|
+
size: "compact",
|
|
12674
|
+
heightExpression: compactHeight,
|
|
12675
|
+
shape: {
|
|
12676
|
+
kind: "wave",
|
|
12677
|
+
mask: "gentle"
|
|
12678
|
+
}
|
|
12679
|
+
},
|
|
12680
|
+
{
|
|
12681
|
+
intent: "wave-edge-bold",
|
|
12682
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
12683
|
+
family: "wave",
|
|
12684
|
+
variantId: "bold",
|
|
12685
|
+
label: "Bold wave",
|
|
12686
|
+
variantLabel: "Bold",
|
|
12687
|
+
treatment: {
|
|
12688
|
+
kind: "wave-edge",
|
|
12689
|
+
height: "large",
|
|
12690
|
+
amplitude: "bold",
|
|
12691
|
+
rhythm: "double",
|
|
12692
|
+
symmetry: "symmetrical"
|
|
12693
|
+
},
|
|
12694
|
+
size: "large",
|
|
12695
|
+
heightExpression: largeHeight,
|
|
12696
|
+
shape: {
|
|
12697
|
+
kind: "wave",
|
|
12698
|
+
mask: "bold"
|
|
12699
|
+
}
|
|
12700
|
+
},
|
|
12701
|
+
{
|
|
12702
|
+
intent: "wave-edge-drift",
|
|
12703
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
12704
|
+
family: "wave",
|
|
12705
|
+
variantId: "drift",
|
|
12706
|
+
label: "Drift wave",
|
|
12707
|
+
variantLabel: "Drift",
|
|
12708
|
+
treatment: {
|
|
12709
|
+
kind: "wave-edge",
|
|
12710
|
+
height: "medium",
|
|
12711
|
+
amplitude: "balanced",
|
|
12712
|
+
rhythm: "double",
|
|
12713
|
+
symmetry: "drift"
|
|
12714
|
+
},
|
|
12715
|
+
size: "medium",
|
|
12716
|
+
heightExpression: mediumHeight,
|
|
12717
|
+
shape: {
|
|
12718
|
+
kind: "wave",
|
|
12719
|
+
mask: "drift"
|
|
12720
|
+
}
|
|
12721
|
+
},
|
|
12722
|
+
{
|
|
12723
|
+
intent: "angle-edge-subtle",
|
|
12724
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
12725
|
+
family: "angle",
|
|
12726
|
+
variantId: "subtle",
|
|
12727
|
+
label: "Subtle angle",
|
|
12728
|
+
variantLabel: "Subtle",
|
|
12729
|
+
treatment: {
|
|
12730
|
+
kind: "angle-edge",
|
|
12731
|
+
height: "compact",
|
|
12732
|
+
slope: "subtle",
|
|
12733
|
+
direction: "forward"
|
|
12734
|
+
},
|
|
12735
|
+
size: "compact",
|
|
12736
|
+
heightExpression: compactHeight,
|
|
12737
|
+
shape: {
|
|
12738
|
+
kind: "angle",
|
|
12739
|
+
polygon: {
|
|
12740
|
+
startTopPercent: 34,
|
|
12741
|
+
endTopPercent: 18
|
|
12742
|
+
}
|
|
12743
|
+
}
|
|
12744
|
+
},
|
|
12745
|
+
{
|
|
12746
|
+
intent: "angle-edge",
|
|
12747
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
12748
|
+
family: "angle",
|
|
12749
|
+
variantId: "balanced",
|
|
12750
|
+
label: "Balanced angle",
|
|
12751
|
+
variantLabel: "Balanced",
|
|
12752
|
+
treatment: {
|
|
12753
|
+
kind: "angle-edge",
|
|
12754
|
+
height: "medium",
|
|
12755
|
+
slope: "balanced",
|
|
12756
|
+
direction: "forward"
|
|
12757
|
+
},
|
|
12758
|
+
size: "medium",
|
|
12759
|
+
heightExpression: mediumHeight,
|
|
12760
|
+
shape: {
|
|
12761
|
+
kind: "angle",
|
|
12762
|
+
polygon: {
|
|
12763
|
+
startTopPercent: 42,
|
|
12764
|
+
endTopPercent: 8
|
|
12765
|
+
}
|
|
12766
|
+
}
|
|
12767
|
+
},
|
|
12768
|
+
{
|
|
12769
|
+
intent: "angle-edge-steep",
|
|
12770
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
12771
|
+
family: "angle",
|
|
12772
|
+
variantId: "steep",
|
|
12773
|
+
label: "Steep angle",
|
|
12774
|
+
variantLabel: "Steep",
|
|
12775
|
+
treatment: {
|
|
12776
|
+
kind: "angle-edge",
|
|
12777
|
+
height: "large",
|
|
12778
|
+
slope: "steep",
|
|
12779
|
+
direction: "forward"
|
|
12780
|
+
},
|
|
12781
|
+
size: "large",
|
|
12782
|
+
heightExpression: largeHeight,
|
|
12783
|
+
shape: {
|
|
12784
|
+
kind: "angle",
|
|
12785
|
+
polygon: {
|
|
12786
|
+
startTopPercent: 54,
|
|
12787
|
+
endTopPercent: 0
|
|
12788
|
+
}
|
|
12789
|
+
}
|
|
12790
|
+
}
|
|
12791
|
+
]);
|
|
12110
12792
|
//#endregion
|
|
12111
12793
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
12112
12794
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -12117,42 +12799,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
12117
12799
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
12118
12800
|
};
|
|
12119
12801
|
}
|
|
12120
|
-
|
|
12802
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
12803
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
12804
|
+
/**
|
|
12805
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
12806
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
12807
|
+
*/
|
|
12808
|
+
function requireCatalogueValue(values, intent) {
|
|
12809
|
+
const value = values.get(intent);
|
|
12810
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
12811
|
+
return value;
|
|
12812
|
+
}
|
|
12121
12813
|
const noneBoundaryOption = {
|
|
12122
12814
|
id: asBoundaryOptionId("break:none"),
|
|
12123
12815
|
label: "None",
|
|
12124
12816
|
transitionAfter: "none",
|
|
12125
12817
|
treatment: { kind: "none" }
|
|
12126
12818
|
};
|
|
12127
|
-
const
|
|
12128
|
-
id:
|
|
12129
|
-
label:
|
|
12130
|
-
transitionAfter:
|
|
12131
|
-
treatment:
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
|
|
12819
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
12820
|
+
id: entry.optionId,
|
|
12821
|
+
label: entry.label,
|
|
12822
|
+
transitionAfter: entry.intent,
|
|
12823
|
+
treatment: entry.treatment
|
|
12824
|
+
}]));
|
|
12825
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
12826
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
12827
|
+
}
|
|
12828
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
12829
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
12830
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
12831
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
12832
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
12833
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
12834
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
12835
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
12836
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
12837
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
12838
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
12839
|
+
/**
|
|
12840
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
12841
|
+
*/
|
|
12842
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
12843
|
+
const noneTransitionVariant = {
|
|
12844
|
+
familyId: "none",
|
|
12845
|
+
variantId: "none",
|
|
12846
|
+
label: "None",
|
|
12847
|
+
boundaryOption: noneBoundaryOption
|
|
12136
12848
|
};
|
|
12137
|
-
|
|
12138
|
-
|
|
12139
|
-
|
|
12140
|
-
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12145
|
-
|
|
12849
|
+
function transitionVariantForEntry(entry) {
|
|
12850
|
+
return {
|
|
12851
|
+
familyId: entry.family,
|
|
12852
|
+
variantId: entry.variantId,
|
|
12853
|
+
label: entry.variantLabel,
|
|
12854
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
12855
|
+
};
|
|
12856
|
+
}
|
|
12857
|
+
const sectionTransitionFamilies = [{
|
|
12858
|
+
id: "none",
|
|
12859
|
+
label: "None",
|
|
12860
|
+
variants: [noneTransitionVariant]
|
|
12861
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
12862
|
+
id: family.id,
|
|
12863
|
+
label: family.label,
|
|
12864
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
12865
|
+
}))];
|
|
12866
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
12867
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
12868
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
12869
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
12870
|
+
function stableTreatmentKey(treatment) {
|
|
12871
|
+
switch (treatment.kind) {
|
|
12872
|
+
case "none": return "none";
|
|
12873
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
12874
|
+
case "wave-edge": return [
|
|
12875
|
+
treatment.kind,
|
|
12876
|
+
treatment.height,
|
|
12877
|
+
treatment.amplitude,
|
|
12878
|
+
treatment.rhythm,
|
|
12879
|
+
treatment.symmetry
|
|
12880
|
+
].join(":");
|
|
12881
|
+
case "angle-edge": return [
|
|
12882
|
+
treatment.kind,
|
|
12883
|
+
treatment.height,
|
|
12884
|
+
treatment.slope,
|
|
12885
|
+
treatment.direction
|
|
12886
|
+
].join(":");
|
|
12887
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
12888
|
+
}
|
|
12889
|
+
}
|
|
12890
|
+
requireThemeColorToken$1("background");
|
|
12891
|
+
function requireThemeColorToken$1(value) {
|
|
12892
|
+
const token = parseThemeColorToken(value);
|
|
12893
|
+
if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
|
|
12894
|
+
return token;
|
|
12895
|
+
}
|
|
12896
|
+
//#endregion
|
|
12897
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
12898
|
+
const defaultHeaderBrandPreferences = {
|
|
12899
|
+
brandDisplay: "auto",
|
|
12900
|
+
logoSize: "auto"
|
|
12146
12901
|
};
|
|
12147
|
-
asBoundaryOptionId("break:expansive");
|
|
12148
|
-
asBoundaryOptionId("break:wave");
|
|
12149
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
12150
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
12151
|
-
asBoundaryOptionId("break:wave-bold");
|
|
12152
|
-
asBoundaryOptionId("break:wave-drift");
|
|
12153
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
12154
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
12155
|
-
asBoundaryOptionId("break:angle-steep");
|
|
12156
12902
|
asBoundaryOptionId("break:unknown");
|
|
12157
12903
|
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
12158
12904
|
kind: z.literal("user-pinned"),
|
|
@@ -12279,14 +13025,11 @@ function validateUniquePageDesignPins(intent, ctx) {
|
|
|
12279
13025
|
label: "block Look pin"
|
|
12280
13026
|
});
|
|
12281
13027
|
addDuplicateStringIssues(ctx, {
|
|
12282
|
-
values: intent.boundaryPins.map((pin) =>
|
|
13028
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
12283
13029
|
path: ["boundaryPins"],
|
|
12284
13030
|
label: "boundary pin"
|
|
12285
13031
|
});
|
|
12286
13032
|
}
|
|
12287
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
12288
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
12289
|
-
}
|
|
12290
13033
|
//#endregion
|
|
12291
13034
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
12292
13035
|
/**
|
|
@@ -13914,6 +14657,13 @@ z.object({
|
|
|
13914
14657
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
13915
14658
|
authority: styleAuthoritySchema
|
|
13916
14659
|
}).strict();
|
|
14660
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
14661
|
+
asPageFlowPresetId("generated-default");
|
|
14662
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
14663
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
14664
|
+
asLayoutVariantKey("classic");
|
|
14665
|
+
asLayoutVariantKey("micro");
|
|
14666
|
+
asBoundaryOptionId("break:wave");
|
|
13917
14667
|
//#endregion
|
|
13918
14668
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
13919
14669
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -13937,7 +14687,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
13937
14687
|
}
|
|
13938
14688
|
/**
|
|
13939
14689
|
* Default design rules translate semantic page-level choices into the current
|
|
13940
|
-
* runtime's section background
|
|
14690
|
+
* runtime's section background vocabulary.
|
|
13941
14691
|
*/
|
|
13942
14692
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
13943
14693
|
sectionSurfaces: {
|
|
@@ -13972,8 +14722,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
13972
14722
|
color: "surface",
|
|
13973
14723
|
opacity: .88
|
|
13974
14724
|
}
|
|
13975
|
-
}
|
|
13976
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
14725
|
+
}
|
|
13977
14726
|
});
|
|
13978
14727
|
/**
|
|
13979
14728
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -15708,19 +16457,11 @@ const curatedSiteStyles = [
|
|
|
15708
16457
|
})
|
|
15709
16458
|
];
|
|
15710
16459
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
15711
|
-
asPageFlowPresetId("generated-default");
|
|
15712
|
-
asSiteStyleId("site-style:south-west-twerk-school");
|
|
15713
|
-
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
15714
|
-
asLayoutVariantKey("classic");
|
|
15715
|
-
asLayoutVariantKey("micro");
|
|
15716
|
-
asBoundaryOptionId("break:wave");
|
|
15717
|
-
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
15718
16460
|
//#endregion
|
|
15719
16461
|
//#region ../theme-core/src/site-styles/resolver.ts
|
|
15720
16462
|
const blockDesignFallback = {
|
|
15721
16463
|
sectionSurface: "base",
|
|
15722
16464
|
contentFrame: plainFrame,
|
|
15723
|
-
transitionAfter: "none",
|
|
15724
16465
|
sectionHeight: "default",
|
|
15725
16466
|
heroLegibility: "none",
|
|
15726
16467
|
imageSurfaceTreatment: { kind: "none" },
|
|
@@ -15731,7 +16472,7 @@ const blockDesignFallback = {
|
|
|
15731
16472
|
accordionIconTreatment: null,
|
|
15732
16473
|
composition: null
|
|
15733
16474
|
};
|
|
15734
|
-
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.
|
|
16475
|
+
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
15735
16476
|
//#endregion
|
|
15736
16477
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
15737
16478
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
@@ -16543,7 +17284,8 @@ const siteOptionSources = [
|
|
|
16543
17284
|
"eventCategories",
|
|
16544
17285
|
"eventSeries",
|
|
16545
17286
|
"venues",
|
|
16546
|
-
"staffMembers"
|
|
17287
|
+
"staffMembers",
|
|
17288
|
+
"appointmentServiceCategories"
|
|
16547
17289
|
];
|
|
16548
17290
|
const mediaDeliverySchema = z.object({
|
|
16549
17291
|
sizes: z.string().optional(),
|
|
@@ -25764,13 +26506,13 @@ const hours = stack({
|
|
|
25764
26506
|
as: "p",
|
|
25765
26507
|
className: "rb-caption rb-opacity-70"
|
|
25766
26508
|
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
25767
|
-
const socials = inline({ className: "rb-
|
|
26509
|
+
const socials = inline({ className: "rb-footer-socials" }, [link({
|
|
25768
26510
|
href: { $bind: { from: "social.href" } },
|
|
25769
26511
|
target: "_blank",
|
|
25770
26512
|
rel: "noreferrer noopener",
|
|
25771
26513
|
"aria-label": { $bind: { from: "social.label" } },
|
|
25772
|
-
className: "rb-nav-text transition-theme-standard"
|
|
25773
|
-
}, [icon({ className: "rb-
|
|
26514
|
+
className: "rb-footer-social-link rb-nav-text transition-theme-standard"
|
|
26515
|
+
}, [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" }));
|
|
25774
26516
|
const authoredCopy = richText({
|
|
25775
26517
|
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
25776
26518
|
style: textColorStyle("text/80")
|
|
@@ -27411,6 +28153,15 @@ const appointmentServicesBlockDefinition = {
|
|
|
27411
28153
|
required: false,
|
|
27412
28154
|
ui: { intent: "content" }
|
|
27413
28155
|
},
|
|
28156
|
+
createSiteOptionSelectField({
|
|
28157
|
+
id: "categoryId",
|
|
28158
|
+
label: "Category",
|
|
28159
|
+
description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
|
|
28160
|
+
required: false,
|
|
28161
|
+
multiple: false,
|
|
28162
|
+
optionSource: "appointmentServiceCategories",
|
|
28163
|
+
ui: { intent: "content" }
|
|
28164
|
+
}),
|
|
27414
28165
|
sectionStylesField({
|
|
27415
28166
|
id: "_sectionStyles",
|
|
27416
28167
|
label: "Section styles",
|
|
@@ -27445,6 +28196,7 @@ const appointmentServicesBlockDefinition = {
|
|
|
27445
28196
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
27446
28197
|
el("appointment-services", {
|
|
27447
28198
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
28199
|
+
categoryId: { $bind: { from: "content.categoryId" } },
|
|
27448
28200
|
services: { $bind: { from: "data.services" } },
|
|
27449
28201
|
pathname: { $bind: { from: "$root.pathname" } },
|
|
27450
28202
|
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
@@ -27845,6 +28597,7 @@ const publicEventLoaderQuerySchemaShape = {
|
|
|
27845
28597
|
seriesSlug: z.string().optional(),
|
|
27846
28598
|
includeOccurrenceId: z.string().optional(),
|
|
27847
28599
|
readIntent: z.string().optional(),
|
|
28600
|
+
detailAdmission: z.string().optional(),
|
|
27848
28601
|
detailLevel: z.string().optional(),
|
|
27849
28602
|
readProfile: z.string().optional()
|
|
27850
28603
|
};
|
|
@@ -28011,11 +28764,11 @@ const publicEventBookingAvailabilitySchema = z.discriminatedUnion("kind", [z.obj
|
|
|
28011
28764
|
"series_archived",
|
|
28012
28765
|
"parent_archived",
|
|
28013
28766
|
"parent_inconsistent",
|
|
28014
|
-
"not_public",
|
|
28015
28767
|
"already_started",
|
|
28016
28768
|
"enrollment_closed"
|
|
28017
28769
|
])
|
|
28018
28770
|
})]);
|
|
28771
|
+
const publicEventBookingClosedDetailSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("opensSoon") }), z.object({ kind: z.literal("paused") })]);
|
|
28019
28772
|
const publicRunSessionSchema = z.object({
|
|
28020
28773
|
occurrenceId: z.string(),
|
|
28021
28774
|
startsAt: z.string(),
|
|
@@ -28060,6 +28813,7 @@ const publicEventBaseSchema = z.object({
|
|
|
28060
28813
|
destination: publicEventDestinationSchema,
|
|
28061
28814
|
requiresRegistration: z.boolean(),
|
|
28062
28815
|
bookingAvailability: publicEventBookingAvailabilitySchema,
|
|
28816
|
+
bookingClosedDetail: publicEventBookingClosedDetailSchema.optional(),
|
|
28063
28817
|
deliveryMode: z.enum([
|
|
28064
28818
|
"in_person",
|
|
28065
28819
|
"online",
|
|
@@ -35723,6 +36477,11 @@ const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
|
|
|
35723
36477
|
});
|
|
35724
36478
|
return z.NEVER;
|
|
35725
36479
|
});
|
|
36480
|
+
const mailingListSignupBlockSourceRefSchema = z.object({
|
|
36481
|
+
tag: z.literal("block_ref"),
|
|
36482
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
36483
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
36484
|
+
});
|
|
35726
36485
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
35727
36486
|
const newsletterSourceCommonSchema = z.object({
|
|
35728
36487
|
siteId: z.string().optional(),
|
|
@@ -35737,7 +36496,15 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
35737
36496
|
newsletterSourceCommonSchema.extend({
|
|
35738
36497
|
source: z.literal("block"),
|
|
35739
36498
|
blockId: z.string().nullable().optional(),
|
|
35740
|
-
|
|
36499
|
+
newsletterBlockSubmission: z.discriminatedUnion("tag", [
|
|
36500
|
+
z.object({
|
|
36501
|
+
tag: z.literal("ready"),
|
|
36502
|
+
sourceRef: mailingListSignupBlockSourceRefSchema
|
|
36503
|
+
}),
|
|
36504
|
+
z.object({ tag: z.literal("unpublished-form") }),
|
|
36505
|
+
z.object({ tag: z.literal("unpublished-settings") }),
|
|
36506
|
+
z.object({ tag: z.literal("unavailable") })
|
|
36507
|
+
])
|
|
35741
36508
|
}),
|
|
35742
36509
|
newsletterSourceCommonSchema.extend({
|
|
35743
36510
|
source: z.literal("signed-footer"),
|
|
@@ -35766,11 +36533,7 @@ const newsletterHydrationSchema = z.object({
|
|
|
35766
36533
|
target: z.discriminatedUnion("tag", [
|
|
35767
36534
|
z.object({
|
|
35768
36535
|
tag: z.literal("block-source"),
|
|
35769
|
-
sourceRef:
|
|
35770
|
-
tag: z.literal("block_ref"),
|
|
35771
|
-
blockId: mailingListSignupBlockIdSchema,
|
|
35772
|
-
contentVersionId: mailingListContentVersionIdSchema
|
|
35773
|
-
}).nullable()
|
|
36536
|
+
sourceRef: mailingListSignupBlockSourceRefSchema.nullable()
|
|
35774
36537
|
}),
|
|
35775
36538
|
z.object({
|
|
35776
36539
|
tag: z.literal("signed-footer-source"),
|
|
@@ -35779,7 +36542,11 @@ const newsletterHydrationSchema = z.object({
|
|
|
35779
36542
|
token: signedMailingListSourceTokenSchema
|
|
35780
36543
|
})
|
|
35781
36544
|
}),
|
|
35782
|
-
z.object({ tag: z.literal("preview") })
|
|
36545
|
+
z.object({ tag: z.literal("preview") }),
|
|
36546
|
+
z.object({
|
|
36547
|
+
tag: z.literal("unpublished-preview"),
|
|
36548
|
+
reason: z.enum(["unpublished-form", "unpublished-settings"])
|
|
36549
|
+
})
|
|
35783
36550
|
]),
|
|
35784
36551
|
setupRevision: z.number().int().positive().nullable(),
|
|
35785
36552
|
choiceProvider: z.enum([
|
|
@@ -35848,16 +36615,21 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
35848
36615
|
});
|
|
35849
36616
|
function projectNewsletterFormHydrationTarget(source) {
|
|
35850
36617
|
switch (source.source) {
|
|
35851
|
-
case "block": {
|
|
35852
|
-
|
|
35853
|
-
|
|
36618
|
+
case "block": switch (source.newsletterBlockSubmission.tag) {
|
|
36619
|
+
case "unpublished-form":
|
|
36620
|
+
case "unpublished-settings": return {
|
|
36621
|
+
tag: "unpublished-preview",
|
|
36622
|
+
reason: source.newsletterBlockSubmission.tag
|
|
36623
|
+
};
|
|
36624
|
+
case "ready": return {
|
|
35854
36625
|
tag: "block-source",
|
|
35855
|
-
sourceRef
|
|
36626
|
+
sourceRef: source.newsletterBlockSubmission.sourceRef
|
|
35856
36627
|
};
|
|
35857
|
-
return {
|
|
36628
|
+
case "unavailable": return {
|
|
35858
36629
|
tag: "block-source",
|
|
35859
36630
|
sourceRef: null
|
|
35860
36631
|
};
|
|
36632
|
+
default: return assertNever$2(source.newsletterBlockSubmission);
|
|
35861
36633
|
}
|
|
35862
36634
|
case "signed-footer": return {
|
|
35863
36635
|
tag: "signed-footer-source",
|
|
@@ -38410,6 +39182,46 @@ z.object({ acceptExtraSiteCharge: z.boolean().optional() });
|
|
|
38410
39182
|
//#region ../surfaces/src/index.ts
|
|
38411
39183
|
const SURFACE_IDS = ["core", "macadamia"];
|
|
38412
39184
|
const DEFAULT_SURFACE_ID = "core";
|
|
39185
|
+
/**
|
|
39186
|
+
* Root hosts for each surface, keyed by deployment tier. The tier-keyed shape
|
|
39187
|
+
* makes it impossible to mis-order entries: callers like
|
|
39188
|
+
* `buildSurfaceAwareDashboardOriginForSurfaceId` look up by tier directly
|
|
39189
|
+
* rather than relying on positional alignment between arrays.
|
|
39190
|
+
*/
|
|
39191
|
+
const SURFACE_ROOT_HOSTS = {
|
|
39192
|
+
core: {
|
|
39193
|
+
local: "localhost",
|
|
39194
|
+
prod: "riverbankcms.com"
|
|
39195
|
+
},
|
|
39196
|
+
macadamia: {
|
|
39197
|
+
local: "macadamia.localhost",
|
|
39198
|
+
prod: "macadamia.studio"
|
|
39199
|
+
}
|
|
39200
|
+
};
|
|
39201
|
+
const SURFACE_SITE_ROOT_HOSTS = {
|
|
39202
|
+
core: {
|
|
39203
|
+
local: "localhost",
|
|
39204
|
+
prod: "riverbanksites.com"
|
|
39205
|
+
},
|
|
39206
|
+
macadamia: {
|
|
39207
|
+
local: "macadamia.localhost",
|
|
39208
|
+
prod: "macadamia.studio"
|
|
39209
|
+
}
|
|
39210
|
+
};
|
|
39211
|
+
const SURFACE_SITE_ROOT_HOST_ALIASES = { core: { prod: ["preview.riverbanksites.com"] } };
|
|
39212
|
+
function surfaceHostTableValues(table) {
|
|
39213
|
+
return Object.values(table).flatMap((byTier) => Object.values(byTier).flat());
|
|
39214
|
+
}
|
|
39215
|
+
function siteSlugLabelUnderRoot(host, siteRootHost) {
|
|
39216
|
+
if (!host.endsWith(`.${siteRootHost}`)) return [];
|
|
39217
|
+
return host.slice(0, host.length - siteRootHost.length - 1).split(".").slice(-1);
|
|
39218
|
+
}
|
|
39219
|
+
function deriveSurfaceOwnedSiteSlugs() {
|
|
39220
|
+
const siteRootHosts = [...surfaceHostTableValues(SURFACE_SITE_ROOT_HOSTS), ...surfaceHostTableValues(SURFACE_SITE_ROOT_HOST_ALIASES)];
|
|
39221
|
+
const labels = [...surfaceHostTableValues(SURFACE_ROOT_HOSTS), ...siteRootHosts].flatMap((host) => siteRootHosts.flatMap((root) => siteSlugLabelUnderRoot(host, root)));
|
|
39222
|
+
return [...new Set(labels)].sort();
|
|
39223
|
+
}
|
|
39224
|
+
deriveSurfaceOwnedSiteSlugs();
|
|
38413
39225
|
[...SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID)];
|
|
38414
39226
|
//#endregion
|
|
38415
39227
|
//#region ../api/src/accountApi.ts
|
|
@@ -38792,7 +39604,12 @@ const appointmentSetupServiceDraftSchema = z.object({
|
|
|
38792
39604
|
venue: appointmentSetupVenueChoiceSchema,
|
|
38793
39605
|
timezone: z.string().trim().min(1).nullable(),
|
|
38794
39606
|
payment: appointmentSetupPaymentDraftSchema,
|
|
38795
|
-
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
39607
|
+
assignment: appointmentSetupServiceAssignmentDraftSchema,
|
|
39608
|
+
/**
|
|
39609
|
+
* The service's category, or null for "Other" (issue 1403). Omitted leaves
|
|
39610
|
+
* an existing service's category alone and puts a new one in "Other".
|
|
39611
|
+
*/
|
|
39612
|
+
categoryId: z.string().uuid().nullable().optional()
|
|
38796
39613
|
}).superRefine((service, ctx) => {
|
|
38797
39614
|
if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
|
|
38798
39615
|
code: "custom",
|
|
@@ -39006,6 +39823,7 @@ function collectText(node) {
|
|
|
39006
39823
|
if (node.type === "text") return node.text ?? "";
|
|
39007
39824
|
return (node.content ?? []).map(collectText).join("");
|
|
39008
39825
|
}
|
|
39826
|
+
z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
|
|
39009
39827
|
//#endregion
|
|
39010
39828
|
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
39011
39829
|
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|