@riverbankcms/sdk 0.139.0 → 0.141.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-BDeenhi3.mjs → PreviewEditorSidebar-Q-fy9GYw.mjs} +4 -4
- package/dist/{PreviewEditorUI-DSRhgjF5.mjs → PreviewEditorUI-LYGzgk85.mjs} +3 -3
- package/dist/{PreviewQueryProvider-D2K8GLUG.mjs → PreviewQueryProvider-CN0ewic5.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CL7wSnYu.mjs → SdkPreviewModeRuntime-CoPYI5Jq.mjs} +90 -50
- package/dist/{SiteChromeCustomizeContext-BhDn-5ir.mjs → SiteChromeCustomizeContext-D8LePX8x.mjs} +2731 -1303
- package/dist/_dts/ai/src/contracts/proposals.d.ts +165 -165
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +212 -212
- package/dist/_dts/api/src/accessAdmin.d.ts +74 -104
- package/dist/_dts/api/src/aiEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/authSubmission.d.ts +46 -0
- package/dist/_dts/api/src/billing.d.ts +8 -4
- package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +23 -0
- package/dist/_dts/api/src/billingEndpointTypes.d.ts +26 -0
- package/dist/_dts/api/src/blocks.d.ts +2 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +1 -2
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +8 -1
- package/dist/_dts/api/src/communications.d.ts +0 -1
- package/dist/_dts/api/src/contentRuntime.d.ts +17 -31
- package/dist/_dts/api/src/domainConnection.d.ts +4 -0
- package/dist/_dts/api/src/endpoints.d.ts +93 -64
- package/dist/_dts/api/src/event-destination-policy.d.ts +2 -1
- package/dist/_dts/api/src/footerCompositionContracts.d.ts +25 -0
- package/dist/_dts/api/src/footerSettings.d.ts +9 -6
- package/dist/_dts/api/src/index.d.ts +6 -7
- 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 +1 -0
- package/dist/_dts/api/src/mailingListIntegration.d.ts +8 -2
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +2 -1
- package/dist/_dts/api/src/navigation/types.d.ts +1 -1
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +25 -0
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +32 -32
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +8 -0
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +11 -3
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +3 -29
- package/dist/_dts/api/src/publicOnboardingAttemptEndpointDefinitions.d.ts +65 -0
- package/dist/_dts/api/src/saveOutcome.d.ts +20 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -22
- package/dist/_dts/api/src/sdkPushContracts.d.ts +18 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +44 -44
- package/dist/_dts/api/src/settings/permissions.d.ts +12 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -29
- package/dist/_dts/api/src/siteOnboarding.d.ts +9 -9
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +2 -4
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +3 -1
- package/dist/_dts/api/src/siteSettings.d.ts +20 -7
- package/dist/_dts/api/src/types.d.ts +77 -77
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -37
- package/dist/_dts/billing/src/membership/index.d.ts +3 -0
- package/dist/_dts/billing/src/plans/types.d.ts +3 -0
- package/dist/_dts/billing/src/site-arrangements.d.ts +23 -3
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +20 -4
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +2 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +7 -0
- package/dist/_dts/blocks/src/portal/types.d.ts +2 -4
- package/dist/_dts/blocks/src/portal/waitlist-types.d.ts +35 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +122 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/eventSelection.d.ts +11 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
- 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/data/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +7 -1
- package/dist/_dts/blocks/src/system/data/types.d.ts +9 -0
- package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +27 -1
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -28
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/waitlist-claims.d.ts +7 -2
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -186
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -93
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +48 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +1 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +56 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.state.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +10 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +14 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useSettledCommerceView.d.ts +37 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +24 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +4 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +11 -101
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +7 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -6
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +12 -0
- package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +4 -0
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +27 -4
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -1
- package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +3 -1
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +3 -0
- package/dist/_dts/core/src/branded.d.ts +0 -8
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +1 -1
- package/dist/_dts/core/src/mailing-list-setup.d.ts +14 -1
- package/dist/_dts/core/src/mailing-list-submission.d.ts +7 -27
- package/dist/_dts/core/src/participants.d.ts +2 -29
- package/dist/_dts/core/src/public-experience.d.ts +4 -0
- package/dist/_dts/core/src/public-profile.d.ts +27 -1
- package/dist/_dts/core/src/site-route-target.d.ts +9 -2
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +296 -606
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListGlobalSettingsSummary.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +19 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +27 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +14 -20
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +7 -1
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +1 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/ThemeFontLoader.d.ts +17 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/classNames.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +0 -6
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +4 -4
- package/dist/_dts/theme-core/src/cards/types.d.ts +21 -21
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +8 -2
- package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -2
- package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +54 -12
- package/dist/_dts/theme-core/src/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +54 -54
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -4
- package/dist/_dts/theme-core/src/schema.d.ts +84 -84
- package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +77 -0
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/typography/generateTypographyCss.d.ts +2 -2
- package/dist/_dts/ui/src/lib/use-delayed-flag.d.ts +9 -0
- package/dist/_dts/ui/src/pending-button.d.ts +10 -0
- package/dist/client/{BookingConsentAgreement-CZvTDtsK.mjs → BookingConsentAgreement-xJeYNdnb.mjs} +4 -4
- package/dist/client/{DiscountCodeDisclosure-D-DsLCMU.mjs → DiscountCodeDisclosure-DdT6uzl9.mjs} +1 -1
- package/dist/client/{EventCombined.client-dWqgd5ZO.mjs → EventCombined.client-Cp28uYuM.mjs} +12 -16
- package/dist/client/{EventListing.client-BMRa9IYp.mjs → EventListing.client-CD6AJsMr.mjs} +4 -17
- package/dist/client/{LeafletStaticMap-D21W9kBZ.mjs → LeafletStaticMap-DBsAi9-e.mjs} +1 -1
- package/dist/client/{accordion-FxF_ta47.mjs → accordion-6dwbOKYR.mjs} +1 -1
- package/dist/client/{bookingForm-YnwW4TGw.mjs → bookingForm-CZE9_qPQ.mjs} +7 -7
- package/dist/client/bookings.mjs +500 -233
- package/dist/client/{carousel-vng7fFT5.mjs → carousel-7VHGQARz.mjs} +2 -2
- package/dist/client/{carousel.client-59G_WMr4.mjs → carousel.client-DQTjCVQT.mjs} +1 -1
- package/dist/client/{cart-DEPDsjNk.mjs → cart-Qg_mvQhh.mjs} +3 -3
- package/dist/client/{checkout-CZRWu9rW.mjs → checkout-D84rpgdr.mjs} +3 -3
- package/dist/client/{checkoutUrls-BuseL0dw.mjs → checkoutUrls-FL6lRkrt.mjs} +1 -1
- package/dist/client/client.mjs +2315 -1017
- package/dist/client/{colorStyles-CrxJrPjJ.mjs → colorStyles-3013aRAY.mjs} +3 -1
- package/dist/client/{context-DvU_WUmd.mjs → context-Ctp3T0Wr.mjs} +6 -19
- package/dist/client/{dates-wnPMiRl5.mjs → dates-DJKFcI_N.mjs} +2 -2
- package/dist/client/{eventCalendar-BA3Q5L15.mjs → eventCalendar-CK31z3vs.mjs} +12 -8
- package/dist/client/{eventCombined-51wgR-1R.mjs → eventCombined-DiXd-ewn.mjs} +3 -3
- package/dist/client/{eventDetails-modaetpm.mjs → eventDetails-CTRgt2DK.mjs} +4 -4
- package/dist/client/{eventListing-D8t2J3Kv.mjs → eventListing-Dy9vi_j_.mjs} +3 -3
- package/dist/client/{eventRegistration-CYqtkCE_.mjs → eventRegistration-CnalYMr2.mjs} +618 -177
- package/dist/client/{form-CBKXN5In.mjs → form-eUiMveTT.mjs} +3 -3
- package/dist/client/{headerSection-DylDqNrs.mjs → headerSection-Dy9kQpB1.mjs} +2 -2
- package/dist/client/hooks.mjs +692 -212
- package/dist/client/{locationMap-CvWrG0vZ.mjs → locationMap-DalCmWU0.mjs} +3 -3
- package/dist/client/{media-BOHuueS5.mjs → media-DHpfFwd3.mjs} +1 -1
- package/dist/client/{newsletterForm-Btwk70zw.mjs → newsletterForm-SDDPvhS0.mjs} +150 -94
- package/dist/client/{pricing-Uzw-GQ6Y.mjs → pricing-OcMz4SnX.mjs} +1 -1
- package/dist/client/{productDetail-JLcUYKnd.mjs → productDetail-BQrgHElM.mjs} +3 -3
- package/dist/client/{productList-FM0cbUzj.mjs → productList-OnPn_UJj.mjs} +3 -3
- package/dist/client/{propsDecoder-DYzafZb2.mjs → propsDecoder-zBdsnS-N.mjs} +168 -32
- package/dist/client/rendering/client.mjs +1355 -519
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2294 -953
- package/dist/client/{scrollToBlock-CvXszexS.mjs → scrollToBlock-BNM4Ob2Y.mjs} +28 -11
- package/dist/client/{shop-BIcjvy5a.mjs → shop-Bv1fPTwQ.mjs} +6 -6
- package/dist/client/{shop-commerce-BZQsy7xw.mjs → shop-commerce-D4KNGaW8.mjs} +7 -7
- package/dist/client/{shop-commerce-store-D5V7XAb5.mjs → shop-commerce-store-2N5EV0Rc.mjs} +1 -1
- package/dist/client/{shopShared-DowkXevB.mjs → shopShared-DvJGdHTV.mjs} +4 -4
- package/dist/client/{useEventFilters-oMoTw_JE.mjs → useEventFilters-BBBvGDHQ.mjs} +19 -13
- package/dist/preview-next/before-render.mjs +119 -64
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-chrome.css +4 -8
- package/dist/preview-next/keepAlive.mjs +119 -64
- package/dist/preview-next/middleware.mjs +119 -64
- package/dist/{previewAuthStore-COUyAKaX.mjs → previewAuthStore-Gjb6r6vz.mjs} +119 -64
- package/dist/{sdk-runtime-D4k2LSGF.mjs → sdk-runtime-Defnbfzw.mjs} +2 -2
- package/dist/{separator-UGtpag4Z.mjs → separator-CZXO3Sb0.mjs} +1 -1
- package/dist/server/components.mjs +1170 -384
- package/dist/server/config-validation.mjs +560 -105
- package/dist/server/config.mjs +564 -109
- package/dist/server/data.mjs +688 -212
- package/dist/server/index.mjs +126 -66
- package/dist/server/next.mjs +1429 -662
- package/dist/server/page-converter.mjs +372 -99
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1624 -817
- package/dist/server/rendering.mjs +1200 -391
- package/dist/server/routing.mjs +767 -247
- package/dist/server/server.mjs +715 -276
- package/dist/server/theme-bridge.mjs +475 -110
- package/dist/server/theme.mjs +9 -3
- package/dist/styles/index.css +265 -45
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +0 -29
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +0 -13
package/dist/server/data.mjs
CHANGED
|
@@ -29,10 +29,12 @@ const unsafeAsApiKeyId = (id) => id;
|
|
|
29
29
|
const unsafeAsEventOfferingId = (id) => id;
|
|
30
30
|
const unsafeAsEventSeriesId = (id) => id;
|
|
31
31
|
const unsafeAsUserId = (id) => id;
|
|
32
|
+
const unsafeAsContentVersionId = (id) => id;
|
|
32
33
|
const parseSiteId = (value) => parseUuidBrand(value, unsafeAsSiteId);
|
|
33
34
|
const parseApiKeyId = (value) => parseUuidBrand(value, unsafeAsApiKeyId);
|
|
34
35
|
const parseEventOfferingId = (value) => parseUuidBrand(value, unsafeAsEventOfferingId);
|
|
35
36
|
const parseUserId = (value) => parseUuidBrand(value, unsafeAsUserId);
|
|
37
|
+
const parseContentVersionId = (value) => parseUuidBrand(value, unsafeAsContentVersionId);
|
|
36
38
|
const parseEventSeriesId = (value) => parseUuidBrand(value, unsafeAsEventSeriesId);
|
|
37
39
|
//#endregion
|
|
38
40
|
//#region ../core/src/assert-never.ts
|
|
@@ -266,7 +268,7 @@ function parseEventPageSurfaceDestinationMode(value) {
|
|
|
266
268
|
return value === "cms-managed" || value === "system-managed" ? value : void 0;
|
|
267
269
|
}
|
|
268
270
|
function parseEventPageSurfaceSubject(value) {
|
|
269
|
-
if (!isRecord$
|
|
271
|
+
if (!isRecord$13(value)) return err({ kind: "notObject" });
|
|
270
272
|
switch (value.kind) {
|
|
271
273
|
case "eventSeries": {
|
|
272
274
|
const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
|
|
@@ -321,7 +323,7 @@ function parseEventSeriesIdList(values) {
|
|
|
321
323
|
}
|
|
322
324
|
return ok(parsed);
|
|
323
325
|
}
|
|
324
|
-
function isRecord$
|
|
326
|
+
function isRecord$13(value) {
|
|
325
327
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
326
328
|
}
|
|
327
329
|
//#endregion
|
|
@@ -505,16 +507,47 @@ function parsePositiveInteger(value) {
|
|
|
505
507
|
function parseNewsletterListId(value) {
|
|
506
508
|
return parseTrimmedMatchingString(value, UUID_PATTERN);
|
|
507
509
|
}
|
|
510
|
+
function parseMailchimpAccountId(value) {
|
|
511
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
512
|
+
}
|
|
508
513
|
function parseMailchimpAudienceId(value) {
|
|
509
514
|
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
510
515
|
}
|
|
511
516
|
function parseMailchimpInterestId(value) {
|
|
512
517
|
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
513
518
|
}
|
|
519
|
+
function parseBrevoAccountId(value) {
|
|
520
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
521
|
+
}
|
|
514
522
|
function parseBrevoListId(value) {
|
|
515
523
|
return parsePositiveInteger(value);
|
|
516
524
|
}
|
|
517
525
|
//#endregion
|
|
526
|
+
//#region ../core/src/mailing-list-setup.ts
|
|
527
|
+
function isRecord$12(value) {
|
|
528
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
529
|
+
}
|
|
530
|
+
const DEFAULT_MAILING_LIST_SUCCESS_MESSAGE = "Thanks — you're on the list.";
|
|
531
|
+
function parseMailingListProviderScope(value) {
|
|
532
|
+
if (!isRecord$12(value)) return err("invalid_mailing_list_provider_scope");
|
|
533
|
+
if (value.provider === "native") return ok({ provider: "native" });
|
|
534
|
+
if (value.provider === "brevo") {
|
|
535
|
+
const accountId = parseBrevoAccountId(value.accountId);
|
|
536
|
+
return accountId !== null ? ok({
|
|
537
|
+
provider: "brevo",
|
|
538
|
+
accountId
|
|
539
|
+
}) : err("invalid_mailing_list_provider_scope");
|
|
540
|
+
}
|
|
541
|
+
if (value.provider === "mailchimp") {
|
|
542
|
+
const accountId = parseMailchimpAccountId(value.accountId);
|
|
543
|
+
return accountId !== null ? ok({
|
|
544
|
+
provider: "mailchimp",
|
|
545
|
+
accountId
|
|
546
|
+
}) : err("invalid_mailing_list_provider_scope");
|
|
547
|
+
}
|
|
548
|
+
return err("invalid_mailing_list_provider_scope");
|
|
549
|
+
}
|
|
550
|
+
//#endregion
|
|
518
551
|
//#region ../core/src/mailing-list-setup-parser.ts
|
|
519
552
|
function parseMailingListGlobalForm(value) {
|
|
520
553
|
if (!isRecord$11(value)) return formError("shape");
|
|
@@ -523,12 +556,15 @@ function parseMailingListGlobalForm(value) {
|
|
|
523
556
|
if (typeof value.includeOptionalPhone !== "boolean") return formError("includeOptionalPhone");
|
|
524
557
|
const buttonLabel = parseRequiredString(value.buttonLabel);
|
|
525
558
|
if (buttonLabel === null) return formError("buttonLabel");
|
|
559
|
+
const successMessage = parseRequiredString(value.successMessage);
|
|
560
|
+
if (successMessage === null) return formError("successMessage");
|
|
526
561
|
const privacyNote = parseOptionalString(value.privacyNote);
|
|
527
562
|
if (privacyNote === void 0) return formError("privacyNote");
|
|
528
563
|
return ok({
|
|
529
564
|
fields,
|
|
530
565
|
includeOptionalPhone: value.includeOptionalPhone,
|
|
531
566
|
buttonLabel,
|
|
567
|
+
successMessage,
|
|
532
568
|
privacyNote
|
|
533
569
|
});
|
|
534
570
|
}
|
|
@@ -858,11 +894,17 @@ function parseMailingListSignedSourceToken(value) {
|
|
|
858
894
|
const parsed = typeof value === "string" ? value.trim() : "";
|
|
859
895
|
return /^[A-Za-z0-9._~-]{16,1000}$/u.test(parsed) ? parsed : null;
|
|
860
896
|
}
|
|
861
|
-
function
|
|
862
|
-
const parsed =
|
|
863
|
-
return parsed
|
|
897
|
+
function parseMailingListContentVersionId(value) {
|
|
898
|
+
const parsed = parseContentVersionId(value);
|
|
899
|
+
return parsed.ok ? parsed.value : null;
|
|
900
|
+
}
|
|
901
|
+
function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
|
|
902
|
+
const parsedBlockId = parseMailingListBlockId(blockId);
|
|
903
|
+
const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
|
|
904
|
+
return parsedBlockId !== null && parsedContentVersionId !== null ? {
|
|
864
905
|
tag: "block_ref",
|
|
865
|
-
blockId:
|
|
906
|
+
blockId: parsedBlockId,
|
|
907
|
+
contentVersionId: parsedContentVersionId
|
|
866
908
|
} : null;
|
|
867
909
|
}
|
|
868
910
|
//#endregion
|
|
@@ -2445,7 +2487,7 @@ const BUTTON_CONTRAST_POLICY = {
|
|
|
2445
2487
|
nonTextMinimumRatio: 3,
|
|
2446
2488
|
gradientSamplesPerSegment: 20,
|
|
2447
2489
|
alphaBackgrounds: "reject-without-known-surface",
|
|
2448
|
-
disabled: "
|
|
2490
|
+
disabled: "validated-colour-pair-with-muted-control-opacity"
|
|
2449
2491
|
};
|
|
2450
2492
|
function validateButtonSurfaceContrast(input) {
|
|
2451
2493
|
const ratio = contrastRatio(input.buttonPaint, input.surfaceHex);
|
|
@@ -2971,59 +3013,108 @@ function interpolateHex(startHex, endHex, position) {
|
|
|
2971
3013
|
const channel = (from, to) => Math.round(from + (to - from) * position).toString(16).padStart(2, "0");
|
|
2972
3014
|
return `#${channel(start.r, end.r)}${channel(start.g, end.g)}${channel(start.b, end.b)}`;
|
|
2973
3015
|
}
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
pseudoElement: "none",
|
|
2995
|
-
applicableTo: ["button"],
|
|
2996
|
-
customizableOption: {
|
|
2997
|
-
name: "amount",
|
|
2998
|
-
type: "select",
|
|
2999
|
-
label: config.label,
|
|
3000
|
-
default: 100,
|
|
3001
|
-
options: [
|
|
3002
|
-
0,
|
|
3003
|
-
100,
|
|
3004
|
-
200,
|
|
3005
|
-
300,
|
|
3006
|
-
400,
|
|
3007
|
-
500,
|
|
3008
|
-
600,
|
|
3009
|
-
700,
|
|
3010
|
-
800,
|
|
3011
|
-
900
|
|
3012
|
-
]
|
|
3016
|
+
//#endregion
|
|
3017
|
+
//#region ../theme-core/src/tokens/tokens.ts
|
|
3018
|
+
const defaultThemeTokens = {
|
|
3019
|
+
color: {
|
|
3020
|
+
"background/base": "#ffffff",
|
|
3021
|
+
"background/elevated": "#f5f5f5",
|
|
3022
|
+
"surface/base": "#ffffff",
|
|
3023
|
+
"surface/subtle": "#f9f9fb",
|
|
3024
|
+
"surface/inverted": "#111111",
|
|
3025
|
+
"content/primary": "#111111",
|
|
3026
|
+
"content/secondary": "#3f3f46",
|
|
3027
|
+
"accent/primary": "#2563eb",
|
|
3028
|
+
"accent/secondary": "#1d4ed8",
|
|
3029
|
+
"border/base": "#e5e7eb"
|
|
3030
|
+
},
|
|
3031
|
+
typography: {
|
|
3032
|
+
"display/hero": {
|
|
3033
|
+
fontSize: "clamp(48px, 8vw, 96px)",
|
|
3034
|
+
lineHeight: "1.05",
|
|
3035
|
+
fontWeight: "700"
|
|
3013
3036
|
},
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3037
|
+
"display/section": {
|
|
3038
|
+
fontSize: "clamp(40px, 6vw, 72px)",
|
|
3039
|
+
lineHeight: "1.1",
|
|
3040
|
+
fontWeight: "700"
|
|
3041
|
+
},
|
|
3042
|
+
"heading/large": {
|
|
3043
|
+
fontSize: "clamp(32px, 4vw, 48px)",
|
|
3044
|
+
lineHeight: "1.2",
|
|
3045
|
+
fontWeight: "600"
|
|
3046
|
+
},
|
|
3047
|
+
"heading/medium": {
|
|
3048
|
+
fontSize: "clamp(24px, 3vw, 32px)",
|
|
3049
|
+
lineHeight: "1.25",
|
|
3050
|
+
fontWeight: "600"
|
|
3051
|
+
},
|
|
3052
|
+
"heading/small": {
|
|
3053
|
+
fontSize: "20px",
|
|
3054
|
+
lineHeight: "1.3",
|
|
3055
|
+
fontWeight: "600"
|
|
3056
|
+
},
|
|
3057
|
+
"body/normal": {
|
|
3058
|
+
fontSize: "16px",
|
|
3059
|
+
lineHeight: "1.6",
|
|
3060
|
+
fontWeight: "400"
|
|
3061
|
+
},
|
|
3062
|
+
"body/small": {
|
|
3063
|
+
fontSize: "14px",
|
|
3064
|
+
lineHeight: "1.5",
|
|
3065
|
+
fontWeight: "400"
|
|
3066
|
+
},
|
|
3067
|
+
caption: {
|
|
3068
|
+
fontSize: "12px",
|
|
3069
|
+
lineHeight: "1.4",
|
|
3070
|
+
fontWeight: "500"
|
|
3024
3071
|
}
|
|
3025
|
-
}
|
|
3026
|
-
|
|
3072
|
+
},
|
|
3073
|
+
spacing: {
|
|
3074
|
+
none: "0px",
|
|
3075
|
+
"3xs": "4px",
|
|
3076
|
+
"2xs": "8px",
|
|
3077
|
+
xs: "12px",
|
|
3078
|
+
sm: "16px",
|
|
3079
|
+
md: "24px",
|
|
3080
|
+
lg: "32px",
|
|
3081
|
+
xl: "40px",
|
|
3082
|
+
"2xl": "56px",
|
|
3083
|
+
"3xl": "72px"
|
|
3084
|
+
},
|
|
3085
|
+
radius: {
|
|
3086
|
+
none: "0px",
|
|
3087
|
+
xs: "2px",
|
|
3088
|
+
sm: "4px",
|
|
3089
|
+
md: "8px",
|
|
3090
|
+
lg: "12px",
|
|
3091
|
+
pill: "999px",
|
|
3092
|
+
full: "9999px"
|
|
3093
|
+
},
|
|
3094
|
+
shadow: {
|
|
3095
|
+
none: "none",
|
|
3096
|
+
soft: "0px 2px 8px rgba(15, 23, 42, 0.08)",
|
|
3097
|
+
medium: "0px 6px 18px rgba(15, 23, 42, 0.12)",
|
|
3098
|
+
strong: "0px 12px 36px rgba(15, 23, 42, 0.16)"
|
|
3099
|
+
},
|
|
3100
|
+
palette: {
|
|
3101
|
+
surface: "#ffffff",
|
|
3102
|
+
"neutral-50": "#f9fafb",
|
|
3103
|
+
"neutral-900": "#111827",
|
|
3104
|
+
primary: "#2563eb",
|
|
3105
|
+
"primary-50": "#eff6ff",
|
|
3106
|
+
"primary-500": "#2563eb",
|
|
3107
|
+
"primary-900": "#1d4ed8",
|
|
3108
|
+
secondary: "#9333ea",
|
|
3109
|
+
"secondary-50": "#f3e8ff",
|
|
3110
|
+
"secondary-500": "#9333ea",
|
|
3111
|
+
"secondary-900": "#4c1d95",
|
|
3112
|
+
accent: "#f97316",
|
|
3113
|
+
"accent-50": "#fff7ed",
|
|
3114
|
+
"accent-500": "#f97316",
|
|
3115
|
+
"accent-900": "#7c2d12"
|
|
3116
|
+
}
|
|
3117
|
+
};
|
|
3027
3118
|
//#endregion
|
|
3028
3119
|
//#region ../theme-core/src/palette/utils/opaqueSurfaceColor.ts
|
|
3029
3120
|
/** Resolve an opaque colour, compositing alpha against an explicit underlay. */
|
|
@@ -3308,6 +3399,59 @@ function mergeStyles(...styles) {
|
|
|
3308
3399
|
}
|
|
3309
3400
|
return Object.keys(merged).length ? merged : void 0;
|
|
3310
3401
|
}
|
|
3402
|
+
shadeBackgroundEffect({
|
|
3403
|
+
id: "darken-background",
|
|
3404
|
+
name: "Darken on Hover",
|
|
3405
|
+
description: "Darkens the background color on hover",
|
|
3406
|
+
label: "Darken Amount (shade step)",
|
|
3407
|
+
shadeDirection: 1
|
|
3408
|
+
});
|
|
3409
|
+
shadeBackgroundEffect({
|
|
3410
|
+
id: "lighten-background",
|
|
3411
|
+
name: "Lighten on Hover",
|
|
3412
|
+
description: "Lightens the background color on hover",
|
|
3413
|
+
label: "Lighten Amount (shade step)",
|
|
3414
|
+
shadeDirection: -1
|
|
3415
|
+
});
|
|
3416
|
+
function shadeBackgroundEffect(config) {
|
|
3417
|
+
return {
|
|
3418
|
+
id: config.id,
|
|
3419
|
+
name: config.name,
|
|
3420
|
+
description: config.description,
|
|
3421
|
+
category: "background",
|
|
3422
|
+
pseudoElement: "none",
|
|
3423
|
+
applicableTo: ["button"],
|
|
3424
|
+
customizableOption: {
|
|
3425
|
+
name: "amount",
|
|
3426
|
+
type: "select",
|
|
3427
|
+
label: config.label,
|
|
3428
|
+
default: 100,
|
|
3429
|
+
options: [
|
|
3430
|
+
0,
|
|
3431
|
+
100,
|
|
3432
|
+
200,
|
|
3433
|
+
300,
|
|
3434
|
+
400,
|
|
3435
|
+
500,
|
|
3436
|
+
600,
|
|
3437
|
+
700,
|
|
3438
|
+
800,
|
|
3439
|
+
900
|
|
3440
|
+
]
|
|
3441
|
+
},
|
|
3442
|
+
isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
|
|
3443
|
+
generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
|
|
3444
|
+
if (buttonConfig.background.type !== "solid") return "";
|
|
3445
|
+
const amount = (options.amount || 100) * config.shadeDirection;
|
|
3446
|
+
const baseToken = buttonConfig.background.colorToken ?? "primary-500";
|
|
3447
|
+
return `
|
|
3448
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
3449
|
+
background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
|
|
3450
|
+
}
|
|
3451
|
+
`;
|
|
3452
|
+
}
|
|
3453
|
+
};
|
|
3454
|
+
}
|
|
3311
3455
|
//#endregion
|
|
3312
3456
|
//#region ../theme-core/src/utils/tokenOrColor.ts
|
|
3313
3457
|
/**
|
|
@@ -6730,8 +6874,14 @@ const headerInteractionPillPaletteValues = [
|
|
|
6730
6874
|
"accent"
|
|
6731
6875
|
];
|
|
6732
6876
|
/**
|
|
6733
|
-
* "No pill":
|
|
6734
|
-
*
|
|
6877
|
+
* "No pill": a colour change on hover rather than a filled background.
|
|
6878
|
+
*
|
|
6879
|
+
* The palette step writes nothing (#1318 Phase 4c decision 2), but on a
|
|
6880
|
+
* foreground-adaptive style that is not the end of the story: the hover colour
|
|
6881
|
+
* is derived from the resolved opening foreground at render time, paired with
|
|
6882
|
+
* the resting colour, so `quiet` resolves to a definite colour rather than to
|
|
6883
|
+
* whatever brand token the recipe happened to name. See
|
|
6884
|
+
* `applyOpeningForeground`.
|
|
6735
6885
|
*
|
|
6736
6886
|
* It exists because "a colour change on hover, no filled background" was not
|
|
6737
6887
|
* expressible in the vocabulary, and it is what
|
|
@@ -7723,6 +7873,28 @@ const bookingRequirementConsentFieldSchema = z.object({
|
|
|
7723
7873
|
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
7724
7874
|
//#endregion
|
|
7725
7875
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
7876
|
+
const publicEventLoaderQuerySchemaShape = {
|
|
7877
|
+
limit: z.string().optional(),
|
|
7878
|
+
from: z.string().optional(),
|
|
7879
|
+
to: z.string().optional(),
|
|
7880
|
+
afterStartsAt: z.string().optional(),
|
|
7881
|
+
afterId: z.string().optional(),
|
|
7882
|
+
categoryIds: z.string().optional(),
|
|
7883
|
+
venueId: z.string().optional(),
|
|
7884
|
+
staffMemberId: z.string().optional(),
|
|
7885
|
+
eventSurface: z.string().optional(),
|
|
7886
|
+
eventPresets: z.string().optional(),
|
|
7887
|
+
scheduleScope: z.string().optional(),
|
|
7888
|
+
seriesId: z.string().optional(),
|
|
7889
|
+
seriesIds: z.string().optional(),
|
|
7890
|
+
runSeriesId: z.string().optional(),
|
|
7891
|
+
seriesSlug: z.string().optional(),
|
|
7892
|
+
includeOccurrenceId: z.string().optional(),
|
|
7893
|
+
readIntent: z.string().optional(),
|
|
7894
|
+
detailLevel: z.string().optional(),
|
|
7895
|
+
readProfile: z.string().optional()
|
|
7896
|
+
};
|
|
7897
|
+
z.object(publicEventLoaderQuerySchemaShape);
|
|
7726
7898
|
const eventPresetSchema = z.enum([
|
|
7727
7899
|
"event",
|
|
7728
7900
|
"class",
|
|
@@ -8131,6 +8303,7 @@ const calendarWindowQuerySchema = z.object({
|
|
|
8131
8303
|
eventSurface: z.enum(eventSurfaceScopeValues).optional(),
|
|
8132
8304
|
eventPresets: z.string().optional(),
|
|
8133
8305
|
scheduleScope: z.enum(eventScheduleScopeValues).optional(),
|
|
8306
|
+
seriesIds: z.string().optional(),
|
|
8134
8307
|
categoryIds: z.string().optional(),
|
|
8135
8308
|
venueId: z.string().transform(normalizeCalendarFilterId).optional(),
|
|
8136
8309
|
staffMemberId: z.string().transform(normalizeCalendarFilterId).optional()
|
|
@@ -9565,6 +9738,14 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
|
|
|
9565
9738
|
auth: "public",
|
|
9566
9739
|
responseKind: "json"
|
|
9567
9740
|
},
|
|
9741
|
+
getPublicBookingServiceBySlug: {
|
|
9742
|
+
path: "/public/bookings/services/by-slug/{slug}",
|
|
9743
|
+
method: "GET",
|
|
9744
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
|
|
9745
|
+
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
9746
|
+
auth: "public",
|
|
9747
|
+
responseKind: "json"
|
|
9748
|
+
},
|
|
9568
9749
|
getPublicBookingResourcesReference: {
|
|
9569
9750
|
path: "/public/bookings/resources/reference",
|
|
9570
9751
|
method: "GET",
|
|
@@ -10117,16 +10298,110 @@ const PUBLIC_READ_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10117
10298
|
responseKind: "json"
|
|
10118
10299
|
}
|
|
10119
10300
|
});
|
|
10301
|
+
//#endregion
|
|
10302
|
+
//#region ../api/src/publicOnboardingAttemptEndpointDefinitions.ts
|
|
10303
|
+
/**
|
|
10304
|
+
* The anonymous onboarding attempt, addressed by its opaque resume token.
|
|
10305
|
+
*
|
|
10306
|
+
* Every route here is reached before there is an account, so none of them can
|
|
10307
|
+
* be scoped to a site or a user: the token is the whole credential. They are
|
|
10308
|
+
* kept together so that stays obvious.
|
|
10309
|
+
*/
|
|
10310
|
+
const PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10311
|
+
createPublicOnboardingAttempt: {
|
|
10312
|
+
path: "/public/onboarding/attempts",
|
|
10313
|
+
method: "POST",
|
|
10314
|
+
auth: "public",
|
|
10315
|
+
errors: [],
|
|
10316
|
+
responseKind: "json"
|
|
10317
|
+
},
|
|
10318
|
+
createPublicOnboardingLogoUploadUrl: {
|
|
10319
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
|
|
10320
|
+
method: "POST",
|
|
10321
|
+
auth: "public",
|
|
10322
|
+
errors: [],
|
|
10323
|
+
responseKind: "json"
|
|
10324
|
+
},
|
|
10325
|
+
uploadPublicOnboardingLogo: {
|
|
10326
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo",
|
|
10327
|
+
method: "POST",
|
|
10328
|
+
auth: "public",
|
|
10329
|
+
errors: [],
|
|
10330
|
+
responseKind: "json"
|
|
10331
|
+
},
|
|
10332
|
+
getPublicOnboardingAttempt: {
|
|
10333
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
10334
|
+
method: "GET",
|
|
10335
|
+
auth: "public",
|
|
10336
|
+
errors: [],
|
|
10337
|
+
responseKind: "json"
|
|
10338
|
+
},
|
|
10339
|
+
getPublicOnboardingAttemptProgress: {
|
|
10340
|
+
path: "/public/onboarding/attempts/{attemptToken}/status",
|
|
10341
|
+
method: "GET",
|
|
10342
|
+
auth: "public",
|
|
10343
|
+
errors: [],
|
|
10344
|
+
responseKind: "json"
|
|
10345
|
+
},
|
|
10346
|
+
updatePublicOnboardingAttempt: {
|
|
10347
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
10348
|
+
method: "PATCH",
|
|
10349
|
+
auth: "public",
|
|
10350
|
+
errors: [],
|
|
10351
|
+
responseKind: "json"
|
|
10352
|
+
},
|
|
10353
|
+
runPublicOnboardingAttempt: {
|
|
10354
|
+
path: "/public/onboarding/attempts/{attemptToken}/run",
|
|
10355
|
+
method: "POST",
|
|
10356
|
+
auth: "public",
|
|
10357
|
+
errors: [],
|
|
10358
|
+
responseKind: "json"
|
|
10359
|
+
},
|
|
10360
|
+
resendPublicOnboardingAttemptConfirmation: {
|
|
10361
|
+
path: "/public/onboarding/attempts/{attemptToken}/resend-confirmation",
|
|
10362
|
+
method: "POST",
|
|
10363
|
+
auth: "public",
|
|
10364
|
+
errors: [],
|
|
10365
|
+
responseKind: "json"
|
|
10366
|
+
}
|
|
10367
|
+
});
|
|
10368
|
+
//#endregion
|
|
10369
|
+
//#region ../api/src/billingEndpointDefinitions.ts
|
|
10370
|
+
const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10371
|
+
adminChangePlan: {
|
|
10372
|
+
path: "/admin/billing/plan",
|
|
10373
|
+
method: "POST",
|
|
10374
|
+
tags: ["admin", "billing"],
|
|
10375
|
+
auth: "admin",
|
|
10376
|
+
responseKind: "json"
|
|
10377
|
+
},
|
|
10378
|
+
changePlan: {
|
|
10379
|
+
path: "/billing/plan/change",
|
|
10380
|
+
method: "POST",
|
|
10381
|
+
tags: ["billing"],
|
|
10382
|
+
auth: "user",
|
|
10383
|
+
responseKind: "json"
|
|
10384
|
+
},
|
|
10385
|
+
createBillingPortalSession: {
|
|
10386
|
+
path: "/billing/portal/session",
|
|
10387
|
+
method: "POST",
|
|
10388
|
+
tags: ["billing"],
|
|
10389
|
+
auth: "user",
|
|
10390
|
+
responseKind: "json"
|
|
10391
|
+
}
|
|
10392
|
+
});
|
|
10120
10393
|
({
|
|
10121
10394
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
10395
|
+
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
10122
10396
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
10123
10397
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
10124
|
-
...PUBLIC_READ_ENDPOINT_DEFINITIONS
|
|
10398
|
+
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
10399
|
+
...BILLING_ENDPOINT_DEFINITIONS
|
|
10125
10400
|
}), 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, {
|
|
10126
10401
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10127
10402
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
10128
10403
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
10129
|
-
}, 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.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 };
|
|
10404
|
+
}, 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 };
|
|
10130
10405
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
10131
10406
|
z.object({
|
|
10132
10407
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -12395,108 +12670,6 @@ function assertUniqueLayoutProfileKeys(profiles) {
|
|
|
12395
12670
|
if (duplicates.length > 0) throw new Error(`Duplicate block layout design profiles: ${duplicates.join(", ")}`);
|
|
12396
12671
|
}
|
|
12397
12672
|
//#endregion
|
|
12398
|
-
//#region ../theme-core/src/tokens/tokens.ts
|
|
12399
|
-
const defaultThemeTokens = {
|
|
12400
|
-
color: {
|
|
12401
|
-
"background/base": "#ffffff",
|
|
12402
|
-
"background/elevated": "#f5f5f5",
|
|
12403
|
-
"surface/base": "#ffffff",
|
|
12404
|
-
"surface/subtle": "#f9f9fb",
|
|
12405
|
-
"surface/inverted": "#111111",
|
|
12406
|
-
"content/primary": "#111111",
|
|
12407
|
-
"content/secondary": "#3f3f46",
|
|
12408
|
-
"accent/primary": "#2563eb",
|
|
12409
|
-
"accent/secondary": "#1d4ed8",
|
|
12410
|
-
"border/base": "#e5e7eb"
|
|
12411
|
-
},
|
|
12412
|
-
typography: {
|
|
12413
|
-
"display/hero": {
|
|
12414
|
-
fontSize: "clamp(48px, 8vw, 96px)",
|
|
12415
|
-
lineHeight: "1.05",
|
|
12416
|
-
fontWeight: "700"
|
|
12417
|
-
},
|
|
12418
|
-
"display/section": {
|
|
12419
|
-
fontSize: "clamp(40px, 6vw, 72px)",
|
|
12420
|
-
lineHeight: "1.1",
|
|
12421
|
-
fontWeight: "700"
|
|
12422
|
-
},
|
|
12423
|
-
"heading/large": {
|
|
12424
|
-
fontSize: "clamp(32px, 4vw, 48px)",
|
|
12425
|
-
lineHeight: "1.2",
|
|
12426
|
-
fontWeight: "600"
|
|
12427
|
-
},
|
|
12428
|
-
"heading/medium": {
|
|
12429
|
-
fontSize: "clamp(24px, 3vw, 32px)",
|
|
12430
|
-
lineHeight: "1.25",
|
|
12431
|
-
fontWeight: "600"
|
|
12432
|
-
},
|
|
12433
|
-
"heading/small": {
|
|
12434
|
-
fontSize: "20px",
|
|
12435
|
-
lineHeight: "1.3",
|
|
12436
|
-
fontWeight: "600"
|
|
12437
|
-
},
|
|
12438
|
-
"body/normal": {
|
|
12439
|
-
fontSize: "16px",
|
|
12440
|
-
lineHeight: "1.6",
|
|
12441
|
-
fontWeight: "400"
|
|
12442
|
-
},
|
|
12443
|
-
"body/small": {
|
|
12444
|
-
fontSize: "14px",
|
|
12445
|
-
lineHeight: "1.5",
|
|
12446
|
-
fontWeight: "400"
|
|
12447
|
-
},
|
|
12448
|
-
caption: {
|
|
12449
|
-
fontSize: "12px",
|
|
12450
|
-
lineHeight: "1.4",
|
|
12451
|
-
fontWeight: "500"
|
|
12452
|
-
}
|
|
12453
|
-
},
|
|
12454
|
-
spacing: {
|
|
12455
|
-
none: "0px",
|
|
12456
|
-
"3xs": "4px",
|
|
12457
|
-
"2xs": "8px",
|
|
12458
|
-
xs: "12px",
|
|
12459
|
-
sm: "16px",
|
|
12460
|
-
md: "24px",
|
|
12461
|
-
lg: "32px",
|
|
12462
|
-
xl: "40px",
|
|
12463
|
-
"2xl": "56px",
|
|
12464
|
-
"3xl": "72px"
|
|
12465
|
-
},
|
|
12466
|
-
radius: {
|
|
12467
|
-
none: "0px",
|
|
12468
|
-
xs: "2px",
|
|
12469
|
-
sm: "4px",
|
|
12470
|
-
md: "8px",
|
|
12471
|
-
lg: "12px",
|
|
12472
|
-
pill: "999px",
|
|
12473
|
-
full: "9999px"
|
|
12474
|
-
},
|
|
12475
|
-
shadow: {
|
|
12476
|
-
none: "none",
|
|
12477
|
-
soft: "0px 2px 8px rgba(15, 23, 42, 0.08)",
|
|
12478
|
-
medium: "0px 6px 18px rgba(15, 23, 42, 0.12)",
|
|
12479
|
-
strong: "0px 12px 36px rgba(15, 23, 42, 0.16)"
|
|
12480
|
-
},
|
|
12481
|
-
palette: {
|
|
12482
|
-
surface: "#ffffff",
|
|
12483
|
-
"neutral-50": "#f9fafb",
|
|
12484
|
-
"neutral-900": "#111827",
|
|
12485
|
-
primary: "#2563eb",
|
|
12486
|
-
"primary-50": "#eff6ff",
|
|
12487
|
-
"primary-500": "#2563eb",
|
|
12488
|
-
"primary-900": "#1d4ed8",
|
|
12489
|
-
secondary: "#9333ea",
|
|
12490
|
-
"secondary-50": "#f3e8ff",
|
|
12491
|
-
"secondary-500": "#9333ea",
|
|
12492
|
-
"secondary-900": "#4c1d95",
|
|
12493
|
-
accent: "#f97316",
|
|
12494
|
-
"accent-50": "#fff7ed",
|
|
12495
|
-
"accent-500": "#f97316",
|
|
12496
|
-
"accent-900": "#7c2d12"
|
|
12497
|
-
}
|
|
12498
|
-
};
|
|
12499
|
-
//#endregion
|
|
12500
12673
|
//#region ../theme-core/src/site-styles/backgroundAppearance.ts
|
|
12501
12674
|
const backgroundAppearanceQuickColorTokenNames = [
|
|
12502
12675
|
"background",
|
|
@@ -16808,6 +16981,7 @@ function isDisplayMediaKind(kind) {
|
|
|
16808
16981
|
}
|
|
16809
16982
|
const siteOptionSources = [
|
|
16810
16983
|
"eventCategories",
|
|
16984
|
+
"eventSeries",
|
|
16811
16985
|
"venues",
|
|
16812
16986
|
"staffMembers"
|
|
16813
16987
|
];
|
|
@@ -27679,7 +27853,8 @@ const appointmentServicesBlockDefinition = {
|
|
|
27679
27853
|
el("appointment-services", {
|
|
27680
27854
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
27681
27855
|
services: { $bind: { from: "data.services" } },
|
|
27682
|
-
pathname: { $bind: { from: "$root.pathname" } }
|
|
27856
|
+
pathname: { $bind: { from: "$root.pathname" } },
|
|
27857
|
+
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
27683
27858
|
})
|
|
27684
27859
|
], { gap: "lg" })
|
|
27685
27860
|
})]
|
|
@@ -28335,6 +28510,44 @@ function toWholeSeriesRegistrationEvents(events) {
|
|
|
28335
28510
|
return groupPublicEventsByRun(events).map(toWholeSeriesRegistrationEvent).filter((event) => event !== null);
|
|
28336
28511
|
}
|
|
28337
28512
|
//#endregion
|
|
28513
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.ts
|
|
28514
|
+
const { limit: _rawLimit, eventSurface: _rawEventSurface, scheduleScope: _rawScheduleScope, detailLevel: _rawDetailLevel, ...stringEventQueryShape } = publicEventLoaderQuerySchemaShape;
|
|
28515
|
+
const eventRecoveryRequestSchema = z.object({
|
|
28516
|
+
...stringEventQueryShape,
|
|
28517
|
+
limit: z.coerce.number().int().positive().optional(),
|
|
28518
|
+
eventSurface: z.enum(eventSurfaceScopeValues).optional(),
|
|
28519
|
+
scheduleScope: z.enum(eventScheduleScopeValues).optional(),
|
|
28520
|
+
detailLevel: z.enum(["full", "listing"]).optional(),
|
|
28521
|
+
stage: z.enum(["preview", "published"]).optional()
|
|
28522
|
+
});
|
|
28523
|
+
function resolveEventRegistrationEventSource(input) {
|
|
28524
|
+
if (input.wholeSeriesRunEvents != null) return {
|
|
28525
|
+
kind: "loaded",
|
|
28526
|
+
events: input.wholeSeriesRunEvents
|
|
28527
|
+
};
|
|
28528
|
+
if (input.events != null) return {
|
|
28529
|
+
kind: "loaded",
|
|
28530
|
+
events: input.events
|
|
28531
|
+
};
|
|
28532
|
+
return {
|
|
28533
|
+
kind: "unresolved",
|
|
28534
|
+
request: parseEventLoaderRecoveryRequest(input.failures?.wholeSeriesRunEvents ?? input.failures?.events)
|
|
28535
|
+
};
|
|
28536
|
+
}
|
|
28537
|
+
const eventLoaderFailureSchema = z.object({
|
|
28538
|
+
endpoint: z.literal("listPublicEvents"),
|
|
28539
|
+
params: eventRecoveryRequestSchema.extend({ siteId: z.string().optional() })
|
|
28540
|
+
});
|
|
28541
|
+
function parseEventLoaderRecoveryRequest(value) {
|
|
28542
|
+
const parsed = eventLoaderFailureSchema.safeParse(value);
|
|
28543
|
+
if (!parsed.success) return null;
|
|
28544
|
+
const { siteId: _siteId, stage, ...params } = parsed.data.params;
|
|
28545
|
+
return {
|
|
28546
|
+
...params,
|
|
28547
|
+
stage: stage ?? "published"
|
|
28548
|
+
};
|
|
28549
|
+
}
|
|
28550
|
+
//#endregion
|
|
28338
28551
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
28339
28552
|
const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = [
|
|
28340
28553
|
"Date",
|
|
@@ -28352,8 +28565,6 @@ const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrati
|
|
|
28352
28565
|
const eventRegistrationHydrationSchemaShape = {
|
|
28353
28566
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
28354
28567
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
28355
|
-
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
28356
|
-
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
28357
28568
|
maxTickets: z.string().optional(),
|
|
28358
28569
|
showVenue: z.boolean().optional(),
|
|
28359
28570
|
showCapacity: z.boolean().optional(),
|
|
@@ -28365,12 +28576,22 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
28365
28576
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
28366
28577
|
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
28367
28578
|
};
|
|
28579
|
+
const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
|
|
28580
|
+
kind: z.literal("loaded"),
|
|
28581
|
+
events: z.array(eventRegistrationPublicEventSchema)
|
|
28582
|
+
}), z.object({
|
|
28583
|
+
kind: z.literal("unresolved"),
|
|
28584
|
+
request: eventRecoveryRequestSchema.nullable()
|
|
28585
|
+
})]);
|
|
28368
28586
|
const eventRegistrationSourceSchema = z.object({
|
|
28369
28587
|
siteId: z.string().optional(),
|
|
28370
28588
|
apiBaseUrl: z.string().optional(),
|
|
28371
28589
|
portalToken: z.string().nullable().optional(),
|
|
28372
28590
|
previewToken: z.string().nullable().optional(),
|
|
28373
28591
|
...eventRegistrationHydrationSchemaShape,
|
|
28592
|
+
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
28593
|
+
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
28594
|
+
eventLoaderFailures: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
28374
28595
|
className: z.string().nullable().optional(),
|
|
28375
28596
|
buttonText: z.string().nullable().optional(),
|
|
28376
28597
|
maxTickets: z.string().nullable().optional(),
|
|
@@ -28391,7 +28612,10 @@ const eventRegistrationDisplaySchema = z.discriminatedUnion("state", [z.object({
|
|
|
28391
28612
|
titleText: z.string(),
|
|
28392
28613
|
bodyText: z.string()
|
|
28393
28614
|
})]);
|
|
28394
|
-
const eventRegistrationHydrationSchema = z.object(
|
|
28615
|
+
const eventRegistrationHydrationSchema = z.object({
|
|
28616
|
+
...eventRegistrationHydrationSchemaShape,
|
|
28617
|
+
eventSource: eventRegistrationEventSourceSchema
|
|
28618
|
+
});
|
|
28395
28619
|
const eventRegistrationRenderSchema = z.object({
|
|
28396
28620
|
display: eventRegistrationDisplaySchema,
|
|
28397
28621
|
hydration: eventRegistrationHydrationSchema
|
|
@@ -28450,16 +28674,12 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
|
28450
28674
|
function toScopedEventRegistrationEvents(scopedSourceEvents) {
|
|
28451
28675
|
return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
|
|
28452
28676
|
}
|
|
28453
|
-
function scopeEventRegistrationSourceEvents(source) {
|
|
28454
|
-
return resolveEventRegistrationScopedEvents(
|
|
28677
|
+
function scopeEventRegistrationSourceEvents(source, eventSource) {
|
|
28678
|
+
return resolveEventRegistrationScopedEvents(eventSource.kind === "loaded" ? eventSource.events : [], {
|
|
28455
28679
|
occurrenceContext: source.occurrenceContext,
|
|
28456
28680
|
subject: source.subject
|
|
28457
28681
|
});
|
|
28458
28682
|
}
|
|
28459
|
-
function resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents) {
|
|
28460
|
-
if (source.events == null && source.wholeSeriesRunEvents == null) return null;
|
|
28461
|
-
return [...scopedSourceEvents];
|
|
28462
|
-
}
|
|
28463
28683
|
/**
|
|
28464
28684
|
* The one run this surface is registering for, when the scoped events describe
|
|
28465
28685
|
* exactly one. More than one run means the visitor still has to choose.
|
|
@@ -28499,14 +28719,21 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
28499
28719
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
28500
28720
|
},
|
|
28501
28721
|
buildRender: (source) => {
|
|
28502
|
-
const
|
|
28503
|
-
|
|
28722
|
+
const eventSource = resolveEventRegistrationEventSource({
|
|
28723
|
+
events: source.events,
|
|
28724
|
+
wholeSeriesRunEvents: source.wholeSeriesRunEvents,
|
|
28725
|
+
failures: source.eventLoaderFailures
|
|
28726
|
+
});
|
|
28727
|
+
const scopedSourceEvents = scopeEventRegistrationSourceEvents(source, eventSource);
|
|
28504
28728
|
return {
|
|
28505
28729
|
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
|
|
28506
28730
|
hydration: {
|
|
28507
28731
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
28508
28732
|
subject: source.subject ?? null,
|
|
28509
|
-
|
|
28733
|
+
eventSource: eventSource.kind === "loaded" ? {
|
|
28734
|
+
...eventSource,
|
|
28735
|
+
events: [...scopedSourceEvents]
|
|
28736
|
+
} : eventSource,
|
|
28510
28737
|
maxTickets: source.maxTickets ?? void 0,
|
|
28511
28738
|
showVenue: source.showVenue,
|
|
28512
28739
|
showCapacity: source.showCapacity,
|
|
@@ -28682,6 +28909,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
28682
28909
|
} },
|
|
28683
28910
|
events: { $bind: { from: "data.events" } },
|
|
28684
28911
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
28912
|
+
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
28685
28913
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
28686
28914
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
28687
28915
|
stage: { $bind: {
|
|
@@ -29167,6 +29395,35 @@ const eventSpotlightBlockDefinition = {
|
|
|
29167
29395
|
} }
|
|
29168
29396
|
};
|
|
29169
29397
|
//#endregion
|
|
29398
|
+
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
29399
|
+
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
29400
|
+
function resolveEventSelection(mode, value) {
|
|
29401
|
+
if (mode !== "selected") return { kind: "matching" };
|
|
29402
|
+
const candidates = Array.isArray(value) ? value : typeof value === "string" ? value.split(",").filter(Boolean) : [];
|
|
29403
|
+
const ids = [];
|
|
29404
|
+
for (const candidate of candidates) {
|
|
29405
|
+
if (typeof candidate !== "string") return {
|
|
29406
|
+
kind: "selected",
|
|
29407
|
+
seriesIds: []
|
|
29408
|
+
};
|
|
29409
|
+
const parsed = parseEventSeriesId(candidate.trim());
|
|
29410
|
+
if (!parsed.ok) return {
|
|
29411
|
+
kind: "selected",
|
|
29412
|
+
seriesIds: []
|
|
29413
|
+
};
|
|
29414
|
+
ids.push(parsed.value);
|
|
29415
|
+
}
|
|
29416
|
+
return {
|
|
29417
|
+
kind: "selected",
|
|
29418
|
+
seriesIds: [...new Set(ids)].sort()
|
|
29419
|
+
};
|
|
29420
|
+
}
|
|
29421
|
+
/** Undefined means discovery; an empty string is an explicitly empty selection. */
|
|
29422
|
+
function eventSeriesScopeCsv(value) {
|
|
29423
|
+
if (value == null) return void 0;
|
|
29424
|
+
return typeof value === "string" ? value : value.join(",");
|
|
29425
|
+
}
|
|
29426
|
+
//#endregion
|
|
29170
29427
|
//#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
|
|
29171
29428
|
/**
|
|
29172
29429
|
* Layout classes for event listing containers and cards. Presentation
|
|
@@ -29266,6 +29523,7 @@ const eventCollectionFilterSourceSchemaShape = {
|
|
|
29266
29523
|
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
29267
29524
|
filterEventPresets: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29268
29525
|
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
29526
|
+
seriesIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29269
29527
|
filterCategoryIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
29270
29528
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
29271
29529
|
filterVenueId: z.string().nullable().optional()
|
|
@@ -29312,6 +29570,7 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
29312
29570
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
29313
29571
|
filterEventPresets: z.string().nullable(),
|
|
29314
29572
|
scheduleScope: eventScheduleScopeSchema$1,
|
|
29573
|
+
seriesIds: z.string().nullable().optional(),
|
|
29315
29574
|
filterCategoryIds: z.string().nullable(),
|
|
29316
29575
|
filterStaffMemberId: z.string().nullable(),
|
|
29317
29576
|
filterVenueId: z.string().nullable(),
|
|
@@ -29359,11 +29618,15 @@ function buildEventCollectionDisplay(source) {
|
|
|
29359
29618
|
};
|
|
29360
29619
|
}
|
|
29361
29620
|
function buildEventCollectionFilterDisplay(source) {
|
|
29362
|
-
|
|
29363
|
-
|
|
29364
|
-
|
|
29365
|
-
|
|
29366
|
-
|
|
29621
|
+
const selected = source.seriesIds != null;
|
|
29622
|
+
const matchingFilters = selected ? {
|
|
29623
|
+
eventSurface: "all",
|
|
29624
|
+
filterEventPresets: null,
|
|
29625
|
+
scheduleScope: "any",
|
|
29626
|
+
filterCategoryIds: null,
|
|
29627
|
+
filterStaffMemberId: null,
|
|
29628
|
+
filterVenueId: null
|
|
29629
|
+
} : {
|
|
29367
29630
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29368
29631
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29369
29632
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
@@ -29371,6 +29634,14 @@ function buildEventCollectionFilterDisplay(source) {
|
|
|
29371
29634
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
29372
29635
|
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
29373
29636
|
};
|
|
29637
|
+
return {
|
|
29638
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
29639
|
+
showFilters: selected ? false : source.showFilters ?? true,
|
|
29640
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
29641
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
29642
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
29643
|
+
...matchingFilters
|
|
29644
|
+
};
|
|
29374
29645
|
}
|
|
29375
29646
|
function buildEventCollectionPresentationDisplay(source) {
|
|
29376
29647
|
return {
|
|
@@ -29385,14 +29656,15 @@ function buildEventCollectionPresentationDisplay(source) {
|
|
|
29385
29656
|
}
|
|
29386
29657
|
function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
|
|
29387
29658
|
const timeZone = source.calendarWindow?.scope.timeZone ?? toBookingTimeZone(source.bookingTimeZone);
|
|
29659
|
+
const selected = source.seriesIds != null;
|
|
29388
29660
|
return {
|
|
29389
29661
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
29390
29662
|
siteId: source.siteId,
|
|
29391
29663
|
stage: source.stage,
|
|
29392
29664
|
prefetchedEvents: source.events != null,
|
|
29393
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29394
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29395
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
29665
|
+
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
29666
|
+
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29667
|
+
scheduleScope: selected ? "any" : normalizeEventScheduleScope(source.scheduleScope),
|
|
29396
29668
|
calendarContext: {
|
|
29397
29669
|
timeZone,
|
|
29398
29670
|
initialToday: source.calendarWindow?.initialToday ?? getLocalScheduleDate(now, timeZone)
|
|
@@ -29458,6 +29730,7 @@ const eventListingHydrationSchema = z.object({
|
|
|
29458
29730
|
eventSurface: eventSurfaceScopeSchema,
|
|
29459
29731
|
filterEventPresets: z.string().nullable(),
|
|
29460
29732
|
scheduleScope: eventScheduleScopeSchema,
|
|
29733
|
+
seriesIds: z.string().nullable().optional(),
|
|
29461
29734
|
filterCategoryIds: z.string().nullable().optional(),
|
|
29462
29735
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
29463
29736
|
filterVenueId: z.string().nullable().optional(),
|
|
@@ -29518,6 +29791,7 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
29518
29791
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
29519
29792
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
29520
29793
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
29794
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
29521
29795
|
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
29522
29796
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
29523
29797
|
filterVenueId: normalizeEventVenueId(source.filterVenueId),
|
|
@@ -29891,6 +30165,65 @@ const eventListingBlockDefinition = {
|
|
|
29891
30165
|
} }
|
|
29892
30166
|
};
|
|
29893
30167
|
//#endregion
|
|
30168
|
+
//#region ../blocks/src/system/blocks/events/eventSelectionFields.ts
|
|
30169
|
+
const eventSelectionFields = [{
|
|
30170
|
+
id: "eventSelection",
|
|
30171
|
+
type: "select",
|
|
30172
|
+
label: "Events to show",
|
|
30173
|
+
required: false,
|
|
30174
|
+
multiple: false,
|
|
30175
|
+
defaultValue: "matching",
|
|
30176
|
+
options: [{
|
|
30177
|
+
value: "matching",
|
|
30178
|
+
label: "All matching events"
|
|
30179
|
+
}, {
|
|
30180
|
+
value: "selected",
|
|
30181
|
+
label: "Selected events"
|
|
30182
|
+
}],
|
|
30183
|
+
ui: { intent: "behavior" }
|
|
30184
|
+
}, createSiteOptionSelectField({
|
|
30185
|
+
id: "selectedEventSeriesIds",
|
|
30186
|
+
label: "Selected events",
|
|
30187
|
+
description: "Show upcoming dates for these events. Other event filters do not apply.",
|
|
30188
|
+
required: false,
|
|
30189
|
+
multiple: true,
|
|
30190
|
+
defaultValue: [],
|
|
30191
|
+
optionSource: "eventSeries",
|
|
30192
|
+
ui: {
|
|
30193
|
+
intent: "behavior",
|
|
30194
|
+
searchThreshold: 1,
|
|
30195
|
+
visibleWhen: {
|
|
30196
|
+
field: "eventSelection",
|
|
30197
|
+
equals: "selected"
|
|
30198
|
+
}
|
|
30199
|
+
}
|
|
30200
|
+
})];
|
|
30201
|
+
function withEventSelectionVisibility(field) {
|
|
30202
|
+
if (![
|
|
30203
|
+
"eventSurface",
|
|
30204
|
+
"filterEventPresets",
|
|
30205
|
+
"scheduleScope",
|
|
30206
|
+
"filterCategoryIds",
|
|
30207
|
+
"filterStaffMemberId",
|
|
30208
|
+
"filterVenueId",
|
|
30209
|
+
"showFilters",
|
|
30210
|
+
"showCategoryFilter",
|
|
30211
|
+
"showVenueFilter",
|
|
30212
|
+
"showStaffFilter"
|
|
30213
|
+
].includes(field.id)) return field;
|
|
30214
|
+
const visibleWhen = field.ui?.visibleWhen;
|
|
30215
|
+
return {
|
|
30216
|
+
...field,
|
|
30217
|
+
ui: {
|
|
30218
|
+
...field.ui,
|
|
30219
|
+
visibleWhen: { allOf: [{
|
|
30220
|
+
field: "eventSelection",
|
|
30221
|
+
notEquals: "selected"
|
|
30222
|
+
}, ...visibleWhen ? [visibleWhen] : []] }
|
|
30223
|
+
}
|
|
30224
|
+
};
|
|
30225
|
+
}
|
|
30226
|
+
//#endregion
|
|
29894
30227
|
//#region ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
29895
30228
|
const eventCalendarSourceSchema = z.object({
|
|
29896
30229
|
...eventCollectionSourceSchemaShape,
|
|
@@ -29973,19 +30306,59 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
29973
30306
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
29974
30307
|
const scopeParams = {
|
|
29975
30308
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
30309
|
+
seriesIds: { $bind: {
|
|
30310
|
+
from: "content",
|
|
30311
|
+
transforms: [{
|
|
30312
|
+
id: "events.calendarSelectionParam",
|
|
30313
|
+
options: { key: "seriesIds" }
|
|
30314
|
+
}]
|
|
30315
|
+
} },
|
|
29976
30316
|
stage: { $bind: {
|
|
29977
30317
|
from: "$root.previewStage",
|
|
29978
30318
|
fallback: "published"
|
|
29979
30319
|
} },
|
|
29980
|
-
eventSurface: { $bind: {
|
|
30320
|
+
eventSurface: { $bind: {
|
|
30321
|
+
from: "content",
|
|
30322
|
+
transforms: [{
|
|
30323
|
+
id: "events.calendarSelectionParam",
|
|
30324
|
+
options: { key: "eventSurface" }
|
|
30325
|
+
}, { id: "value.csv" }]
|
|
30326
|
+
} },
|
|
29981
30327
|
eventPresets: { $bind: {
|
|
29982
|
-
from: "content
|
|
29983
|
-
transforms: [{
|
|
30328
|
+
from: "content",
|
|
30329
|
+
transforms: [{
|
|
30330
|
+
id: "events.calendarSelectionParam",
|
|
30331
|
+
options: { key: "filterEventPresets" }
|
|
30332
|
+
}, { id: "value.csv" }]
|
|
29984
30333
|
} },
|
|
29985
|
-
scheduleScope: { $bind: {
|
|
29986
|
-
|
|
29987
|
-
|
|
29988
|
-
|
|
30334
|
+
scheduleScope: { $bind: {
|
|
30335
|
+
from: "content",
|
|
30336
|
+
transforms: [{
|
|
30337
|
+
id: "events.calendarSelectionParam",
|
|
30338
|
+
options: { key: "scheduleScope" }
|
|
30339
|
+
}, { id: "value.csv" }]
|
|
30340
|
+
} },
|
|
30341
|
+
categoryIds: { $bind: {
|
|
30342
|
+
from: "content",
|
|
30343
|
+
transforms: [{
|
|
30344
|
+
id: "events.calendarSelectionParam",
|
|
30345
|
+
options: { key: "filterCategoryIds" }
|
|
30346
|
+
}, { id: "value.csv" }]
|
|
30347
|
+
} },
|
|
30348
|
+
staffMemberId: { $bind: {
|
|
30349
|
+
from: "content",
|
|
30350
|
+
transforms: [{
|
|
30351
|
+
id: "events.calendarSelectionParam",
|
|
30352
|
+
options: { key: "filterStaffMemberId" }
|
|
30353
|
+
}, { id: "value.csv" }]
|
|
30354
|
+
} },
|
|
30355
|
+
venueId: { $bind: {
|
|
30356
|
+
from: "content",
|
|
30357
|
+
transforms: [{
|
|
30358
|
+
id: "events.calendarSelectionParam",
|
|
30359
|
+
options: { key: "filterVenueId" }
|
|
30360
|
+
}, { id: "value.csv" }]
|
|
30361
|
+
} }
|
|
29989
30362
|
};
|
|
29990
30363
|
/** Combined renders two jobs; calendar-only variants never pay for the list seed. */
|
|
29991
30364
|
const eventCalendarDataLoaders = {
|
|
@@ -30115,6 +30488,13 @@ const eventCalendarLayout = [styledSection({
|
|
|
30115
30488
|
from: "content.defaultCalendarView",
|
|
30116
30489
|
fallback: "month"
|
|
30117
30490
|
} },
|
|
30491
|
+
seriesIds: { $bind: {
|
|
30492
|
+
from: "content",
|
|
30493
|
+
transforms: [{
|
|
30494
|
+
id: "events.calendarSelectionParam",
|
|
30495
|
+
options: { key: "seriesIds" }
|
|
30496
|
+
}]
|
|
30497
|
+
} },
|
|
30118
30498
|
showFilters: { $bind: {
|
|
30119
30499
|
from: "content.showFilters",
|
|
30120
30500
|
fallback: true
|
|
@@ -30136,17 +30516,47 @@ const eventCalendarLayout = [styledSection({
|
|
|
30136
30516
|
fallback: true
|
|
30137
30517
|
} },
|
|
30138
30518
|
eventSurface: { $bind: {
|
|
30139
|
-
from: "content
|
|
30140
|
-
|
|
30519
|
+
from: "content",
|
|
30520
|
+
transforms: [{
|
|
30521
|
+
id: "events.calendarSelectionParam",
|
|
30522
|
+
options: { key: "eventSurface" }
|
|
30523
|
+
}]
|
|
30524
|
+
} },
|
|
30525
|
+
filterEventPresets: { $bind: {
|
|
30526
|
+
from: "content",
|
|
30527
|
+
transforms: [{
|
|
30528
|
+
id: "events.calendarSelectionParam",
|
|
30529
|
+
options: { key: "filterEventPresets" }
|
|
30530
|
+
}]
|
|
30141
30531
|
} },
|
|
30142
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
30143
30532
|
scheduleScope: { $bind: {
|
|
30144
|
-
from: "content
|
|
30145
|
-
|
|
30533
|
+
from: "content",
|
|
30534
|
+
transforms: [{
|
|
30535
|
+
id: "events.calendarSelectionParam",
|
|
30536
|
+
options: { key: "scheduleScope" }
|
|
30537
|
+
}]
|
|
30538
|
+
} },
|
|
30539
|
+
filterCategoryIds: { $bind: {
|
|
30540
|
+
from: "content",
|
|
30541
|
+
transforms: [{
|
|
30542
|
+
id: "events.calendarSelectionParam",
|
|
30543
|
+
options: { key: "filterCategoryIds" }
|
|
30544
|
+
}]
|
|
30545
|
+
} },
|
|
30546
|
+
filterStaffMemberId: { $bind: {
|
|
30547
|
+
from: "content",
|
|
30548
|
+
transforms: [{
|
|
30549
|
+
id: "events.calendarSelectionParam",
|
|
30550
|
+
options: { key: "filterStaffMemberId" }
|
|
30551
|
+
}]
|
|
30552
|
+
} },
|
|
30553
|
+
filterVenueId: { $bind: {
|
|
30554
|
+
from: "content",
|
|
30555
|
+
transforms: [{
|
|
30556
|
+
id: "events.calendarSelectionParam",
|
|
30557
|
+
options: { key: "filterVenueId" }
|
|
30558
|
+
}]
|
|
30146
30559
|
} },
|
|
30147
|
-
filterCategoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
30148
|
-
filterStaffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|
|
30149
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
30150
30560
|
cardRole: { $bind: {
|
|
30151
30561
|
from: "content._cardStyles.role",
|
|
30152
30562
|
fallback: "default"
|
|
@@ -30650,6 +31060,7 @@ const eventCalendarAdditionalFields = [
|
|
|
30650
31060
|
}
|
|
30651
31061
|
}
|
|
30652
31062
|
},
|
|
31063
|
+
...eventSelectionFields,
|
|
30653
31064
|
{
|
|
30654
31065
|
id: "eventSurface",
|
|
30655
31066
|
type: "select",
|
|
@@ -30859,7 +31270,7 @@ const eventCalendarBlockDefinition = {
|
|
|
30859
31270
|
titleSource: "heading",
|
|
30860
31271
|
description: "Display events with calendar, list, or combined views with filtering",
|
|
30861
31272
|
skipSectionStyles: true,
|
|
30862
|
-
additionalFields: eventCalendarAdditionalFields,
|
|
31273
|
+
additionalFields: eventCalendarAdditionalFields.map(withEventSelectionVisibility),
|
|
30863
31274
|
styleTokens: {
|
|
30864
31275
|
background: "surface",
|
|
30865
31276
|
typography: "body",
|
|
@@ -35237,6 +35648,15 @@ const newsletterFieldSchema = z.object({
|
|
|
35237
35648
|
placeholder: z.string().optional()
|
|
35238
35649
|
});
|
|
35239
35650
|
const mailingListSignupBlockIdSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignupBlockId);
|
|
35651
|
+
const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
|
|
35652
|
+
const parsed = parseMailingListContentVersionId(value);
|
|
35653
|
+
if (parsed) return parsed;
|
|
35654
|
+
ctx.addIssue({
|
|
35655
|
+
code: z.ZodIssueCode.custom,
|
|
35656
|
+
message: "Invalid mailing-list content version ID"
|
|
35657
|
+
});
|
|
35658
|
+
return z.NEVER;
|
|
35659
|
+
});
|
|
35240
35660
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
35241
35661
|
const newsletterSourceCommonSchema = z.object({
|
|
35242
35662
|
siteId: z.string().optional(),
|
|
@@ -35250,7 +35670,8 @@ const newsletterSourceCommonSchema = z.object({
|
|
|
35250
35670
|
const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
35251
35671
|
newsletterSourceCommonSchema.extend({
|
|
35252
35672
|
source: z.literal("block"),
|
|
35253
|
-
blockId: z.string().nullable().optional()
|
|
35673
|
+
blockId: z.string().nullable().optional(),
|
|
35674
|
+
contentVersionId: z.string().nullable().optional()
|
|
35254
35675
|
}),
|
|
35255
35676
|
newsletterSourceCommonSchema.extend({
|
|
35256
35677
|
source: z.literal("signed-footer"),
|
|
@@ -35266,6 +35687,7 @@ const newsletterDisplaySchema = z.object({
|
|
|
35266
35687
|
availability: z.enum(["ready", "unavailable"]),
|
|
35267
35688
|
className: z.string().nullable(),
|
|
35268
35689
|
buttonLabel: z.string(),
|
|
35690
|
+
successMessage: z.string(),
|
|
35269
35691
|
buttonVariant: newsletterButtonVariantSchema,
|
|
35270
35692
|
privacyNote: z.string().nullable(),
|
|
35271
35693
|
fields: z.array(newsletterFieldSchema),
|
|
@@ -35280,7 +35702,8 @@ const newsletterHydrationSchema = z.object({
|
|
|
35280
35702
|
tag: z.literal("block-source"),
|
|
35281
35703
|
sourceRef: z.object({
|
|
35282
35704
|
tag: z.literal("block_ref"),
|
|
35283
|
-
blockId: mailingListSignupBlockIdSchema
|
|
35705
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
35706
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
35284
35707
|
}).nullable()
|
|
35285
35708
|
}),
|
|
35286
35709
|
z.object({
|
|
@@ -35319,6 +35742,7 @@ function buildNewsletterDisplay(source) {
|
|
|
35319
35742
|
fields: { preset: "emailOnly" },
|
|
35320
35743
|
includeOptionalPhone: false,
|
|
35321
35744
|
buttonLabel: "Subscribe",
|
|
35745
|
+
successMessage: DEFAULT_MAILING_LIST_SUCCESS_MESSAGE,
|
|
35322
35746
|
privacyNote: null
|
|
35323
35747
|
};
|
|
35324
35748
|
const targeting = source.targeting ?? { mode: "default" };
|
|
@@ -35328,6 +35752,7 @@ function buildNewsletterDisplay(source) {
|
|
|
35328
35752
|
availability: runtimeTargetingIsAvailable(context, targeting, choices) ? "ready" : "unavailable",
|
|
35329
35753
|
className: source.className ?? null,
|
|
35330
35754
|
buttonLabel: form.buttonLabel,
|
|
35755
|
+
successMessage: form.successMessage,
|
|
35331
35756
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
35332
35757
|
privacyNote: form.privacyNote,
|
|
35333
35758
|
fields: getGlobalFormFields(form),
|
|
@@ -35358,7 +35783,7 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
35358
35783
|
function projectNewsletterFormHydrationTarget(source) {
|
|
35359
35784
|
switch (source.source) {
|
|
35360
35785
|
case "block": {
|
|
35361
|
-
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId);
|
|
35786
|
+
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
|
|
35362
35787
|
if (sourceRef?.tag === "block_ref") return {
|
|
35363
35788
|
tag: "block-source",
|
|
35364
35789
|
sourceRef
|
|
@@ -37490,6 +37915,26 @@ const linksTransforms = [{
|
|
|
37490
37915
|
}
|
|
37491
37916
|
}];
|
|
37492
37917
|
const defaultTransforms = createTransformRegistry([
|
|
37918
|
+
{
|
|
37919
|
+
id: "events.calendarSelectionParam",
|
|
37920
|
+
kind: "formatter",
|
|
37921
|
+
summary: "Resolve selected events instead of discovery filters",
|
|
37922
|
+
schema: z.object({ key: z.enum([
|
|
37923
|
+
"seriesIds",
|
|
37924
|
+
"eventSurface",
|
|
37925
|
+
"filterEventPresets",
|
|
37926
|
+
"scheduleScope",
|
|
37927
|
+
"filterCategoryIds",
|
|
37928
|
+
"filterStaffMemberId",
|
|
37929
|
+
"filterVenueId"
|
|
37930
|
+
]) }),
|
|
37931
|
+
run(value, { key }) {
|
|
37932
|
+
const content = asPartialObject(value) ?? {};
|
|
37933
|
+
const selection = resolveEventSelection(content.eventSelection, content.selectedEventSeriesIds);
|
|
37934
|
+
if (selection.kind === "selected") return key === "seriesIds" ? selection.seriesIds : void 0;
|
|
37935
|
+
return key === "seriesIds" ? void 0 : content[key];
|
|
37936
|
+
}
|
|
37937
|
+
},
|
|
37493
37938
|
{
|
|
37494
37939
|
id: "events.calendarReadEnabled",
|
|
37495
37940
|
kind: "formatter",
|
|
@@ -37804,12 +38249,12 @@ function normalizeContent(block) {
|
|
|
37804
38249
|
}
|
|
37805
38250
|
/**
|
|
37806
38251
|
* Normalize params for API calls.
|
|
37807
|
-
* Converts
|
|
38252
|
+
* Converts supplied values to strings, preserving absent versus explicitly empty params.
|
|
37808
38253
|
*/
|
|
37809
38254
|
function normalizeParams(input) {
|
|
37810
38255
|
if (!input || typeof input !== "object") return {};
|
|
37811
38256
|
const output = {};
|
|
37812
|
-
for (const [key, value] of Object.entries(input)) output[key] = coerceToString(value);
|
|
38257
|
+
for (const [key, value] of Object.entries(input)) if (value !== void 0 && value !== null) output[key] = coerceToString(value);
|
|
37813
38258
|
return output;
|
|
37814
38259
|
}
|
|
37815
38260
|
function isNonArrayObject(value) {
|
|
@@ -37873,6 +38318,14 @@ function coercePayload(payload) {
|
|
|
37873
38318
|
* - Frontend: provide internal API client
|
|
37874
38319
|
* - SDK: provide SDK client with endpoint mapping
|
|
37875
38320
|
*/
|
|
38321
|
+
function projectDataLoaders(loaders, shouldLoad, blockId, blockKind) {
|
|
38322
|
+
if (!shouldLoad) return [...loaders];
|
|
38323
|
+
return loaders.filter(({ key }) => shouldLoad({
|
|
38324
|
+
blockId,
|
|
38325
|
+
blockKind,
|
|
38326
|
+
loaderKey: key
|
|
38327
|
+
}));
|
|
38328
|
+
}
|
|
37876
38329
|
function shouldSkipResolvedLoader(input) {
|
|
37877
38330
|
if (input.loader.requiredParams?.some((param) => !input.params[param]?.trim())) return true;
|
|
37878
38331
|
return Boolean(input.isValidEndpoint && !input.isValidEndpoint(input.endpoint));
|
|
@@ -37898,8 +38351,12 @@ function shouldSkipResolvedLoader(input) {
|
|
|
37898
38351
|
* ```
|
|
37899
38352
|
*/
|
|
37900
38353
|
async function prefetchBlockData$1(page, context, options) {
|
|
37901
|
-
|
|
38354
|
+
return (await prefetchBlockDataWithFailures(page, context, options)).resolvedData;
|
|
38355
|
+
}
|
|
38356
|
+
async function prefetchBlockDataWithFailures(page, context, options) {
|
|
38357
|
+
const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders, getBlockDefinition: getBlockDefinition$1 = getBlockDefinition, resolveParamsBindings: resolveParamsBindings$1 = resolveParamsBindings, shouldLoad } = options;
|
|
37902
38358
|
const results = {};
|
|
38359
|
+
const loaderFailures = {};
|
|
37903
38360
|
const tasks = [];
|
|
37904
38361
|
for (const block of page.blocks) {
|
|
37905
38362
|
const blockId = block.id;
|
|
@@ -37914,6 +38371,7 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
37914
38371
|
loader
|
|
37915
38372
|
})) : [];
|
|
37916
38373
|
} else loaders = [];
|
|
38374
|
+
loaders = projectDataLoaders(loaders, shouldLoad, blockId, block.kind);
|
|
37917
38375
|
if (loaders.length === 0) continue;
|
|
37918
38376
|
const root = {
|
|
37919
38377
|
...context.root ?? {},
|
|
@@ -37947,6 +38405,11 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
37947
38405
|
const blockResults = results[blockId] ?? (results[blockId] = {});
|
|
37948
38406
|
blockResults[key] = data;
|
|
37949
38407
|
} catch (error) {
|
|
38408
|
+
const blockFailures = loaderFailures[blockId] ?? (loaderFailures[blockId] = {});
|
|
38409
|
+
blockFailures[key] = {
|
|
38410
|
+
endpoint,
|
|
38411
|
+
params
|
|
38412
|
+
};
|
|
37950
38413
|
if (onError) onError(error, {
|
|
37951
38414
|
block: block.kind,
|
|
37952
38415
|
loader: key
|
|
@@ -37956,7 +38419,10 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
37956
38419
|
}
|
|
37957
38420
|
}
|
|
37958
38421
|
if (tasks.length > 0) await Promise.all(tasks);
|
|
37959
|
-
return
|
|
38422
|
+
return {
|
|
38423
|
+
resolvedData: results,
|
|
38424
|
+
loaderFailures
|
|
38425
|
+
};
|
|
37960
38426
|
}
|
|
37961
38427
|
//#endregion
|
|
37962
38428
|
//#region ../blocks/src/system/data/loaderEndpoints.ts
|
|
@@ -37984,8 +38450,8 @@ function toStringParams(value) {
|
|
|
37984
38450
|
for (const [k, v] of Object.entries(value)) if (typeof v === "string") out[k] = v;
|
|
37985
38451
|
return out;
|
|
37986
38452
|
}
|
|
37987
|
-
function stripEmptyStringValues(params) {
|
|
37988
|
-
for (const [key, value] of Object.entries(params)) if (value === "") delete params[key];
|
|
38453
|
+
function stripEmptyStringValues(params, endpoint) {
|
|
38454
|
+
for (const [key, value] of Object.entries(params)) if (value === "" && !(key === "seriesIds" && (endpoint === "listPublicEvents" || endpoint === "listPublicEventCalendarWindow"))) delete params[key];
|
|
37989
38455
|
}
|
|
37990
38456
|
function ensureSiteId(params, context) {
|
|
37991
38457
|
if (!params.siteId && typeof context.siteId === "string" && context.siteId) params.siteId = context.siteId;
|
|
@@ -37998,7 +38464,7 @@ function ensureSiteId(params, context) {
|
|
|
37998
38464
|
*/
|
|
37999
38465
|
function normalizeLoaderParams(endpoint, params, context) {
|
|
38000
38466
|
const out = toStringParams(params);
|
|
38001
|
-
stripEmptyStringValues(out);
|
|
38467
|
+
stripEmptyStringValues(out, endpoint);
|
|
38002
38468
|
if (endpoint === "getPublicFormById") {
|
|
38003
38469
|
ensureSiteId(out, context);
|
|
38004
38470
|
if (!out.formId && out.formSlug) {
|
|
@@ -38306,7 +38772,17 @@ const riverbankSiteConfigInputSchema = z.object({
|
|
|
38306
38772
|
z.object({
|
|
38307
38773
|
config: riverbankSiteConfigInputSchema,
|
|
38308
38774
|
forceContentTypes: z.boolean().optional(),
|
|
38309
|
-
mode: z.enum(["apply", "preview"]).optional()
|
|
38775
|
+
mode: z.enum(["apply", "preview"]).optional(),
|
|
38776
|
+
expectedMailingListProviderScope: z.unknown().transform((value, ctx) => {
|
|
38777
|
+
if (value === void 0) return void 0;
|
|
38778
|
+
const parsed = parseMailingListProviderScope(value);
|
|
38779
|
+
if (parsed.ok) return parsed.value;
|
|
38780
|
+
ctx.addIssue({
|
|
38781
|
+
code: "custom",
|
|
38782
|
+
message: "Invalid mailing-list provider scope"
|
|
38783
|
+
});
|
|
38784
|
+
return z.NEVER;
|
|
38785
|
+
}).optional()
|
|
38310
38786
|
}).strict();
|
|
38311
38787
|
//#endregion
|
|
38312
38788
|
//#region ../api/src/sdkThemeWire.ts
|