@riverbankcms/sdk 0.139.0 → 0.140.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-CUyTzd5z.mjs} +4 -4
- package/dist/{PreviewEditorUI-DSRhgjF5.mjs → PreviewEditorUI-Agkw4v5i.mjs} +3 -3
- package/dist/{PreviewQueryProvider-D2K8GLUG.mjs → PreviewQueryProvider-CN0ewic5.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CL7wSnYu.mjs → SdkPreviewModeRuntime-DdbeAdS8.mjs} +22 -8
- package/dist/{SiteChromeCustomizeContext-BhDn-5ir.mjs → SiteChromeCustomizeContext-CqGOz-Kv.mjs} +2053 -1110
- 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 +8 -3
- 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/footerSettings.d.ts +9 -6
- package/dist/_dts/api/src/index.d.ts +5 -6
- 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/mailingListIntegration.d.ts +8 -2
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -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 +9 -5
- package/dist/_dts/api/src/siteOnboarding.d.ts +2 -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 +14 -3
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +16 -4
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +2 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +5 -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/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/data/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +2 -1
- package/dist/_dts/blocks/src/system/data/types.d.ts +9 -0
- 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 +30 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +15 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +43 -0
- 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/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/useEventRegistrationSubmit.d.ts +8 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +10 -2
- 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.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/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/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 +293 -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/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/accordions/types.d.ts +3 -3
- 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/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-CuKa82V4.mjs} +4 -4
- package/dist/client/{DiscountCodeDisclosure-D-DsLCMU.mjs → DiscountCodeDisclosure-BbYieKWB.mjs} +1 -1
- package/dist/client/{EventCombined.client-dWqgd5ZO.mjs → EventCombined.client-LTfR1Aby.mjs} +6 -6
- package/dist/client/{EventListing.client-BMRa9IYp.mjs → EventListing.client-DUHpYSuo.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-D21W9kBZ.mjs → LeafletStaticMap-CHRupL6m.mjs} +1 -1
- package/dist/client/{accordion-FxF_ta47.mjs → accordion-6HiIFxNL.mjs} +1 -1
- package/dist/client/{bookingForm-YnwW4TGw.mjs → bookingForm-Dlmid43H.mjs} +7 -7
- package/dist/client/bookings.mjs +325 -140
- package/dist/client/{carousel-vng7fFT5.mjs → carousel-DmkZRRq_.mjs} +2 -2
- package/dist/client/{carousel.client-59G_WMr4.mjs → carousel.client-DQTjCVQT.mjs} +1 -1
- package/dist/client/{cart-DEPDsjNk.mjs → cart-CIC24330.mjs} +3 -3
- package/dist/client/{checkout-CZRWu9rW.mjs → checkout-D1Zw9imo.mjs} +3 -3
- package/dist/client/{checkoutUrls-BuseL0dw.mjs → checkoutUrls-FL6lRkrt.mjs} +1 -1
- package/dist/client/client.mjs +1717 -882
- package/dist/client/{colorStyles-CrxJrPjJ.mjs → colorStyles-3013aRAY.mjs} +3 -1
- package/dist/client/{context-DvU_WUmd.mjs → context-Cy1OayHx.mjs} +6 -19
- package/dist/client/{dates-wnPMiRl5.mjs → dates-aDcfoLHr.mjs} +2 -2
- package/dist/client/{eventCalendar-BA3Q5L15.mjs → eventCalendar-FQxMPAjf.mjs} +8 -8
- package/dist/client/{eventCombined-51wgR-1R.mjs → eventCombined-Dr3ac6Hb.mjs} +3 -3
- package/dist/client/{eventDetails-modaetpm.mjs → eventDetails-D-AzUHFQ.mjs} +4 -4
- package/dist/client/{eventListing-D8t2J3Kv.mjs → eventListing-B3XxBf3i.mjs} +3 -3
- package/dist/client/{eventRegistration-CYqtkCE_.mjs → eventRegistration-I6EaokFD.mjs} +500 -152
- package/dist/client/{form-CBKXN5In.mjs → form-BbWckVWY.mjs} +3 -3
- package/dist/client/{headerSection-DylDqNrs.mjs → headerSection-C9qU4Y7x.mjs} +2 -2
- package/dist/client/hooks.mjs +445 -180
- package/dist/client/{locationMap-CvWrG0vZ.mjs → locationMap-CLCShvlG.mjs} +3 -3
- package/dist/client/{media-BOHuueS5.mjs → media-DHpfFwd3.mjs} +1 -1
- package/dist/client/{newsletterForm-Btwk70zw.mjs → newsletterForm-Briukxzi.mjs} +130 -87
- package/dist/client/{pricing-Uzw-GQ6Y.mjs → pricing-Copadu-2.mjs} +1 -1
- package/dist/client/{productDetail-JLcUYKnd.mjs → productDetail-oujlRd-r.mjs} +3 -3
- package/dist/client/{productList-FM0cbUzj.mjs → productList-BRiIRUcd.mjs} +3 -3
- package/dist/client/{propsDecoder-DYzafZb2.mjs → propsDecoder-CB2KS_ko.mjs} +130 -24
- package/dist/client/rendering/client.mjs +911 -400
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +1696 -818
- package/dist/client/{scrollToBlock-CvXszexS.mjs → scrollToBlock-B1IS1_ua.mjs} +1 -1
- package/dist/client/{shop-BIcjvy5a.mjs → shop-Vn6yNFED.mjs} +6 -6
- package/dist/client/{shop-commerce-BZQsy7xw.mjs → shop-commerce-BVTqipYp.mjs} +7 -7
- package/dist/client/{shop-commerce-store-D5V7XAb5.mjs → shop-commerce-store-BVnJVy7v.mjs} +1 -1
- package/dist/client/{shopShared-DowkXevB.mjs → shopShared-COIeK77T.mjs} +4 -4
- package/dist/client/{useEventFilters-oMoTw_JE.mjs → useEventFilters-DzIUcS9n.mjs} +7 -7
- package/dist/preview-next/before-render.mjs +119 -64
- package/dist/preview-next/client/runtime.mjs +4 -4
- 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-CnCLvZRv.mjs} +2 -2
- package/dist/{separator-UGtpag4Z.mjs → separator-DKDRJ1oH.mjs} +1 -1
- package/dist/server/components.mjs +787 -323
- package/dist/server/config-validation.mjs +328 -79
- package/dist/server/config.mjs +332 -83
- package/dist/server/data.mjs +441 -180
- package/dist/server/index.mjs +126 -66
- package/dist/server/next.mjs +1031 -595
- package/dist/server/page-converter.mjs +183 -74
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1068 -592
- package/dist/server/rendering.mjs +802 -324
- package/dist/server/routing.mjs +506 -214
- package/dist/server/server.mjs +468 -244
- package/dist/server/theme-bridge.mjs +433 -100
- package/dist/server/theme.mjs +8 -2
- package/dist/styles/index.css +237 -43
- 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
|
@@ -36,10 +36,12 @@ const unsafeAsStorageBucketName = (value) => value;
|
|
|
36
36
|
const unsafeAsStoragePath = (value) => value;
|
|
37
37
|
const unsafeAsPositiveByteCount = (value) => value;
|
|
38
38
|
const unsafeAsUserId = (id) => id;
|
|
39
|
+
const unsafeAsContentVersionId = (id) => id;
|
|
39
40
|
const parseSiteId = (value) => parseUuidBrand$1(value, unsafeAsSiteId);
|
|
40
41
|
const parseApiKeyId = (value) => parseUuidBrand$1(value, unsafeAsApiKeyId);
|
|
41
42
|
const parseEventOfferingId = (value) => parseUuidBrand$1(value, unsafeAsEventOfferingId);
|
|
42
43
|
const parseUserId = (value) => parseUuidBrand$1(value, unsafeAsUserId);
|
|
44
|
+
const parseContentVersionId = (value) => parseUuidBrand$1(value, unsafeAsContentVersionId);
|
|
43
45
|
const parseEventSeriesId = (value) => parseUuidBrand$1(value, unsafeAsEventSeriesId);
|
|
44
46
|
//#endregion
|
|
45
47
|
//#region ../core/src/assert-never.ts
|
|
@@ -312,7 +314,7 @@ function parseEventPageSurfaceDestinationMode(value) {
|
|
|
312
314
|
return value === "cms-managed" || value === "system-managed" ? value : void 0;
|
|
313
315
|
}
|
|
314
316
|
function parseEventPageSurfaceSubject(value) {
|
|
315
|
-
if (!isRecord$
|
|
317
|
+
if (!isRecord$40(value)) return err$3({ kind: "notObject" });
|
|
316
318
|
switch (value.kind) {
|
|
317
319
|
case "eventSeries": {
|
|
318
320
|
const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
|
|
@@ -367,7 +369,7 @@ function parseEventSeriesIdList(values) {
|
|
|
367
369
|
}
|
|
368
370
|
return ok$3(parsed);
|
|
369
371
|
}
|
|
370
|
-
function isRecord$
|
|
372
|
+
function isRecord$40(value) {
|
|
371
373
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
372
374
|
}
|
|
373
375
|
//#endregion
|
|
@@ -611,7 +613,7 @@ function toLocationCoordinates(value) {
|
|
|
611
613
|
}
|
|
612
614
|
//#endregion
|
|
613
615
|
//#region ../core/src/rich-text.ts
|
|
614
|
-
function isRecord$
|
|
616
|
+
function isRecord$38(value) {
|
|
615
617
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
616
618
|
}
|
|
617
619
|
function hasOnlyKeys(value, allowed) {
|
|
@@ -630,10 +632,10 @@ function isDenseArrayOf(value, predicate) {
|
|
|
630
632
|
return true;
|
|
631
633
|
}
|
|
632
634
|
function isTipTapMark(value) {
|
|
633
|
-
return isRecord$
|
|
635
|
+
return isRecord$38(value) && hasOnlyKeys(value, markKeys) && typeof value.type === "string" && value.type.length > 0 && (value.attrs === void 0 || isRecord$38(value.attrs));
|
|
634
636
|
}
|
|
635
637
|
function isTipTapNode(value) {
|
|
636
|
-
if (!isRecord$
|
|
638
|
+
if (!isRecord$38(value) || !hasOnlyKeys(value, nodeKeys) || typeof value.type !== "string" || value.type.length === 0 || value.type === "doc" || value.attrs !== void 0 && !isRecord$38(value.attrs) || value.marks !== void 0 && (!Array.isArray(value.marks) || !isDenseArrayOf(value.marks, isTipTapMark)) || value.content !== void 0 && (!Array.isArray(value.content) || !isDenseArrayOf(value.content, isTipTapNode))) return false;
|
|
637
639
|
if (value.type === "text") return typeof value.text === "string" && value.text.length > 0 && value.content === void 0;
|
|
638
640
|
return value.text === void 0;
|
|
639
641
|
}
|
|
@@ -652,22 +654,28 @@ function parsePositiveInteger(value) {
|
|
|
652
654
|
function parseNewsletterListId(value) {
|
|
653
655
|
return parseTrimmedMatchingString(value, UUID_PATTERN$2);
|
|
654
656
|
}
|
|
657
|
+
function parseMailchimpAccountId(value) {
|
|
658
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
659
|
+
}
|
|
655
660
|
function parseMailchimpAudienceId$1(value) {
|
|
656
661
|
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
657
662
|
}
|
|
658
663
|
function parseMailchimpInterestId(value) {
|
|
659
664
|
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
660
665
|
}
|
|
666
|
+
function parseBrevoAccountId(value) {
|
|
667
|
+
return parseTrimmedMatchingString(value, OPAQUE_ID_PATTERN);
|
|
668
|
+
}
|
|
661
669
|
function parseBrevoListId(value) {
|
|
662
670
|
return parsePositiveInteger(value);
|
|
663
671
|
}
|
|
664
672
|
//#endregion
|
|
665
673
|
//#region ../core/src/mailing-list-targeting-parser.ts
|
|
666
674
|
function parseMailingListPlacementTargeting(value) {
|
|
667
|
-
if (!isRecord$
|
|
675
|
+
if (!isRecord$37(value)) return targetingError("shape");
|
|
668
676
|
if (value.mode === "default") return ok$3({ mode: "default" });
|
|
669
677
|
if (value.mode !== "custom") return targetingError("mode");
|
|
670
|
-
if (!isRecord$
|
|
678
|
+
if (!isRecord$37(value.selection)) return targetingError("selection");
|
|
671
679
|
switch (value.provider) {
|
|
672
680
|
case "native": return parseNativeTargeting(value.selection);
|
|
673
681
|
case "brevo": return parseBrevoTargeting(value.selection);
|
|
@@ -771,7 +779,7 @@ function parseUniqueIds(value, parseId) {
|
|
|
771
779
|
}
|
|
772
780
|
return ok$3(parsed);
|
|
773
781
|
}
|
|
774
|
-
function isRecord$
|
|
782
|
+
function isRecord$37(value) {
|
|
775
783
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
776
784
|
}
|
|
777
785
|
function targetingError(field) {
|
|
@@ -793,6 +801,31 @@ new Map([
|
|
|
793
801
|
"legal"
|
|
794
802
|
].map((kind, index) => [kind, index]));
|
|
795
803
|
//#endregion
|
|
804
|
+
//#region ../core/src/mailing-list-setup.ts
|
|
805
|
+
function isRecord$34(value) {
|
|
806
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
807
|
+
}
|
|
808
|
+
const DEFAULT_MAILING_LIST_SUCCESS_MESSAGE = "Thanks — you're on the list.";
|
|
809
|
+
function parseMailingListProviderScope(value) {
|
|
810
|
+
if (!isRecord$34(value)) return err$3("invalid_mailing_list_provider_scope");
|
|
811
|
+
if (value.provider === "native") return ok$3({ provider: "native" });
|
|
812
|
+
if (value.provider === "brevo") {
|
|
813
|
+
const accountId = parseBrevoAccountId(value.accountId);
|
|
814
|
+
return accountId !== null ? ok$3({
|
|
815
|
+
provider: "brevo",
|
|
816
|
+
accountId
|
|
817
|
+
}) : err$3("invalid_mailing_list_provider_scope");
|
|
818
|
+
}
|
|
819
|
+
if (value.provider === "mailchimp") {
|
|
820
|
+
const accountId = parseMailchimpAccountId(value.accountId);
|
|
821
|
+
return accountId !== null ? ok$3({
|
|
822
|
+
provider: "mailchimp",
|
|
823
|
+
accountId
|
|
824
|
+
}) : err$3("invalid_mailing_list_provider_scope");
|
|
825
|
+
}
|
|
826
|
+
return err$3("invalid_mailing_list_provider_scope");
|
|
827
|
+
}
|
|
828
|
+
//#endregion
|
|
796
829
|
//#region ../core/src/mailing-list-setup-parser.ts
|
|
797
830
|
function parseMailingListGlobalForm(value) {
|
|
798
831
|
if (!isRecord$33(value)) return formError("shape");
|
|
@@ -801,12 +834,15 @@ function parseMailingListGlobalForm(value) {
|
|
|
801
834
|
if (typeof value.includeOptionalPhone !== "boolean") return formError("includeOptionalPhone");
|
|
802
835
|
const buttonLabel = parseRequiredString(value.buttonLabel);
|
|
803
836
|
if (buttonLabel === null) return formError("buttonLabel");
|
|
837
|
+
const successMessage = parseRequiredString(value.successMessage);
|
|
838
|
+
if (successMessage === null) return formError("successMessage");
|
|
804
839
|
const privacyNote = parseOptionalString(value.privacyNote);
|
|
805
840
|
if (privacyNote === void 0) return formError("privacyNote");
|
|
806
841
|
return ok$3({
|
|
807
842
|
fields,
|
|
808
843
|
includeOptionalPhone: value.includeOptionalPhone,
|
|
809
844
|
buttonLabel,
|
|
845
|
+
successMessage,
|
|
810
846
|
privacyNote
|
|
811
847
|
});
|
|
812
848
|
}
|
|
@@ -1013,11 +1049,17 @@ function parseMailingListSignedSourceToken(value) {
|
|
|
1013
1049
|
const parsed = typeof value === "string" ? value.trim() : "";
|
|
1014
1050
|
return /^[A-Za-z0-9._~-]{16,1000}$/u.test(parsed) ? parsed : null;
|
|
1015
1051
|
}
|
|
1016
|
-
function
|
|
1017
|
-
const parsed =
|
|
1018
|
-
return parsed
|
|
1052
|
+
function parseMailingListContentVersionId(value) {
|
|
1053
|
+
const parsed = parseContentVersionId(value);
|
|
1054
|
+
return parsed.ok ? parsed.value : null;
|
|
1055
|
+
}
|
|
1056
|
+
function buildMailingListSignupBlockSourceRef(blockId, contentVersionId) {
|
|
1057
|
+
const parsedBlockId = parseMailingListBlockId(blockId);
|
|
1058
|
+
const parsedContentVersionId = parseMailingListContentVersionId(contentVersionId);
|
|
1059
|
+
return parsedBlockId !== null && parsedContentVersionId !== null ? {
|
|
1019
1060
|
tag: "block_ref",
|
|
1020
|
-
blockId:
|
|
1061
|
+
blockId: parsedBlockId,
|
|
1062
|
+
contentVersionId: parsedContentVersionId
|
|
1021
1063
|
} : null;
|
|
1022
1064
|
}
|
|
1023
1065
|
function sortStableJsonValue(value) {
|
|
@@ -4309,29 +4351,6 @@ function contrastRatio(hex1, hex2) {
|
|
|
4309
4351
|
return (hi + .05) / (lo + .05);
|
|
4310
4352
|
}
|
|
4311
4353
|
//#endregion
|
|
4312
|
-
//#region ../theme-core/src/palette/utils/onColor.ts
|
|
4313
|
-
const BACKGROUND_ROLE_NAMES = /* @__PURE__ */ new Set([
|
|
4314
|
-
"primary",
|
|
4315
|
-
"secondary",
|
|
4316
|
-
"accent",
|
|
4317
|
-
"success",
|
|
4318
|
-
"warning",
|
|
4319
|
-
"destructive",
|
|
4320
|
-
"info",
|
|
4321
|
-
"background",
|
|
4322
|
-
"surface",
|
|
4323
|
-
"surfaceAlt",
|
|
4324
|
-
"muted",
|
|
4325
|
-
"neutral"
|
|
4326
|
-
]);
|
|
4327
|
-
function onColorTokenName(backgroundToken) {
|
|
4328
|
-
return `on${backgroundToken.split("-").filter((part) => part.length > 0).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("")}`;
|
|
4329
|
-
}
|
|
4330
|
-
function isOnColorBackgroundCandidateToken(token) {
|
|
4331
|
-
const role = token.match(/^(.*?)(?:-\d{2,3})?$/)?.[1] ?? token;
|
|
4332
|
-
return BACKGROUND_ROLE_NAMES.has(role);
|
|
4333
|
-
}
|
|
4334
|
-
//#endregion
|
|
4335
4354
|
//#region ../theme-core/src/tokens/colorTokenParts.ts
|
|
4336
4355
|
function parseOpacityPercent(source) {
|
|
4337
4356
|
const trimmed = source.trim();
|
|
@@ -4369,6 +4388,141 @@ function parseColorTokenParts(source) {
|
|
|
4369
4388
|
opacityPercent
|
|
4370
4389
|
};
|
|
4371
4390
|
}
|
|
4391
|
+
const defaultThemeTokens = {
|
|
4392
|
+
color: {
|
|
4393
|
+
"background/base": "#ffffff",
|
|
4394
|
+
"background/elevated": "#f5f5f5",
|
|
4395
|
+
"surface/base": "#ffffff",
|
|
4396
|
+
"surface/subtle": "#f9f9fb",
|
|
4397
|
+
"surface/inverted": "#111111",
|
|
4398
|
+
"content/primary": "#111111",
|
|
4399
|
+
"content/secondary": "#3f3f46",
|
|
4400
|
+
"accent/primary": "#2563eb",
|
|
4401
|
+
"accent/secondary": "#1d4ed8",
|
|
4402
|
+
"border/base": "#e5e7eb"
|
|
4403
|
+
},
|
|
4404
|
+
typography: {
|
|
4405
|
+
"display/hero": {
|
|
4406
|
+
fontSize: "clamp(48px, 8vw, 96px)",
|
|
4407
|
+
lineHeight: "1.05",
|
|
4408
|
+
fontWeight: "700"
|
|
4409
|
+
},
|
|
4410
|
+
"display/section": {
|
|
4411
|
+
fontSize: "clamp(40px, 6vw, 72px)",
|
|
4412
|
+
lineHeight: "1.1",
|
|
4413
|
+
fontWeight: "700"
|
|
4414
|
+
},
|
|
4415
|
+
"heading/large": {
|
|
4416
|
+
fontSize: "clamp(32px, 4vw, 48px)",
|
|
4417
|
+
lineHeight: "1.2",
|
|
4418
|
+
fontWeight: "600"
|
|
4419
|
+
},
|
|
4420
|
+
"heading/medium": {
|
|
4421
|
+
fontSize: "clamp(24px, 3vw, 32px)",
|
|
4422
|
+
lineHeight: "1.25",
|
|
4423
|
+
fontWeight: "600"
|
|
4424
|
+
},
|
|
4425
|
+
"heading/small": {
|
|
4426
|
+
fontSize: "20px",
|
|
4427
|
+
lineHeight: "1.3",
|
|
4428
|
+
fontWeight: "600"
|
|
4429
|
+
},
|
|
4430
|
+
"body/normal": {
|
|
4431
|
+
fontSize: "16px",
|
|
4432
|
+
lineHeight: "1.6",
|
|
4433
|
+
fontWeight: "400"
|
|
4434
|
+
},
|
|
4435
|
+
"body/small": {
|
|
4436
|
+
fontSize: "14px",
|
|
4437
|
+
lineHeight: "1.5",
|
|
4438
|
+
fontWeight: "400"
|
|
4439
|
+
},
|
|
4440
|
+
caption: {
|
|
4441
|
+
fontSize: "12px",
|
|
4442
|
+
lineHeight: "1.4",
|
|
4443
|
+
fontWeight: "500"
|
|
4444
|
+
}
|
|
4445
|
+
},
|
|
4446
|
+
spacing: {
|
|
4447
|
+
none: "0px",
|
|
4448
|
+
"3xs": "4px",
|
|
4449
|
+
"2xs": "8px",
|
|
4450
|
+
xs: "12px",
|
|
4451
|
+
sm: "16px",
|
|
4452
|
+
md: "24px",
|
|
4453
|
+
lg: "32px",
|
|
4454
|
+
xl: "40px",
|
|
4455
|
+
"2xl": "56px",
|
|
4456
|
+
"3xl": "72px"
|
|
4457
|
+
},
|
|
4458
|
+
radius: {
|
|
4459
|
+
none: "0px",
|
|
4460
|
+
xs: "2px",
|
|
4461
|
+
sm: "4px",
|
|
4462
|
+
md: "8px",
|
|
4463
|
+
lg: "12px",
|
|
4464
|
+
pill: "999px",
|
|
4465
|
+
full: "9999px"
|
|
4466
|
+
},
|
|
4467
|
+
shadow: {
|
|
4468
|
+
none: "none",
|
|
4469
|
+
soft: "0px 2px 8px rgba(15, 23, 42, 0.08)",
|
|
4470
|
+
medium: "0px 6px 18px rgba(15, 23, 42, 0.12)",
|
|
4471
|
+
strong: "0px 12px 36px rgba(15, 23, 42, 0.16)"
|
|
4472
|
+
},
|
|
4473
|
+
palette: {
|
|
4474
|
+
surface: "#ffffff",
|
|
4475
|
+
"neutral-50": "#f9fafb",
|
|
4476
|
+
"neutral-900": "#111827",
|
|
4477
|
+
primary: "#2563eb",
|
|
4478
|
+
"primary-50": "#eff6ff",
|
|
4479
|
+
"primary-500": "#2563eb",
|
|
4480
|
+
"primary-900": "#1d4ed8",
|
|
4481
|
+
secondary: "#9333ea",
|
|
4482
|
+
"secondary-50": "#f3e8ff",
|
|
4483
|
+
"secondary-500": "#9333ea",
|
|
4484
|
+
"secondary-900": "#4c1d95",
|
|
4485
|
+
accent: "#f97316",
|
|
4486
|
+
"accent-50": "#fff7ed",
|
|
4487
|
+
"accent-500": "#f97316",
|
|
4488
|
+
"accent-900": "#7c2d12"
|
|
4489
|
+
}
|
|
4490
|
+
};
|
|
4491
|
+
/**
|
|
4492
|
+
* Project the expanded semantic palette into the token buckets consumed by
|
|
4493
|
+
* runtime transforms. Keep this mapping shared by full themes and the
|
|
4494
|
+
* tokens-only hosted-booking runtime so the two paths cannot drift.
|
|
4495
|
+
*/
|
|
4496
|
+
function buildThemeTokens(palette) {
|
|
4497
|
+
const tokens = cloneThemeTokens(defaultThemeTokens);
|
|
4498
|
+
const paletteStrings = {};
|
|
4499
|
+
for (const [key, value] of Object.entries(palette)) if (typeof value === "string" && value.trim().length > 0) paletteStrings[key] = value;
|
|
4500
|
+
tokens.palette = paletteStrings;
|
|
4501
|
+
const resolveColor = (...keys) => {
|
|
4502
|
+
for (const key of keys) {
|
|
4503
|
+
const value = paletteStrings[key];
|
|
4504
|
+
if (value) return value;
|
|
4505
|
+
}
|
|
4506
|
+
};
|
|
4507
|
+
const assignColor = (token, ...keys) => {
|
|
4508
|
+
const value = resolveColor(...keys);
|
|
4509
|
+
if (value) tokens.color[token] = value;
|
|
4510
|
+
};
|
|
4511
|
+
assignColor("background/base", "background", "surface", "primary-50");
|
|
4512
|
+
assignColor("background/elevated", "surface", "background");
|
|
4513
|
+
assignColor("surface/base", "surface", "background");
|
|
4514
|
+
assignColor("surface/subtle", "neutral-100", "surface", "background");
|
|
4515
|
+
assignColor("surface/inverted", "neutral-900", "text", "primary-900");
|
|
4516
|
+
assignColor("content/primary", "text", "body", "neutral-900");
|
|
4517
|
+
assignColor("content/secondary", "mutedText", "secondary", "neutral-600");
|
|
4518
|
+
assignColor("accent/primary", "primary", "accent");
|
|
4519
|
+
assignColor("accent/secondary", "accent", "secondary", "primary-400");
|
|
4520
|
+
assignColor("border/base", "border", "neutral-300");
|
|
4521
|
+
return tokens;
|
|
4522
|
+
}
|
|
4523
|
+
function cloneThemeTokens(source) {
|
|
4524
|
+
return JSON.parse(JSON.stringify(source));
|
|
4525
|
+
}
|
|
4372
4526
|
//#endregion
|
|
4373
4527
|
//#region ../theme-core/src/tokens/blockColorTokens.ts
|
|
4374
4528
|
const blockColorTokenNames = [
|
|
@@ -4479,6 +4633,101 @@ function parseThemeColorToken(value) {
|
|
|
4479
4633
|
}
|
|
4480
4634
|
const themeColorTokenSchema = z$1.string().min(1).refine((value) => Boolean(isThemeColorToken(value)), "Expected a known Theme V2 color token");
|
|
4481
4635
|
//#endregion
|
|
4636
|
+
//#region ../theme-core/src/tokens/resolver.ts
|
|
4637
|
+
/**
|
|
4638
|
+
* Resolves theme tokens to CSS variables
|
|
4639
|
+
*
|
|
4640
|
+
* This resolver ensures all button styles use theme tokens (not hardcoded colors)
|
|
4641
|
+
* so that changing the palette automatically updates all buttons.
|
|
4642
|
+
*/
|
|
4643
|
+
var TokenResolver = class {
|
|
4644
|
+
constructor(theme) {
|
|
4645
|
+
this.theme = theme;
|
|
4646
|
+
}
|
|
4647
|
+
/**
|
|
4648
|
+
* Resolve a color token to a CSS variable reference wrapped in rgb()
|
|
4649
|
+
*
|
|
4650
|
+
* @param token - Token name (e.g., 'primary-500', 'white', 'text-900')
|
|
4651
|
+
* @returns CSS rgb() function with var reference (e.g., 'rgb(var(--tb-primary-500))')
|
|
4652
|
+
*
|
|
4653
|
+
* Note: CSS variables are stored as RGB channels (e.g., "37 99 235") following Tailwind convention,
|
|
4654
|
+
* so we must wrap them with rgb() to create a valid color value.
|
|
4655
|
+
*
|
|
4656
|
+
* @example
|
|
4657
|
+
* resolver.getColor('primary-500') // => 'rgb(var(--tb-primary-500))'
|
|
4658
|
+
* resolver.getColor('white') // => 'rgb(var(--tb-white))'
|
|
4659
|
+
*/
|
|
4660
|
+
getColor(token) {
|
|
4661
|
+
if (!this.tokenExists(token)) console.warn(`[TokenResolver] Color token "${token}" not found in theme palette. Button may render incorrectly.`);
|
|
4662
|
+
return rgbColorValue(token);
|
|
4663
|
+
}
|
|
4664
|
+
/**
|
|
4665
|
+
* Adjust a color token's shade by a given amount
|
|
4666
|
+
*
|
|
4667
|
+
* @param token - Base token (e.g., 'primary-500')
|
|
4668
|
+
* @param amount - Shade adjustment (+100 = darker, -100 = lighter)
|
|
4669
|
+
* @returns Adjusted token name (e.g., 'primary-600')
|
|
4670
|
+
*
|
|
4671
|
+
* @example
|
|
4672
|
+
* resolver.adjustShade('primary-500', 100) // => 'primary-600' (darker)
|
|
4673
|
+
* resolver.adjustShade('primary-500', -100) // => 'primary-400' (lighter)
|
|
4674
|
+
*/
|
|
4675
|
+
adjustShade(token, amount) {
|
|
4676
|
+
const parts = token.split("-");
|
|
4677
|
+
if (parts.length < 2) return `${token}-${Math.max(100, Math.min(900, 500 + amount))}`;
|
|
4678
|
+
const base = parts.slice(0, -1).join("-");
|
|
4679
|
+
const shade = parseInt(parts[parts.length - 1] ?? "", 10);
|
|
4680
|
+
if (isNaN(shade)) {
|
|
4681
|
+
console.warn(`[TokenResolver] Cannot adjust shade for non-shade token "${token}". Returning original token.`);
|
|
4682
|
+
return token;
|
|
4683
|
+
}
|
|
4684
|
+
return `${base}-${Math.max(100, Math.min(900, shade + amount))}`;
|
|
4685
|
+
}
|
|
4686
|
+
/**
|
|
4687
|
+
* Check if a token exists in the theme palette
|
|
4688
|
+
*
|
|
4689
|
+
* @param token - Token name to check
|
|
4690
|
+
* @returns True if token exists in theme
|
|
4691
|
+
*/
|
|
4692
|
+
tokenExists(token) {
|
|
4693
|
+
if ([
|
|
4694
|
+
"white",
|
|
4695
|
+
"black",
|
|
4696
|
+
"transparent"
|
|
4697
|
+
].includes(token)) return true;
|
|
4698
|
+
const parts = token.split("-");
|
|
4699
|
+
if (parts.length >= 2) {
|
|
4700
|
+
const lastPart = parts[parts.length - 1] ?? "";
|
|
4701
|
+
const shade = parseInt(lastPart, 10);
|
|
4702
|
+
if (!isNaN(shade) && shade >= 100 && shade <= 900 && shade % 100 === 0) return true;
|
|
4703
|
+
}
|
|
4704
|
+
return true;
|
|
4705
|
+
}
|
|
4706
|
+
};
|
|
4707
|
+
//#endregion
|
|
4708
|
+
//#region ../theme-core/src/palette/utils/onColor.ts
|
|
4709
|
+
const BACKGROUND_ROLE_NAMES = /* @__PURE__ */ new Set([
|
|
4710
|
+
"primary",
|
|
4711
|
+
"secondary",
|
|
4712
|
+
"accent",
|
|
4713
|
+
"success",
|
|
4714
|
+
"warning",
|
|
4715
|
+
"destructive",
|
|
4716
|
+
"info",
|
|
4717
|
+
"background",
|
|
4718
|
+
"surface",
|
|
4719
|
+
"surfaceAlt",
|
|
4720
|
+
"muted",
|
|
4721
|
+
"neutral"
|
|
4722
|
+
]);
|
|
4723
|
+
function onColorTokenName(backgroundToken) {
|
|
4724
|
+
return `on${backgroundToken.split("-").filter((part) => part.length > 0).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("")}`;
|
|
4725
|
+
}
|
|
4726
|
+
function isOnColorBackgroundCandidateToken(token) {
|
|
4727
|
+
const role = token.match(/^(.*?)(?:-\d{2,3})?$/)?.[1] ?? token;
|
|
4728
|
+
return BACKGROUND_ROLE_NAMES.has(role);
|
|
4729
|
+
}
|
|
4730
|
+
//#endregion
|
|
4482
4731
|
//#region ../theme-core/src/palette/colors.ts
|
|
4483
4732
|
const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
|
|
4484
4733
|
const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
@@ -6152,213 +6401,6 @@ function assertUniqueLayoutProfileKeys(profiles) {
|
|
|
6152
6401
|
});
|
|
6153
6402
|
if (duplicates.length > 0) throw new Error(`Duplicate block layout design profiles: ${duplicates.join(", ")}`);
|
|
6154
6403
|
}
|
|
6155
|
-
const defaultThemeTokens = {
|
|
6156
|
-
color: {
|
|
6157
|
-
"background/base": "#ffffff",
|
|
6158
|
-
"background/elevated": "#f5f5f5",
|
|
6159
|
-
"surface/base": "#ffffff",
|
|
6160
|
-
"surface/subtle": "#f9f9fb",
|
|
6161
|
-
"surface/inverted": "#111111",
|
|
6162
|
-
"content/primary": "#111111",
|
|
6163
|
-
"content/secondary": "#3f3f46",
|
|
6164
|
-
"accent/primary": "#2563eb",
|
|
6165
|
-
"accent/secondary": "#1d4ed8",
|
|
6166
|
-
"border/base": "#e5e7eb"
|
|
6167
|
-
},
|
|
6168
|
-
typography: {
|
|
6169
|
-
"display/hero": {
|
|
6170
|
-
fontSize: "clamp(48px, 8vw, 96px)",
|
|
6171
|
-
lineHeight: "1.05",
|
|
6172
|
-
fontWeight: "700"
|
|
6173
|
-
},
|
|
6174
|
-
"display/section": {
|
|
6175
|
-
fontSize: "clamp(40px, 6vw, 72px)",
|
|
6176
|
-
lineHeight: "1.1",
|
|
6177
|
-
fontWeight: "700"
|
|
6178
|
-
},
|
|
6179
|
-
"heading/large": {
|
|
6180
|
-
fontSize: "clamp(32px, 4vw, 48px)",
|
|
6181
|
-
lineHeight: "1.2",
|
|
6182
|
-
fontWeight: "600"
|
|
6183
|
-
},
|
|
6184
|
-
"heading/medium": {
|
|
6185
|
-
fontSize: "clamp(24px, 3vw, 32px)",
|
|
6186
|
-
lineHeight: "1.25",
|
|
6187
|
-
fontWeight: "600"
|
|
6188
|
-
},
|
|
6189
|
-
"heading/small": {
|
|
6190
|
-
fontSize: "20px",
|
|
6191
|
-
lineHeight: "1.3",
|
|
6192
|
-
fontWeight: "600"
|
|
6193
|
-
},
|
|
6194
|
-
"body/normal": {
|
|
6195
|
-
fontSize: "16px",
|
|
6196
|
-
lineHeight: "1.6",
|
|
6197
|
-
fontWeight: "400"
|
|
6198
|
-
},
|
|
6199
|
-
"body/small": {
|
|
6200
|
-
fontSize: "14px",
|
|
6201
|
-
lineHeight: "1.5",
|
|
6202
|
-
fontWeight: "400"
|
|
6203
|
-
},
|
|
6204
|
-
caption: {
|
|
6205
|
-
fontSize: "12px",
|
|
6206
|
-
lineHeight: "1.4",
|
|
6207
|
-
fontWeight: "500"
|
|
6208
|
-
}
|
|
6209
|
-
},
|
|
6210
|
-
spacing: {
|
|
6211
|
-
none: "0px",
|
|
6212
|
-
"3xs": "4px",
|
|
6213
|
-
"2xs": "8px",
|
|
6214
|
-
xs: "12px",
|
|
6215
|
-
sm: "16px",
|
|
6216
|
-
md: "24px",
|
|
6217
|
-
lg: "32px",
|
|
6218
|
-
xl: "40px",
|
|
6219
|
-
"2xl": "56px",
|
|
6220
|
-
"3xl": "72px"
|
|
6221
|
-
},
|
|
6222
|
-
radius: {
|
|
6223
|
-
none: "0px",
|
|
6224
|
-
xs: "2px",
|
|
6225
|
-
sm: "4px",
|
|
6226
|
-
md: "8px",
|
|
6227
|
-
lg: "12px",
|
|
6228
|
-
pill: "999px",
|
|
6229
|
-
full: "9999px"
|
|
6230
|
-
},
|
|
6231
|
-
shadow: {
|
|
6232
|
-
none: "none",
|
|
6233
|
-
soft: "0px 2px 8px rgba(15, 23, 42, 0.08)",
|
|
6234
|
-
medium: "0px 6px 18px rgba(15, 23, 42, 0.12)",
|
|
6235
|
-
strong: "0px 12px 36px rgba(15, 23, 42, 0.16)"
|
|
6236
|
-
},
|
|
6237
|
-
palette: {
|
|
6238
|
-
surface: "#ffffff",
|
|
6239
|
-
"neutral-50": "#f9fafb",
|
|
6240
|
-
"neutral-900": "#111827",
|
|
6241
|
-
primary: "#2563eb",
|
|
6242
|
-
"primary-50": "#eff6ff",
|
|
6243
|
-
"primary-500": "#2563eb",
|
|
6244
|
-
"primary-900": "#1d4ed8",
|
|
6245
|
-
secondary: "#9333ea",
|
|
6246
|
-
"secondary-50": "#f3e8ff",
|
|
6247
|
-
"secondary-500": "#9333ea",
|
|
6248
|
-
"secondary-900": "#4c1d95",
|
|
6249
|
-
accent: "#f97316",
|
|
6250
|
-
"accent-50": "#fff7ed",
|
|
6251
|
-
"accent-500": "#f97316",
|
|
6252
|
-
"accent-900": "#7c2d12"
|
|
6253
|
-
}
|
|
6254
|
-
};
|
|
6255
|
-
/**
|
|
6256
|
-
* Project the expanded semantic palette into the token buckets consumed by
|
|
6257
|
-
* runtime transforms. Keep this mapping shared by full themes and the
|
|
6258
|
-
* tokens-only hosted-booking runtime so the two paths cannot drift.
|
|
6259
|
-
*/
|
|
6260
|
-
function buildThemeTokens(palette) {
|
|
6261
|
-
const tokens = cloneThemeTokens(defaultThemeTokens);
|
|
6262
|
-
const paletteStrings = {};
|
|
6263
|
-
for (const [key, value] of Object.entries(palette)) if (typeof value === "string" && value.trim().length > 0) paletteStrings[key] = value;
|
|
6264
|
-
tokens.palette = paletteStrings;
|
|
6265
|
-
const resolveColor = (...keys) => {
|
|
6266
|
-
for (const key of keys) {
|
|
6267
|
-
const value = paletteStrings[key];
|
|
6268
|
-
if (value) return value;
|
|
6269
|
-
}
|
|
6270
|
-
};
|
|
6271
|
-
const assignColor = (token, ...keys) => {
|
|
6272
|
-
const value = resolveColor(...keys);
|
|
6273
|
-
if (value) tokens.color[token] = value;
|
|
6274
|
-
};
|
|
6275
|
-
assignColor("background/base", "background", "surface", "primary-50");
|
|
6276
|
-
assignColor("background/elevated", "surface", "background");
|
|
6277
|
-
assignColor("surface/base", "surface", "background");
|
|
6278
|
-
assignColor("surface/subtle", "neutral-100", "surface", "background");
|
|
6279
|
-
assignColor("surface/inverted", "neutral-900", "text", "primary-900");
|
|
6280
|
-
assignColor("content/primary", "text", "body", "neutral-900");
|
|
6281
|
-
assignColor("content/secondary", "mutedText", "secondary", "neutral-600");
|
|
6282
|
-
assignColor("accent/primary", "primary", "accent");
|
|
6283
|
-
assignColor("accent/secondary", "accent", "secondary", "primary-400");
|
|
6284
|
-
assignColor("border/base", "border", "neutral-300");
|
|
6285
|
-
return tokens;
|
|
6286
|
-
}
|
|
6287
|
-
function cloneThemeTokens(source) {
|
|
6288
|
-
return JSON.parse(JSON.stringify(source));
|
|
6289
|
-
}
|
|
6290
|
-
//#endregion
|
|
6291
|
-
//#region ../theme-core/src/tokens/resolver.ts
|
|
6292
|
-
/**
|
|
6293
|
-
* Resolves theme tokens to CSS variables
|
|
6294
|
-
*
|
|
6295
|
-
* This resolver ensures all button styles use theme tokens (not hardcoded colors)
|
|
6296
|
-
* so that changing the palette automatically updates all buttons.
|
|
6297
|
-
*/
|
|
6298
|
-
var TokenResolver = class {
|
|
6299
|
-
constructor(theme) {
|
|
6300
|
-
this.theme = theme;
|
|
6301
|
-
}
|
|
6302
|
-
/**
|
|
6303
|
-
* Resolve a color token to a CSS variable reference wrapped in rgb()
|
|
6304
|
-
*
|
|
6305
|
-
* @param token - Token name (e.g., 'primary-500', 'white', 'text-900')
|
|
6306
|
-
* @returns CSS rgb() function with var reference (e.g., 'rgb(var(--tb-primary-500))')
|
|
6307
|
-
*
|
|
6308
|
-
* Note: CSS variables are stored as RGB channels (e.g., "37 99 235") following Tailwind convention,
|
|
6309
|
-
* so we must wrap them with rgb() to create a valid color value.
|
|
6310
|
-
*
|
|
6311
|
-
* @example
|
|
6312
|
-
* resolver.getColor('primary-500') // => 'rgb(var(--tb-primary-500))'
|
|
6313
|
-
* resolver.getColor('white') // => 'rgb(var(--tb-white))'
|
|
6314
|
-
*/
|
|
6315
|
-
getColor(token) {
|
|
6316
|
-
if (!this.tokenExists(token)) console.warn(`[TokenResolver] Color token "${token}" not found in theme palette. Button may render incorrectly.`);
|
|
6317
|
-
return `rgb(var(--tb-${token}))`;
|
|
6318
|
-
}
|
|
6319
|
-
/**
|
|
6320
|
-
* Adjust a color token's shade by a given amount
|
|
6321
|
-
*
|
|
6322
|
-
* @param token - Base token (e.g., 'primary-500')
|
|
6323
|
-
* @param amount - Shade adjustment (+100 = darker, -100 = lighter)
|
|
6324
|
-
* @returns Adjusted token name (e.g., 'primary-600')
|
|
6325
|
-
*
|
|
6326
|
-
* @example
|
|
6327
|
-
* resolver.adjustShade('primary-500', 100) // => 'primary-600' (darker)
|
|
6328
|
-
* resolver.adjustShade('primary-500', -100) // => 'primary-400' (lighter)
|
|
6329
|
-
*/
|
|
6330
|
-
adjustShade(token, amount) {
|
|
6331
|
-
const parts = token.split("-");
|
|
6332
|
-
if (parts.length < 2) return `${token}-${Math.max(100, Math.min(900, 500 + amount))}`;
|
|
6333
|
-
const base = parts.slice(0, -1).join("-");
|
|
6334
|
-
const shade = parseInt(parts[parts.length - 1] ?? "", 10);
|
|
6335
|
-
if (isNaN(shade)) {
|
|
6336
|
-
console.warn(`[TokenResolver] Cannot adjust shade for non-shade token "${token}". Returning original token.`);
|
|
6337
|
-
return token;
|
|
6338
|
-
}
|
|
6339
|
-
return `${base}-${Math.max(100, Math.min(900, shade + amount))}`;
|
|
6340
|
-
}
|
|
6341
|
-
/**
|
|
6342
|
-
* Check if a token exists in the theme palette
|
|
6343
|
-
*
|
|
6344
|
-
* @param token - Token name to check
|
|
6345
|
-
* @returns True if token exists in theme
|
|
6346
|
-
*/
|
|
6347
|
-
tokenExists(token) {
|
|
6348
|
-
if ([
|
|
6349
|
-
"white",
|
|
6350
|
-
"black",
|
|
6351
|
-
"transparent"
|
|
6352
|
-
].includes(token)) return true;
|
|
6353
|
-
const parts = token.split("-");
|
|
6354
|
-
if (parts.length >= 2) {
|
|
6355
|
-
const lastPart = parts[parts.length - 1] ?? "";
|
|
6356
|
-
const shade = parseInt(lastPart, 10);
|
|
6357
|
-
if (!isNaN(shade) && shade >= 100 && shade <= 900 && shade % 100 === 0) return true;
|
|
6358
|
-
}
|
|
6359
|
-
return true;
|
|
6360
|
-
}
|
|
6361
|
-
};
|
|
6362
6404
|
//#endregion
|
|
6363
6405
|
//#region ../theme-core/src/site-styles/backgroundAppearance.ts
|
|
6364
6406
|
const backgroundAppearanceQuickColorTokenNames = [
|
|
@@ -11980,8 +12022,14 @@ const headerInteractionPillPaletteValues = [
|
|
|
11980
12022
|
"accent"
|
|
11981
12023
|
];
|
|
11982
12024
|
/**
|
|
11983
|
-
* "No pill":
|
|
11984
|
-
*
|
|
12025
|
+
* "No pill": a colour change on hover rather than a filled background.
|
|
12026
|
+
*
|
|
12027
|
+
* The palette step writes nothing (#1318 Phase 4c decision 2), but on a
|
|
12028
|
+
* foreground-adaptive style that is not the end of the story: the hover colour
|
|
12029
|
+
* is derived from the resolved opening foreground at render time, paired with
|
|
12030
|
+
* the resting colour, so `quiet` resolves to a definite colour rather than to
|
|
12031
|
+
* whatever brand token the recipe happened to name. See
|
|
12032
|
+
* `applyOpeningForeground`.
|
|
11985
12033
|
*
|
|
11986
12034
|
* It exists because "a colour change on hover, no filled background" was not
|
|
11987
12035
|
* expressible in the vocabulary, and it is what
|
|
@@ -27635,6 +27683,28 @@ const bookingRequirementConsentFieldSchema = z$1.object({
|
|
|
27635
27683
|
const bookingConsentCarrierSchema = z$1.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
27636
27684
|
//#endregion
|
|
27637
27685
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
27686
|
+
const publicEventLoaderQuerySchemaShape = {
|
|
27687
|
+
limit: z$1.string().optional(),
|
|
27688
|
+
from: z$1.string().optional(),
|
|
27689
|
+
to: z$1.string().optional(),
|
|
27690
|
+
afterStartsAt: z$1.string().optional(),
|
|
27691
|
+
afterId: z$1.string().optional(),
|
|
27692
|
+
categoryIds: z$1.string().optional(),
|
|
27693
|
+
venueId: z$1.string().optional(),
|
|
27694
|
+
staffMemberId: z$1.string().optional(),
|
|
27695
|
+
eventSurface: z$1.string().optional(),
|
|
27696
|
+
eventPresets: z$1.string().optional(),
|
|
27697
|
+
scheduleScope: z$1.string().optional(),
|
|
27698
|
+
seriesId: z$1.string().optional(),
|
|
27699
|
+
seriesIds: z$1.string().optional(),
|
|
27700
|
+
runSeriesId: z$1.string().optional(),
|
|
27701
|
+
seriesSlug: z$1.string().optional(),
|
|
27702
|
+
includeOccurrenceId: z$1.string().optional(),
|
|
27703
|
+
readIntent: z$1.string().optional(),
|
|
27704
|
+
detailLevel: z$1.string().optional(),
|
|
27705
|
+
readProfile: z$1.string().optional()
|
|
27706
|
+
};
|
|
27707
|
+
z$1.object(publicEventLoaderQuerySchemaShape);
|
|
27638
27708
|
const eventPresetSchema = z$1.enum([
|
|
27639
27709
|
"event",
|
|
27640
27710
|
"class",
|
|
@@ -31083,7 +31153,7 @@ const publicPricingSchema = z$1.object({
|
|
|
31083
31153
|
singlePriceAmount: z$1.number().nullable(),
|
|
31084
31154
|
slidingMinAmount: z$1.number().nullable(),
|
|
31085
31155
|
slidingMaxAmount: z$1.number().nullable(),
|
|
31086
|
-
options: z$1.array(publicPricingOptionSchema)
|
|
31156
|
+
options: z$1.array(publicPricingOptionSchema).readonly()
|
|
31087
31157
|
});
|
|
31088
31158
|
const publicAppointmentServiceSchema = z$1.object({
|
|
31089
31159
|
id: z$1.string().min(1),
|
|
@@ -37742,6 +37812,44 @@ function toWholeSeriesRegistrationEvents(events) {
|
|
|
37742
37812
|
return groupPublicEventsByRun(events).map(toWholeSeriesRegistrationEvent).filter((event) => event !== null);
|
|
37743
37813
|
}
|
|
37744
37814
|
//#endregion
|
|
37815
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.ts
|
|
37816
|
+
const { limit: _rawLimit, eventSurface: _rawEventSurface, scheduleScope: _rawScheduleScope, detailLevel: _rawDetailLevel, ...stringEventQueryShape } = publicEventLoaderQuerySchemaShape;
|
|
37817
|
+
const eventRecoveryRequestSchema = z$1.object({
|
|
37818
|
+
...stringEventQueryShape,
|
|
37819
|
+
limit: z$1.coerce.number().int().positive().optional(),
|
|
37820
|
+
eventSurface: z$1.enum(eventSurfaceScopeValues).optional(),
|
|
37821
|
+
scheduleScope: z$1.enum(eventScheduleScopeValues).optional(),
|
|
37822
|
+
detailLevel: z$1.enum(["full", "listing"]).optional(),
|
|
37823
|
+
stage: z$1.enum(["preview", "published"]).optional()
|
|
37824
|
+
});
|
|
37825
|
+
function resolveEventRegistrationEventSource(input) {
|
|
37826
|
+
if (input.wholeSeriesRunEvents != null) return {
|
|
37827
|
+
kind: "loaded",
|
|
37828
|
+
events: input.wholeSeriesRunEvents
|
|
37829
|
+
};
|
|
37830
|
+
if (input.events != null) return {
|
|
37831
|
+
kind: "loaded",
|
|
37832
|
+
events: input.events
|
|
37833
|
+
};
|
|
37834
|
+
return {
|
|
37835
|
+
kind: "unresolved",
|
|
37836
|
+
request: parseEventLoaderRecoveryRequest(input.failures?.wholeSeriesRunEvents ?? input.failures?.events)
|
|
37837
|
+
};
|
|
37838
|
+
}
|
|
37839
|
+
const eventLoaderFailureSchema = z$1.object({
|
|
37840
|
+
endpoint: z$1.literal("listPublicEvents"),
|
|
37841
|
+
params: eventRecoveryRequestSchema.extend({ siteId: z$1.string().optional() })
|
|
37842
|
+
});
|
|
37843
|
+
function parseEventLoaderRecoveryRequest(value) {
|
|
37844
|
+
const parsed = eventLoaderFailureSchema.safeParse(value);
|
|
37845
|
+
if (!parsed.success) return null;
|
|
37846
|
+
const { siteId: _siteId, stage, ...params } = parsed.data.params;
|
|
37847
|
+
return {
|
|
37848
|
+
...params,
|
|
37849
|
+
stage: stage ?? "published"
|
|
37850
|
+
};
|
|
37851
|
+
}
|
|
37852
|
+
//#endregion
|
|
37745
37853
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
37746
37854
|
const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = [
|
|
37747
37855
|
"Date",
|
|
@@ -37759,8 +37867,6 @@ const eventRegistrationPublicEventSchema = z$1.preprocess(normalizeEventRegistra
|
|
|
37759
37867
|
const eventRegistrationHydrationSchemaShape = {
|
|
37760
37868
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
37761
37869
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
37762
|
-
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37763
|
-
wholeSeriesRunEvents: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37764
37870
|
maxTickets: z$1.string().optional(),
|
|
37765
37871
|
showVenue: z$1.boolean().optional(),
|
|
37766
37872
|
showCapacity: z$1.boolean().optional(),
|
|
@@ -37772,12 +37878,22 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
37772
37878
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
37773
37879
|
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
37774
37880
|
};
|
|
37881
|
+
const eventRegistrationEventSourceSchema = z$1.discriminatedUnion("kind", [z$1.object({
|
|
37882
|
+
kind: z$1.literal("loaded"),
|
|
37883
|
+
events: z$1.array(eventRegistrationPublicEventSchema)
|
|
37884
|
+
}), z$1.object({
|
|
37885
|
+
kind: z$1.literal("unresolved"),
|
|
37886
|
+
request: eventRecoveryRequestSchema.nullable()
|
|
37887
|
+
})]);
|
|
37775
37888
|
const eventRegistrationSourceSchema = z$1.object({
|
|
37776
37889
|
siteId: z$1.string().optional(),
|
|
37777
37890
|
apiBaseUrl: z$1.string().optional(),
|
|
37778
37891
|
portalToken: z$1.string().nullable().optional(),
|
|
37779
37892
|
previewToken: z$1.string().nullable().optional(),
|
|
37780
37893
|
...eventRegistrationHydrationSchemaShape,
|
|
37894
|
+
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37895
|
+
wholeSeriesRunEvents: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37896
|
+
eventLoaderFailures: z$1.record(z$1.string(), z$1.unknown()).nullable().optional(),
|
|
37781
37897
|
className: z$1.string().nullable().optional(),
|
|
37782
37898
|
buttonText: z$1.string().nullable().optional(),
|
|
37783
37899
|
maxTickets: z$1.string().nullable().optional(),
|
|
@@ -37798,7 +37914,10 @@ const eventRegistrationDisplaySchema = z$1.discriminatedUnion("state", [z$1.obje
|
|
|
37798
37914
|
titleText: z$1.string(),
|
|
37799
37915
|
bodyText: z$1.string()
|
|
37800
37916
|
})]);
|
|
37801
|
-
const eventRegistrationHydrationSchema = z$1.object(
|
|
37917
|
+
const eventRegistrationHydrationSchema = z$1.object({
|
|
37918
|
+
...eventRegistrationHydrationSchemaShape,
|
|
37919
|
+
eventSource: eventRegistrationEventSourceSchema
|
|
37920
|
+
});
|
|
37802
37921
|
const eventRegistrationRenderSchema = z$1.object({
|
|
37803
37922
|
display: eventRegistrationDisplaySchema,
|
|
37804
37923
|
hydration: eventRegistrationHydrationSchema
|
|
@@ -37857,16 +37976,12 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
|
37857
37976
|
function toScopedEventRegistrationEvents(scopedSourceEvents) {
|
|
37858
37977
|
return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
|
|
37859
37978
|
}
|
|
37860
|
-
function scopeEventRegistrationSourceEvents(source) {
|
|
37861
|
-
return resolveEventRegistrationScopedEvents(
|
|
37979
|
+
function scopeEventRegistrationSourceEvents(source, eventSource) {
|
|
37980
|
+
return resolveEventRegistrationScopedEvents(eventSource.kind === "loaded" ? eventSource.events : [], {
|
|
37862
37981
|
occurrenceContext: source.occurrenceContext,
|
|
37863
37982
|
subject: source.subject
|
|
37864
37983
|
});
|
|
37865
37984
|
}
|
|
37866
|
-
function resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents) {
|
|
37867
|
-
if (source.events == null && source.wholeSeriesRunEvents == null) return null;
|
|
37868
|
-
return [...scopedSourceEvents];
|
|
37869
|
-
}
|
|
37870
37985
|
/**
|
|
37871
37986
|
* The one run this surface is registering for, when the scoped events describe
|
|
37872
37987
|
* exactly one. More than one run means the visitor still has to choose.
|
|
@@ -37906,14 +38021,21 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
37906
38021
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
37907
38022
|
},
|
|
37908
38023
|
buildRender: (source) => {
|
|
37909
|
-
const
|
|
37910
|
-
|
|
38024
|
+
const eventSource = resolveEventRegistrationEventSource({
|
|
38025
|
+
events: source.events,
|
|
38026
|
+
wholeSeriesRunEvents: source.wholeSeriesRunEvents,
|
|
38027
|
+
failures: source.eventLoaderFailures
|
|
38028
|
+
});
|
|
38029
|
+
const scopedSourceEvents = scopeEventRegistrationSourceEvents(source, eventSource);
|
|
37911
38030
|
return {
|
|
37912
38031
|
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
|
|
37913
38032
|
hydration: {
|
|
37914
38033
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
37915
38034
|
subject: source.subject ?? null,
|
|
37916
|
-
|
|
38035
|
+
eventSource: eventSource.kind === "loaded" ? {
|
|
38036
|
+
...eventSource,
|
|
38037
|
+
events: [...scopedSourceEvents]
|
|
38038
|
+
} : eventSource,
|
|
37917
38039
|
maxTickets: source.maxTickets ?? void 0,
|
|
37918
38040
|
showVenue: source.showVenue,
|
|
37919
38041
|
showCapacity: source.showCapacity,
|
|
@@ -38103,6 +38225,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
38103
38225
|
} },
|
|
38104
38226
|
events: { $bind: { from: "data.events" } },
|
|
38105
38227
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
38228
|
+
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
38106
38229
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
38107
38230
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
38108
38231
|
stage: { $bind: {
|
|
@@ -40085,6 +40208,15 @@ const newsletterFieldSchema = z$1.object({
|
|
|
40085
40208
|
placeholder: z$1.string().optional()
|
|
40086
40209
|
});
|
|
40087
40210
|
const mailingListSignupBlockIdSchema = z$1.string().trim().min(1).transform(parseRequiredMailingListSignupBlockId);
|
|
40211
|
+
const mailingListContentVersionIdSchema = z$1.string().transform((value, ctx) => {
|
|
40212
|
+
const parsed = parseMailingListContentVersionId(value);
|
|
40213
|
+
if (parsed) return parsed;
|
|
40214
|
+
ctx.addIssue({
|
|
40215
|
+
code: z$1.ZodIssueCode.custom,
|
|
40216
|
+
message: "Invalid mailing-list content version ID"
|
|
40217
|
+
});
|
|
40218
|
+
return z$1.NEVER;
|
|
40219
|
+
});
|
|
40088
40220
|
const signedMailingListSourceTokenSchema = z$1.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
40089
40221
|
const newsletterSourceCommonSchema = z$1.object({
|
|
40090
40222
|
siteId: z$1.string().optional(),
|
|
@@ -40098,7 +40230,8 @@ const newsletterSourceCommonSchema = z$1.object({
|
|
|
40098
40230
|
const newsletterSourceSchema = z$1.discriminatedUnion("source", [
|
|
40099
40231
|
newsletterSourceCommonSchema.extend({
|
|
40100
40232
|
source: z$1.literal("block"),
|
|
40101
|
-
blockId: z$1.string().nullable().optional()
|
|
40233
|
+
blockId: z$1.string().nullable().optional(),
|
|
40234
|
+
contentVersionId: z$1.string().nullable().optional()
|
|
40102
40235
|
}),
|
|
40103
40236
|
newsletterSourceCommonSchema.extend({
|
|
40104
40237
|
source: z$1.literal("signed-footer"),
|
|
@@ -40114,6 +40247,7 @@ const newsletterDisplaySchema = z$1.object({
|
|
|
40114
40247
|
availability: z$1.enum(["ready", "unavailable"]),
|
|
40115
40248
|
className: z$1.string().nullable(),
|
|
40116
40249
|
buttonLabel: z$1.string(),
|
|
40250
|
+
successMessage: z$1.string(),
|
|
40117
40251
|
buttonVariant: newsletterButtonVariantSchema,
|
|
40118
40252
|
privacyNote: z$1.string().nullable(),
|
|
40119
40253
|
fields: z$1.array(newsletterFieldSchema),
|
|
@@ -40128,7 +40262,8 @@ const newsletterHydrationSchema = z$1.object({
|
|
|
40128
40262
|
tag: z$1.literal("block-source"),
|
|
40129
40263
|
sourceRef: z$1.object({
|
|
40130
40264
|
tag: z$1.literal("block_ref"),
|
|
40131
|
-
blockId: mailingListSignupBlockIdSchema
|
|
40265
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
40266
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
40132
40267
|
}).nullable()
|
|
40133
40268
|
}),
|
|
40134
40269
|
z$1.object({
|
|
@@ -40167,6 +40302,7 @@ function buildNewsletterDisplay(source) {
|
|
|
40167
40302
|
fields: { preset: "emailOnly" },
|
|
40168
40303
|
includeOptionalPhone: false,
|
|
40169
40304
|
buttonLabel: "Subscribe",
|
|
40305
|
+
successMessage: DEFAULT_MAILING_LIST_SUCCESS_MESSAGE,
|
|
40170
40306
|
privacyNote: null
|
|
40171
40307
|
};
|
|
40172
40308
|
const targeting = source.targeting ?? { mode: "default" };
|
|
@@ -40176,6 +40312,7 @@ function buildNewsletterDisplay(source) {
|
|
|
40176
40312
|
availability: runtimeTargetingIsAvailable(context, targeting, choices) ? "ready" : "unavailable",
|
|
40177
40313
|
className: source.className ?? null,
|
|
40178
40314
|
buttonLabel: form.buttonLabel,
|
|
40315
|
+
successMessage: form.successMessage,
|
|
40179
40316
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
40180
40317
|
privacyNote: form.privacyNote,
|
|
40181
40318
|
fields: getGlobalFormFields(form),
|
|
@@ -40206,7 +40343,7 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
40206
40343
|
function projectNewsletterFormHydrationTarget(source) {
|
|
40207
40344
|
switch (source.source) {
|
|
40208
40345
|
case "block": {
|
|
40209
|
-
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId);
|
|
40346
|
+
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
|
|
40210
40347
|
if (sourceRef?.tag === "block_ref") return {
|
|
40211
40348
|
tag: "block-source",
|
|
40212
40349
|
sourceRef
|
|
@@ -42620,9 +42757,10 @@ function cx(...classes) {
|
|
|
42620
42757
|
* Server-safe placeholder for event registration.
|
|
42621
42758
|
* Provides a static container for island hydration without importing client hooks.
|
|
42622
42759
|
*/
|
|
42623
|
-
function EventRegistrationSSR({ blockId, subject, children, ...sourceProps }) {
|
|
42760
|
+
function EventRegistrationSSR({ blockId, subject, loaderFailures, children, ...sourceProps }) {
|
|
42624
42761
|
const islandProps = buildEventRegistrationInteractiveIslandProps({
|
|
42625
42762
|
...sourceProps,
|
|
42763
|
+
eventLoaderFailures: blockId ? loaderFailures?.[blockId] : void 0,
|
|
42626
42764
|
subject: normalizeEventRegistrationPageSurfaceSubject(subject)
|
|
42627
42765
|
});
|
|
42628
42766
|
const display = islandProps.render.display;
|
|
@@ -42955,7 +43093,7 @@ function NewsletterFormSSR(props) {
|
|
|
42955
43093
|
className: clsx("newsletter-form-ssr", className),
|
|
42956
43094
|
children: /* @__PURE__ */ jsx("p", {
|
|
42957
43095
|
role: "status",
|
|
42958
|
-
children: "
|
|
43096
|
+
children: "We can’t accept signups right now. Please try again later."
|
|
42959
43097
|
})
|
|
42960
43098
|
});
|
|
42961
43099
|
const renderField = (field) => {
|
|
@@ -43001,14 +43139,18 @@ function NewsletterFormSSR(props) {
|
|
|
43001
43139
|
children: [
|
|
43002
43140
|
fields.map(renderField),
|
|
43003
43141
|
islandProps.render.hydration.choicePresentation === "visitor_choice" ? /* @__PURE__ */ jsxs("fieldset", {
|
|
43004
|
-
className: "newsletter-topics",
|
|
43005
|
-
children: [/* @__PURE__ */ jsx("legend", {
|
|
43006
|
-
className: "
|
|
43142
|
+
className: "fb-fieldset newsletter-topics",
|
|
43143
|
+
children: [/* @__PURE__ */ jsx("legend", {
|
|
43144
|
+
className: "form-label",
|
|
43145
|
+
children: "What would you like to hear about?"
|
|
43146
|
+
}), display.choices.map((choice) => /* @__PURE__ */ jsxs("label", {
|
|
43147
|
+
className: "fb-inline form-label newsletter-topic-choice",
|
|
43007
43148
|
children: [/* @__PURE__ */ jsx("input", {
|
|
43008
43149
|
type: "checkbox",
|
|
43009
43150
|
name: "mailingListChoice",
|
|
43010
|
-
value: choice.id
|
|
43011
|
-
|
|
43151
|
+
value: choice.id,
|
|
43152
|
+
className: "form-checkbox"
|
|
43153
|
+
}), /* @__PURE__ */ jsx("span", { children: choice.label })]
|
|
43012
43154
|
}, choice.id))]
|
|
43013
43155
|
}) : null,
|
|
43014
43156
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -43997,6 +44139,18 @@ function resolveChildren(nodes, context) {
|
|
|
43997
44139
|
function isReactNode(value) {
|
|
43998
44140
|
return value !== null && value !== void 0;
|
|
43999
44141
|
}
|
|
44142
|
+
function resolveNodeMetadata(nodeType, context) {
|
|
44143
|
+
return {
|
|
44144
|
+
pathBase: context.pathBase,
|
|
44145
|
+
blockId: context.blockId,
|
|
44146
|
+
blockKind: context.blockKind,
|
|
44147
|
+
blockContent: context.blockContent,
|
|
44148
|
+
fragmentRegistry: context.fragmentRegistry,
|
|
44149
|
+
previewAuthoring: context.previewAuthoring,
|
|
44150
|
+
...nodeType.toLowerCase() === "newsletter-form" ? { contentVersionId: context.contentVersionId } : {},
|
|
44151
|
+
...nodeType === "media" && context.imageResolveContext ? { imageResolveContext: context.imageResolveContext } : {}
|
|
44152
|
+
};
|
|
44153
|
+
}
|
|
44000
44154
|
/**
|
|
44001
44155
|
* Resolves a node definition into a React element.
|
|
44002
44156
|
* Handles conditionals ($when), scopes ($scopes), repeaters ($repeat), bindings ($bind), and children.
|
|
@@ -44032,13 +44186,7 @@ function resolveNode(node, context, indexFallback) {
|
|
|
44032
44186
|
const elementProps = {
|
|
44033
44187
|
...props,
|
|
44034
44188
|
key: node.key ?? indexFallback,
|
|
44035
|
-
|
|
44036
|
-
blockId: context.blockId,
|
|
44037
|
-
blockKind: context.blockKind,
|
|
44038
|
-
blockContent: context.blockContent,
|
|
44039
|
-
...node.type === "media" && context.imageResolveContext ? { imageResolveContext: context.imageResolveContext } : {},
|
|
44040
|
-
fragmentRegistry: context.fragmentRegistry,
|
|
44041
|
-
previewAuthoring: context.previewAuthoring
|
|
44189
|
+
...resolveNodeMetadata(node.type, context)
|
|
44042
44190
|
};
|
|
44043
44191
|
const element = React.createElement(component, elementProps, ...children);
|
|
44044
44192
|
if (headingDecorationPlan.kind === "skip") return element;
|
|
@@ -48048,7 +48196,7 @@ function pageBlockPosition(index, blockCount) {
|
|
|
48048
48196
|
//#endregion
|
|
48049
48197
|
//#region ../blocks/src/pageRendererContracts.ts
|
|
48050
48198
|
function buildPageRendererRootRuntime(dataContext) {
|
|
48051
|
-
const { siteId = null, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, bookingOfferingPresets = [], mailingList = { tag: "not_configured" }, eventRegistrationOverlayEnabled = false } = dataContext ?? {};
|
|
48199
|
+
const { siteId = null, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, bookingOfferingPresets = [], mailingList = { tag: "not_configured" }, eventRegistrationOverlayEnabled = false, loaderFailures = {} } = dataContext ?? {};
|
|
48052
48200
|
return {
|
|
48053
48201
|
siteId,
|
|
48054
48202
|
pageId,
|
|
@@ -48059,7 +48207,8 @@ function buildPageRendererRootRuntime(dataContext) {
|
|
|
48059
48207
|
portalToken,
|
|
48060
48208
|
bookingOfferingPresets,
|
|
48061
48209
|
mailingList,
|
|
48062
|
-
eventRegistrationOverlayEnabled
|
|
48210
|
+
eventRegistrationOverlayEnabled,
|
|
48211
|
+
loaderFailures
|
|
48063
48212
|
};
|
|
48064
48213
|
}
|
|
48065
48214
|
//#endregion
|
|
@@ -57106,7 +57255,7 @@ function collectNestedPreviewFieldConstraintEntries(field, path) {
|
|
|
57106
57255
|
}
|
|
57107
57256
|
function makeDefaultBlockComponent(args) {
|
|
57108
57257
|
const { manifest } = args;
|
|
57109
|
-
return function DefaultBlockComponent({ content, data, registry, theme, themeConfig, transforms, viewModelOverrides, pathBase, blockId, blockKind, blockBindings, editableRouteMetadataFieldIds, fragmentRegistry, imageResolveContext, previewAuthoring }) {
|
|
57258
|
+
return function DefaultBlockComponent({ content, data, registry, theme, themeConfig, transforms, viewModelOverrides, pathBase, blockId, contentVersionId, blockKind, blockBindings, editableRouteMetadataFieldIds, fragmentRegistry, imageResolveContext, previewAuthoring }) {
|
|
57110
57259
|
const perf = beginBlockRenderMeasurement();
|
|
57111
57260
|
if (!theme) throw new Error("Block rendering requires theme tokens; none were provided to makeDefaultBlockComponent");
|
|
57112
57261
|
if (!registry) throw new Error("Block rendering requires a component registry; none was provided");
|
|
@@ -57126,6 +57275,7 @@ function makeDefaultBlockComponent(args) {
|
|
|
57126
57275
|
theme: withButtonSystem(theme, themeConfig),
|
|
57127
57276
|
pathBase,
|
|
57128
57277
|
blockId,
|
|
57278
|
+
contentVersionId,
|
|
57129
57279
|
blockKind,
|
|
57130
57280
|
blockContent: mergedContent,
|
|
57131
57281
|
blockBindings,
|
|
@@ -57919,6 +58069,7 @@ function buildBlockOverrideProps(input) {
|
|
|
57919
58069
|
...blockSubjectProps(dataContext),
|
|
57920
58070
|
imageResolveContext: input.imageResolveContext,
|
|
57921
58071
|
blockId: block.id ?? null,
|
|
58072
|
+
contentVersionId: block.contentVersionId ?? null,
|
|
57922
58073
|
blockKind: block.kind
|
|
57923
58074
|
};
|
|
57924
58075
|
}
|
|
@@ -58019,6 +58170,7 @@ function toPresentationPage(page) {
|
|
|
58019
58170
|
id: block.id,
|
|
58020
58171
|
kind: block.kind,
|
|
58021
58172
|
purpose: block.purpose,
|
|
58173
|
+
...block.contentVersionId ? { contentVersionId: block.contentVersionId } : {},
|
|
58022
58174
|
...block.bindings ? { bindings: block.bindings } : {}
|
|
58023
58175
|
};
|
|
58024
58176
|
return block.admission.kind === "renderable" ? {
|
|
@@ -68254,7 +68406,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68254
68406
|
text-align: left;
|
|
68255
68407
|
}
|
|
68256
68408
|
|
|
68257
|
-
:where(.theme-scope)
|
|
68409
|
+
:where(.theme-scope)
|
|
68410
|
+
:where([data-block="customer-portal"])
|
|
68411
|
+
.cp-login__subtitle {
|
|
68258
68412
|
color: var(--cp-muted);
|
|
68259
68413
|
font-size: 0.9375rem;
|
|
68260
68414
|
text-align: left;
|
|
@@ -68281,7 +68435,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68281
68435
|
text-align: left;
|
|
68282
68436
|
}
|
|
68283
68437
|
|
|
68284
|
-
:where(.theme-scope)
|
|
68438
|
+
:where(.theme-scope)
|
|
68439
|
+
:where([data-block="customer-portal"])
|
|
68440
|
+
.cp-login__reset-link {
|
|
68285
68441
|
appearance: none;
|
|
68286
68442
|
background: none;
|
|
68287
68443
|
border: 0;
|
|
@@ -68295,11 +68451,15 @@ const containerResponsiveThemeCss = `/*
|
|
|
68295
68451
|
text-underline-offset: 0.15em;
|
|
68296
68452
|
}
|
|
68297
68453
|
|
|
68298
|
-
:where(.theme-scope)
|
|
68454
|
+
:where(.theme-scope)
|
|
68455
|
+
:where([data-block="customer-portal"])
|
|
68456
|
+
.cp-login__reset-link:hover {
|
|
68299
68457
|
color: var(--cp-text);
|
|
68300
68458
|
}
|
|
68301
68459
|
|
|
68302
|
-
:where(.theme-scope)
|
|
68460
|
+
:where(.theme-scope)
|
|
68461
|
+
:where([data-block="customer-portal"])
|
|
68462
|
+
.cp-login__reset-link:focus-visible {
|
|
68303
68463
|
outline: 2px solid currentColor;
|
|
68304
68464
|
outline-offset: 3px;
|
|
68305
68465
|
}
|
|
@@ -68344,7 +68504,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68344
68504
|
border-bottom: none;
|
|
68345
68505
|
}
|
|
68346
68506
|
|
|
68347
|
-
:where(.theme-scope)
|
|
68507
|
+
:where(.theme-scope)
|
|
68508
|
+
:where([data-block="customer-portal"])
|
|
68509
|
+
.cp-header__welcome {
|
|
68348
68510
|
font-size: 1.125rem;
|
|
68349
68511
|
font-weight: 500;
|
|
68350
68512
|
}
|
|
@@ -68360,8 +68522,14 @@ const containerResponsiveThemeCss = `/*
|
|
|
68360
68522
|
}
|
|
68361
68523
|
|
|
68362
68524
|
@keyframes cp-fade-in {
|
|
68363
|
-
from {
|
|
68364
|
-
|
|
68525
|
+
from {
|
|
68526
|
+
opacity: 0;
|
|
68527
|
+
transform: translateY(4px);
|
|
68528
|
+
}
|
|
68529
|
+
to {
|
|
68530
|
+
opacity: 1;
|
|
68531
|
+
transform: translateY(0);
|
|
68532
|
+
}
|
|
68365
68533
|
}
|
|
68366
68534
|
|
|
68367
68535
|
/* Empty state */
|
|
@@ -68450,6 +68618,77 @@ const containerResponsiveThemeCss = `/*
|
|
|
68450
68618
|
margin-top: 1rem;
|
|
68451
68619
|
}
|
|
68452
68620
|
|
|
68621
|
+
/* Event waitlists */
|
|
68622
|
+
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-waitlist-list {
|
|
68623
|
+
display: grid;
|
|
68624
|
+
gap: 1rem;
|
|
68625
|
+
}
|
|
68626
|
+
|
|
68627
|
+
:where(.theme-scope)
|
|
68628
|
+
:where([data-block="customer-portal"])
|
|
68629
|
+
.cp-waitlists
|
|
68630
|
+
> .cp-alert {
|
|
68631
|
+
margin-bottom: 1rem;
|
|
68632
|
+
}
|
|
68633
|
+
|
|
68634
|
+
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-waitlist-card {
|
|
68635
|
+
transition:
|
|
68636
|
+
border-color 180ms ease,
|
|
68637
|
+
box-shadow 180ms ease;
|
|
68638
|
+
}
|
|
68639
|
+
|
|
68640
|
+
:where(.theme-scope)
|
|
68641
|
+
:where([data-block="customer-portal"])
|
|
68642
|
+
.cp-waitlist-card--focused {
|
|
68643
|
+
border-color: var(--cp-primary);
|
|
68644
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--cp-primary) 22%, transparent);
|
|
68645
|
+
}
|
|
68646
|
+
|
|
68647
|
+
:where(.theme-scope)
|
|
68648
|
+
:where([data-block="customer-portal"])
|
|
68649
|
+
.cp-waitlist-card__summary,
|
|
68650
|
+
:where(.theme-scope)
|
|
68651
|
+
:where([data-block="customer-portal"])
|
|
68652
|
+
.cp-waitlist-card__position {
|
|
68653
|
+
font-weight: 600;
|
|
68654
|
+
}
|
|
68655
|
+
|
|
68656
|
+
:where(.theme-scope)
|
|
68657
|
+
:where([data-block="customer-portal"])
|
|
68658
|
+
.cp-waitlist-card
|
|
68659
|
+
.cp-card-body
|
|
68660
|
+
p {
|
|
68661
|
+
margin: 0.4rem 0;
|
|
68662
|
+
}
|
|
68663
|
+
|
|
68664
|
+
@container rb-site (max-width: 640px) {
|
|
68665
|
+
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
68666
|
+
:where(.theme-scope)
|
|
68667
|
+
:where([data-block="customer-portal"])
|
|
68668
|
+
.cp-waitlist-card
|
|
68669
|
+
.cp-card-header {
|
|
68670
|
+
flex-direction: column-reverse;
|
|
68671
|
+
}
|
|
68672
|
+
|
|
68673
|
+
:where(.theme-scope)
|
|
68674
|
+
:where([data-block="customer-portal"])
|
|
68675
|
+
.cp-waitlist-card
|
|
68676
|
+
.cp-card-actions {
|
|
68677
|
+
align-items: stretch;
|
|
68678
|
+
flex-direction: column;
|
|
68679
|
+
}
|
|
68680
|
+
|
|
68681
|
+
:where(.theme-scope)
|
|
68682
|
+
:where([data-block="customer-portal"])
|
|
68683
|
+
.cp-waitlist-card
|
|
68684
|
+
.cp-card-actions
|
|
68685
|
+
> * {
|
|
68686
|
+
justify-content: center;
|
|
68687
|
+
text-align: center;
|
|
68688
|
+
}
|
|
68689
|
+
}
|
|
68690
|
+
}
|
|
68691
|
+
|
|
68453
68692
|
/* Badge */
|
|
68454
68693
|
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-badge {
|
|
68455
68694
|
display: inline-flex;
|
|
@@ -68586,11 +68825,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
68586
68825
|
background: rgba(var(--tb-border), 0.2);
|
|
68587
68826
|
}
|
|
68588
68827
|
|
|
68589
|
-
:where(.theme-scope)
|
|
68828
|
+
:where(.theme-scope)
|
|
68829
|
+
:where([data-block="customer-portal"])
|
|
68830
|
+
.cp-table
|
|
68831
|
+
tbody
|
|
68832
|
+
tr:last-child
|
|
68833
|
+
td {
|
|
68590
68834
|
border-bottom: none;
|
|
68591
68835
|
}
|
|
68592
68836
|
|
|
68593
|
-
:where(.theme-scope)
|
|
68837
|
+
:where(.theme-scope)
|
|
68838
|
+
:where([data-block="customer-portal"])
|
|
68839
|
+
:is(.cp-row--past, .cp-row--muted) {
|
|
68594
68840
|
opacity: 0.65;
|
|
68595
68841
|
}
|
|
68596
68842
|
|
|
@@ -68603,7 +68849,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68603
68849
|
line-height: 1.2;
|
|
68604
68850
|
}
|
|
68605
68851
|
|
|
68606
|
-
:where(.theme-scope)
|
|
68852
|
+
:where(.theme-scope)
|
|
68853
|
+
:where([data-block="customer-portal"])
|
|
68854
|
+
.cp-row-title__badges {
|
|
68607
68855
|
margin-left: auto;
|
|
68608
68856
|
display: flex;
|
|
68609
68857
|
flex-wrap: wrap;
|
|
@@ -68611,7 +68859,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68611
68859
|
gap: 0.375rem;
|
|
68612
68860
|
}
|
|
68613
68861
|
|
|
68614
|
-
:where(.theme-scope)
|
|
68862
|
+
:where(.theme-scope)
|
|
68863
|
+
:where([data-block="customer-portal"])
|
|
68864
|
+
.cp-row-title__text {
|
|
68615
68865
|
min-width: 0;
|
|
68616
68866
|
}
|
|
68617
68867
|
|
|
@@ -68631,12 +68881,16 @@ const containerResponsiveThemeCss = `/*
|
|
|
68631
68881
|
line-height: 1.35;
|
|
68632
68882
|
}
|
|
68633
68883
|
|
|
68634
|
-
:where(.theme-scope)
|
|
68884
|
+
:where(.theme-scope)
|
|
68885
|
+
:where([data-block="customer-portal"])
|
|
68886
|
+
.cp-row-note--success {
|
|
68635
68887
|
border-left-color: rgb(var(--tb-success));
|
|
68636
68888
|
color: rgb(var(--tb-success));
|
|
68637
68889
|
}
|
|
68638
68890
|
|
|
68639
|
-
:where(.theme-scope)
|
|
68891
|
+
:where(.theme-scope)
|
|
68892
|
+
:where([data-block="customer-portal"])
|
|
68893
|
+
.cp-row-note--error {
|
|
68640
68894
|
border-left-color: rgb(var(--tb-destructive));
|
|
68641
68895
|
color: rgb(var(--tb-destructive));
|
|
68642
68896
|
}
|
|
@@ -68655,16 +68909,23 @@ const containerResponsiveThemeCss = `/*
|
|
|
68655
68909
|
white-space: nowrap;
|
|
68656
68910
|
}
|
|
68657
68911
|
|
|
68658
|
-
:where(.theme-scope)
|
|
68912
|
+
:where(.theme-scope)
|
|
68913
|
+
:where([data-block="customer-portal"])
|
|
68914
|
+
.cp-col-actions
|
|
68915
|
+
.btn-sm {
|
|
68659
68916
|
white-space: nowrap;
|
|
68660
68917
|
}
|
|
68661
68918
|
|
|
68662
|
-
:where(.theme-scope)
|
|
68919
|
+
:where(.theme-scope)
|
|
68920
|
+
:where([data-block="customer-portal"])
|
|
68921
|
+
.cp-row-title__link {
|
|
68663
68922
|
color: inherit;
|
|
68664
68923
|
text-decoration: none;
|
|
68665
68924
|
}
|
|
68666
68925
|
|
|
68667
|
-
:where(.theme-scope)
|
|
68926
|
+
:where(.theme-scope)
|
|
68927
|
+
:where([data-block="customer-portal"])
|
|
68928
|
+
.cp-row-title__link:hover {
|
|
68668
68929
|
text-decoration: underline;
|
|
68669
68930
|
text-decoration-thickness: 2px;
|
|
68670
68931
|
text-underline-offset: 2px;
|
|
@@ -68686,7 +68947,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68686
68947
|
}
|
|
68687
68948
|
|
|
68688
68949
|
/* Profile actions */
|
|
68689
|
-
:where(.theme-scope)
|
|
68950
|
+
:where(.theme-scope)
|
|
68951
|
+
:where([data-block="customer-portal"])
|
|
68952
|
+
.cp-profile__actions {
|
|
68690
68953
|
display: flex;
|
|
68691
68954
|
gap: 0.75rem;
|
|
68692
68955
|
margin-top: 1rem;
|
|
@@ -68753,28 +69016,39 @@ const containerResponsiveThemeCss = `/*
|
|
|
68753
69016
|
gap: 0.375rem;
|
|
68754
69017
|
}
|
|
68755
69018
|
|
|
68756
|
-
:where(.theme-scope)
|
|
69019
|
+
:where(.theme-scope)
|
|
69020
|
+
:where([data-block="customer-portal"])
|
|
69021
|
+
.cp-guest-edit-row__index {
|
|
68757
69022
|
font-size: 0.75rem;
|
|
68758
69023
|
font-weight: 500;
|
|
68759
69024
|
color: var(--cp-muted);
|
|
68760
69025
|
}
|
|
68761
69026
|
|
|
68762
|
-
:where(.theme-scope)
|
|
69027
|
+
:where(.theme-scope)
|
|
69028
|
+
:where([data-block="customer-portal"])
|
|
69029
|
+
.cp-guest-edit-row__fields {
|
|
68763
69030
|
display: flex;
|
|
68764
69031
|
gap: 0.5rem;
|
|
68765
69032
|
}
|
|
68766
69033
|
|
|
68767
|
-
:where(.theme-scope)
|
|
69034
|
+
:where(.theme-scope)
|
|
69035
|
+
:where([data-block="customer-portal"])
|
|
69036
|
+
.cp-guest-edit-row__fields
|
|
69037
|
+
input {
|
|
68768
69038
|
flex: 1;
|
|
68769
69039
|
min-width: 0;
|
|
68770
69040
|
}
|
|
68771
69041
|
|
|
68772
|
-
:where(.theme-scope)
|
|
69042
|
+
:where(.theme-scope)
|
|
69043
|
+
:where([data-block="customer-portal"])
|
|
69044
|
+
.cp-guest-edit-row__error {
|
|
68773
69045
|
font-size: 0.75rem;
|
|
68774
69046
|
color: var(--cp-error);
|
|
68775
69047
|
}
|
|
68776
69048
|
|
|
68777
|
-
:where(.theme-scope)
|
|
69049
|
+
:where(.theme-scope)
|
|
69050
|
+
:where([data-block="customer-portal"])
|
|
69051
|
+
.cp-guests__actions {
|
|
68778
69052
|
display: flex;
|
|
68779
69053
|
gap: 0.5rem;
|
|
68780
69054
|
margin-top: 0.5rem;
|
|
@@ -68788,13 +69062,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
68788
69062
|
}
|
|
68789
69063
|
|
|
68790
69064
|
/* In the actions modal, tiles sit on a surface modal, so use "background" for contrast. */
|
|
68791
|
-
:where(.theme-scope)
|
|
69065
|
+
:where(.theme-scope)
|
|
69066
|
+
:where([data-block="customer-portal"])
|
|
69067
|
+
.cp-actions-list
|
|
69068
|
+
:where(.rb-tile) {
|
|
68792
69069
|
--rb-event-tile-bg: rgb(var(--tb-background));
|
|
68793
69070
|
--rb-event-tile-border: rgb(var(--tb-border));
|
|
68794
69071
|
}
|
|
68795
69072
|
|
|
68796
69073
|
/* Actions trigger: icon-only kebab button */
|
|
68797
|
-
:where(.theme-scope)
|
|
69074
|
+
:where(.theme-scope)
|
|
69075
|
+
:where([data-block="customer-portal"])
|
|
69076
|
+
.cp-actions-trigger.btn-sm {
|
|
68798
69077
|
padding: 0.35rem !important;
|
|
68799
69078
|
line-height: 1 !important;
|
|
68800
69079
|
min-width: 32px;
|
|
@@ -68818,17 +69097,24 @@ const containerResponsiveThemeCss = `/*
|
|
|
68818
69097
|
gap: 0.25rem;
|
|
68819
69098
|
}
|
|
68820
69099
|
|
|
68821
|
-
:where(.theme-scope)
|
|
69100
|
+
:where(.theme-scope)
|
|
69101
|
+
:where([data-block="customer-portal"])
|
|
69102
|
+
.cp-action-tile__title {
|
|
68822
69103
|
font-weight: 600;
|
|
68823
69104
|
font-size: 0.9375rem;
|
|
68824
69105
|
}
|
|
68825
69106
|
|
|
68826
|
-
:where(.theme-scope)
|
|
69107
|
+
:where(.theme-scope)
|
|
69108
|
+
:where([data-block="customer-portal"])
|
|
69109
|
+
.cp-action-tile__desc {
|
|
68827
69110
|
font-size: 0.875rem;
|
|
68828
69111
|
line-height: 1.35;
|
|
68829
69112
|
}
|
|
68830
69113
|
|
|
68831
|
-
:where(.theme-scope)
|
|
69114
|
+
:where(.theme-scope)
|
|
69115
|
+
:where([data-block="customer-portal"])
|
|
69116
|
+
.cp-action-tile--danger
|
|
69117
|
+
.cp-action-tile__title {
|
|
68832
69118
|
color: rgb(var(--tb-destructive));
|
|
68833
69119
|
}
|
|
68834
69120
|
|
|
@@ -68850,7 +69136,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68850
69136
|
text-decoration: underline;
|
|
68851
69137
|
}
|
|
68852
69138
|
|
|
68853
|
-
:where(.theme-scope)
|
|
69139
|
+
:where(.theme-scope)
|
|
69140
|
+
:where([data-block="customer-portal"])
|
|
69141
|
+
.cp-btn--link:hover {
|
|
68854
69142
|
color: var(--cp-primary-hover);
|
|
68855
69143
|
}
|
|
68856
69144
|
|
|
@@ -68889,34 +69177,48 @@ const containerResponsiveThemeCss = `/*
|
|
|
68889
69177
|
margin-top: 0.75rem;
|
|
68890
69178
|
}
|
|
68891
69179
|
|
|
68892
|
-
:where(.theme-scope)
|
|
69180
|
+
:where(.theme-scope)
|
|
69181
|
+
:where([data-block="customer-portal"])
|
|
69182
|
+
.cp-cancel-confirm__title {
|
|
68893
69183
|
font-weight: 600;
|
|
68894
69184
|
margin-bottom: 0.5rem;
|
|
68895
69185
|
}
|
|
68896
69186
|
|
|
68897
|
-
:where(.theme-scope)
|
|
69187
|
+
:where(.theme-scope)
|
|
69188
|
+
:where([data-block="customer-portal"])
|
|
69189
|
+
.cp-cancel-confirm__message {
|
|
68898
69190
|
margin-bottom: 0.25rem;
|
|
68899
69191
|
}
|
|
68900
69192
|
|
|
68901
|
-
:where(.theme-scope)
|
|
69193
|
+
:where(.theme-scope)
|
|
69194
|
+
:where([data-block="customer-portal"])
|
|
69195
|
+
.cp-cancel-confirm__warning {
|
|
68902
69196
|
margin-bottom: 0.75rem;
|
|
68903
69197
|
}
|
|
68904
69198
|
|
|
68905
|
-
:where(.theme-scope)
|
|
69199
|
+
:where(.theme-scope)
|
|
69200
|
+
:where([data-block="customer-portal"])
|
|
69201
|
+
.cp-cancel-confirm__actions {
|
|
68906
69202
|
display: flex;
|
|
68907
69203
|
gap: 0.75rem;
|
|
68908
69204
|
}
|
|
68909
69205
|
|
|
68910
69206
|
/* Membership actions */
|
|
68911
|
-
:where(.theme-scope)
|
|
69207
|
+
:where(.theme-scope)
|
|
69208
|
+
:where([data-block="customer-portal"])
|
|
69209
|
+
.cp-membership-actions {
|
|
68912
69210
|
margin-top: 0.75rem;
|
|
68913
69211
|
}
|
|
68914
69212
|
|
|
68915
|
-
:where(.theme-scope)
|
|
69213
|
+
:where(.theme-scope)
|
|
69214
|
+
:where([data-block="customer-portal"])
|
|
69215
|
+
.cp-section-actions {
|
|
68916
69216
|
margin-top: 1rem;
|
|
68917
69217
|
}
|
|
68918
69218
|
|
|
68919
|
-
:where(.theme-scope)
|
|
69219
|
+
:where(.theme-scope)
|
|
69220
|
+
:where([data-block="customer-portal"])
|
|
69221
|
+
.cp-card-subtitle--spaced {
|
|
68920
69222
|
margin-top: 0.75rem;
|
|
68921
69223
|
}
|
|
68922
69224
|
|
|
@@ -68940,9 +69242,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
68940
69242
|
display: none;
|
|
68941
69243
|
}
|
|
68942
69244
|
|
|
68943
|
-
:where(.theme-scope)
|
|
68944
|
-
|
|
68945
|
-
|
|
69245
|
+
:where(.theme-scope)
|
|
69246
|
+
:where([data-block="customer-portal"])
|
|
69247
|
+
.cp-table
|
|
69248
|
+
:is(th, td).cp-col-guests,
|
|
69249
|
+
:where(.theme-scope)
|
|
69250
|
+
:where([data-block="customer-portal"])
|
|
69251
|
+
.cp-table
|
|
69252
|
+
:is(th, td).cp-col-tickets,
|
|
69253
|
+
:where(.theme-scope)
|
|
69254
|
+
:where([data-block="customer-portal"])
|
|
69255
|
+
.cp-table
|
|
69256
|
+
:is(th, td).cp-col-actions {
|
|
68946
69257
|
display: none;
|
|
68947
69258
|
}
|
|
68948
69259
|
|
|
@@ -68951,24 +69262,34 @@ const containerResponsiveThemeCss = `/*
|
|
|
68951
69262
|
}
|
|
68952
69263
|
|
|
68953
69264
|
/* Make the cell a positioning context for the kebab */
|
|
68954
|
-
:where(.theme-scope)
|
|
69265
|
+
:where(.theme-scope)
|
|
69266
|
+
:where([data-block="customer-portal"])
|
|
69267
|
+
.cp-row
|
|
69268
|
+
> td:first-child {
|
|
68955
69269
|
position: relative;
|
|
68956
69270
|
padding-right: 2.5rem;
|
|
68957
69271
|
}
|
|
68958
69272
|
|
|
68959
69273
|
/* Position kebab in top-right of the cell */
|
|
68960
|
-
:where(.theme-scope)
|
|
69274
|
+
:where(.theme-scope)
|
|
69275
|
+
:where([data-block="customer-portal"])
|
|
69276
|
+
.cp-row-mobile-actions {
|
|
68961
69277
|
position: absolute;
|
|
68962
69278
|
top: 0.5rem;
|
|
68963
69279
|
right: 0.5rem;
|
|
68964
69280
|
margin-top: 0;
|
|
68965
69281
|
}
|
|
68966
69282
|
|
|
68967
|
-
:where(.theme-scope)
|
|
69283
|
+
:where(.theme-scope)
|
|
69284
|
+
:where([data-block="customer-portal"])
|
|
69285
|
+
.cp-row-mobile-actions
|
|
69286
|
+
.btn-sm {
|
|
68968
69287
|
width: auto;
|
|
68969
69288
|
}
|
|
68970
69289
|
|
|
68971
|
-
:where(.theme-scope)
|
|
69290
|
+
:where(.theme-scope)
|
|
69291
|
+
:where([data-block="customer-portal"])
|
|
69292
|
+
.cp-profile__edit {
|
|
68972
69293
|
align-self: stretch;
|
|
68973
69294
|
}
|
|
68974
69295
|
}
|
|
@@ -69416,6 +69737,30 @@ const containerResponsiveThemeCss = `/*
|
|
|
69416
69737
|
gap: 0.25rem;
|
|
69417
69738
|
}
|
|
69418
69739
|
|
|
69740
|
+
/* Topic choices (visitor picks what to hear about). Same treatment as the
|
|
69741
|
+
form block's .fb-fieldset / .fb-inline, defined here because the newsletter
|
|
69742
|
+
form also renders inside contact-newsletter and the site footer. */
|
|
69743
|
+
:where(.theme-scope) .newsletter-topics {
|
|
69744
|
+
display: flex;
|
|
69745
|
+
flex-direction: column;
|
|
69746
|
+
gap: 0.5rem;
|
|
69747
|
+
border: none;
|
|
69748
|
+
padding: 0;
|
|
69749
|
+
margin: 0;
|
|
69750
|
+
min-width: 0;
|
|
69751
|
+
}
|
|
69752
|
+
|
|
69753
|
+
:where(.theme-scope) .newsletter-topics > legend {
|
|
69754
|
+
padding: 0;
|
|
69755
|
+
margin-bottom: 0.25rem;
|
|
69756
|
+
}
|
|
69757
|
+
|
|
69758
|
+
:where(.theme-scope) .newsletter-topic-choice {
|
|
69759
|
+
display: flex;
|
|
69760
|
+
align-items: center;
|
|
69761
|
+
gap: 0.5rem;
|
|
69762
|
+
}
|
|
69763
|
+
|
|
69419
69764
|
/* Required indicator */
|
|
69420
69765
|
:where(.theme-scope) .newsletter-required {
|
|
69421
69766
|
color: rgb(var(--tb-primary));
|
|
@@ -69465,6 +69810,10 @@ const containerResponsiveThemeCss = `/*
|
|
|
69465
69810
|
flex-shrink: 0;
|
|
69466
69811
|
}
|
|
69467
69812
|
|
|
69813
|
+
:where(.theme-scope) .newsletter-inline .newsletter-topics {
|
|
69814
|
+
flex-basis: 100%;
|
|
69815
|
+
}
|
|
69816
|
+
|
|
69468
69817
|
/* Mobile fallback for inline variant */
|
|
69469
69818
|
@container rb-site (max-width: 640px) {
|
|
69470
69819
|
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
@@ -71962,7 +72311,7 @@ function PageContent(props) {
|
|
|
71962
72311
|
previewToken,
|
|
71963
72312
|
resolvedData,
|
|
71964
72313
|
bookingOfferingPresets: bookingOfferingPresets ?? [],
|
|
71965
|
-
mailingList,
|
|
72314
|
+
mailingList: mailingList ?? dataContext?.mailingList,
|
|
71966
72315
|
bookingTimeZone: resolveSdkBookingTimeZone(bookingTimeZone),
|
|
71967
72316
|
routes: routeMap,
|
|
71968
72317
|
pagesByIdentifier,
|
|
@@ -73813,9 +74162,11 @@ function convertPageResponseBlock(block) {
|
|
|
73813
74162
|
if (typeof block.id !== "string" && block.id !== null) throw new Error(`Invalid block id in page: expected string or null, got ${typeof block.id}`);
|
|
73814
74163
|
if (typeof block.kind !== "string") throw new Error(`Invalid block kind in page: expected string, got ${typeof block.kind}`);
|
|
73815
74164
|
if (typeof block.purpose !== "string") throw new Error(`Invalid block purpose in page: expected string, got ${typeof block.purpose}`);
|
|
74165
|
+
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}`);
|
|
73816
74166
|
const admission = readInvalidBlockAdmission(block.admission);
|
|
73817
74167
|
return {
|
|
73818
74168
|
id: block.id,
|
|
74169
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
73819
74170
|
kind: block.kind,
|
|
73820
74171
|
purpose: block.purpose,
|
|
73821
74172
|
content: sanitizeSdkRuntimeBlockContent(block.kind, readContentRecord(block.content) ?? {}),
|
|
@@ -73846,6 +74197,7 @@ function buildRenderablePageOutline(input) {
|
|
|
73846
74197
|
function admitSdkRuntimePageBlock(block, customBlocks) {
|
|
73847
74198
|
const base = {
|
|
73848
74199
|
id: block.id,
|
|
74200
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
73849
74201
|
kind: block.kind,
|
|
73850
74202
|
purpose: block.purpose,
|
|
73851
74203
|
...block.bindings ? { bindings: block.bindings } : {}
|
|
@@ -75591,6 +75943,14 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
|
|
|
75591
75943
|
auth: "public",
|
|
75592
75944
|
responseKind: "json"
|
|
75593
75945
|
},
|
|
75946
|
+
getPublicBookingServiceBySlug: {
|
|
75947
|
+
path: "/public/bookings/services/by-slug/{slug}",
|
|
75948
|
+
method: "GET",
|
|
75949
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
|
|
75950
|
+
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
75951
|
+
auth: "public",
|
|
75952
|
+
responseKind: "json"
|
|
75953
|
+
},
|
|
75594
75954
|
getPublicBookingResourcesReference: {
|
|
75595
75955
|
path: "/public/bookings/resources/reference",
|
|
75596
75956
|
method: "GET",
|
|
@@ -76143,16 +76503,110 @@ const PUBLIC_READ_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
76143
76503
|
responseKind: "json"
|
|
76144
76504
|
}
|
|
76145
76505
|
});
|
|
76506
|
+
//#endregion
|
|
76507
|
+
//#region ../api/src/publicOnboardingAttemptEndpointDefinitions.ts
|
|
76508
|
+
/**
|
|
76509
|
+
* The anonymous onboarding attempt, addressed by its opaque resume token.
|
|
76510
|
+
*
|
|
76511
|
+
* Every route here is reached before there is an account, so none of them can
|
|
76512
|
+
* be scoped to a site or a user: the token is the whole credential. They are
|
|
76513
|
+
* kept together so that stays obvious.
|
|
76514
|
+
*/
|
|
76515
|
+
const PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
76516
|
+
createPublicOnboardingAttempt: {
|
|
76517
|
+
path: "/public/onboarding/attempts",
|
|
76518
|
+
method: "POST",
|
|
76519
|
+
auth: "public",
|
|
76520
|
+
errors: [],
|
|
76521
|
+
responseKind: "json"
|
|
76522
|
+
},
|
|
76523
|
+
createPublicOnboardingLogoUploadUrl: {
|
|
76524
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
|
|
76525
|
+
method: "POST",
|
|
76526
|
+
auth: "public",
|
|
76527
|
+
errors: [],
|
|
76528
|
+
responseKind: "json"
|
|
76529
|
+
},
|
|
76530
|
+
uploadPublicOnboardingLogo: {
|
|
76531
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo",
|
|
76532
|
+
method: "POST",
|
|
76533
|
+
auth: "public",
|
|
76534
|
+
errors: [],
|
|
76535
|
+
responseKind: "json"
|
|
76536
|
+
},
|
|
76537
|
+
getPublicOnboardingAttempt: {
|
|
76538
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
76539
|
+
method: "GET",
|
|
76540
|
+
auth: "public",
|
|
76541
|
+
errors: [],
|
|
76542
|
+
responseKind: "json"
|
|
76543
|
+
},
|
|
76544
|
+
getPublicOnboardingAttemptProgress: {
|
|
76545
|
+
path: "/public/onboarding/attempts/{attemptToken}/status",
|
|
76546
|
+
method: "GET",
|
|
76547
|
+
auth: "public",
|
|
76548
|
+
errors: [],
|
|
76549
|
+
responseKind: "json"
|
|
76550
|
+
},
|
|
76551
|
+
updatePublicOnboardingAttempt: {
|
|
76552
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
76553
|
+
method: "PATCH",
|
|
76554
|
+
auth: "public",
|
|
76555
|
+
errors: [],
|
|
76556
|
+
responseKind: "json"
|
|
76557
|
+
},
|
|
76558
|
+
runPublicOnboardingAttempt: {
|
|
76559
|
+
path: "/public/onboarding/attempts/{attemptToken}/run",
|
|
76560
|
+
method: "POST",
|
|
76561
|
+
auth: "public",
|
|
76562
|
+
errors: [],
|
|
76563
|
+
responseKind: "json"
|
|
76564
|
+
},
|
|
76565
|
+
resendPublicOnboardingAttemptConfirmation: {
|
|
76566
|
+
path: "/public/onboarding/attempts/{attemptToken}/resend-confirmation",
|
|
76567
|
+
method: "POST",
|
|
76568
|
+
auth: "public",
|
|
76569
|
+
errors: [],
|
|
76570
|
+
responseKind: "json"
|
|
76571
|
+
}
|
|
76572
|
+
});
|
|
76573
|
+
//#endregion
|
|
76574
|
+
//#region ../api/src/billingEndpointDefinitions.ts
|
|
76575
|
+
const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
76576
|
+
adminChangePlan: {
|
|
76577
|
+
path: "/admin/billing/plan",
|
|
76578
|
+
method: "POST",
|
|
76579
|
+
tags: ["admin", "billing"],
|
|
76580
|
+
auth: "admin",
|
|
76581
|
+
responseKind: "json"
|
|
76582
|
+
},
|
|
76583
|
+
changePlan: {
|
|
76584
|
+
path: "/billing/plan/change",
|
|
76585
|
+
method: "POST",
|
|
76586
|
+
tags: ["billing"],
|
|
76587
|
+
auth: "user",
|
|
76588
|
+
responseKind: "json"
|
|
76589
|
+
},
|
|
76590
|
+
createBillingPortalSession: {
|
|
76591
|
+
path: "/billing/portal/session",
|
|
76592
|
+
method: "POST",
|
|
76593
|
+
tags: ["billing"],
|
|
76594
|
+
auth: "user",
|
|
76595
|
+
responseKind: "json"
|
|
76596
|
+
}
|
|
76597
|
+
});
|
|
76146
76598
|
({
|
|
76147
76599
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
76600
|
+
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
76148
76601
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
76149
76602
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
76150
|
-
...PUBLIC_READ_ENDPOINT_DEFINITIONS
|
|
76603
|
+
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
76604
|
+
...BILLING_ENDPOINT_DEFINITIONS
|
|
76151
76605
|
}), 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, {
|
|
76152
76606
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
76153
76607
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
76154
76608
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
76155
|
-
}, 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 };
|
|
76609
|
+
}, 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 };
|
|
76156
76610
|
z$1.object({ refreshToken: z$1.string().min(1).max(4096) }).strict();
|
|
76157
76611
|
z$1.object({
|
|
76158
76612
|
accessToken: z$1.string().min(1).max(4096),
|
|
@@ -76709,7 +77163,17 @@ const riverbankSiteConfigInputSchema = z$1.object({
|
|
|
76709
77163
|
z$1.object({
|
|
76710
77164
|
config: riverbankSiteConfigInputSchema,
|
|
76711
77165
|
forceContentTypes: z$1.boolean().optional(),
|
|
76712
|
-
mode: z$1.enum(["apply", "preview"]).optional()
|
|
77166
|
+
mode: z$1.enum(["apply", "preview"]).optional(),
|
|
77167
|
+
expectedMailingListProviderScope: z$1.unknown().transform((value, ctx) => {
|
|
77168
|
+
if (value === void 0) return void 0;
|
|
77169
|
+
const parsed = parseMailingListProviderScope(value);
|
|
77170
|
+
if (parsed.ok) return parsed.value;
|
|
77171
|
+
ctx.addIssue({
|
|
77172
|
+
code: "custom",
|
|
77173
|
+
message: "Invalid mailing-list provider scope"
|
|
77174
|
+
});
|
|
77175
|
+
return z$1.NEVER;
|
|
77176
|
+
}).optional()
|
|
76713
77177
|
}).strict();
|
|
76714
77178
|
//#endregion
|
|
76715
77179
|
//#region ../api/src/sdkThemeWire.ts
|