@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
|
@@ -9,6 +9,75 @@ const footerModeSchema = z.enum([
|
|
|
9
9
|
"none"
|
|
10
10
|
]);
|
|
11
11
|
//#endregion
|
|
12
|
+
//#region ../api/src/defineEndpointDefinitions.ts
|
|
13
|
+
/**
|
|
14
|
+
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
15
|
+
* method, and parameter contract for the typed URL builders.
|
|
16
|
+
*/
|
|
17
|
+
function defineEndpointDefinitions(definitions) {
|
|
18
|
+
return definitions;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
22
|
+
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
23
|
+
subscribeNewsletter: {
|
|
24
|
+
path: "/public/sites/{siteId}/newsletter/subscribe",
|
|
25
|
+
method: "POST",
|
|
26
|
+
tags: ["public-newsletter-{siteId}"],
|
|
27
|
+
auth: "public",
|
|
28
|
+
responseKind: "json"
|
|
29
|
+
},
|
|
30
|
+
confirmNewsletter: {
|
|
31
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
32
|
+
method: "GET",
|
|
33
|
+
tags: ["public-newsletter-{siteId}"],
|
|
34
|
+
auth: "public",
|
|
35
|
+
responseKind: "text"
|
|
36
|
+
},
|
|
37
|
+
unsubscribeNewsletter: {
|
|
38
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
39
|
+
method: "GET",
|
|
40
|
+
tags: ["public-newsletter-{siteId}"],
|
|
41
|
+
auth: "public",
|
|
42
|
+
responseKind: "text"
|
|
43
|
+
},
|
|
44
|
+
unsubscribeNewsletterPost: {
|
|
45
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}",
|
|
46
|
+
method: "POST",
|
|
47
|
+
tags: ["public-newsletter-{siteId}"],
|
|
48
|
+
auth: "public",
|
|
49
|
+
responseKind: "text"
|
|
50
|
+
},
|
|
51
|
+
confirmNewsletterPost: {
|
|
52
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}",
|
|
53
|
+
method: "POST",
|
|
54
|
+
tags: ["public-newsletter-{siteId}"],
|
|
55
|
+
auth: "public",
|
|
56
|
+
responseKind: "text"
|
|
57
|
+
},
|
|
58
|
+
getNewsletterPreferences: {
|
|
59
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
60
|
+
method: "GET",
|
|
61
|
+
tags: ["public-newsletter-{siteId}"],
|
|
62
|
+
auth: "public",
|
|
63
|
+
responseKind: "text"
|
|
64
|
+
},
|
|
65
|
+
saveNewsletterPreferences: {
|
|
66
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}",
|
|
67
|
+
method: "POST",
|
|
68
|
+
tags: ["public-newsletter-{siteId}"],
|
|
69
|
+
auth: "public",
|
|
70
|
+
responseKind: "text"
|
|
71
|
+
},
|
|
72
|
+
getNewsletterArchive: {
|
|
73
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}",
|
|
74
|
+
method: "GET",
|
|
75
|
+
tags: ["public-newsletter-{siteId}"],
|
|
76
|
+
auth: "public",
|
|
77
|
+
responseKind: "text"
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
//#endregion
|
|
12
81
|
//#region ../api/src/apiEndpointTypes.ts
|
|
13
82
|
function allowedDemoMutationPolicy() {
|
|
14
83
|
return {
|
|
@@ -100,17 +169,85 @@ const SDK_ENTRY_READ_ENDPOINTS = {
|
|
|
100
169
|
}
|
|
101
170
|
};
|
|
102
171
|
//#endregion
|
|
103
|
-
//#region ../api/src/defineEndpointDefinitions.ts
|
|
104
|
-
/**
|
|
105
|
-
* Validates extracted endpoint descriptors while preserving each literal path,
|
|
106
|
-
* method, and parameter contract for the typed URL builders.
|
|
107
|
-
*/
|
|
108
|
-
function defineEndpointDefinitions(definitions) {
|
|
109
|
-
return definitions;
|
|
110
|
-
}
|
|
111
|
-
//#endregion
|
|
112
172
|
//#region ../api/src/appointmentEndpointDefinitions.ts
|
|
113
173
|
const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
174
|
+
...defineEndpointDefinitions({
|
|
175
|
+
listGroupedAppointmentServices: {
|
|
176
|
+
path: "/sites/{siteId}/bookings/services/grouped",
|
|
177
|
+
method: "GET",
|
|
178
|
+
auth: "user",
|
|
179
|
+
responseKind: "json",
|
|
180
|
+
errors: ["server:internal_error"]
|
|
181
|
+
},
|
|
182
|
+
reorderAppointmentServices: {
|
|
183
|
+
path: "/sites/{siteId}/bookings/services/order",
|
|
184
|
+
method: "PUT",
|
|
185
|
+
auth: "user",
|
|
186
|
+
responseKind: "json",
|
|
187
|
+
errors: [
|
|
188
|
+
"validation:invalid_input",
|
|
189
|
+
"auth:forbidden",
|
|
190
|
+
"resource:not_found",
|
|
191
|
+
"resource:conflict",
|
|
192
|
+
"server:internal_error"
|
|
193
|
+
]
|
|
194
|
+
},
|
|
195
|
+
listAppointmentServiceCategories: {
|
|
196
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
197
|
+
method: "GET",
|
|
198
|
+
auth: "user",
|
|
199
|
+
responseKind: "json",
|
|
200
|
+
errors: ["server:internal_error"]
|
|
201
|
+
},
|
|
202
|
+
createAppointmentServiceCategory: {
|
|
203
|
+
path: "/sites/{siteId}/bookings/service-categories",
|
|
204
|
+
method: "POST",
|
|
205
|
+
auth: "user",
|
|
206
|
+
responseKind: "json",
|
|
207
|
+
errors: [
|
|
208
|
+
"validation:invalid_input",
|
|
209
|
+
"auth:forbidden",
|
|
210
|
+
"resource:conflict",
|
|
211
|
+
"server:internal_error"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
updateAppointmentServiceCategory: {
|
|
215
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
216
|
+
method: "PUT",
|
|
217
|
+
auth: "user",
|
|
218
|
+
responseKind: "json",
|
|
219
|
+
errors: [
|
|
220
|
+
"validation:invalid_input",
|
|
221
|
+
"auth:forbidden",
|
|
222
|
+
"resource:not_found",
|
|
223
|
+
"resource:conflict",
|
|
224
|
+
"server:internal_error"
|
|
225
|
+
]
|
|
226
|
+
},
|
|
227
|
+
deleteAppointmentServiceCategory: {
|
|
228
|
+
path: "/sites/{siteId}/bookings/service-categories/{categoryId}",
|
|
229
|
+
method: "DELETE",
|
|
230
|
+
auth: "user",
|
|
231
|
+
responseKind: "json",
|
|
232
|
+
errors: [
|
|
233
|
+
"auth:forbidden",
|
|
234
|
+
"resource:not_found",
|
|
235
|
+
"server:internal_error"
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
reorderAppointmentServiceCategories: {
|
|
239
|
+
path: "/sites/{siteId}/bookings/service-categories/order",
|
|
240
|
+
method: "PUT",
|
|
241
|
+
auth: "user",
|
|
242
|
+
responseKind: "json",
|
|
243
|
+
errors: [
|
|
244
|
+
"validation:invalid_input",
|
|
245
|
+
"auth:forbidden",
|
|
246
|
+
"resource:conflict",
|
|
247
|
+
"server:internal_error"
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
}),
|
|
114
251
|
listAppointmentResources: {
|
|
115
252
|
path: "/sites/{siteId}/bookings/resources",
|
|
116
253
|
method: "GET",
|
|
@@ -821,6 +958,13 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
|
|
|
821
958
|
errors: [],
|
|
822
959
|
responseKind: "blob"
|
|
823
960
|
},
|
|
961
|
+
exportEventOfferingRegistrationsCsv: {
|
|
962
|
+
path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv",
|
|
963
|
+
method: "GET",
|
|
964
|
+
auth: "user",
|
|
965
|
+
errors: [],
|
|
966
|
+
responseKind: "blob"
|
|
967
|
+
},
|
|
824
968
|
updateEventSeriesRegistration: {
|
|
825
969
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
|
|
826
970
|
method: "PATCH",
|
|
@@ -831,6 +975,19 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
|
|
|
831
975
|
"resource:not_found",
|
|
832
976
|
"server:internal_error"
|
|
833
977
|
]
|
|
978
|
+
},
|
|
979
|
+
saveEventSeriesRegistrationAnswers: {
|
|
980
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers",
|
|
981
|
+
method: "PUT",
|
|
982
|
+
auth: "user",
|
|
983
|
+
responseKind: "json",
|
|
984
|
+
errors: [
|
|
985
|
+
"validation:invalid_input",
|
|
986
|
+
"auth:forbidden",
|
|
987
|
+
"resource:not_found",
|
|
988
|
+
"resource:conflict",
|
|
989
|
+
"server:internal_error"
|
|
990
|
+
]
|
|
834
991
|
}
|
|
835
992
|
});
|
|
836
993
|
//#endregion
|
|
@@ -1251,46 +1408,185 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1251
1408
|
responseKind: "json",
|
|
1252
1409
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1253
1410
|
},
|
|
1254
|
-
|
|
1255
|
-
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/
|
|
1411
|
+
scheduleNewsletterCampaign: {
|
|
1412
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule",
|
|
1256
1413
|
method: "POST",
|
|
1257
1414
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1258
1415
|
auth: "user",
|
|
1259
1416
|
responseKind: "json",
|
|
1260
1417
|
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1261
1418
|
},
|
|
1262
|
-
|
|
1263
|
-
path: "/sites/{siteId}/newsletter/
|
|
1264
|
-
method: "
|
|
1419
|
+
unscheduleNewsletterCampaign: {
|
|
1420
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule",
|
|
1421
|
+
method: "POST",
|
|
1422
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1423
|
+
auth: "user",
|
|
1424
|
+
responseKind: "json",
|
|
1425
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1426
|
+
},
|
|
1427
|
+
stopNewsletterCampaign: {
|
|
1428
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop",
|
|
1429
|
+
method: "POST",
|
|
1265
1430
|
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1266
1431
|
auth: "user",
|
|
1432
|
+
responseKind: "json",
|
|
1433
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1434
|
+
},
|
|
1435
|
+
testSendNewsletterCampaign: {
|
|
1436
|
+
path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
|
|
1437
|
+
method: "POST",
|
|
1438
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1439
|
+
auth: "user",
|
|
1440
|
+
responseKind: "json",
|
|
1441
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
1442
|
+
}
|
|
1443
|
+
});
|
|
1444
|
+
//#endregion
|
|
1445
|
+
//#region ../api/src/sdkEventEndpointDefinitions.ts
|
|
1446
|
+
/**
|
|
1447
|
+
* The SDK's Event graph: the Events themselves and the occurrences of one run.
|
|
1448
|
+
* Extracted from `endpoints.ts` so this family can be read, and added to, on
|
|
1449
|
+
* its own. New entries here must declare `errors`; the
|
|
1450
|
+
* require-api-endpoint-errors lint enforces that here as in endpoints.ts.
|
|
1451
|
+
*/
|
|
1452
|
+
const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1453
|
+
sdkListEvents: {
|
|
1454
|
+
path: "/sdk/{siteId}/events",
|
|
1455
|
+
method: "GET",
|
|
1456
|
+
auth: "service",
|
|
1267
1457
|
responseKind: "json"
|
|
1268
1458
|
},
|
|
1269
|
-
|
|
1270
|
-
path: "/
|
|
1459
|
+
sdkUpsertEvent: {
|
|
1460
|
+
path: "/sdk/{siteId}/events",
|
|
1271
1461
|
method: "POST",
|
|
1462
|
+
auth: "service",
|
|
1463
|
+
responseKind: "json",
|
|
1272
1464
|
errors: [
|
|
1273
1465
|
"validation:invalid_input",
|
|
1274
1466
|
"resource:not_found",
|
|
1275
|
-
"
|
|
1467
|
+
"resource:conflict",
|
|
1468
|
+
"billing:plan_limit_exceeded",
|
|
1276
1469
|
"server:internal_error"
|
|
1277
|
-
]
|
|
1278
|
-
|
|
1279
|
-
|
|
1470
|
+
]
|
|
1471
|
+
},
|
|
1472
|
+
sdkGetEvent: {
|
|
1473
|
+
path: "/sdk/{siteId}/events/{identifier}",
|
|
1474
|
+
method: "GET",
|
|
1475
|
+
auth: "service",
|
|
1280
1476
|
responseKind: "json"
|
|
1281
1477
|
},
|
|
1282
|
-
|
|
1283
|
-
path: "/
|
|
1478
|
+
sdkDeleteEvent: {
|
|
1479
|
+
path: "/sdk/{siteId}/events/{identifier}",
|
|
1480
|
+
method: "DELETE",
|
|
1481
|
+
auth: "service",
|
|
1482
|
+
responseKind: "json",
|
|
1483
|
+
errors: [
|
|
1484
|
+
"resource:not_found",
|
|
1485
|
+
"resource:conflict",
|
|
1486
|
+
"server:internal_error"
|
|
1487
|
+
]
|
|
1488
|
+
},
|
|
1489
|
+
sdkTakeEventOffline: {
|
|
1490
|
+
path: "/sdk/{siteId}/events/{identifier}/lifecycle",
|
|
1284
1491
|
method: "POST",
|
|
1492
|
+
auth: "service",
|
|
1493
|
+
responseKind: "json",
|
|
1494
|
+
errors: [
|
|
1495
|
+
"resource:not_found",
|
|
1496
|
+
"validation:invalid_input",
|
|
1497
|
+
"resource:conflict",
|
|
1498
|
+
"server:internal_error"
|
|
1499
|
+
]
|
|
1500
|
+
},
|
|
1501
|
+
sdkListEventOccurrences: {
|
|
1502
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
|
|
1503
|
+
method: "GET",
|
|
1504
|
+
auth: "service",
|
|
1505
|
+
responseKind: "json",
|
|
1285
1506
|
errors: [
|
|
1507
|
+
"resource:not_found",
|
|
1286
1508
|
"validation:invalid_input",
|
|
1509
|
+
"server:internal_error"
|
|
1510
|
+
]
|
|
1511
|
+
},
|
|
1512
|
+
sdkAddEventOccurrence: {
|
|
1513
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
|
|
1514
|
+
method: "POST",
|
|
1515
|
+
auth: "service",
|
|
1516
|
+
responseKind: "json",
|
|
1517
|
+
errors: [
|
|
1287
1518
|
"resource:not_found",
|
|
1288
|
-
"
|
|
1519
|
+
"validation:invalid_input",
|
|
1520
|
+
"resource:conflict",
|
|
1289
1521
|
"server:internal_error"
|
|
1290
|
-
]
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1522
|
+
]
|
|
1523
|
+
},
|
|
1524
|
+
sdkUpdateEventOccurrence: {
|
|
1525
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
|
|
1526
|
+
method: "PATCH",
|
|
1527
|
+
auth: "service",
|
|
1528
|
+
responseKind: "json",
|
|
1529
|
+
errors: [
|
|
1530
|
+
"resource:not_found",
|
|
1531
|
+
"validation:invalid_input",
|
|
1532
|
+
"resource:conflict",
|
|
1533
|
+
"server:internal_error"
|
|
1534
|
+
]
|
|
1535
|
+
},
|
|
1536
|
+
sdkCancelEventOccurrence: {
|
|
1537
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
|
|
1538
|
+
method: "POST",
|
|
1539
|
+
auth: "service",
|
|
1540
|
+
responseKind: "json",
|
|
1541
|
+
errors: [
|
|
1542
|
+
"resource:not_found",
|
|
1543
|
+
"resource:conflict",
|
|
1544
|
+
"server:internal_error"
|
|
1545
|
+
]
|
|
1546
|
+
},
|
|
1547
|
+
sdkDeleteEventOccurrence: {
|
|
1548
|
+
path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
|
|
1549
|
+
method: "DELETE",
|
|
1550
|
+
auth: "service",
|
|
1551
|
+
responseKind: "json",
|
|
1552
|
+
errors: [
|
|
1553
|
+
"resource:not_found",
|
|
1554
|
+
"resource:conflict",
|
|
1555
|
+
"server:internal_error"
|
|
1556
|
+
]
|
|
1557
|
+
}
|
|
1558
|
+
});
|
|
1559
|
+
//#endregion
|
|
1560
|
+
//#region ../api/src/sdkPageDesignEndpointDefinitions.ts
|
|
1561
|
+
/**
|
|
1562
|
+
* SDK management endpoints for a page's draft design (issue 1497), spread into
|
|
1563
|
+
* `ENDPOINT_DEFINITIONS` like the other endpoint-definition modules. New
|
|
1564
|
+
* entries here must declare `errors`, which the require-api-endpoint-errors
|
|
1565
|
+
* lint enforces.
|
|
1566
|
+
*/
|
|
1567
|
+
const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
1568
|
+
sdkGetPageDesign: {
|
|
1569
|
+
path: "/sdk/{siteId}/pages/{identifier}/design",
|
|
1570
|
+
method: "GET",
|
|
1571
|
+
auth: "service",
|
|
1572
|
+
responseKind: "json",
|
|
1573
|
+
errors: [
|
|
1574
|
+
"resource:not_found",
|
|
1575
|
+
"validation:invalid_input",
|
|
1576
|
+
"server:internal_error"
|
|
1577
|
+
]
|
|
1578
|
+
},
|
|
1579
|
+
sdkSavePageDesign: {
|
|
1580
|
+
path: "/sdk/{siteId}/pages/{identifier}/design",
|
|
1581
|
+
method: "POST",
|
|
1582
|
+
auth: "service",
|
|
1583
|
+
responseKind: "json",
|
|
1584
|
+
errors: [
|
|
1585
|
+
"resource:not_found",
|
|
1586
|
+
"validation:invalid_input",
|
|
1587
|
+
"resource:conflict",
|
|
1588
|
+
"server:internal_error"
|
|
1589
|
+
]
|
|
1294
1590
|
}
|
|
1295
1591
|
});
|
|
1296
1592
|
//#endregion
|
|
@@ -2191,15 +2487,6 @@ function parseMailingListContentVersionId(value) {
|
|
|
2191
2487
|
const parsed = parseContentVersionId(value);
|
|
2192
2488
|
return parsed.ok ? parsed.value : null;
|
|
2193
2489
|
}
|
|
2194
|
-
function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
|
|
2195
|
-
const parsedBlockId = parseMailingListBlockId(blockId);
|
|
2196
|
-
const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
|
|
2197
|
-
return parsedBlockId !== null && parsedContentVersionId !== null ? {
|
|
2198
|
-
tag: "block_ref",
|
|
2199
|
-
blockId: parsedBlockId,
|
|
2200
|
-
contentVersionId: parsedContentVersionId
|
|
2201
|
-
} : null;
|
|
2202
|
-
}
|
|
2203
2490
|
//#endregion
|
|
2204
2491
|
//#region ../core/src/secret.ts
|
|
2205
2492
|
/**
|
|
@@ -2848,6 +3135,45 @@ const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2848
3135
|
}
|
|
2849
3136
|
});
|
|
2850
3137
|
//#endregion
|
|
3138
|
+
//#region ../api/src/siteManagementEndpointDefinitions.ts
|
|
3139
|
+
const SITE_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
3140
|
+
createSite: {
|
|
3141
|
+
path: "/sites/manage",
|
|
3142
|
+
method: "POST",
|
|
3143
|
+
tags: ["site"],
|
|
3144
|
+
auth: "user",
|
|
3145
|
+
responseKind: "json"
|
|
3146
|
+
},
|
|
3147
|
+
updateSite: {
|
|
3148
|
+
path: "/sites/manage",
|
|
3149
|
+
method: "PUT",
|
|
3150
|
+
tags: ["site"],
|
|
3151
|
+
auth: "user",
|
|
3152
|
+
responseKind: "json"
|
|
3153
|
+
},
|
|
3154
|
+
changeSiteAddress: {
|
|
3155
|
+
path: "/sites/{siteId}/address",
|
|
3156
|
+
method: "PUT",
|
|
3157
|
+
auth: "user",
|
|
3158
|
+
responseKind: "json",
|
|
3159
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
|
|
3160
|
+
},
|
|
3161
|
+
getSiteAddressAvailability: {
|
|
3162
|
+
path: "/sites/{siteId}/address/availability",
|
|
3163
|
+
method: "GET",
|
|
3164
|
+
auth: "user",
|
|
3165
|
+
responseKind: "json"
|
|
3166
|
+
},
|
|
3167
|
+
deleteSite: {
|
|
3168
|
+
path: "/sites/{siteId}",
|
|
3169
|
+
method: "DELETE",
|
|
3170
|
+
tags: ["site", "site-{siteId}"],
|
|
3171
|
+
auth: "user",
|
|
3172
|
+
responseKind: "json",
|
|
3173
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
3174
|
+
}
|
|
3175
|
+
});
|
|
3176
|
+
//#endregion
|
|
2851
3177
|
//#region ../api/src/eventManagementEndpointDefinitions.ts
|
|
2852
3178
|
const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
2853
3179
|
listEvents: {
|
|
@@ -2895,6 +3221,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2895
3221
|
"server:internal_error"
|
|
2896
3222
|
]
|
|
2897
3223
|
},
|
|
3224
|
+
/**
|
|
3225
|
+
* The web address of an event's own page. A course page belongs to the
|
|
3226
|
+
* event itself, so its address is written here rather than through a run.
|
|
3227
|
+
*/
|
|
3228
|
+
updateEventAddress: {
|
|
3229
|
+
path: "/sites/{siteId}/bookings/events/{eventId}/address",
|
|
3230
|
+
method: "PATCH",
|
|
3231
|
+
tags: [
|
|
3232
|
+
"site-{siteId}",
|
|
3233
|
+
"event-series-{siteId}",
|
|
3234
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
3235
|
+
TAG_TEMPLATES.siteRedirects
|
|
3236
|
+
],
|
|
3237
|
+
auth: "user",
|
|
3238
|
+
responseKind: "json",
|
|
3239
|
+
errors: [
|
|
3240
|
+
"validation:invalid_input",
|
|
3241
|
+
"resource:not_found",
|
|
3242
|
+
"resource:conflict",
|
|
3243
|
+
"server:internal_error"
|
|
3244
|
+
]
|
|
3245
|
+
},
|
|
2898
3246
|
createWholeSeriesRun: {
|
|
2899
3247
|
path: "/sites/{siteId}/bookings/events/{eventId}/runs",
|
|
2900
3248
|
method: "POST",
|
|
@@ -2921,6 +3269,20 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2921
3269
|
"server:internal_error"
|
|
2922
3270
|
]
|
|
2923
3271
|
},
|
|
3272
|
+
updateCourseBookingSettings: {
|
|
3273
|
+
path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings",
|
|
3274
|
+
method: "PATCH",
|
|
3275
|
+
tags: ["site-{siteId}", "event-series-{siteId}"],
|
|
3276
|
+
auth: "user",
|
|
3277
|
+
responseKind: "json",
|
|
3278
|
+
errors: [
|
|
3279
|
+
"validation:invalid_input",
|
|
3280
|
+
"auth:forbidden",
|
|
3281
|
+
"resource:not_found",
|
|
3282
|
+
"resource:conflict",
|
|
3283
|
+
"server:internal_error"
|
|
3284
|
+
]
|
|
3285
|
+
},
|
|
2924
3286
|
cancelWholeSeriesRun: {
|
|
2925
3287
|
path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
|
|
2926
3288
|
method: "POST",
|
|
@@ -2933,6 +3295,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2933
3295
|
"resource:conflict",
|
|
2934
3296
|
"server:internal_error"
|
|
2935
3297
|
]
|
|
3298
|
+
},
|
|
3299
|
+
/**
|
|
3300
|
+
* The Content tab's one write: the short introduction, image and
|
|
3301
|
+
* description of an event's page, published without its layout.
|
|
3302
|
+
*/
|
|
3303
|
+
saveEventPageWords: {
|
|
3304
|
+
path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
|
|
3305
|
+
method: "PUT",
|
|
3306
|
+
tags: [
|
|
3307
|
+
TAG_TEMPLATES.siteCollection,
|
|
3308
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
3309
|
+
TAG_TEMPLATES.pageSurfaceById
|
|
3310
|
+
],
|
|
3311
|
+
auth: "user",
|
|
3312
|
+
responseKind: "json",
|
|
3313
|
+
errors: [
|
|
3314
|
+
"auth:forbidden",
|
|
3315
|
+
"validation:invalid_input",
|
|
3316
|
+
"resource:not_found",
|
|
3317
|
+
"resource:conflict",
|
|
3318
|
+
"server:internal_error"
|
|
3319
|
+
]
|
|
2936
3320
|
}
|
|
2937
3321
|
});
|
|
2938
3322
|
//#endregion
|
|
@@ -3365,18 +3749,56 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
3365
3749
|
responseKind: "json"
|
|
3366
3750
|
}
|
|
3367
3751
|
});
|
|
3752
|
+
//#endregion
|
|
3753
|
+
//#region ../api/src/clientErrorReporting.ts
|
|
3754
|
+
const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
|
|
3755
|
+
path: "/client/error-report",
|
|
3756
|
+
method: "POST",
|
|
3757
|
+
auth: "user",
|
|
3758
|
+
errors: [],
|
|
3759
|
+
responseKind: "json"
|
|
3760
|
+
} });
|
|
3761
|
+
const CLIENT_ERROR_REPORT_LIMITS = {
|
|
3762
|
+
pathname: 1024,
|
|
3763
|
+
name: 120,
|
|
3764
|
+
message: 2e3,
|
|
3765
|
+
stack: 8e3,
|
|
3766
|
+
digest: 128,
|
|
3767
|
+
componentStack: 8e3,
|
|
3768
|
+
sourceLocation: 1024
|
|
3769
|
+
};
|
|
3770
|
+
const clientErrorEventSchema = z.enum([
|
|
3771
|
+
"dashboard:route-error",
|
|
3772
|
+
"dashboard:app-error",
|
|
3773
|
+
"client:error-boundary",
|
|
3774
|
+
"client:window-error",
|
|
3775
|
+
"client:unhandled-rejection"
|
|
3776
|
+
]);
|
|
3777
|
+
z.object({
|
|
3778
|
+
event: clientErrorEventSchema,
|
|
3779
|
+
pathname: z.string().startsWith("/").max(CLIENT_ERROR_REPORT_LIMITS.pathname),
|
|
3780
|
+
name: z.string().max(CLIENT_ERROR_REPORT_LIMITS.name),
|
|
3781
|
+
message: z.string().max(CLIENT_ERROR_REPORT_LIMITS.message),
|
|
3782
|
+
stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
|
|
3783
|
+
digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
|
|
3784
|
+
componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
|
|
3785
|
+
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
3786
|
+
}).strict();
|
|
3368
3787
|
({
|
|
3788
|
+
...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
|
|
3789
|
+
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3369
3790
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
3370
3791
|
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
3371
3792
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
3372
3793
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
3373
3794
|
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
3374
|
-
...BILLING_ENDPOINT_DEFINITIONS
|
|
3795
|
+
...BILLING_ENDPOINT_DEFINITIONS,
|
|
3796
|
+
...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS
|
|
3375
3797
|
}), 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, {
|
|
3376
3798
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3377
3799
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
3378
3800
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
3379
|
-
}, 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 };
|
|
3801
|
+
}, 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 };
|
|
3380
3802
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
3381
3803
|
z.object({
|
|
3382
3804
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -10088,6 +10510,15 @@ function asSiteStyleId(value) {
|
|
|
10088
10510
|
function asDesignSystemTemplateId(value) {
|
|
10089
10511
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
10090
10512
|
}
|
|
10513
|
+
function toNonEmptyReadonlyArray(values) {
|
|
10514
|
+
const [first, ...rest] = values;
|
|
10515
|
+
return first === void 0 ? null : [first, ...rest];
|
|
10516
|
+
}
|
|
10517
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
10518
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
10519
|
+
if (!result) throw new Error(message);
|
|
10520
|
+
return result;
|
|
10521
|
+
}
|
|
10091
10522
|
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
10092
10523
|
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
10093
10524
|
}
|
|
@@ -10290,16 +10721,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
10290
10721
|
"_frameStyles",
|
|
10291
10722
|
"_sectionStyles",
|
|
10292
10723
|
"_containerStyles",
|
|
10293
|
-
"_cardStyles"
|
|
10294
|
-
"_transitionStyles",
|
|
10295
|
-
"styleGroup"
|
|
10724
|
+
"_cardStyles"
|
|
10296
10725
|
];
|
|
10297
10726
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
10298
10727
|
"_contentCardStyles",
|
|
10299
10728
|
"_heroLayoutStyles",
|
|
10300
10729
|
"_textCardStyles"
|
|
10301
10730
|
];
|
|
10302
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
10731
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
10732
|
+
...themeV2RuntimeStyleFieldNames,
|
|
10733
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
10734
|
+
"styleGroup"
|
|
10735
|
+
];
|
|
10303
10736
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
10304
10737
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
10305
10738
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -12025,11 +12458,260 @@ function cardRoleFromLegacyVocabulary(value) {
|
|
|
12025
12458
|
*/
|
|
12026
12459
|
const cardRoleWithLegacyAliasSchema = z.preprocess((value) => cardRoleFromLegacyVocabulary(value) ?? value, cardRoleSchema);
|
|
12027
12460
|
//#endregion
|
|
12028
|
-
//#region ../theme-core/src/site-styles/
|
|
12029
|
-
|
|
12030
|
-
|
|
12031
|
-
|
|
12032
|
-
|
|
12461
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
12462
|
+
/**
|
|
12463
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
12464
|
+
* same order, so the flat option list and the grouped families agree.
|
|
12465
|
+
*/
|
|
12466
|
+
const transitionCatalogueFamilies = [
|
|
12467
|
+
{
|
|
12468
|
+
id: "gradient",
|
|
12469
|
+
label: "Gradient"
|
|
12470
|
+
},
|
|
12471
|
+
{
|
|
12472
|
+
id: "wave",
|
|
12473
|
+
label: "Wave"
|
|
12474
|
+
},
|
|
12475
|
+
{
|
|
12476
|
+
id: "angle",
|
|
12477
|
+
label: "Angle"
|
|
12478
|
+
}
|
|
12479
|
+
];
|
|
12480
|
+
const mediumHeight = "6rem + 2px";
|
|
12481
|
+
const compactHeight = "4.5rem + 2px";
|
|
12482
|
+
const largeHeight = "7rem + 2px";
|
|
12483
|
+
/**
|
|
12484
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
12485
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
12486
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
12487
|
+
*
|
|
12488
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
12489
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
12490
|
+
*/
|
|
12491
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
12492
|
+
{
|
|
12493
|
+
intent: "soft-fade-short",
|
|
12494
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
12495
|
+
family: "gradient",
|
|
12496
|
+
variantId: "soft",
|
|
12497
|
+
label: "Soft",
|
|
12498
|
+
variantLabel: "Soft",
|
|
12499
|
+
treatment: {
|
|
12500
|
+
kind: "soft-fade",
|
|
12501
|
+
height: "medium",
|
|
12502
|
+
curve: "soft"
|
|
12503
|
+
},
|
|
12504
|
+
size: "medium",
|
|
12505
|
+
heightExpression: mediumHeight,
|
|
12506
|
+
shape: { kind: "fade" }
|
|
12507
|
+
},
|
|
12508
|
+
{
|
|
12509
|
+
intent: "soft-fade-long",
|
|
12510
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
12511
|
+
family: "gradient",
|
|
12512
|
+
variantId: "spacious",
|
|
12513
|
+
label: "Spacious",
|
|
12514
|
+
variantLabel: "Spacious",
|
|
12515
|
+
treatment: {
|
|
12516
|
+
kind: "soft-fade",
|
|
12517
|
+
height: "large",
|
|
12518
|
+
curve: "spacious"
|
|
12519
|
+
},
|
|
12520
|
+
size: "spacious",
|
|
12521
|
+
heightExpression: "10rem",
|
|
12522
|
+
shape: { kind: "fade" }
|
|
12523
|
+
},
|
|
12524
|
+
{
|
|
12525
|
+
intent: "soft-fade-expansive",
|
|
12526
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
12527
|
+
family: "gradient",
|
|
12528
|
+
variantId: "expansive",
|
|
12529
|
+
label: "Expansive",
|
|
12530
|
+
variantLabel: "Expansive",
|
|
12531
|
+
treatment: {
|
|
12532
|
+
kind: "soft-fade",
|
|
12533
|
+
height: "expansive",
|
|
12534
|
+
curve: "expansive"
|
|
12535
|
+
},
|
|
12536
|
+
size: "expansive",
|
|
12537
|
+
heightExpression: "14rem",
|
|
12538
|
+
shape: { kind: "fade" }
|
|
12539
|
+
},
|
|
12540
|
+
{
|
|
12541
|
+
intent: "wave-edge-balanced",
|
|
12542
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
12543
|
+
family: "wave",
|
|
12544
|
+
variantId: "balanced",
|
|
12545
|
+
label: "Balanced wave",
|
|
12546
|
+
variantLabel: "Balanced",
|
|
12547
|
+
treatment: {
|
|
12548
|
+
kind: "wave-edge",
|
|
12549
|
+
height: "medium",
|
|
12550
|
+
amplitude: "balanced",
|
|
12551
|
+
rhythm: "double",
|
|
12552
|
+
symmetry: "symmetrical"
|
|
12553
|
+
},
|
|
12554
|
+
size: "medium",
|
|
12555
|
+
heightExpression: mediumHeight,
|
|
12556
|
+
shape: {
|
|
12557
|
+
kind: "wave",
|
|
12558
|
+
mask: "balanced"
|
|
12559
|
+
}
|
|
12560
|
+
},
|
|
12561
|
+
{
|
|
12562
|
+
intent: "wave-edge",
|
|
12563
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
12564
|
+
family: "wave",
|
|
12565
|
+
variantId: "classic",
|
|
12566
|
+
label: "Classic wave",
|
|
12567
|
+
variantLabel: "Classic",
|
|
12568
|
+
treatment: {
|
|
12569
|
+
kind: "wave-edge",
|
|
12570
|
+
height: "medium",
|
|
12571
|
+
amplitude: "balanced",
|
|
12572
|
+
rhythm: "double",
|
|
12573
|
+
symmetry: "asymmetrical"
|
|
12574
|
+
},
|
|
12575
|
+
size: "medium",
|
|
12576
|
+
heightExpression: mediumHeight,
|
|
12577
|
+
shape: {
|
|
12578
|
+
kind: "wave",
|
|
12579
|
+
mask: "classic"
|
|
12580
|
+
}
|
|
12581
|
+
},
|
|
12582
|
+
{
|
|
12583
|
+
intent: "wave-edge-gentle",
|
|
12584
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
12585
|
+
family: "wave",
|
|
12586
|
+
variantId: "gentle",
|
|
12587
|
+
label: "Gentle wave",
|
|
12588
|
+
variantLabel: "Gentle",
|
|
12589
|
+
treatment: {
|
|
12590
|
+
kind: "wave-edge",
|
|
12591
|
+
height: "compact",
|
|
12592
|
+
amplitude: "subtle",
|
|
12593
|
+
rhythm: "single",
|
|
12594
|
+
symmetry: "symmetrical"
|
|
12595
|
+
},
|
|
12596
|
+
size: "compact",
|
|
12597
|
+
heightExpression: compactHeight,
|
|
12598
|
+
shape: {
|
|
12599
|
+
kind: "wave",
|
|
12600
|
+
mask: "gentle"
|
|
12601
|
+
}
|
|
12602
|
+
},
|
|
12603
|
+
{
|
|
12604
|
+
intent: "wave-edge-bold",
|
|
12605
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
12606
|
+
family: "wave",
|
|
12607
|
+
variantId: "bold",
|
|
12608
|
+
label: "Bold wave",
|
|
12609
|
+
variantLabel: "Bold",
|
|
12610
|
+
treatment: {
|
|
12611
|
+
kind: "wave-edge",
|
|
12612
|
+
height: "large",
|
|
12613
|
+
amplitude: "bold",
|
|
12614
|
+
rhythm: "double",
|
|
12615
|
+
symmetry: "symmetrical"
|
|
12616
|
+
},
|
|
12617
|
+
size: "large",
|
|
12618
|
+
heightExpression: largeHeight,
|
|
12619
|
+
shape: {
|
|
12620
|
+
kind: "wave",
|
|
12621
|
+
mask: "bold"
|
|
12622
|
+
}
|
|
12623
|
+
},
|
|
12624
|
+
{
|
|
12625
|
+
intent: "wave-edge-drift",
|
|
12626
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
12627
|
+
family: "wave",
|
|
12628
|
+
variantId: "drift",
|
|
12629
|
+
label: "Drift wave",
|
|
12630
|
+
variantLabel: "Drift",
|
|
12631
|
+
treatment: {
|
|
12632
|
+
kind: "wave-edge",
|
|
12633
|
+
height: "medium",
|
|
12634
|
+
amplitude: "balanced",
|
|
12635
|
+
rhythm: "double",
|
|
12636
|
+
symmetry: "drift"
|
|
12637
|
+
},
|
|
12638
|
+
size: "medium",
|
|
12639
|
+
heightExpression: mediumHeight,
|
|
12640
|
+
shape: {
|
|
12641
|
+
kind: "wave",
|
|
12642
|
+
mask: "drift"
|
|
12643
|
+
}
|
|
12644
|
+
},
|
|
12645
|
+
{
|
|
12646
|
+
intent: "angle-edge-subtle",
|
|
12647
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
12648
|
+
family: "angle",
|
|
12649
|
+
variantId: "subtle",
|
|
12650
|
+
label: "Subtle angle",
|
|
12651
|
+
variantLabel: "Subtle",
|
|
12652
|
+
treatment: {
|
|
12653
|
+
kind: "angle-edge",
|
|
12654
|
+
height: "compact",
|
|
12655
|
+
slope: "subtle",
|
|
12656
|
+
direction: "forward"
|
|
12657
|
+
},
|
|
12658
|
+
size: "compact",
|
|
12659
|
+
heightExpression: compactHeight,
|
|
12660
|
+
shape: {
|
|
12661
|
+
kind: "angle",
|
|
12662
|
+
polygon: {
|
|
12663
|
+
startTopPercent: 34,
|
|
12664
|
+
endTopPercent: 18
|
|
12665
|
+
}
|
|
12666
|
+
}
|
|
12667
|
+
},
|
|
12668
|
+
{
|
|
12669
|
+
intent: "angle-edge",
|
|
12670
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
12671
|
+
family: "angle",
|
|
12672
|
+
variantId: "balanced",
|
|
12673
|
+
label: "Balanced angle",
|
|
12674
|
+
variantLabel: "Balanced",
|
|
12675
|
+
treatment: {
|
|
12676
|
+
kind: "angle-edge",
|
|
12677
|
+
height: "medium",
|
|
12678
|
+
slope: "balanced",
|
|
12679
|
+
direction: "forward"
|
|
12680
|
+
},
|
|
12681
|
+
size: "medium",
|
|
12682
|
+
heightExpression: mediumHeight,
|
|
12683
|
+
shape: {
|
|
12684
|
+
kind: "angle",
|
|
12685
|
+
polygon: {
|
|
12686
|
+
startTopPercent: 42,
|
|
12687
|
+
endTopPercent: 8
|
|
12688
|
+
}
|
|
12689
|
+
}
|
|
12690
|
+
},
|
|
12691
|
+
{
|
|
12692
|
+
intent: "angle-edge-steep",
|
|
12693
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
12694
|
+
family: "angle",
|
|
12695
|
+
variantId: "steep",
|
|
12696
|
+
label: "Steep angle",
|
|
12697
|
+
variantLabel: "Steep",
|
|
12698
|
+
treatment: {
|
|
12699
|
+
kind: "angle-edge",
|
|
12700
|
+
height: "large",
|
|
12701
|
+
slope: "steep",
|
|
12702
|
+
direction: "forward"
|
|
12703
|
+
},
|
|
12704
|
+
size: "large",
|
|
12705
|
+
heightExpression: largeHeight,
|
|
12706
|
+
shape: {
|
|
12707
|
+
kind: "angle",
|
|
12708
|
+
polygon: {
|
|
12709
|
+
startTopPercent: 54,
|
|
12710
|
+
endTopPercent: 0
|
|
12711
|
+
}
|
|
12712
|
+
}
|
|
12713
|
+
}
|
|
12714
|
+
]);
|
|
12033
12715
|
//#endregion
|
|
12034
12716
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
12035
12717
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -12040,42 +12722,106 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
12040
12722
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
12041
12723
|
};
|
|
12042
12724
|
}
|
|
12043
|
-
|
|
12725
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
12726
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
12727
|
+
/**
|
|
12728
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
12729
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
12730
|
+
*/
|
|
12731
|
+
function requireCatalogueValue(values, intent) {
|
|
12732
|
+
const value = values.get(intent);
|
|
12733
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
12734
|
+
return value;
|
|
12735
|
+
}
|
|
12044
12736
|
const noneBoundaryOption = {
|
|
12045
12737
|
id: asBoundaryOptionId("break:none"),
|
|
12046
12738
|
label: "None",
|
|
12047
12739
|
transitionAfter: "none",
|
|
12048
12740
|
treatment: { kind: "none" }
|
|
12049
12741
|
};
|
|
12050
|
-
const
|
|
12051
|
-
id:
|
|
12052
|
-
label:
|
|
12053
|
-
transitionAfter:
|
|
12054
|
-
treatment:
|
|
12055
|
-
|
|
12056
|
-
|
|
12057
|
-
|
|
12058
|
-
|
|
12742
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
12743
|
+
id: entry.optionId,
|
|
12744
|
+
label: entry.label,
|
|
12745
|
+
transitionAfter: entry.intent,
|
|
12746
|
+
treatment: entry.treatment
|
|
12747
|
+
}]));
|
|
12748
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
12749
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
12750
|
+
}
|
|
12751
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
12752
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
12753
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
12754
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
12755
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
12756
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
12757
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
12758
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
12759
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
12760
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
12761
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
12762
|
+
/**
|
|
12763
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
12764
|
+
*/
|
|
12765
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
12766
|
+
const noneTransitionVariant = {
|
|
12767
|
+
familyId: "none",
|
|
12768
|
+
variantId: "none",
|
|
12769
|
+
label: "None",
|
|
12770
|
+
boundaryOption: noneBoundaryOption
|
|
12059
12771
|
};
|
|
12060
|
-
|
|
12061
|
-
|
|
12062
|
-
|
|
12063
|
-
|
|
12064
|
-
|
|
12065
|
-
|
|
12066
|
-
|
|
12067
|
-
|
|
12068
|
-
|
|
12772
|
+
function transitionVariantForEntry(entry) {
|
|
12773
|
+
return {
|
|
12774
|
+
familyId: entry.family,
|
|
12775
|
+
variantId: entry.variantId,
|
|
12776
|
+
label: entry.variantLabel,
|
|
12777
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
12778
|
+
};
|
|
12779
|
+
}
|
|
12780
|
+
const sectionTransitionFamilies = [{
|
|
12781
|
+
id: "none",
|
|
12782
|
+
label: "None",
|
|
12783
|
+
variants: [noneTransitionVariant]
|
|
12784
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
12785
|
+
id: family.id,
|
|
12786
|
+
label: family.label,
|
|
12787
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
12788
|
+
}))];
|
|
12789
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
12790
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
12791
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
12792
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
12793
|
+
function stableTreatmentKey(treatment) {
|
|
12794
|
+
switch (treatment.kind) {
|
|
12795
|
+
case "none": return "none";
|
|
12796
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
12797
|
+
case "wave-edge": return [
|
|
12798
|
+
treatment.kind,
|
|
12799
|
+
treatment.height,
|
|
12800
|
+
treatment.amplitude,
|
|
12801
|
+
treatment.rhythm,
|
|
12802
|
+
treatment.symmetry
|
|
12803
|
+
].join(":");
|
|
12804
|
+
case "angle-edge": return [
|
|
12805
|
+
treatment.kind,
|
|
12806
|
+
treatment.height,
|
|
12807
|
+
treatment.slope,
|
|
12808
|
+
treatment.direction
|
|
12809
|
+
].join(":");
|
|
12810
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
12811
|
+
}
|
|
12812
|
+
}
|
|
12813
|
+
requireThemeColorToken$1("background");
|
|
12814
|
+
function requireThemeColorToken$1(value) {
|
|
12815
|
+
const token = parseThemeColorToken(value);
|
|
12816
|
+
if (!token) throw new Error(`Expected a theme color token. Received: ${value}`);
|
|
12817
|
+
return token;
|
|
12818
|
+
}
|
|
12819
|
+
//#endregion
|
|
12820
|
+
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
12821
|
+
const defaultHeaderBrandPreferences = {
|
|
12822
|
+
brandDisplay: "auto",
|
|
12823
|
+
logoSize: "auto"
|
|
12069
12824
|
};
|
|
12070
|
-
asBoundaryOptionId("break:expansive");
|
|
12071
|
-
asBoundaryOptionId("break:wave");
|
|
12072
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
12073
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
12074
|
-
asBoundaryOptionId("break:wave-bold");
|
|
12075
|
-
asBoundaryOptionId("break:wave-drift");
|
|
12076
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
12077
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
12078
|
-
asBoundaryOptionId("break:angle-steep");
|
|
12079
12825
|
asBoundaryOptionId("break:unknown");
|
|
12080
12826
|
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
12081
12827
|
kind: z.literal("user-pinned"),
|
|
@@ -12202,14 +12948,11 @@ function validateUniquePageDesignPins(intent, ctx) {
|
|
|
12202
12948
|
label: "block Look pin"
|
|
12203
12949
|
});
|
|
12204
12950
|
addDuplicateStringIssues(ctx, {
|
|
12205
|
-
values: intent.boundaryPins.map((pin) =>
|
|
12951
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
12206
12952
|
path: ["boundaryPins"],
|
|
12207
12953
|
label: "boundary pin"
|
|
12208
12954
|
});
|
|
12209
12955
|
}
|
|
12210
|
-
function boundaryKey(previousBlockId, nextBlockId) {
|
|
12211
|
-
return makeBoundaryId(previousBlockId, nextBlockId);
|
|
12212
|
-
}
|
|
12213
12956
|
//#endregion
|
|
12214
12957
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
12215
12958
|
/**
|
|
@@ -13837,6 +14580,13 @@ z.object({
|
|
|
13837
14580
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
13838
14581
|
authority: styleAuthoritySchema
|
|
13839
14582
|
}).strict();
|
|
14583
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
14584
|
+
asPageFlowPresetId("generated-default");
|
|
14585
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
14586
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
14587
|
+
asLayoutVariantKey("classic");
|
|
14588
|
+
asLayoutVariantKey("micro");
|
|
14589
|
+
asBoundaryOptionId("break:wave");
|
|
13840
14590
|
//#endregion
|
|
13841
14591
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
13842
14592
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -13860,7 +14610,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
13860
14610
|
}
|
|
13861
14611
|
/**
|
|
13862
14612
|
* Default design rules translate semantic page-level choices into the current
|
|
13863
|
-
* runtime's section background
|
|
14613
|
+
* runtime's section background vocabulary.
|
|
13864
14614
|
*/
|
|
13865
14615
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
13866
14616
|
sectionSurfaces: {
|
|
@@ -13895,8 +14645,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
13895
14645
|
color: "surface",
|
|
13896
14646
|
opacity: .88
|
|
13897
14647
|
}
|
|
13898
|
-
}
|
|
13899
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
14648
|
+
}
|
|
13900
14649
|
});
|
|
13901
14650
|
/**
|
|
13902
14651
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -15631,19 +16380,11 @@ const curatedSiteStyles = [
|
|
|
15631
16380
|
})
|
|
15632
16381
|
];
|
|
15633
16382
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
15634
|
-
asPageFlowPresetId("generated-default");
|
|
15635
|
-
asSiteStyleId("site-style:south-west-twerk-school");
|
|
15636
|
-
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
15637
|
-
asLayoutVariantKey("classic");
|
|
15638
|
-
asLayoutVariantKey("micro");
|
|
15639
|
-
asBoundaryOptionId("break:wave");
|
|
15640
|
-
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
15641
16383
|
//#endregion
|
|
15642
16384
|
//#region ../theme-core/src/site-styles/resolver.ts
|
|
15643
16385
|
const blockDesignFallback = {
|
|
15644
16386
|
sectionSurface: "base",
|
|
15645
16387
|
contentFrame: plainFrame,
|
|
15646
|
-
transitionAfter: "none",
|
|
15647
16388
|
sectionHeight: "default",
|
|
15648
16389
|
heroLegibility: "none",
|
|
15649
16390
|
imageSurfaceTreatment: { kind: "none" },
|
|
@@ -15654,7 +16395,7 @@ const blockDesignFallback = {
|
|
|
15654
16395
|
accordionIconTreatment: null,
|
|
15655
16396
|
composition: null
|
|
15656
16397
|
};
|
|
15657
|
-
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.
|
|
16398
|
+
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
15658
16399
|
//#endregion
|
|
15659
16400
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
15660
16401
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
@@ -16466,7 +17207,8 @@ const siteOptionSources = [
|
|
|
16466
17207
|
"eventCategories",
|
|
16467
17208
|
"eventSeries",
|
|
16468
17209
|
"venues",
|
|
16469
|
-
"staffMembers"
|
|
17210
|
+
"staffMembers",
|
|
17211
|
+
"appointmentServiceCategories"
|
|
16470
17212
|
];
|
|
16471
17213
|
const mediaDeliverySchema = z.object({
|
|
16472
17214
|
sizes: z.string().optional(),
|
|
@@ -25687,13 +26429,13 @@ const hours = stack({
|
|
|
25687
26429
|
as: "p",
|
|
25688
26430
|
className: "rb-caption rb-opacity-70"
|
|
25689
26431
|
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
25690
|
-
const socials = inline({ className: "rb-
|
|
26432
|
+
const socials = inline({ className: "rb-footer-socials" }, [link({
|
|
25691
26433
|
href: { $bind: { from: "social.href" } },
|
|
25692
26434
|
target: "_blank",
|
|
25693
26435
|
rel: "noreferrer noopener",
|
|
25694
26436
|
"aria-label": { $bind: { from: "social.label" } },
|
|
25695
|
-
className: "rb-nav-text transition-theme-standard"
|
|
25696
|
-
}, [icon({ className: "rb-
|
|
26437
|
+
className: "rb-footer-social-link rb-nav-text transition-theme-standard"
|
|
26438
|
+
}, [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" }));
|
|
25697
26439
|
const authoredCopy = richText({
|
|
25698
26440
|
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
25699
26441
|
style: textColorStyle("text/80")
|
|
@@ -27334,6 +28076,15 @@ const appointmentServicesBlockDefinition = {
|
|
|
27334
28076
|
required: false,
|
|
27335
28077
|
ui: { intent: "content" }
|
|
27336
28078
|
},
|
|
28079
|
+
createSiteOptionSelectField({
|
|
28080
|
+
id: "categoryId",
|
|
28081
|
+
label: "Category",
|
|
28082
|
+
description: "Show one category (with its heading and intro), or leave it on All categories to show everything grouped.",
|
|
28083
|
+
required: false,
|
|
28084
|
+
multiple: false,
|
|
28085
|
+
optionSource: "appointmentServiceCategories",
|
|
28086
|
+
ui: { intent: "content" }
|
|
28087
|
+
}),
|
|
27337
28088
|
sectionStylesField({
|
|
27338
28089
|
id: "_sectionStyles",
|
|
27339
28090
|
label: "Section styles",
|
|
@@ -27368,6 +28119,7 @@ const appointmentServicesBlockDefinition = {
|
|
|
27368
28119
|
richText({ className: "rb-prose rb-max-w-none" }, bind("content.description"), when("content.description")),
|
|
27369
28120
|
el("appointment-services", {
|
|
27370
28121
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
28122
|
+
categoryId: { $bind: { from: "content.categoryId" } },
|
|
27371
28123
|
services: { $bind: { from: "data.services" } },
|
|
27372
28124
|
pathname: { $bind: { from: "$root.pathname" } },
|
|
27373
28125
|
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
@@ -27768,6 +28520,7 @@ const publicEventLoaderQuerySchemaShape = {
|
|
|
27768
28520
|
seriesSlug: z.string().optional(),
|
|
27769
28521
|
includeOccurrenceId: z.string().optional(),
|
|
27770
28522
|
readIntent: z.string().optional(),
|
|
28523
|
+
detailAdmission: z.string().optional(),
|
|
27771
28524
|
detailLevel: z.string().optional(),
|
|
27772
28525
|
readProfile: z.string().optional()
|
|
27773
28526
|
};
|
|
@@ -27934,11 +28687,11 @@ const publicEventBookingAvailabilitySchema = z.discriminatedUnion("kind", [z.obj
|
|
|
27934
28687
|
"series_archived",
|
|
27935
28688
|
"parent_archived",
|
|
27936
28689
|
"parent_inconsistent",
|
|
27937
|
-
"not_public",
|
|
27938
28690
|
"already_started",
|
|
27939
28691
|
"enrollment_closed"
|
|
27940
28692
|
])
|
|
27941
28693
|
})]);
|
|
28694
|
+
const publicEventBookingClosedDetailSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("opensSoon") }), z.object({ kind: z.literal("paused") })]);
|
|
27942
28695
|
const publicRunSessionSchema = z.object({
|
|
27943
28696
|
occurrenceId: z.string(),
|
|
27944
28697
|
startsAt: z.string(),
|
|
@@ -27983,6 +28736,7 @@ const publicEventBaseSchema = z.object({
|
|
|
27983
28736
|
destination: publicEventDestinationSchema,
|
|
27984
28737
|
requiresRegistration: z.boolean(),
|
|
27985
28738
|
bookingAvailability: publicEventBookingAvailabilitySchema,
|
|
28739
|
+
bookingClosedDetail: publicEventBookingClosedDetailSchema.optional(),
|
|
27986
28740
|
deliveryMode: z.enum([
|
|
27987
28741
|
"in_person",
|
|
27988
28742
|
"online",
|
|
@@ -35646,6 +36400,11 @@ const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
|
|
|
35646
36400
|
});
|
|
35647
36401
|
return z.NEVER;
|
|
35648
36402
|
});
|
|
36403
|
+
const mailingListSignupBlockSourceRefSchema = z.object({
|
|
36404
|
+
tag: z.literal("block_ref"),
|
|
36405
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
36406
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
36407
|
+
});
|
|
35649
36408
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
35650
36409
|
const newsletterSourceCommonSchema = z.object({
|
|
35651
36410
|
siteId: z.string().optional(),
|
|
@@ -35660,7 +36419,15 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
35660
36419
|
newsletterSourceCommonSchema.extend({
|
|
35661
36420
|
source: z.literal("block"),
|
|
35662
36421
|
blockId: z.string().nullable().optional(),
|
|
35663
|
-
|
|
36422
|
+
newsletterBlockSubmission: z.discriminatedUnion("tag", [
|
|
36423
|
+
z.object({
|
|
36424
|
+
tag: z.literal("ready"),
|
|
36425
|
+
sourceRef: mailingListSignupBlockSourceRefSchema
|
|
36426
|
+
}),
|
|
36427
|
+
z.object({ tag: z.literal("unpublished-form") }),
|
|
36428
|
+
z.object({ tag: z.literal("unpublished-settings") }),
|
|
36429
|
+
z.object({ tag: z.literal("unavailable") })
|
|
36430
|
+
])
|
|
35664
36431
|
}),
|
|
35665
36432
|
newsletterSourceCommonSchema.extend({
|
|
35666
36433
|
source: z.literal("signed-footer"),
|
|
@@ -35689,11 +36456,7 @@ const newsletterHydrationSchema = z.object({
|
|
|
35689
36456
|
target: z.discriminatedUnion("tag", [
|
|
35690
36457
|
z.object({
|
|
35691
36458
|
tag: z.literal("block-source"),
|
|
35692
|
-
sourceRef:
|
|
35693
|
-
tag: z.literal("block_ref"),
|
|
35694
|
-
blockId: mailingListSignupBlockIdSchema,
|
|
35695
|
-
contentVersionId: mailingListContentVersionIdSchema
|
|
35696
|
-
}).nullable()
|
|
36459
|
+
sourceRef: mailingListSignupBlockSourceRefSchema.nullable()
|
|
35697
36460
|
}),
|
|
35698
36461
|
z.object({
|
|
35699
36462
|
tag: z.literal("signed-footer-source"),
|
|
@@ -35702,7 +36465,11 @@ const newsletterHydrationSchema = z.object({
|
|
|
35702
36465
|
token: signedMailingListSourceTokenSchema
|
|
35703
36466
|
})
|
|
35704
36467
|
}),
|
|
35705
|
-
z.object({ tag: z.literal("preview") })
|
|
36468
|
+
z.object({ tag: z.literal("preview") }),
|
|
36469
|
+
z.object({
|
|
36470
|
+
tag: z.literal("unpublished-preview"),
|
|
36471
|
+
reason: z.enum(["unpublished-form", "unpublished-settings"])
|
|
36472
|
+
})
|
|
35706
36473
|
]),
|
|
35707
36474
|
setupRevision: z.number().int().positive().nullable(),
|
|
35708
36475
|
choiceProvider: z.enum([
|
|
@@ -35771,16 +36538,21 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
35771
36538
|
});
|
|
35772
36539
|
function projectNewsletterFormHydrationTarget(source) {
|
|
35773
36540
|
switch (source.source) {
|
|
35774
|
-
case "block": {
|
|
35775
|
-
|
|
35776
|
-
|
|
36541
|
+
case "block": switch (source.newsletterBlockSubmission.tag) {
|
|
36542
|
+
case "unpublished-form":
|
|
36543
|
+
case "unpublished-settings": return {
|
|
36544
|
+
tag: "unpublished-preview",
|
|
36545
|
+
reason: source.newsletterBlockSubmission.tag
|
|
36546
|
+
};
|
|
36547
|
+
case "ready": return {
|
|
35777
36548
|
tag: "block-source",
|
|
35778
|
-
sourceRef
|
|
36549
|
+
sourceRef: source.newsletterBlockSubmission.sourceRef
|
|
35779
36550
|
};
|
|
35780
|
-
return {
|
|
36551
|
+
case "unavailable": return {
|
|
35781
36552
|
tag: "block-source",
|
|
35782
36553
|
sourceRef: null
|
|
35783
36554
|
};
|
|
36555
|
+
default: return assertNever$2(source.newsletterBlockSubmission);
|
|
35784
36556
|
}
|
|
35785
36557
|
case "signed-footer": return {
|
|
35786
36558
|
tag: "signed-footer-source",
|
|
@@ -38333,6 +39105,46 @@ z.object({ acceptExtraSiteCharge: z.boolean().optional() });
|
|
|
38333
39105
|
//#region ../surfaces/src/index.ts
|
|
38334
39106
|
const SURFACE_IDS = ["core", "macadamia"];
|
|
38335
39107
|
const DEFAULT_SURFACE_ID = "core";
|
|
39108
|
+
/**
|
|
39109
|
+
* Root hosts for each surface, keyed by deployment tier. The tier-keyed shape
|
|
39110
|
+
* makes it impossible to mis-order entries: callers like
|
|
39111
|
+
* `buildSurfaceAwareDashboardOriginForSurfaceId` look up by tier directly
|
|
39112
|
+
* rather than relying on positional alignment between arrays.
|
|
39113
|
+
*/
|
|
39114
|
+
const SURFACE_ROOT_HOSTS = {
|
|
39115
|
+
core: {
|
|
39116
|
+
local: "localhost",
|
|
39117
|
+
prod: "riverbankcms.com"
|
|
39118
|
+
},
|
|
39119
|
+
macadamia: {
|
|
39120
|
+
local: "macadamia.localhost",
|
|
39121
|
+
prod: "macadamia.studio"
|
|
39122
|
+
}
|
|
39123
|
+
};
|
|
39124
|
+
const SURFACE_SITE_ROOT_HOSTS = {
|
|
39125
|
+
core: {
|
|
39126
|
+
local: "localhost",
|
|
39127
|
+
prod: "riverbanksites.com"
|
|
39128
|
+
},
|
|
39129
|
+
macadamia: {
|
|
39130
|
+
local: "macadamia.localhost",
|
|
39131
|
+
prod: "macadamia.studio"
|
|
39132
|
+
}
|
|
39133
|
+
};
|
|
39134
|
+
const SURFACE_SITE_ROOT_HOST_ALIASES = { core: { prod: ["preview.riverbanksites.com"] } };
|
|
39135
|
+
function surfaceHostTableValues(table) {
|
|
39136
|
+
return Object.values(table).flatMap((byTier) => Object.values(byTier).flat());
|
|
39137
|
+
}
|
|
39138
|
+
function siteSlugLabelUnderRoot(host, siteRootHost) {
|
|
39139
|
+
if (!host.endsWith(`.${siteRootHost}`)) return [];
|
|
39140
|
+
return host.slice(0, host.length - siteRootHost.length - 1).split(".").slice(-1);
|
|
39141
|
+
}
|
|
39142
|
+
function deriveSurfaceOwnedSiteSlugs() {
|
|
39143
|
+
const siteRootHosts = [...surfaceHostTableValues(SURFACE_SITE_ROOT_HOSTS), ...surfaceHostTableValues(SURFACE_SITE_ROOT_HOST_ALIASES)];
|
|
39144
|
+
const labels = [...surfaceHostTableValues(SURFACE_ROOT_HOSTS), ...siteRootHosts].flatMap((host) => siteRootHosts.flatMap((root) => siteSlugLabelUnderRoot(host, root)));
|
|
39145
|
+
return [...new Set(labels)].sort();
|
|
39146
|
+
}
|
|
39147
|
+
deriveSurfaceOwnedSiteSlugs();
|
|
38336
39148
|
[...SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID)];
|
|
38337
39149
|
//#endregion
|
|
38338
39150
|
//#region ../api/src/accountApi.ts
|
|
@@ -38715,7 +39527,12 @@ const appointmentSetupServiceDraftSchema = z.object({
|
|
|
38715
39527
|
venue: appointmentSetupVenueChoiceSchema,
|
|
38716
39528
|
timezone: z.string().trim().min(1).nullable(),
|
|
38717
39529
|
payment: appointmentSetupPaymentDraftSchema,
|
|
38718
|
-
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
39530
|
+
assignment: appointmentSetupServiceAssignmentDraftSchema,
|
|
39531
|
+
/**
|
|
39532
|
+
* The service's category, or null for "Other" (issue 1403). Omitted leaves
|
|
39533
|
+
* an existing service's category alone and puts a new one in "Other".
|
|
39534
|
+
*/
|
|
39535
|
+
categoryId: z.string().uuid().nullable().optional()
|
|
38719
39536
|
}).superRefine((service, ctx) => {
|
|
38720
39537
|
if (service.payment.kind !== "free" && (service.priceAmount === null || service.priceAmount <= 0)) ctx.addIssue({
|
|
38721
39538
|
code: "custom",
|
|
@@ -38929,6 +39746,7 @@ function collectText(node) {
|
|
|
38929
39746
|
if (node.type === "text") return node.text ?? "";
|
|
38930
39747
|
return (node.content ?? []).map(collectText).join("");
|
|
38931
39748
|
}
|
|
39749
|
+
z.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
|
|
38932
39750
|
//#endregion
|
|
38933
39751
|
//#region ../api/src/bookingPaymentTermSchemas.ts
|
|
38934
39752
|
const bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
|