@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/client/hooks.mjs
CHANGED
|
@@ -30,10 +30,12 @@ const unsafeAsApiKeyId = (id) => id;
|
|
|
30
30
|
const unsafeAsEventOfferingId = (id) => id;
|
|
31
31
|
const unsafeAsEventSeriesId = (id) => id;
|
|
32
32
|
const unsafeAsUserId = (id) => id;
|
|
33
|
+
const unsafeAsContentVersionId = (id) => id;
|
|
33
34
|
const parseSiteId = (value) => parseUuidBrand(value, unsafeAsSiteId);
|
|
34
35
|
const parseApiKeyId = (value) => parseUuidBrand(value, unsafeAsApiKeyId);
|
|
35
36
|
const parseEventOfferingId = (value) => parseUuidBrand(value, unsafeAsEventOfferingId);
|
|
36
37
|
const parseUserId = (value) => parseUuidBrand(value, unsafeAsUserId);
|
|
38
|
+
const parseContentVersionId = (value) => parseUuidBrand(value, unsafeAsContentVersionId);
|
|
37
39
|
const parseEventSeriesId = (value) => parseUuidBrand(value, unsafeAsEventSeriesId);
|
|
38
40
|
//#endregion
|
|
39
41
|
//#region ../core/src/assert-never.ts
|
|
@@ -267,7 +269,7 @@ function parseEventPageSurfaceDestinationMode(value) {
|
|
|
267
269
|
return value === "cms-managed" || value === "system-managed" ? value : void 0;
|
|
268
270
|
}
|
|
269
271
|
function parseEventPageSurfaceSubject(value) {
|
|
270
|
-
if (!isRecord$
|
|
272
|
+
if (!isRecord$16(value)) return err({ kind: "notObject" });
|
|
271
273
|
switch (value.kind) {
|
|
272
274
|
case "eventSeries": {
|
|
273
275
|
const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
|
|
@@ -322,7 +324,7 @@ function parseEventSeriesIdList(values) {
|
|
|
322
324
|
}
|
|
323
325
|
return ok(parsed);
|
|
324
326
|
}
|
|
325
|
-
function isRecord$
|
|
327
|
+
function isRecord$16(value) {
|
|
326
328
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
327
329
|
}
|
|
328
330
|
//#endregion
|
|
@@ -506,16 +508,47 @@ function parsePositiveInteger(value) {
|
|
|
506
508
|
function parseNewsletterListId(value) {
|
|
507
509
|
return parseTrimmedMatchingString(value, UUID_PATTERN);
|
|
508
510
|
}
|
|
511
|
+
function parseMailchimpAccountId(value) {
|
|
512
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
513
|
+
}
|
|
509
514
|
function parseMailchimpAudienceId(value) {
|
|
510
515
|
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
511
516
|
}
|
|
512
517
|
function parseMailchimpInterestId(value) {
|
|
513
518
|
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
514
519
|
}
|
|
520
|
+
function parseBrevoAccountId(value) {
|
|
521
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
522
|
+
}
|
|
515
523
|
function parseBrevoListId(value) {
|
|
516
524
|
return parsePositiveInteger(value);
|
|
517
525
|
}
|
|
518
526
|
//#endregion
|
|
527
|
+
//#region ../core/src/mailing-list-setup.ts
|
|
528
|
+
function isRecord$15(value) {
|
|
529
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
530
|
+
}
|
|
531
|
+
const DEFAULT_MAILING_LIST_SUCCESS_MESSAGE = "Thanks — you're on the list.";
|
|
532
|
+
function parseMailingListProviderScope(value) {
|
|
533
|
+
if (!isRecord$15(value)) return err("invalid_mailing_list_provider_scope");
|
|
534
|
+
if (value.provider === "native") return ok({ provider: "native" });
|
|
535
|
+
if (value.provider === "brevo") {
|
|
536
|
+
const accountId = parseBrevoAccountId(value.accountId);
|
|
537
|
+
return accountId !== null ? ok({
|
|
538
|
+
provider: "brevo",
|
|
539
|
+
accountId
|
|
540
|
+
}) : err("invalid_mailing_list_provider_scope");
|
|
541
|
+
}
|
|
542
|
+
if (value.provider === "mailchimp") {
|
|
543
|
+
const accountId = parseMailchimpAccountId(value.accountId);
|
|
544
|
+
return accountId !== null ? ok({
|
|
545
|
+
provider: "mailchimp",
|
|
546
|
+
accountId
|
|
547
|
+
}) : err("invalid_mailing_list_provider_scope");
|
|
548
|
+
}
|
|
549
|
+
return err("invalid_mailing_list_provider_scope");
|
|
550
|
+
}
|
|
551
|
+
//#endregion
|
|
519
552
|
//#region ../core/src/mailing-list-setup-parser.ts
|
|
520
553
|
function parseMailingListGlobalForm(value) {
|
|
521
554
|
if (!isRecord$14(value)) return formError("shape");
|
|
@@ -524,12 +557,15 @@ function parseMailingListGlobalForm(value) {
|
|
|
524
557
|
if (typeof value.includeOptionalPhone !== "boolean") return formError("includeOptionalPhone");
|
|
525
558
|
const buttonLabel = parseRequiredString(value.buttonLabel);
|
|
526
559
|
if (buttonLabel === null) return formError("buttonLabel");
|
|
560
|
+
const successMessage = parseRequiredString(value.successMessage);
|
|
561
|
+
if (successMessage === null) return formError("successMessage");
|
|
527
562
|
const privacyNote = parseOptionalString(value.privacyNote);
|
|
528
563
|
if (privacyNote === void 0) return formError("privacyNote");
|
|
529
564
|
return ok({
|
|
530
565
|
fields,
|
|
531
566
|
includeOptionalPhone: value.includeOptionalPhone,
|
|
532
567
|
buttonLabel,
|
|
568
|
+
successMessage,
|
|
533
569
|
privacyNote
|
|
534
570
|
});
|
|
535
571
|
}
|
|
@@ -859,11 +895,17 @@ function parseMailingListSignedSourceToken(value) {
|
|
|
859
895
|
const parsed = typeof value === "string" ? value.trim() : "";
|
|
860
896
|
return /^[A-Za-z0-9._~-]{16,1000}$/u.test(parsed) ? parsed : null;
|
|
861
897
|
}
|
|
862
|
-
function
|
|
863
|
-
const parsed =
|
|
864
|
-
return parsed
|
|
898
|
+
function parseMailingListContentVersionId(value) {
|
|
899
|
+
const parsed = parseContentVersionId(value);
|
|
900
|
+
return parsed.ok ? parsed.value : null;
|
|
901
|
+
}
|
|
902
|
+
function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
|
|
903
|
+
const parsedBlockId = parseMailingListBlockId(blockId);
|
|
904
|
+
const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
|
|
905
|
+
return parsedBlockId !== null && parsedContentVersionId !== null ? {
|
|
865
906
|
tag: "block_ref",
|
|
866
|
-
blockId:
|
|
907
|
+
blockId: parsedBlockId,
|
|
908
|
+
contentVersionId: parsedContentVersionId
|
|
867
909
|
} : null;
|
|
868
910
|
}
|
|
869
911
|
//#endregion
|
|
@@ -2482,7 +2524,7 @@ const BUTTON_CONTRAST_POLICY = {
|
|
|
2482
2524
|
nonTextMinimumRatio: 3,
|
|
2483
2525
|
gradientSamplesPerSegment: 20,
|
|
2484
2526
|
alphaBackgrounds: "reject-without-known-surface",
|
|
2485
|
-
disabled: "
|
|
2527
|
+
disabled: "validated-colour-pair-with-muted-control-opacity"
|
|
2486
2528
|
};
|
|
2487
2529
|
function validateButtonSurfaceContrast(input) {
|
|
2488
2530
|
const ratio = contrastRatio(input.buttonPaint, input.surfaceHex);
|
|
@@ -3008,59 +3050,108 @@ function interpolateHex(startHex, endHex, position) {
|
|
|
3008
3050
|
const channel = (from, to) => Math.round(from + (to - from) * position).toString(16).padStart(2, "0");
|
|
3009
3051
|
return `#${channel(start.r, end.r)}${channel(start.g, end.g)}${channel(start.b, end.b)}`;
|
|
3010
3052
|
}
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
pseudoElement: "none",
|
|
3032
|
-
applicableTo: ["button"],
|
|
3033
|
-
customizableOption: {
|
|
3034
|
-
name: "amount",
|
|
3035
|
-
type: "select",
|
|
3036
|
-
label: config.label,
|
|
3037
|
-
default: 100,
|
|
3038
|
-
options: [
|
|
3039
|
-
0,
|
|
3040
|
-
100,
|
|
3041
|
-
200,
|
|
3042
|
-
300,
|
|
3043
|
-
400,
|
|
3044
|
-
500,
|
|
3045
|
-
600,
|
|
3046
|
-
700,
|
|
3047
|
-
800,
|
|
3048
|
-
900
|
|
3049
|
-
]
|
|
3053
|
+
//#endregion
|
|
3054
|
+
//#region ../theme-core/src/tokens/tokens.ts
|
|
3055
|
+
const defaultThemeTokens = {
|
|
3056
|
+
color: {
|
|
3057
|
+
"background/base": "#ffffff",
|
|
3058
|
+
"background/elevated": "#f5f5f5",
|
|
3059
|
+
"surface/base": "#ffffff",
|
|
3060
|
+
"surface/subtle": "#f9f9fb",
|
|
3061
|
+
"surface/inverted": "#111111",
|
|
3062
|
+
"content/primary": "#111111",
|
|
3063
|
+
"content/secondary": "#3f3f46",
|
|
3064
|
+
"accent/primary": "#2563eb",
|
|
3065
|
+
"accent/secondary": "#1d4ed8",
|
|
3066
|
+
"border/base": "#e5e7eb"
|
|
3067
|
+
},
|
|
3068
|
+
typography: {
|
|
3069
|
+
"display/hero": {
|
|
3070
|
+
fontSize: "clamp(48px, 8vw, 96px)",
|
|
3071
|
+
lineHeight: "1.05",
|
|
3072
|
+
fontWeight: "700"
|
|
3050
3073
|
},
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3074
|
+
"display/section": {
|
|
3075
|
+
fontSize: "clamp(40px, 6vw, 72px)",
|
|
3076
|
+
lineHeight: "1.1",
|
|
3077
|
+
fontWeight: "700"
|
|
3078
|
+
},
|
|
3079
|
+
"heading/large": {
|
|
3080
|
+
fontSize: "clamp(32px, 4vw, 48px)",
|
|
3081
|
+
lineHeight: "1.2",
|
|
3082
|
+
fontWeight: "600"
|
|
3083
|
+
},
|
|
3084
|
+
"heading/medium": {
|
|
3085
|
+
fontSize: "clamp(24px, 3vw, 32px)",
|
|
3086
|
+
lineHeight: "1.25",
|
|
3087
|
+
fontWeight: "600"
|
|
3088
|
+
},
|
|
3089
|
+
"heading/small": {
|
|
3090
|
+
fontSize: "20px",
|
|
3091
|
+
lineHeight: "1.3",
|
|
3092
|
+
fontWeight: "600"
|
|
3093
|
+
},
|
|
3094
|
+
"body/normal": {
|
|
3095
|
+
fontSize: "16px",
|
|
3096
|
+
lineHeight: "1.6",
|
|
3097
|
+
fontWeight: "400"
|
|
3098
|
+
},
|
|
3099
|
+
"body/small": {
|
|
3100
|
+
fontSize: "14px",
|
|
3101
|
+
lineHeight: "1.5",
|
|
3102
|
+
fontWeight: "400"
|
|
3103
|
+
},
|
|
3104
|
+
caption: {
|
|
3105
|
+
fontSize: "12px",
|
|
3106
|
+
lineHeight: "1.4",
|
|
3107
|
+
fontWeight: "500"
|
|
3061
3108
|
}
|
|
3062
|
-
}
|
|
3063
|
-
|
|
3109
|
+
},
|
|
3110
|
+
spacing: {
|
|
3111
|
+
none: "0px",
|
|
3112
|
+
"3xs": "4px",
|
|
3113
|
+
"2xs": "8px",
|
|
3114
|
+
xs: "12px",
|
|
3115
|
+
sm: "16px",
|
|
3116
|
+
md: "24px",
|
|
3117
|
+
lg: "32px",
|
|
3118
|
+
xl: "40px",
|
|
3119
|
+
"2xl": "56px",
|
|
3120
|
+
"3xl": "72px"
|
|
3121
|
+
},
|
|
3122
|
+
radius: {
|
|
3123
|
+
none: "0px",
|
|
3124
|
+
xs: "2px",
|
|
3125
|
+
sm: "4px",
|
|
3126
|
+
md: "8px",
|
|
3127
|
+
lg: "12px",
|
|
3128
|
+
pill: "999px",
|
|
3129
|
+
full: "9999px"
|
|
3130
|
+
},
|
|
3131
|
+
shadow: {
|
|
3132
|
+
none: "none",
|
|
3133
|
+
soft: "0px 2px 8px rgba(15, 23, 42, 0.08)",
|
|
3134
|
+
medium: "0px 6px 18px rgba(15, 23, 42, 0.12)",
|
|
3135
|
+
strong: "0px 12px 36px rgba(15, 23, 42, 0.16)"
|
|
3136
|
+
},
|
|
3137
|
+
palette: {
|
|
3138
|
+
surface: "#ffffff",
|
|
3139
|
+
"neutral-50": "#f9fafb",
|
|
3140
|
+
"neutral-900": "#111827",
|
|
3141
|
+
primary: "#2563eb",
|
|
3142
|
+
"primary-50": "#eff6ff",
|
|
3143
|
+
"primary-500": "#2563eb",
|
|
3144
|
+
"primary-900": "#1d4ed8",
|
|
3145
|
+
secondary: "#9333ea",
|
|
3146
|
+
"secondary-50": "#f3e8ff",
|
|
3147
|
+
"secondary-500": "#9333ea",
|
|
3148
|
+
"secondary-900": "#4c1d95",
|
|
3149
|
+
accent: "#f97316",
|
|
3150
|
+
"accent-50": "#fff7ed",
|
|
3151
|
+
"accent-500": "#f97316",
|
|
3152
|
+
"accent-900": "#7c2d12"
|
|
3153
|
+
}
|
|
3154
|
+
};
|
|
3064
3155
|
//#endregion
|
|
3065
3156
|
//#region ../theme-core/src/palette/utils/opaqueSurfaceColor.ts
|
|
3066
3157
|
/** Resolve an opaque colour, compositing alpha against an explicit underlay. */
|
|
@@ -3345,6 +3436,59 @@ function mergeStyles(...styles) {
|
|
|
3345
3436
|
}
|
|
3346
3437
|
return Object.keys(merged).length ? merged : void 0;
|
|
3347
3438
|
}
|
|
3439
|
+
shadeBackgroundEffect({
|
|
3440
|
+
id: "darken-background",
|
|
3441
|
+
name: "Darken on Hover",
|
|
3442
|
+
description: "Darkens the background color on hover",
|
|
3443
|
+
label: "Darken Amount (shade step)",
|
|
3444
|
+
shadeDirection: 1
|
|
3445
|
+
});
|
|
3446
|
+
shadeBackgroundEffect({
|
|
3447
|
+
id: "lighten-background",
|
|
3448
|
+
name: "Lighten on Hover",
|
|
3449
|
+
description: "Lightens the background color on hover",
|
|
3450
|
+
label: "Lighten Amount (shade step)",
|
|
3451
|
+
shadeDirection: -1
|
|
3452
|
+
});
|
|
3453
|
+
function shadeBackgroundEffect(config) {
|
|
3454
|
+
return {
|
|
3455
|
+
id: config.id,
|
|
3456
|
+
name: config.name,
|
|
3457
|
+
description: config.description,
|
|
3458
|
+
category: "background",
|
|
3459
|
+
pseudoElement: "none",
|
|
3460
|
+
applicableTo: ["button"],
|
|
3461
|
+
customizableOption: {
|
|
3462
|
+
name: "amount",
|
|
3463
|
+
type: "select",
|
|
3464
|
+
label: config.label,
|
|
3465
|
+
default: 100,
|
|
3466
|
+
options: [
|
|
3467
|
+
0,
|
|
3468
|
+
100,
|
|
3469
|
+
200,
|
|
3470
|
+
300,
|
|
3471
|
+
400,
|
|
3472
|
+
500,
|
|
3473
|
+
600,
|
|
3474
|
+
700,
|
|
3475
|
+
800,
|
|
3476
|
+
900
|
|
3477
|
+
]
|
|
3478
|
+
},
|
|
3479
|
+
isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
|
|
3480
|
+
generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
|
|
3481
|
+
if (buttonConfig.background.type !== "solid") return "";
|
|
3482
|
+
const amount = (options.amount || 100) * config.shadeDirection;
|
|
3483
|
+
const baseToken = buttonConfig.background.colorToken ?? "primary-500";
|
|
3484
|
+
return `
|
|
3485
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
3486
|
+
background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
|
|
3487
|
+
}
|
|
3488
|
+
`;
|
|
3489
|
+
}
|
|
3490
|
+
};
|
|
3491
|
+
}
|
|
3348
3492
|
//#endregion
|
|
3349
3493
|
//#region ../theme-core/src/utils/tokenOrColor.ts
|
|
3350
3494
|
/**
|
|
@@ -6766,8 +6910,14 @@ const headerInteractionPillPaletteValues = [
|
|
|
6766
6910
|
"accent"
|
|
6767
6911
|
];
|
|
6768
6912
|
/**
|
|
6769
|
-
* "No pill":
|
|
6770
|
-
*
|
|
6913
|
+
* "No pill": a colour change on hover rather than a filled background.
|
|
6914
|
+
*
|
|
6915
|
+
* The palette step writes nothing (#1318 Phase 4c decision 2), but on a
|
|
6916
|
+
* foreground-adaptive style that is not the end of the story: the hover colour
|
|
6917
|
+
* is derived from the resolved opening foreground at render time, paired with
|
|
6918
|
+
* the resting colour, so `quiet` resolves to a definite colour rather than to
|
|
6919
|
+
* whatever brand token the recipe happened to name. See
|
|
6920
|
+
* `applyOpeningForeground`.
|
|
6771
6921
|
*
|
|
6772
6922
|
* It exists because "a colour change on hover, no filled background" was not
|
|
6773
6923
|
* expressible in the vocabulary, and it is what
|
|
@@ -7769,6 +7919,28 @@ const bookingRequirementConsentFieldSchema = z.object({
|
|
|
7769
7919
|
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
7770
7920
|
//#endregion
|
|
7771
7921
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
7922
|
+
const publicEventLoaderQuerySchemaShape = {
|
|
7923
|
+
limit: z.string().optional(),
|
|
7924
|
+
from: z.string().optional(),
|
|
7925
|
+
to: z.string().optional(),
|
|
7926
|
+
afterStartsAt: z.string().optional(),
|
|
7927
|
+
afterId: z.string().optional(),
|
|
7928
|
+
categoryIds: z.string().optional(),
|
|
7929
|
+
venueId: z.string().optional(),
|
|
7930
|
+
staffMemberId: z.string().optional(),
|
|
7931
|
+
eventSurface: z.string().optional(),
|
|
7932
|
+
eventPresets: z.string().optional(),
|
|
7933
|
+
scheduleScope: z.string().optional(),
|
|
7934
|
+
seriesId: z.string().optional(),
|
|
7935
|
+
seriesIds: z.string().optional(),
|
|
7936
|
+
runSeriesId: z.string().optional(),
|
|
7937
|
+
seriesSlug: z.string().optional(),
|
|
7938
|
+
includeOccurrenceId: z.string().optional(),
|
|
7939
|
+
readIntent: z.string().optional(),
|
|
7940
|
+
detailLevel: z.string().optional(),
|
|
7941
|
+
readProfile: z.string().optional()
|
|
7942
|
+
};
|
|
7943
|
+
z.object(publicEventLoaderQuerySchemaShape);
|
|
7772
7944
|
const eventPresetSchema = z.enum([
|
|
7773
7945
|
"event",
|
|
7774
7946
|
"class",
|
|
@@ -8177,6 +8349,7 @@ const calendarWindowQuerySchema = z.object({
|
|
|
8177
8349
|
eventSurface: z.enum(eventSurfaceScopeValues).optional(),
|
|
8178
8350
|
eventPresets: z.string().optional(),
|
|
8179
8351
|
scheduleScope: z.enum(eventScheduleScopeValues).optional(),
|
|
8352
|
+
seriesIds: z.string().optional(),
|
|
8180
8353
|
categoryIds: z.string().optional(),
|
|
8181
8354
|
venueId: z.string().transform(normalizeCalendarFilterId).optional(),
|
|
8182
8355
|
staffMemberId: z.string().transform(normalizeCalendarFilterId).optional()
|
|
@@ -9611,6 +9784,14 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
|
|
|
9611
9784
|
auth: "public",
|
|
9612
9785
|
responseKind: "json"
|
|
9613
9786
|
},
|
|
9787
|
+
getPublicBookingServiceBySlug: {
|
|
9788
|
+
path: "/public/bookings/services/by-slug/{slug}",
|
|
9789
|
+
method: "GET",
|
|
9790
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
|
|
9791
|
+
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
9792
|
+
auth: "public",
|
|
9793
|
+
responseKind: "json"
|
|
9794
|
+
},
|
|
9614
9795
|
getPublicBookingResourcesReference: {
|
|
9615
9796
|
path: "/public/bookings/resources/reference",
|
|
9616
9797
|
method: "GET",
|
|
@@ -10163,16 +10344,110 @@ const PUBLIC_READ_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10163
10344
|
responseKind: "json"
|
|
10164
10345
|
}
|
|
10165
10346
|
});
|
|
10347
|
+
//#endregion
|
|
10348
|
+
//#region ../api/src/publicOnboardingAttemptEndpointDefinitions.ts
|
|
10349
|
+
/**
|
|
10350
|
+
* The anonymous onboarding attempt, addressed by its opaque resume token.
|
|
10351
|
+
*
|
|
10352
|
+
* Every route here is reached before there is an account, so none of them can
|
|
10353
|
+
* be scoped to a site or a user: the token is the whole credential. They are
|
|
10354
|
+
* kept together so that stays obvious.
|
|
10355
|
+
*/
|
|
10356
|
+
const PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10357
|
+
createPublicOnboardingAttempt: {
|
|
10358
|
+
path: "/public/onboarding/attempts",
|
|
10359
|
+
method: "POST",
|
|
10360
|
+
auth: "public",
|
|
10361
|
+
errors: [],
|
|
10362
|
+
responseKind: "json"
|
|
10363
|
+
},
|
|
10364
|
+
createPublicOnboardingLogoUploadUrl: {
|
|
10365
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
|
|
10366
|
+
method: "POST",
|
|
10367
|
+
auth: "public",
|
|
10368
|
+
errors: [],
|
|
10369
|
+
responseKind: "json"
|
|
10370
|
+
},
|
|
10371
|
+
uploadPublicOnboardingLogo: {
|
|
10372
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo",
|
|
10373
|
+
method: "POST",
|
|
10374
|
+
auth: "public",
|
|
10375
|
+
errors: [],
|
|
10376
|
+
responseKind: "json"
|
|
10377
|
+
},
|
|
10378
|
+
getPublicOnboardingAttempt: {
|
|
10379
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
10380
|
+
method: "GET",
|
|
10381
|
+
auth: "public",
|
|
10382
|
+
errors: [],
|
|
10383
|
+
responseKind: "json"
|
|
10384
|
+
},
|
|
10385
|
+
getPublicOnboardingAttemptProgress: {
|
|
10386
|
+
path: "/public/onboarding/attempts/{attemptToken}/status",
|
|
10387
|
+
method: "GET",
|
|
10388
|
+
auth: "public",
|
|
10389
|
+
errors: [],
|
|
10390
|
+
responseKind: "json"
|
|
10391
|
+
},
|
|
10392
|
+
updatePublicOnboardingAttempt: {
|
|
10393
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
10394
|
+
method: "PATCH",
|
|
10395
|
+
auth: "public",
|
|
10396
|
+
errors: [],
|
|
10397
|
+
responseKind: "json"
|
|
10398
|
+
},
|
|
10399
|
+
runPublicOnboardingAttempt: {
|
|
10400
|
+
path: "/public/onboarding/attempts/{attemptToken}/run",
|
|
10401
|
+
method: "POST",
|
|
10402
|
+
auth: "public",
|
|
10403
|
+
errors: [],
|
|
10404
|
+
responseKind: "json"
|
|
10405
|
+
},
|
|
10406
|
+
resendPublicOnboardingAttemptConfirmation: {
|
|
10407
|
+
path: "/public/onboarding/attempts/{attemptToken}/resend-confirmation",
|
|
10408
|
+
method: "POST",
|
|
10409
|
+
auth: "public",
|
|
10410
|
+
errors: [],
|
|
10411
|
+
responseKind: "json"
|
|
10412
|
+
}
|
|
10413
|
+
});
|
|
10414
|
+
//#endregion
|
|
10415
|
+
//#region ../api/src/billingEndpointDefinitions.ts
|
|
10416
|
+
const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
10417
|
+
adminChangePlan: {
|
|
10418
|
+
path: "/admin/billing/plan",
|
|
10419
|
+
method: "POST",
|
|
10420
|
+
tags: ["admin", "billing"],
|
|
10421
|
+
auth: "admin",
|
|
10422
|
+
responseKind: "json"
|
|
10423
|
+
},
|
|
10424
|
+
changePlan: {
|
|
10425
|
+
path: "/billing/plan/change",
|
|
10426
|
+
method: "POST",
|
|
10427
|
+
tags: ["billing"],
|
|
10428
|
+
auth: "user",
|
|
10429
|
+
responseKind: "json"
|
|
10430
|
+
},
|
|
10431
|
+
createBillingPortalSession: {
|
|
10432
|
+
path: "/billing/portal/session",
|
|
10433
|
+
method: "POST",
|
|
10434
|
+
tags: ["billing"],
|
|
10435
|
+
auth: "user",
|
|
10436
|
+
responseKind: "json"
|
|
10437
|
+
}
|
|
10438
|
+
});
|
|
10166
10439
|
({
|
|
10167
10440
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
10441
|
+
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
10168
10442
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
10169
10443
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
10170
|
-
...PUBLIC_READ_ENDPOINT_DEFINITIONS
|
|
10444
|
+
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
10445
|
+
...BILLING_ENDPOINT_DEFINITIONS
|
|
10171
10446
|
}), 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, {
|
|
10172
10447
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10173
10448
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
10174
10449
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
10175
|
-
}, 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 };
|
|
10450
|
+
}, 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 };
|
|
10176
10451
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
10177
10452
|
z.object({
|
|
10178
10453
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -12441,108 +12716,6 @@ function assertUniqueLayoutProfileKeys(profiles) {
|
|
|
12441
12716
|
if (duplicates.length > 0) throw new Error(`Duplicate block layout design profiles: ${duplicates.join(", ")}`);
|
|
12442
12717
|
}
|
|
12443
12718
|
//#endregion
|
|
12444
|
-
//#region ../theme-core/src/tokens/tokens.ts
|
|
12445
|
-
const defaultThemeTokens = {
|
|
12446
|
-
color: {
|
|
12447
|
-
"background/base": "#ffffff",
|
|
12448
|
-
"background/elevated": "#f5f5f5",
|
|
12449
|
-
"surface/base": "#ffffff",
|
|
12450
|
-
"surface/subtle": "#f9f9fb",
|
|
12451
|
-
"surface/inverted": "#111111",
|
|
12452
|
-
"content/primary": "#111111",
|
|
12453
|
-
"content/secondary": "#3f3f46",
|
|
12454
|
-
"accent/primary": "#2563eb",
|
|
12455
|
-
"accent/secondary": "#1d4ed8",
|
|
12456
|
-
"border/base": "#e5e7eb"
|
|
12457
|
-
},
|
|
12458
|
-
typography: {
|
|
12459
|
-
"display/hero": {
|
|
12460
|
-
fontSize: "clamp(48px, 8vw, 96px)",
|
|
12461
|
-
lineHeight: "1.05",
|
|
12462
|
-
fontWeight: "700"
|
|
12463
|
-
},
|
|
12464
|
-
"display/section": {
|
|
12465
|
-
fontSize: "clamp(40px, 6vw, 72px)",
|
|
12466
|
-
lineHeight: "1.1",
|
|
12467
|
-
fontWeight: "700"
|
|
12468
|
-
},
|
|
12469
|
-
"heading/large": {
|
|
12470
|
-
fontSize: "clamp(32px, 4vw, 48px)",
|
|
12471
|
-
lineHeight: "1.2",
|
|
12472
|
-
fontWeight: "600"
|
|
12473
|
-
},
|
|
12474
|
-
"heading/medium": {
|
|
12475
|
-
fontSize: "clamp(24px, 3vw, 32px)",
|
|
12476
|
-
lineHeight: "1.25",
|
|
12477
|
-
fontWeight: "600"
|
|
12478
|
-
},
|
|
12479
|
-
"heading/small": {
|
|
12480
|
-
fontSize: "20px",
|
|
12481
|
-
lineHeight: "1.3",
|
|
12482
|
-
fontWeight: "600"
|
|
12483
|
-
},
|
|
12484
|
-
"body/normal": {
|
|
12485
|
-
fontSize: "16px",
|
|
12486
|
-
lineHeight: "1.6",
|
|
12487
|
-
fontWeight: "400"
|
|
12488
|
-
},
|
|
12489
|
-
"body/small": {
|
|
12490
|
-
fontSize: "14px",
|
|
12491
|
-
lineHeight: "1.5",
|
|
12492
|
-
fontWeight: "400"
|
|
12493
|
-
},
|
|
12494
|
-
caption: {
|
|
12495
|
-
fontSize: "12px",
|
|
12496
|
-
lineHeight: "1.4",
|
|
12497
|
-
fontWeight: "500"
|
|
12498
|
-
}
|
|
12499
|
-
},
|
|
12500
|
-
spacing: {
|
|
12501
|
-
none: "0px",
|
|
12502
|
-
"3xs": "4px",
|
|
12503
|
-
"2xs": "8px",
|
|
12504
|
-
xs: "12px",
|
|
12505
|
-
sm: "16px",
|
|
12506
|
-
md: "24px",
|
|
12507
|
-
lg: "32px",
|
|
12508
|
-
xl: "40px",
|
|
12509
|
-
"2xl": "56px",
|
|
12510
|
-
"3xl": "72px"
|
|
12511
|
-
},
|
|
12512
|
-
radius: {
|
|
12513
|
-
none: "0px",
|
|
12514
|
-
xs: "2px",
|
|
12515
|
-
sm: "4px",
|
|
12516
|
-
md: "8px",
|
|
12517
|
-
lg: "12px",
|
|
12518
|
-
pill: "999px",
|
|
12519
|
-
full: "9999px"
|
|
12520
|
-
},
|
|
12521
|
-
shadow: {
|
|
12522
|
-
none: "none",
|
|
12523
|
-
soft: "0px 2px 8px rgba(15, 23, 42, 0.08)",
|
|
12524
|
-
medium: "0px 6px 18px rgba(15, 23, 42, 0.12)",
|
|
12525
|
-
strong: "0px 12px 36px rgba(15, 23, 42, 0.16)"
|
|
12526
|
-
},
|
|
12527
|
-
palette: {
|
|
12528
|
-
surface: "#ffffff",
|
|
12529
|
-
"neutral-50": "#f9fafb",
|
|
12530
|
-
"neutral-900": "#111827",
|
|
12531
|
-
primary: "#2563eb",
|
|
12532
|
-
"primary-50": "#eff6ff",
|
|
12533
|
-
"primary-500": "#2563eb",
|
|
12534
|
-
"primary-900": "#1d4ed8",
|
|
12535
|
-
secondary: "#9333ea",
|
|
12536
|
-
"secondary-50": "#f3e8ff",
|
|
12537
|
-
"secondary-500": "#9333ea",
|
|
12538
|
-
"secondary-900": "#4c1d95",
|
|
12539
|
-
accent: "#f97316",
|
|
12540
|
-
"accent-50": "#fff7ed",
|
|
12541
|
-
"accent-500": "#f97316",
|
|
12542
|
-
"accent-900": "#7c2d12"
|
|
12543
|
-
}
|
|
12544
|
-
};
|
|
12545
|
-
//#endregion
|
|
12546
12719
|
//#region ../theme-core/src/site-styles/backgroundAppearance.ts
|
|
12547
12720
|
const backgroundAppearanceQuickColorTokenNames = [
|
|
12548
12721
|
"background",
|
|
@@ -16844,6 +17017,7 @@ function isDisplayMediaKind(kind) {
|
|
|
16844
17017
|
}
|
|
16845
17018
|
const siteOptionSources = [
|
|
16846
17019
|
"eventCategories",
|
|
17020
|
+
"eventSeries",
|
|
16847
17021
|
"venues",
|
|
16848
17022
|
"staffMembers"
|
|
16849
17023
|
];
|
|
@@ -29540,7 +29714,8 @@ const appointmentServicesBlockDefinition = {
|
|
|
29540
29714
|
el("appointment-services", {
|
|
29541
29715
|
sectionHeading: { $bind: { from: "content.heading" } },
|
|
29542
29716
|
services: { $bind: { from: "data.services" } },
|
|
29543
|
-
pathname: { $bind: { from: "$root.pathname" } }
|
|
29717
|
+
pathname: { $bind: { from: "$root.pathname" } },
|
|
29718
|
+
servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
|
|
29544
29719
|
})
|
|
29545
29720
|
], { gap: "lg" })
|
|
29546
29721
|
})]
|
|
@@ -30196,6 +30371,44 @@ function toWholeSeriesRegistrationEvents(events) {
|
|
|
30196
30371
|
return groupPublicEventsByRun(events).map(toWholeSeriesRegistrationEvent).filter((event) => event !== null);
|
|
30197
30372
|
}
|
|
30198
30373
|
//#endregion
|
|
30374
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.ts
|
|
30375
|
+
const { limit: _rawLimit, eventSurface: _rawEventSurface, scheduleScope: _rawScheduleScope, detailLevel: _rawDetailLevel, ...stringEventQueryShape } = publicEventLoaderQuerySchemaShape;
|
|
30376
|
+
const eventRecoveryRequestSchema = z.object({
|
|
30377
|
+
...stringEventQueryShape,
|
|
30378
|
+
limit: z.coerce.number().int().positive().optional(),
|
|
30379
|
+
eventSurface: z.enum(eventSurfaceScopeValues).optional(),
|
|
30380
|
+
scheduleScope: z.enum(eventScheduleScopeValues).optional(),
|
|
30381
|
+
detailLevel: z.enum(["full", "listing"]).optional(),
|
|
30382
|
+
stage: z.enum(["preview", "published"]).optional()
|
|
30383
|
+
});
|
|
30384
|
+
function resolveEventRegistrationEventSource(input) {
|
|
30385
|
+
if (input.wholeSeriesRunEvents != null) return {
|
|
30386
|
+
kind: "loaded",
|
|
30387
|
+
events: input.wholeSeriesRunEvents
|
|
30388
|
+
};
|
|
30389
|
+
if (input.events != null) return {
|
|
30390
|
+
kind: "loaded",
|
|
30391
|
+
events: input.events
|
|
30392
|
+
};
|
|
30393
|
+
return {
|
|
30394
|
+
kind: "unresolved",
|
|
30395
|
+
request: parseEventLoaderRecoveryRequest(input.failures?.wholeSeriesRunEvents ?? input.failures?.events)
|
|
30396
|
+
};
|
|
30397
|
+
}
|
|
30398
|
+
const eventLoaderFailureSchema = z.object({
|
|
30399
|
+
endpoint: z.literal("listPublicEvents"),
|
|
30400
|
+
params: eventRecoveryRequestSchema.extend({ siteId: z.string().optional() })
|
|
30401
|
+
});
|
|
30402
|
+
function parseEventLoaderRecoveryRequest(value) {
|
|
30403
|
+
const parsed = eventLoaderFailureSchema.safeParse(value);
|
|
30404
|
+
if (!parsed.success) return null;
|
|
30405
|
+
const { siteId: _siteId, stage, ...params } = parsed.data.params;
|
|
30406
|
+
return {
|
|
30407
|
+
...params,
|
|
30408
|
+
stage: stage ?? "published"
|
|
30409
|
+
};
|
|
30410
|
+
}
|
|
30411
|
+
//#endregion
|
|
30199
30412
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
30200
30413
|
const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = [
|
|
30201
30414
|
"Date",
|
|
@@ -30213,8 +30426,6 @@ const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrati
|
|
|
30213
30426
|
const eventRegistrationHydrationSchemaShape = {
|
|
30214
30427
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
30215
30428
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
30216
|
-
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
30217
|
-
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
30218
30429
|
maxTickets: z.string().optional(),
|
|
30219
30430
|
showVenue: z.boolean().optional(),
|
|
30220
30431
|
showCapacity: z.boolean().optional(),
|
|
@@ -30226,12 +30437,22 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
30226
30437
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
30227
30438
|
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
30228
30439
|
};
|
|
30440
|
+
const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
|
|
30441
|
+
kind: z.literal("loaded"),
|
|
30442
|
+
events: z.array(eventRegistrationPublicEventSchema)
|
|
30443
|
+
}), z.object({
|
|
30444
|
+
kind: z.literal("unresolved"),
|
|
30445
|
+
request: eventRecoveryRequestSchema.nullable()
|
|
30446
|
+
})]);
|
|
30229
30447
|
const eventRegistrationSourceSchema = z.object({
|
|
30230
30448
|
siteId: z.string().optional(),
|
|
30231
30449
|
apiBaseUrl: z.string().optional(),
|
|
30232
30450
|
portalToken: z.string().nullable().optional(),
|
|
30233
30451
|
previewToken: z.string().nullable().optional(),
|
|
30234
30452
|
...eventRegistrationHydrationSchemaShape,
|
|
30453
|
+
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
30454
|
+
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
30455
|
+
eventLoaderFailures: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
30235
30456
|
className: z.string().nullable().optional(),
|
|
30236
30457
|
buttonText: z.string().nullable().optional(),
|
|
30237
30458
|
maxTickets: z.string().nullable().optional(),
|
|
@@ -30252,7 +30473,10 @@ const eventRegistrationDisplaySchema = z.discriminatedUnion("state", [z.object({
|
|
|
30252
30473
|
titleText: z.string(),
|
|
30253
30474
|
bodyText: z.string()
|
|
30254
30475
|
})]);
|
|
30255
|
-
const eventRegistrationHydrationSchema = z.object(
|
|
30476
|
+
const eventRegistrationHydrationSchema = z.object({
|
|
30477
|
+
...eventRegistrationHydrationSchemaShape,
|
|
30478
|
+
eventSource: eventRegistrationEventSourceSchema
|
|
30479
|
+
});
|
|
30256
30480
|
const eventRegistrationRenderSchema = z.object({
|
|
30257
30481
|
display: eventRegistrationDisplaySchema,
|
|
30258
30482
|
hydration: eventRegistrationHydrationSchema
|
|
@@ -30311,16 +30535,12 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
|
30311
30535
|
function toScopedEventRegistrationEvents(scopedSourceEvents) {
|
|
30312
30536
|
return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
|
|
30313
30537
|
}
|
|
30314
|
-
function scopeEventRegistrationSourceEvents(source) {
|
|
30315
|
-
return resolveEventRegistrationScopedEvents(
|
|
30538
|
+
function scopeEventRegistrationSourceEvents(source, eventSource) {
|
|
30539
|
+
return resolveEventRegistrationScopedEvents(eventSource.kind === "loaded" ? eventSource.events : [], {
|
|
30316
30540
|
occurrenceContext: source.occurrenceContext,
|
|
30317
30541
|
subject: source.subject
|
|
30318
30542
|
});
|
|
30319
30543
|
}
|
|
30320
|
-
function resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents) {
|
|
30321
|
-
if (source.events == null && source.wholeSeriesRunEvents == null) return null;
|
|
30322
|
-
return [...scopedSourceEvents];
|
|
30323
|
-
}
|
|
30324
30544
|
/**
|
|
30325
30545
|
* The one run this surface is registering for, when the scoped events describe
|
|
30326
30546
|
* exactly one. More than one run means the visitor still has to choose.
|
|
@@ -30360,14 +30580,21 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
30360
30580
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
30361
30581
|
},
|
|
30362
30582
|
buildRender: (source) => {
|
|
30363
|
-
const
|
|
30364
|
-
|
|
30583
|
+
const eventSource = resolveEventRegistrationEventSource({
|
|
30584
|
+
events: source.events,
|
|
30585
|
+
wholeSeriesRunEvents: source.wholeSeriesRunEvents,
|
|
30586
|
+
failures: source.eventLoaderFailures
|
|
30587
|
+
});
|
|
30588
|
+
const scopedSourceEvents = scopeEventRegistrationSourceEvents(source, eventSource);
|
|
30365
30589
|
return {
|
|
30366
30590
|
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
|
|
30367
30591
|
hydration: {
|
|
30368
30592
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
30369
30593
|
subject: source.subject ?? null,
|
|
30370
|
-
|
|
30594
|
+
eventSource: eventSource.kind === "loaded" ? {
|
|
30595
|
+
...eventSource,
|
|
30596
|
+
events: [...scopedSourceEvents]
|
|
30597
|
+
} : eventSource,
|
|
30371
30598
|
maxTickets: source.maxTickets ?? void 0,
|
|
30372
30599
|
showVenue: source.showVenue,
|
|
30373
30600
|
showCapacity: source.showCapacity,
|
|
@@ -30543,6 +30770,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
30543
30770
|
} },
|
|
30544
30771
|
events: { $bind: { from: "data.events" } },
|
|
30545
30772
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
30773
|
+
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
30546
30774
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
30547
30775
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
30548
30776
|
stage: { $bind: {
|
|
@@ -31028,6 +31256,35 @@ const eventSpotlightBlockDefinition = {
|
|
|
31028
31256
|
} }
|
|
31029
31257
|
};
|
|
31030
31258
|
//#endregion
|
|
31259
|
+
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
31260
|
+
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
31261
|
+
function resolveEventSelection(mode, value) {
|
|
31262
|
+
if (mode !== "selected") return { kind: "matching" };
|
|
31263
|
+
const candidates = Array.isArray(value) ? value : typeof value === "string" ? value.split(",").filter(Boolean) : [];
|
|
31264
|
+
const ids = [];
|
|
31265
|
+
for (const candidate of candidates) {
|
|
31266
|
+
if (typeof candidate !== "string") return {
|
|
31267
|
+
kind: "selected",
|
|
31268
|
+
seriesIds: []
|
|
31269
|
+
};
|
|
31270
|
+
const parsed = parseEventSeriesId(candidate.trim());
|
|
31271
|
+
if (!parsed.ok) return {
|
|
31272
|
+
kind: "selected",
|
|
31273
|
+
seriesIds: []
|
|
31274
|
+
};
|
|
31275
|
+
ids.push(parsed.value);
|
|
31276
|
+
}
|
|
31277
|
+
return {
|
|
31278
|
+
kind: "selected",
|
|
31279
|
+
seriesIds: [...new Set(ids)].sort()
|
|
31280
|
+
};
|
|
31281
|
+
}
|
|
31282
|
+
/** Undefined means discovery; an empty string is an explicitly empty selection. */
|
|
31283
|
+
function eventSeriesScopeCsv(value) {
|
|
31284
|
+
if (value == null) return void 0;
|
|
31285
|
+
return typeof value === "string" ? value : value.join(",");
|
|
31286
|
+
}
|
|
31287
|
+
//#endregion
|
|
31031
31288
|
//#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
|
|
31032
31289
|
/**
|
|
31033
31290
|
* Layout classes for event listing containers and cards. Presentation
|
|
@@ -31127,6 +31384,7 @@ const eventCollectionFilterSourceSchemaShape = {
|
|
|
31127
31384
|
eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
|
|
31128
31385
|
filterEventPresets: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
31129
31386
|
scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
|
|
31387
|
+
seriesIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
31130
31388
|
filterCategoryIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
|
|
31131
31389
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
31132
31390
|
filterVenueId: z.string().nullable().optional()
|
|
@@ -31173,6 +31431,7 @@ const eventCollectionDisplaySchemaShape = {
|
|
|
31173
31431
|
eventSurface: eventSurfaceScopeSchema$1,
|
|
31174
31432
|
filterEventPresets: z.string().nullable(),
|
|
31175
31433
|
scheduleScope: eventScheduleScopeSchema$1,
|
|
31434
|
+
seriesIds: z.string().nullable().optional(),
|
|
31176
31435
|
filterCategoryIds: z.string().nullable(),
|
|
31177
31436
|
filterStaffMemberId: z.string().nullable(),
|
|
31178
31437
|
filterVenueId: z.string().nullable(),
|
|
@@ -31220,11 +31479,15 @@ function buildEventCollectionDisplay(source) {
|
|
|
31220
31479
|
};
|
|
31221
31480
|
}
|
|
31222
31481
|
function buildEventCollectionFilterDisplay(source) {
|
|
31223
|
-
|
|
31224
|
-
|
|
31225
|
-
|
|
31226
|
-
|
|
31227
|
-
|
|
31482
|
+
const selected = source.seriesIds != null;
|
|
31483
|
+
const matchingFilters = selected ? {
|
|
31484
|
+
eventSurface: "all",
|
|
31485
|
+
filterEventPresets: null,
|
|
31486
|
+
scheduleScope: "any",
|
|
31487
|
+
filterCategoryIds: null,
|
|
31488
|
+
filterStaffMemberId: null,
|
|
31489
|
+
filterVenueId: null
|
|
31490
|
+
} : {
|
|
31228
31491
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
31229
31492
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
31230
31493
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
@@ -31232,6 +31495,14 @@ function buildEventCollectionFilterDisplay(source) {
|
|
|
31232
31495
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
31233
31496
|
filterVenueId: normalizeEventVenueId(source.filterVenueId)
|
|
31234
31497
|
};
|
|
31498
|
+
return {
|
|
31499
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
31500
|
+
showFilters: selected ? false : source.showFilters ?? true,
|
|
31501
|
+
showCategoryFilter: source.showCategoryFilter ?? "auto",
|
|
31502
|
+
showVenueFilter: source.showVenueFilter ?? false,
|
|
31503
|
+
showStaffFilter: source.showStaffFilter ?? true,
|
|
31504
|
+
...matchingFilters
|
|
31505
|
+
};
|
|
31235
31506
|
}
|
|
31236
31507
|
function buildEventCollectionPresentationDisplay(source) {
|
|
31237
31508
|
return {
|
|
@@ -31246,14 +31517,15 @@ function buildEventCollectionPresentationDisplay(source) {
|
|
|
31246
31517
|
}
|
|
31247
31518
|
function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
|
|
31248
31519
|
const timeZone = source.calendarWindow?.scope.timeZone ?? toBookingTimeZone(source.bookingTimeZone);
|
|
31520
|
+
const selected = source.seriesIds != null;
|
|
31249
31521
|
return {
|
|
31250
31522
|
calendarWindow: source.calendarWindow ?? void 0,
|
|
31251
31523
|
siteId: source.siteId,
|
|
31252
31524
|
stage: source.stage,
|
|
31253
31525
|
prefetchedEvents: source.events != null,
|
|
31254
|
-
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
31255
|
-
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
31256
|
-
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
31526
|
+
eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
|
|
31527
|
+
filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
31528
|
+
scheduleScope: selected ? "any" : normalizeEventScheduleScope(source.scheduleScope),
|
|
31257
31529
|
calendarContext: {
|
|
31258
31530
|
timeZone,
|
|
31259
31531
|
initialToday: source.calendarWindow?.initialToday ?? getLocalScheduleDate(now, timeZone)
|
|
@@ -31319,6 +31591,7 @@ const eventListingHydrationSchema = z.object({
|
|
|
31319
31591
|
eventSurface: eventSurfaceScopeSchema,
|
|
31320
31592
|
filterEventPresets: z.string().nullable(),
|
|
31321
31593
|
scheduleScope: eventScheduleScopeSchema,
|
|
31594
|
+
seriesIds: z.string().nullable().optional(),
|
|
31322
31595
|
filterCategoryIds: z.string().nullable().optional(),
|
|
31323
31596
|
filterStaffMemberId: z.string().nullable().optional(),
|
|
31324
31597
|
filterVenueId: z.string().nullable().optional(),
|
|
@@ -31379,6 +31652,7 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
31379
31652
|
eventSurface: normalizeEventSurfaceScope(source.eventSurface),
|
|
31380
31653
|
filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
|
|
31381
31654
|
scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
|
|
31655
|
+
seriesIds: eventSeriesScopeCsv(source.seriesIds),
|
|
31382
31656
|
filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
|
|
31383
31657
|
filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
|
|
31384
31658
|
filterVenueId: normalizeEventVenueId(source.filterVenueId),
|
|
@@ -31752,6 +32026,65 @@ const eventListingBlockDefinition = {
|
|
|
31752
32026
|
} }
|
|
31753
32027
|
};
|
|
31754
32028
|
//#endregion
|
|
32029
|
+
//#region ../blocks/src/system/blocks/events/eventSelectionFields.ts
|
|
32030
|
+
const eventSelectionFields = [{
|
|
32031
|
+
id: "eventSelection",
|
|
32032
|
+
type: "select",
|
|
32033
|
+
label: "Events to show",
|
|
32034
|
+
required: false,
|
|
32035
|
+
multiple: false,
|
|
32036
|
+
defaultValue: "matching",
|
|
32037
|
+
options: [{
|
|
32038
|
+
value: "matching",
|
|
32039
|
+
label: "All matching events"
|
|
32040
|
+
}, {
|
|
32041
|
+
value: "selected",
|
|
32042
|
+
label: "Selected events"
|
|
32043
|
+
}],
|
|
32044
|
+
ui: { intent: "behavior" }
|
|
32045
|
+
}, createSiteOptionSelectField({
|
|
32046
|
+
id: "selectedEventSeriesIds",
|
|
32047
|
+
label: "Selected events",
|
|
32048
|
+
description: "Show upcoming dates for these events. Other event filters do not apply.",
|
|
32049
|
+
required: false,
|
|
32050
|
+
multiple: true,
|
|
32051
|
+
defaultValue: [],
|
|
32052
|
+
optionSource: "eventSeries",
|
|
32053
|
+
ui: {
|
|
32054
|
+
intent: "behavior",
|
|
32055
|
+
searchThreshold: 1,
|
|
32056
|
+
visibleWhen: {
|
|
32057
|
+
field: "eventSelection",
|
|
32058
|
+
equals: "selected"
|
|
32059
|
+
}
|
|
32060
|
+
}
|
|
32061
|
+
})];
|
|
32062
|
+
function withEventSelectionVisibility(field) {
|
|
32063
|
+
if (![
|
|
32064
|
+
"eventSurface",
|
|
32065
|
+
"filterEventPresets",
|
|
32066
|
+
"scheduleScope",
|
|
32067
|
+
"filterCategoryIds",
|
|
32068
|
+
"filterStaffMemberId",
|
|
32069
|
+
"filterVenueId",
|
|
32070
|
+
"showFilters",
|
|
32071
|
+
"showCategoryFilter",
|
|
32072
|
+
"showVenueFilter",
|
|
32073
|
+
"showStaffFilter"
|
|
32074
|
+
].includes(field.id)) return field;
|
|
32075
|
+
const visibleWhen = field.ui?.visibleWhen;
|
|
32076
|
+
return {
|
|
32077
|
+
...field,
|
|
32078
|
+
ui: {
|
|
32079
|
+
...field.ui,
|
|
32080
|
+
visibleWhen: { allOf: [{
|
|
32081
|
+
field: "eventSelection",
|
|
32082
|
+
notEquals: "selected"
|
|
32083
|
+
}, ...visibleWhen ? [visibleWhen] : []] }
|
|
32084
|
+
}
|
|
32085
|
+
};
|
|
32086
|
+
}
|
|
32087
|
+
//#endregion
|
|
31755
32088
|
//#region ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
31756
32089
|
const eventCalendarSourceSchema = z.object({
|
|
31757
32090
|
...eventCollectionSourceSchemaShape,
|
|
@@ -31834,19 +32167,59 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
31834
32167
|
//#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
|
|
31835
32168
|
const scopeParams = {
|
|
31836
32169
|
siteId: { $bind: { from: "$root.siteId" } },
|
|
32170
|
+
seriesIds: { $bind: {
|
|
32171
|
+
from: "content",
|
|
32172
|
+
transforms: [{
|
|
32173
|
+
id: "events.calendarSelectionParam",
|
|
32174
|
+
options: { key: "seriesIds" }
|
|
32175
|
+
}]
|
|
32176
|
+
} },
|
|
31837
32177
|
stage: { $bind: {
|
|
31838
32178
|
from: "$root.previewStage",
|
|
31839
32179
|
fallback: "published"
|
|
31840
32180
|
} },
|
|
31841
|
-
eventSurface: { $bind: {
|
|
32181
|
+
eventSurface: { $bind: {
|
|
32182
|
+
from: "content",
|
|
32183
|
+
transforms: [{
|
|
32184
|
+
id: "events.calendarSelectionParam",
|
|
32185
|
+
options: { key: "eventSurface" }
|
|
32186
|
+
}, { id: "value.csv" }]
|
|
32187
|
+
} },
|
|
31842
32188
|
eventPresets: { $bind: {
|
|
31843
|
-
from: "content
|
|
31844
|
-
transforms: [{
|
|
32189
|
+
from: "content",
|
|
32190
|
+
transforms: [{
|
|
32191
|
+
id: "events.calendarSelectionParam",
|
|
32192
|
+
options: { key: "filterEventPresets" }
|
|
32193
|
+
}, { id: "value.csv" }]
|
|
31845
32194
|
} },
|
|
31846
|
-
scheduleScope: { $bind: {
|
|
31847
|
-
|
|
31848
|
-
|
|
31849
|
-
|
|
32195
|
+
scheduleScope: { $bind: {
|
|
32196
|
+
from: "content",
|
|
32197
|
+
transforms: [{
|
|
32198
|
+
id: "events.calendarSelectionParam",
|
|
32199
|
+
options: { key: "scheduleScope" }
|
|
32200
|
+
}, { id: "value.csv" }]
|
|
32201
|
+
} },
|
|
32202
|
+
categoryIds: { $bind: {
|
|
32203
|
+
from: "content",
|
|
32204
|
+
transforms: [{
|
|
32205
|
+
id: "events.calendarSelectionParam",
|
|
32206
|
+
options: { key: "filterCategoryIds" }
|
|
32207
|
+
}, { id: "value.csv" }]
|
|
32208
|
+
} },
|
|
32209
|
+
staffMemberId: { $bind: {
|
|
32210
|
+
from: "content",
|
|
32211
|
+
transforms: [{
|
|
32212
|
+
id: "events.calendarSelectionParam",
|
|
32213
|
+
options: { key: "filterStaffMemberId" }
|
|
32214
|
+
}, { id: "value.csv" }]
|
|
32215
|
+
} },
|
|
32216
|
+
venueId: { $bind: {
|
|
32217
|
+
from: "content",
|
|
32218
|
+
transforms: [{
|
|
32219
|
+
id: "events.calendarSelectionParam",
|
|
32220
|
+
options: { key: "filterVenueId" }
|
|
32221
|
+
}, { id: "value.csv" }]
|
|
32222
|
+
} }
|
|
31850
32223
|
};
|
|
31851
32224
|
/** Combined renders two jobs; calendar-only variants never pay for the list seed. */
|
|
31852
32225
|
const eventCalendarDataLoaders = {
|
|
@@ -31976,6 +32349,13 @@ const eventCalendarLayout = [styledSection({
|
|
|
31976
32349
|
from: "content.defaultCalendarView",
|
|
31977
32350
|
fallback: "month"
|
|
31978
32351
|
} },
|
|
32352
|
+
seriesIds: { $bind: {
|
|
32353
|
+
from: "content",
|
|
32354
|
+
transforms: [{
|
|
32355
|
+
id: "events.calendarSelectionParam",
|
|
32356
|
+
options: { key: "seriesIds" }
|
|
32357
|
+
}]
|
|
32358
|
+
} },
|
|
31979
32359
|
showFilters: { $bind: {
|
|
31980
32360
|
from: "content.showFilters",
|
|
31981
32361
|
fallback: true
|
|
@@ -31997,17 +32377,47 @@ const eventCalendarLayout = [styledSection({
|
|
|
31997
32377
|
fallback: true
|
|
31998
32378
|
} },
|
|
31999
32379
|
eventSurface: { $bind: {
|
|
32000
|
-
from: "content
|
|
32001
|
-
|
|
32380
|
+
from: "content",
|
|
32381
|
+
transforms: [{
|
|
32382
|
+
id: "events.calendarSelectionParam",
|
|
32383
|
+
options: { key: "eventSurface" }
|
|
32384
|
+
}]
|
|
32385
|
+
} },
|
|
32386
|
+
filterEventPresets: { $bind: {
|
|
32387
|
+
from: "content",
|
|
32388
|
+
transforms: [{
|
|
32389
|
+
id: "events.calendarSelectionParam",
|
|
32390
|
+
options: { key: "filterEventPresets" }
|
|
32391
|
+
}]
|
|
32002
32392
|
} },
|
|
32003
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
32004
32393
|
scheduleScope: { $bind: {
|
|
32005
|
-
from: "content
|
|
32006
|
-
|
|
32394
|
+
from: "content",
|
|
32395
|
+
transforms: [{
|
|
32396
|
+
id: "events.calendarSelectionParam",
|
|
32397
|
+
options: { key: "scheduleScope" }
|
|
32398
|
+
}]
|
|
32399
|
+
} },
|
|
32400
|
+
filterCategoryIds: { $bind: {
|
|
32401
|
+
from: "content",
|
|
32402
|
+
transforms: [{
|
|
32403
|
+
id: "events.calendarSelectionParam",
|
|
32404
|
+
options: { key: "filterCategoryIds" }
|
|
32405
|
+
}]
|
|
32406
|
+
} },
|
|
32407
|
+
filterStaffMemberId: { $bind: {
|
|
32408
|
+
from: "content",
|
|
32409
|
+
transforms: [{
|
|
32410
|
+
id: "events.calendarSelectionParam",
|
|
32411
|
+
options: { key: "filterStaffMemberId" }
|
|
32412
|
+
}]
|
|
32413
|
+
} },
|
|
32414
|
+
filterVenueId: { $bind: {
|
|
32415
|
+
from: "content",
|
|
32416
|
+
transforms: [{
|
|
32417
|
+
id: "events.calendarSelectionParam",
|
|
32418
|
+
options: { key: "filterVenueId" }
|
|
32419
|
+
}]
|
|
32007
32420
|
} },
|
|
32008
|
-
filterCategoryIds: { $bind: { from: "content.filterCategoryIds" } },
|
|
32009
|
-
filterStaffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
|
|
32010
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
32011
32421
|
cardRole: { $bind: {
|
|
32012
32422
|
from: "content._cardStyles.role",
|
|
32013
32423
|
fallback: "default"
|
|
@@ -32511,6 +32921,7 @@ const eventCalendarAdditionalFields = [
|
|
|
32511
32921
|
}
|
|
32512
32922
|
}
|
|
32513
32923
|
},
|
|
32924
|
+
...eventSelectionFields,
|
|
32514
32925
|
{
|
|
32515
32926
|
id: "eventSurface",
|
|
32516
32927
|
type: "select",
|
|
@@ -32720,7 +33131,7 @@ const eventCalendarBlockDefinition = {
|
|
|
32720
33131
|
titleSource: "heading",
|
|
32721
33132
|
description: "Display events with calendar, list, or combined views with filtering",
|
|
32722
33133
|
skipSectionStyles: true,
|
|
32723
|
-
additionalFields: eventCalendarAdditionalFields,
|
|
33134
|
+
additionalFields: eventCalendarAdditionalFields.map(withEventSelectionVisibility),
|
|
32724
33135
|
styleTokens: {
|
|
32725
33136
|
background: "surface",
|
|
32726
33137
|
typography: "body",
|
|
@@ -37098,6 +37509,15 @@ const newsletterFieldSchema = z.object({
|
|
|
37098
37509
|
placeholder: z.string().optional()
|
|
37099
37510
|
});
|
|
37100
37511
|
const mailingListSignupBlockIdSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignupBlockId);
|
|
37512
|
+
const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
|
|
37513
|
+
const parsed = parseMailingListContentVersionId(value);
|
|
37514
|
+
if (parsed) return parsed;
|
|
37515
|
+
ctx.addIssue({
|
|
37516
|
+
code: z.ZodIssueCode.custom,
|
|
37517
|
+
message: "Invalid mailing-list content version ID"
|
|
37518
|
+
});
|
|
37519
|
+
return z.NEVER;
|
|
37520
|
+
});
|
|
37101
37521
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
37102
37522
|
const newsletterSourceCommonSchema = z.object({
|
|
37103
37523
|
siteId: z.string().optional(),
|
|
@@ -37111,7 +37531,8 @@ const newsletterSourceCommonSchema = z.object({
|
|
|
37111
37531
|
const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
37112
37532
|
newsletterSourceCommonSchema.extend({
|
|
37113
37533
|
source: z.literal("block"),
|
|
37114
|
-
blockId: z.string().nullable().optional()
|
|
37534
|
+
blockId: z.string().nullable().optional(),
|
|
37535
|
+
contentVersionId: z.string().nullable().optional()
|
|
37115
37536
|
}),
|
|
37116
37537
|
newsletterSourceCommonSchema.extend({
|
|
37117
37538
|
source: z.literal("signed-footer"),
|
|
@@ -37127,6 +37548,7 @@ const newsletterDisplaySchema = z.object({
|
|
|
37127
37548
|
availability: z.enum(["ready", "unavailable"]),
|
|
37128
37549
|
className: z.string().nullable(),
|
|
37129
37550
|
buttonLabel: z.string(),
|
|
37551
|
+
successMessage: z.string(),
|
|
37130
37552
|
buttonVariant: newsletterButtonVariantSchema,
|
|
37131
37553
|
privacyNote: z.string().nullable(),
|
|
37132
37554
|
fields: z.array(newsletterFieldSchema),
|
|
@@ -37141,7 +37563,8 @@ const newsletterHydrationSchema = z.object({
|
|
|
37141
37563
|
tag: z.literal("block-source"),
|
|
37142
37564
|
sourceRef: z.object({
|
|
37143
37565
|
tag: z.literal("block_ref"),
|
|
37144
|
-
blockId: mailingListSignupBlockIdSchema
|
|
37566
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
37567
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
37145
37568
|
}).nullable()
|
|
37146
37569
|
}),
|
|
37147
37570
|
z.object({
|
|
@@ -37180,6 +37603,7 @@ function buildNewsletterDisplay(source) {
|
|
|
37180
37603
|
fields: { preset: "emailOnly" },
|
|
37181
37604
|
includeOptionalPhone: false,
|
|
37182
37605
|
buttonLabel: "Subscribe",
|
|
37606
|
+
successMessage: DEFAULT_MAILING_LIST_SUCCESS_MESSAGE,
|
|
37183
37607
|
privacyNote: null
|
|
37184
37608
|
};
|
|
37185
37609
|
const targeting = source.targeting ?? { mode: "default" };
|
|
@@ -37189,6 +37613,7 @@ function buildNewsletterDisplay(source) {
|
|
|
37189
37613
|
availability: runtimeTargetingIsAvailable(context, targeting, choices) ? "ready" : "unavailable",
|
|
37190
37614
|
className: source.className ?? null,
|
|
37191
37615
|
buttonLabel: form.buttonLabel,
|
|
37616
|
+
successMessage: form.successMessage,
|
|
37192
37617
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
37193
37618
|
privacyNote: form.privacyNote,
|
|
37194
37619
|
fields: getGlobalFormFields(form),
|
|
@@ -37219,7 +37644,7 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
37219
37644
|
function projectNewsletterFormHydrationTarget(source) {
|
|
37220
37645
|
switch (source.source) {
|
|
37221
37646
|
case "block": {
|
|
37222
|
-
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId);
|
|
37647
|
+
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
|
|
37223
37648
|
if (sourceRef?.tag === "block_ref") return {
|
|
37224
37649
|
tag: "block-source",
|
|
37225
37650
|
sourceRef
|
|
@@ -39365,6 +39790,26 @@ const linksTransforms = [{
|
|
|
39365
39790
|
}
|
|
39366
39791
|
}];
|
|
39367
39792
|
const defaultTransforms = createTransformRegistry([
|
|
39793
|
+
{
|
|
39794
|
+
id: "events.calendarSelectionParam",
|
|
39795
|
+
kind: "formatter",
|
|
39796
|
+
summary: "Resolve selected events instead of discovery filters",
|
|
39797
|
+
schema: z.object({ key: z.enum([
|
|
39798
|
+
"seriesIds",
|
|
39799
|
+
"eventSurface",
|
|
39800
|
+
"filterEventPresets",
|
|
39801
|
+
"scheduleScope",
|
|
39802
|
+
"filterCategoryIds",
|
|
39803
|
+
"filterStaffMemberId",
|
|
39804
|
+
"filterVenueId"
|
|
39805
|
+
]) }),
|
|
39806
|
+
run(value, { key }) {
|
|
39807
|
+
const content = asPartialObject(value) ?? {};
|
|
39808
|
+
const selection = resolveEventSelection(content.eventSelection, content.selectedEventSeriesIds);
|
|
39809
|
+
if (selection.kind === "selected") return key === "seriesIds" ? selection.seriesIds : void 0;
|
|
39810
|
+
return key === "seriesIds" ? void 0 : content[key];
|
|
39811
|
+
}
|
|
39812
|
+
},
|
|
39368
39813
|
{
|
|
39369
39814
|
id: "events.calendarReadEnabled",
|
|
39370
39815
|
kind: "formatter",
|
|
@@ -39679,12 +40124,12 @@ function normalizeContent(block) {
|
|
|
39679
40124
|
}
|
|
39680
40125
|
/**
|
|
39681
40126
|
* Normalize params for API calls.
|
|
39682
|
-
* Converts
|
|
40127
|
+
* Converts supplied values to strings, preserving absent versus explicitly empty params.
|
|
39683
40128
|
*/
|
|
39684
40129
|
function normalizeParams(input) {
|
|
39685
40130
|
if (!input || typeof input !== "object") return {};
|
|
39686
40131
|
const output = {};
|
|
39687
|
-
for (const [key, value] of Object.entries(input)) output[key] = coerceToString(value);
|
|
40132
|
+
for (const [key, value] of Object.entries(input)) if (value !== void 0 && value !== null) output[key] = coerceToString(value);
|
|
39688
40133
|
return output;
|
|
39689
40134
|
}
|
|
39690
40135
|
function isNonArrayObject(value) {
|
|
@@ -39748,6 +40193,14 @@ function coercePayload(payload) {
|
|
|
39748
40193
|
* - Frontend: provide internal API client
|
|
39749
40194
|
* - SDK: provide SDK client with endpoint mapping
|
|
39750
40195
|
*/
|
|
40196
|
+
function projectDataLoaders(loaders, shouldLoad, blockId, blockKind) {
|
|
40197
|
+
if (!shouldLoad) return [...loaders];
|
|
40198
|
+
return loaders.filter(({ key }) => shouldLoad({
|
|
40199
|
+
blockId,
|
|
40200
|
+
blockKind,
|
|
40201
|
+
loaderKey: key
|
|
40202
|
+
}));
|
|
40203
|
+
}
|
|
39751
40204
|
function shouldSkipResolvedLoader(input) {
|
|
39752
40205
|
if (input.loader.requiredParams?.some((param) => !input.params[param]?.trim())) return true;
|
|
39753
40206
|
return Boolean(input.isValidEndpoint && !input.isValidEndpoint(input.endpoint));
|
|
@@ -39773,8 +40226,12 @@ function shouldSkipResolvedLoader(input) {
|
|
|
39773
40226
|
* ```
|
|
39774
40227
|
*/
|
|
39775
40228
|
async function prefetchBlockData$1(page, context, options) {
|
|
39776
|
-
|
|
40229
|
+
return (await prefetchBlockDataWithFailures(page, context, options)).resolvedData;
|
|
40230
|
+
}
|
|
40231
|
+
async function prefetchBlockDataWithFailures(page, context, options) {
|
|
40232
|
+
const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders, getBlockDefinition: getBlockDefinition$1 = getBlockDefinition, resolveParamsBindings: resolveParamsBindings$1 = resolveParamsBindings, shouldLoad } = options;
|
|
39777
40233
|
const results = {};
|
|
40234
|
+
const loaderFailures = {};
|
|
39778
40235
|
const tasks = [];
|
|
39779
40236
|
for (const block of page.blocks) {
|
|
39780
40237
|
const blockId = block.id;
|
|
@@ -39789,6 +40246,7 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
39789
40246
|
loader
|
|
39790
40247
|
})) : [];
|
|
39791
40248
|
} else loaders = [];
|
|
40249
|
+
loaders = projectDataLoaders(loaders, shouldLoad, blockId, block.kind);
|
|
39792
40250
|
if (loaders.length === 0) continue;
|
|
39793
40251
|
const root = {
|
|
39794
40252
|
...context.root ?? {},
|
|
@@ -39822,6 +40280,11 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
39822
40280
|
const blockResults = results[blockId] ?? (results[blockId] = {});
|
|
39823
40281
|
blockResults[key] = data;
|
|
39824
40282
|
} catch (error) {
|
|
40283
|
+
const blockFailures = loaderFailures[blockId] ?? (loaderFailures[blockId] = {});
|
|
40284
|
+
blockFailures[key] = {
|
|
40285
|
+
endpoint,
|
|
40286
|
+
params
|
|
40287
|
+
};
|
|
39825
40288
|
if (onError) onError(error, {
|
|
39826
40289
|
block: block.kind,
|
|
39827
40290
|
loader: key
|
|
@@ -39831,7 +40294,10 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
39831
40294
|
}
|
|
39832
40295
|
}
|
|
39833
40296
|
if (tasks.length > 0) await Promise.all(tasks);
|
|
39834
|
-
return
|
|
40297
|
+
return {
|
|
40298
|
+
resolvedData: results,
|
|
40299
|
+
loaderFailures
|
|
40300
|
+
};
|
|
39835
40301
|
}
|
|
39836
40302
|
//#endregion
|
|
39837
40303
|
//#region ../blocks/src/system/data/loaderEndpoints.ts
|
|
@@ -39859,8 +40325,8 @@ function toStringParams(value) {
|
|
|
39859
40325
|
for (const [k, v] of Object.entries(value)) if (typeof v === "string") out[k] = v;
|
|
39860
40326
|
return out;
|
|
39861
40327
|
}
|
|
39862
|
-
function stripEmptyStringValues(params) {
|
|
39863
|
-
for (const [key, value] of Object.entries(params)) if (value === "") delete params[key];
|
|
40328
|
+
function stripEmptyStringValues(params, endpoint) {
|
|
40329
|
+
for (const [key, value] of Object.entries(params)) if (value === "" && !(key === "seriesIds" && (endpoint === "listPublicEvents" || endpoint === "listPublicEventCalendarWindow"))) delete params[key];
|
|
39864
40330
|
}
|
|
39865
40331
|
function ensureSiteId(params, context) {
|
|
39866
40332
|
if (!params.siteId && typeof context.siteId === "string" && context.siteId) params.siteId = context.siteId;
|
|
@@ -39873,7 +40339,7 @@ function ensureSiteId(params, context) {
|
|
|
39873
40339
|
*/
|
|
39874
40340
|
function normalizeLoaderParams(endpoint, params, context) {
|
|
39875
40341
|
const out = toStringParams(params);
|
|
39876
|
-
stripEmptyStringValues(out);
|
|
40342
|
+
stripEmptyStringValues(out, endpoint);
|
|
39877
40343
|
if (endpoint === "getPublicFormById") {
|
|
39878
40344
|
ensureSiteId(out, context);
|
|
39879
40345
|
if (!out.formId && out.formSlug) {
|
|
@@ -40181,7 +40647,17 @@ const riverbankSiteConfigInputSchema = z.object({
|
|
|
40181
40647
|
z.object({
|
|
40182
40648
|
config: riverbankSiteConfigInputSchema,
|
|
40183
40649
|
forceContentTypes: z.boolean().optional(),
|
|
40184
|
-
mode: z.enum(["apply", "preview"]).optional()
|
|
40650
|
+
mode: z.enum(["apply", "preview"]).optional(),
|
|
40651
|
+
expectedMailingListProviderScope: z.unknown().transform((value, ctx) => {
|
|
40652
|
+
if (value === void 0) return void 0;
|
|
40653
|
+
const parsed = parseMailingListProviderScope(value);
|
|
40654
|
+
if (parsed.ok) return parsed.value;
|
|
40655
|
+
ctx.addIssue({
|
|
40656
|
+
code: "custom",
|
|
40657
|
+
message: "Invalid mailing-list provider scope"
|
|
40658
|
+
});
|
|
40659
|
+
return z.NEVER;
|
|
40660
|
+
}).optional()
|
|
40185
40661
|
}).strict();
|
|
40186
40662
|
//#endregion
|
|
40187
40663
|
//#region ../api/src/sdkThemeWire.ts
|
|
@@ -41315,9 +41791,11 @@ function convertPageResponseBlock(block) {
|
|
|
41315
41791
|
if (typeof block.id !== "string" && block.id !== null) throw new Error(`Invalid block id in page: expected string or null, got ${typeof block.id}`);
|
|
41316
41792
|
if (typeof block.kind !== "string") throw new Error(`Invalid block kind in page: expected string, got ${typeof block.kind}`);
|
|
41317
41793
|
if (typeof block.purpose !== "string") throw new Error(`Invalid block purpose in page: expected string, got ${typeof block.purpose}`);
|
|
41794
|
+
if (block.contentVersionId !== void 0 && block.contentVersionId !== null && typeof block.contentVersionId !== "string") throw new Error(`Invalid content version id in page: expected string or null, got ${typeof block.contentVersionId}`);
|
|
41318
41795
|
const admission = readInvalidBlockAdmission(block.admission);
|
|
41319
41796
|
return {
|
|
41320
41797
|
id: block.id,
|
|
41798
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
41321
41799
|
kind: block.kind,
|
|
41322
41800
|
purpose: block.purpose,
|
|
41323
41801
|
content: sanitizeSdkRuntimeBlockContent(block.kind, readContentRecord(block.content) ?? {}),
|
|
@@ -41350,6 +41828,7 @@ function projectRenderablePageOutline(page) {
|
|
|
41350
41828
|
...page,
|
|
41351
41829
|
blocks: page.blocks.flatMap((block) => block.admission.kind === "renderable" ? [{
|
|
41352
41830
|
id: block.id,
|
|
41831
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
41353
41832
|
kind: block.kind,
|
|
41354
41833
|
purpose: block.purpose,
|
|
41355
41834
|
content: block.admission.content,
|
|
@@ -41360,6 +41839,7 @@ function projectRenderablePageOutline(page) {
|
|
|
41360
41839
|
function admitSdkRuntimePageBlock(block, customBlocks) {
|
|
41361
41840
|
const base = {
|
|
41362
41841
|
id: block.id,
|
|
41842
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
41363
41843
|
kind: block.kind,
|
|
41364
41844
|
purpose: block.purpose,
|
|
41365
41845
|
...block.bindings ? { bindings: block.bindings } : {}
|