@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
|
|
@@ -27772,6 +27820,28 @@ const bookingRequirementConsentFieldSchema = z$1.object({
|
|
|
27772
27820
|
const bookingConsentCarrierSchema = z$1.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
27773
27821
|
//#endregion
|
|
27774
27822
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
27823
|
+
const publicEventLoaderQuerySchemaShape = {
|
|
27824
|
+
limit: z$1.string().optional(),
|
|
27825
|
+
from: z$1.string().optional(),
|
|
27826
|
+
to: z$1.string().optional(),
|
|
27827
|
+
afterStartsAt: z$1.string().optional(),
|
|
27828
|
+
afterId: z$1.string().optional(),
|
|
27829
|
+
categoryIds: z$1.string().optional(),
|
|
27830
|
+
venueId: z$1.string().optional(),
|
|
27831
|
+
staffMemberId: z$1.string().optional(),
|
|
27832
|
+
eventSurface: z$1.string().optional(),
|
|
27833
|
+
eventPresets: z$1.string().optional(),
|
|
27834
|
+
scheduleScope: z$1.string().optional(),
|
|
27835
|
+
seriesId: z$1.string().optional(),
|
|
27836
|
+
seriesIds: z$1.string().optional(),
|
|
27837
|
+
runSeriesId: z$1.string().optional(),
|
|
27838
|
+
seriesSlug: z$1.string().optional(),
|
|
27839
|
+
includeOccurrenceId: z$1.string().optional(),
|
|
27840
|
+
readIntent: z$1.string().optional(),
|
|
27841
|
+
detailLevel: z$1.string().optional(),
|
|
27842
|
+
readProfile: z$1.string().optional()
|
|
27843
|
+
};
|
|
27844
|
+
z$1.object(publicEventLoaderQuerySchemaShape);
|
|
27775
27845
|
const eventPresetSchema = z$1.enum([
|
|
27776
27846
|
"event",
|
|
27777
27847
|
"class",
|
|
@@ -31220,7 +31290,7 @@ const publicPricingSchema = z$1.object({
|
|
|
31220
31290
|
singlePriceAmount: z$1.number().nullable(),
|
|
31221
31291
|
slidingMinAmount: z$1.number().nullable(),
|
|
31222
31292
|
slidingMaxAmount: z$1.number().nullable(),
|
|
31223
|
-
options: z$1.array(publicPricingOptionSchema)
|
|
31293
|
+
options: z$1.array(publicPricingOptionSchema).readonly()
|
|
31224
31294
|
});
|
|
31225
31295
|
const publicAppointmentServiceSchema = z$1.object({
|
|
31226
31296
|
id: z$1.string().min(1),
|
|
@@ -37879,6 +37949,44 @@ function toWholeSeriesRegistrationEvents(events) {
|
|
|
37879
37949
|
return groupPublicEventsByRun(events).map(toWholeSeriesRegistrationEvent).filter((event) => event !== null);
|
|
37880
37950
|
}
|
|
37881
37951
|
//#endregion
|
|
37952
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.ts
|
|
37953
|
+
const { limit: _rawLimit, eventSurface: _rawEventSurface, scheduleScope: _rawScheduleScope, detailLevel: _rawDetailLevel, ...stringEventQueryShape } = publicEventLoaderQuerySchemaShape;
|
|
37954
|
+
const eventRecoveryRequestSchema = z$1.object({
|
|
37955
|
+
...stringEventQueryShape,
|
|
37956
|
+
limit: z$1.coerce.number().int().positive().optional(),
|
|
37957
|
+
eventSurface: z$1.enum(eventSurfaceScopeValues).optional(),
|
|
37958
|
+
scheduleScope: z$1.enum(eventScheduleScopeValues).optional(),
|
|
37959
|
+
detailLevel: z$1.enum(["full", "listing"]).optional(),
|
|
37960
|
+
stage: z$1.enum(["preview", "published"]).optional()
|
|
37961
|
+
});
|
|
37962
|
+
function resolveEventRegistrationEventSource(input) {
|
|
37963
|
+
if (input.wholeSeriesRunEvents != null) return {
|
|
37964
|
+
kind: "loaded",
|
|
37965
|
+
events: input.wholeSeriesRunEvents
|
|
37966
|
+
};
|
|
37967
|
+
if (input.events != null) return {
|
|
37968
|
+
kind: "loaded",
|
|
37969
|
+
events: input.events
|
|
37970
|
+
};
|
|
37971
|
+
return {
|
|
37972
|
+
kind: "unresolved",
|
|
37973
|
+
request: parseEventLoaderRecoveryRequest(input.failures?.wholeSeriesRunEvents ?? input.failures?.events)
|
|
37974
|
+
};
|
|
37975
|
+
}
|
|
37976
|
+
const eventLoaderFailureSchema = z$1.object({
|
|
37977
|
+
endpoint: z$1.literal("listPublicEvents"),
|
|
37978
|
+
params: eventRecoveryRequestSchema.extend({ siteId: z$1.string().optional() })
|
|
37979
|
+
});
|
|
37980
|
+
function parseEventLoaderRecoveryRequest(value) {
|
|
37981
|
+
const parsed = eventLoaderFailureSchema.safeParse(value);
|
|
37982
|
+
if (!parsed.success) return null;
|
|
37983
|
+
const { siteId: _siteId, stage, ...params } = parsed.data.params;
|
|
37984
|
+
return {
|
|
37985
|
+
...params,
|
|
37986
|
+
stage: stage ?? "published"
|
|
37987
|
+
};
|
|
37988
|
+
}
|
|
37989
|
+
//#endregion
|
|
37882
37990
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
37883
37991
|
const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = [
|
|
37884
37992
|
"Date",
|
|
@@ -37896,8 +38004,6 @@ const eventRegistrationPublicEventSchema = z$1.preprocess(normalizeEventRegistra
|
|
|
37896
38004
|
const eventRegistrationHydrationSchemaShape = {
|
|
37897
38005
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
37898
38006
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
37899
|
-
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37900
|
-
wholeSeriesRunEvents: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37901
38007
|
maxTickets: z$1.string().optional(),
|
|
37902
38008
|
showVenue: z$1.boolean().optional(),
|
|
37903
38009
|
showCapacity: z$1.boolean().optional(),
|
|
@@ -37909,12 +38015,22 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
37909
38015
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
37910
38016
|
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
37911
38017
|
};
|
|
38018
|
+
const eventRegistrationEventSourceSchema = z$1.discriminatedUnion("kind", [z$1.object({
|
|
38019
|
+
kind: z$1.literal("loaded"),
|
|
38020
|
+
events: z$1.array(eventRegistrationPublicEventSchema)
|
|
38021
|
+
}), z$1.object({
|
|
38022
|
+
kind: z$1.literal("unresolved"),
|
|
38023
|
+
request: eventRecoveryRequestSchema.nullable()
|
|
38024
|
+
})]);
|
|
37912
38025
|
const eventRegistrationSourceSchema = z$1.object({
|
|
37913
38026
|
siteId: z$1.string().optional(),
|
|
37914
38027
|
apiBaseUrl: z$1.string().optional(),
|
|
37915
38028
|
portalToken: z$1.string().nullable().optional(),
|
|
37916
38029
|
previewToken: z$1.string().nullable().optional(),
|
|
37917
38030
|
...eventRegistrationHydrationSchemaShape,
|
|
38031
|
+
events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
38032
|
+
wholeSeriesRunEvents: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
38033
|
+
eventLoaderFailures: z$1.record(z$1.string(), z$1.unknown()).nullable().optional(),
|
|
37918
38034
|
className: z$1.string().nullable().optional(),
|
|
37919
38035
|
buttonText: z$1.string().nullable().optional(),
|
|
37920
38036
|
maxTickets: z$1.string().nullable().optional(),
|
|
@@ -37935,7 +38051,10 @@ const eventRegistrationDisplaySchema = z$1.discriminatedUnion("state", [z$1.obje
|
|
|
37935
38051
|
titleText: z$1.string(),
|
|
37936
38052
|
bodyText: z$1.string()
|
|
37937
38053
|
})]);
|
|
37938
|
-
const eventRegistrationHydrationSchema = z$1.object(
|
|
38054
|
+
const eventRegistrationHydrationSchema = z$1.object({
|
|
38055
|
+
...eventRegistrationHydrationSchemaShape,
|
|
38056
|
+
eventSource: eventRegistrationEventSourceSchema
|
|
38057
|
+
});
|
|
37939
38058
|
const eventRegistrationRenderSchema = z$1.object({
|
|
37940
38059
|
display: eventRegistrationDisplaySchema,
|
|
37941
38060
|
hydration: eventRegistrationHydrationSchema
|
|
@@ -37994,16 +38113,12 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
|
37994
38113
|
function toScopedEventRegistrationEvents(scopedSourceEvents) {
|
|
37995
38114
|
return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
|
|
37996
38115
|
}
|
|
37997
|
-
function scopeEventRegistrationSourceEvents(source) {
|
|
37998
|
-
return resolveEventRegistrationScopedEvents(
|
|
38116
|
+
function scopeEventRegistrationSourceEvents(source, eventSource) {
|
|
38117
|
+
return resolveEventRegistrationScopedEvents(eventSource.kind === "loaded" ? eventSource.events : [], {
|
|
37999
38118
|
occurrenceContext: source.occurrenceContext,
|
|
38000
38119
|
subject: source.subject
|
|
38001
38120
|
});
|
|
38002
38121
|
}
|
|
38003
|
-
function resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents) {
|
|
38004
|
-
if (source.events == null && source.wholeSeriesRunEvents == null) return null;
|
|
38005
|
-
return [...scopedSourceEvents];
|
|
38006
|
-
}
|
|
38007
38122
|
/**
|
|
38008
38123
|
* The one run this surface is registering for, when the scoped events describe
|
|
38009
38124
|
* exactly one. More than one run means the visitor still has to choose.
|
|
@@ -38043,14 +38158,21 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
38043
38158
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
38044
38159
|
},
|
|
38045
38160
|
buildRender: (source) => {
|
|
38046
|
-
const
|
|
38047
|
-
|
|
38161
|
+
const eventSource = resolveEventRegistrationEventSource({
|
|
38162
|
+
events: source.events,
|
|
38163
|
+
wholeSeriesRunEvents: source.wholeSeriesRunEvents,
|
|
38164
|
+
failures: source.eventLoaderFailures
|
|
38165
|
+
});
|
|
38166
|
+
const scopedSourceEvents = scopeEventRegistrationSourceEvents(source, eventSource);
|
|
38048
38167
|
return {
|
|
38049
38168
|
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
|
|
38050
38169
|
hydration: {
|
|
38051
38170
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
38052
38171
|
subject: source.subject ?? null,
|
|
38053
|
-
|
|
38172
|
+
eventSource: eventSource.kind === "loaded" ? {
|
|
38173
|
+
...eventSource,
|
|
38174
|
+
events: [...scopedSourceEvents]
|
|
38175
|
+
} : eventSource,
|
|
38054
38176
|
maxTickets: source.maxTickets ?? void 0,
|
|
38055
38177
|
showVenue: source.showVenue,
|
|
38056
38178
|
showCapacity: source.showCapacity,
|
|
@@ -38240,6 +38362,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
38240
38362
|
} },
|
|
38241
38363
|
events: { $bind: { from: "data.events" } },
|
|
38242
38364
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
38365
|
+
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
38243
38366
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
38244
38367
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
38245
38368
|
stage: { $bind: {
|
|
@@ -40222,6 +40345,15 @@ const newsletterFieldSchema = z$1.object({
|
|
|
40222
40345
|
placeholder: z$1.string().optional()
|
|
40223
40346
|
});
|
|
40224
40347
|
const mailingListSignupBlockIdSchema = z$1.string().trim().min(1).transform(parseRequiredMailingListSignupBlockId);
|
|
40348
|
+
const mailingListContentVersionIdSchema = z$1.string().transform((value, ctx) => {
|
|
40349
|
+
const parsed = parseMailingListContentVersionId(value);
|
|
40350
|
+
if (parsed) return parsed;
|
|
40351
|
+
ctx.addIssue({
|
|
40352
|
+
code: z$1.ZodIssueCode.custom,
|
|
40353
|
+
message: "Invalid mailing-list content version ID"
|
|
40354
|
+
});
|
|
40355
|
+
return z$1.NEVER;
|
|
40356
|
+
});
|
|
40225
40357
|
const signedMailingListSourceTokenSchema = z$1.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
40226
40358
|
const newsletterSourceCommonSchema = z$1.object({
|
|
40227
40359
|
siteId: z$1.string().optional(),
|
|
@@ -40235,7 +40367,8 @@ const newsletterSourceCommonSchema = z$1.object({
|
|
|
40235
40367
|
const newsletterSourceSchema = z$1.discriminatedUnion("source", [
|
|
40236
40368
|
newsletterSourceCommonSchema.extend({
|
|
40237
40369
|
source: z$1.literal("block"),
|
|
40238
|
-
blockId: z$1.string().nullable().optional()
|
|
40370
|
+
blockId: z$1.string().nullable().optional(),
|
|
40371
|
+
contentVersionId: z$1.string().nullable().optional()
|
|
40239
40372
|
}),
|
|
40240
40373
|
newsletterSourceCommonSchema.extend({
|
|
40241
40374
|
source: z$1.literal("signed-footer"),
|
|
@@ -40251,6 +40384,7 @@ const newsletterDisplaySchema = z$1.object({
|
|
|
40251
40384
|
availability: z$1.enum(["ready", "unavailable"]),
|
|
40252
40385
|
className: z$1.string().nullable(),
|
|
40253
40386
|
buttonLabel: z$1.string(),
|
|
40387
|
+
successMessage: z$1.string(),
|
|
40254
40388
|
buttonVariant: newsletterButtonVariantSchema,
|
|
40255
40389
|
privacyNote: z$1.string().nullable(),
|
|
40256
40390
|
fields: z$1.array(newsletterFieldSchema),
|
|
@@ -40265,7 +40399,8 @@ const newsletterHydrationSchema = z$1.object({
|
|
|
40265
40399
|
tag: z$1.literal("block-source"),
|
|
40266
40400
|
sourceRef: z$1.object({
|
|
40267
40401
|
tag: z$1.literal("block_ref"),
|
|
40268
|
-
blockId: mailingListSignupBlockIdSchema
|
|
40402
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
40403
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
40269
40404
|
}).nullable()
|
|
40270
40405
|
}),
|
|
40271
40406
|
z$1.object({
|
|
@@ -40304,6 +40439,7 @@ function buildNewsletterDisplay(source) {
|
|
|
40304
40439
|
fields: { preset: "emailOnly" },
|
|
40305
40440
|
includeOptionalPhone: false,
|
|
40306
40441
|
buttonLabel: "Subscribe",
|
|
40442
|
+
successMessage: DEFAULT_MAILING_LIST_SUCCESS_MESSAGE,
|
|
40307
40443
|
privacyNote: null
|
|
40308
40444
|
};
|
|
40309
40445
|
const targeting = source.targeting ?? { mode: "default" };
|
|
@@ -40313,6 +40449,7 @@ function buildNewsletterDisplay(source) {
|
|
|
40313
40449
|
availability: runtimeTargetingIsAvailable(context, targeting, choices) ? "ready" : "unavailable",
|
|
40314
40450
|
className: source.className ?? null,
|
|
40315
40451
|
buttonLabel: form.buttonLabel,
|
|
40452
|
+
successMessage: form.successMessage,
|
|
40316
40453
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
40317
40454
|
privacyNote: form.privacyNote,
|
|
40318
40455
|
fields: getGlobalFormFields(form),
|
|
@@ -40343,7 +40480,7 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
40343
40480
|
function projectNewsletterFormHydrationTarget(source) {
|
|
40344
40481
|
switch (source.source) {
|
|
40345
40482
|
case "block": {
|
|
40346
|
-
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId);
|
|
40483
|
+
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
|
|
40347
40484
|
if (sourceRef?.tag === "block_ref") return {
|
|
40348
40485
|
tag: "block-source",
|
|
40349
40486
|
sourceRef
|
|
@@ -42757,9 +42894,10 @@ function cx(...classes) {
|
|
|
42757
42894
|
* Server-safe placeholder for event registration.
|
|
42758
42895
|
* Provides a static container for island hydration without importing client hooks.
|
|
42759
42896
|
*/
|
|
42760
|
-
function EventRegistrationSSR({ blockId, subject, children, ...sourceProps }) {
|
|
42897
|
+
function EventRegistrationSSR({ blockId, subject, loaderFailures, children, ...sourceProps }) {
|
|
42761
42898
|
const islandProps = buildEventRegistrationInteractiveIslandProps({
|
|
42762
42899
|
...sourceProps,
|
|
42900
|
+
eventLoaderFailures: blockId ? loaderFailures?.[blockId] : void 0,
|
|
42763
42901
|
subject: normalizeEventRegistrationPageSurfaceSubject(subject)
|
|
42764
42902
|
});
|
|
42765
42903
|
const display = islandProps.render.display;
|
|
@@ -43092,7 +43230,7 @@ function NewsletterFormSSR(props) {
|
|
|
43092
43230
|
className: clsx("newsletter-form-ssr", className),
|
|
43093
43231
|
children: /* @__PURE__ */ jsx("p", {
|
|
43094
43232
|
role: "status",
|
|
43095
|
-
children: "
|
|
43233
|
+
children: "We can’t accept signups right now. Please try again later."
|
|
43096
43234
|
})
|
|
43097
43235
|
});
|
|
43098
43236
|
const renderField = (field) => {
|
|
@@ -43138,14 +43276,18 @@ function NewsletterFormSSR(props) {
|
|
|
43138
43276
|
children: [
|
|
43139
43277
|
fields.map(renderField),
|
|
43140
43278
|
islandProps.render.hydration.choicePresentation === "visitor_choice" ? /* @__PURE__ */ jsxs("fieldset", {
|
|
43141
|
-
className: "newsletter-topics",
|
|
43142
|
-
children: [/* @__PURE__ */ jsx("legend", {
|
|
43143
|
-
className: "
|
|
43279
|
+
className: "fb-fieldset newsletter-topics",
|
|
43280
|
+
children: [/* @__PURE__ */ jsx("legend", {
|
|
43281
|
+
className: "form-label",
|
|
43282
|
+
children: "What would you like to hear about?"
|
|
43283
|
+
}), display.choices.map((choice) => /* @__PURE__ */ jsxs("label", {
|
|
43284
|
+
className: "fb-inline form-label newsletter-topic-choice",
|
|
43144
43285
|
children: [/* @__PURE__ */ jsx("input", {
|
|
43145
43286
|
type: "checkbox",
|
|
43146
43287
|
name: "mailingListChoice",
|
|
43147
|
-
value: choice.id
|
|
43148
|
-
|
|
43288
|
+
value: choice.id,
|
|
43289
|
+
className: "form-checkbox"
|
|
43290
|
+
}), /* @__PURE__ */ jsx("span", { children: choice.label })]
|
|
43149
43291
|
}, choice.id))]
|
|
43150
43292
|
}) : null,
|
|
43151
43293
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -44134,6 +44276,18 @@ function resolveChildren(nodes, context) {
|
|
|
44134
44276
|
function isReactNode(value) {
|
|
44135
44277
|
return value !== null && value !== void 0;
|
|
44136
44278
|
}
|
|
44279
|
+
function resolveNodeMetadata(nodeType, context) {
|
|
44280
|
+
return {
|
|
44281
|
+
pathBase: context.pathBase,
|
|
44282
|
+
blockId: context.blockId,
|
|
44283
|
+
blockKind: context.blockKind,
|
|
44284
|
+
blockContent: context.blockContent,
|
|
44285
|
+
fragmentRegistry: context.fragmentRegistry,
|
|
44286
|
+
previewAuthoring: context.previewAuthoring,
|
|
44287
|
+
...nodeType.toLowerCase() === "newsletter-form" ? { contentVersionId: context.contentVersionId } : {},
|
|
44288
|
+
...nodeType === "media" && context.imageResolveContext ? { imageResolveContext: context.imageResolveContext } : {}
|
|
44289
|
+
};
|
|
44290
|
+
}
|
|
44137
44291
|
/**
|
|
44138
44292
|
* Resolves a node definition into a React element.
|
|
44139
44293
|
* Handles conditionals ($when), scopes ($scopes), repeaters ($repeat), bindings ($bind), and children.
|
|
@@ -44169,13 +44323,7 @@ function resolveNode(node, context, indexFallback) {
|
|
|
44169
44323
|
const elementProps = {
|
|
44170
44324
|
...props,
|
|
44171
44325
|
key: node.key ?? indexFallback,
|
|
44172
|
-
|
|
44173
|
-
blockId: context.blockId,
|
|
44174
|
-
blockKind: context.blockKind,
|
|
44175
|
-
blockContent: context.blockContent,
|
|
44176
|
-
...node.type === "media" && context.imageResolveContext ? { imageResolveContext: context.imageResolveContext } : {},
|
|
44177
|
-
fragmentRegistry: context.fragmentRegistry,
|
|
44178
|
-
previewAuthoring: context.previewAuthoring
|
|
44326
|
+
...resolveNodeMetadata(node.type, context)
|
|
44179
44327
|
};
|
|
44180
44328
|
const element = React.createElement(component, elementProps, ...children);
|
|
44181
44329
|
if (headingDecorationPlan.kind === "skip") return element;
|
|
@@ -48185,7 +48333,7 @@ function pageBlockPosition(index, blockCount) {
|
|
|
48185
48333
|
//#endregion
|
|
48186
48334
|
//#region ../blocks/src/pageRendererContracts.ts
|
|
48187
48335
|
function buildPageRendererRootRuntime(dataContext) {
|
|
48188
|
-
const { siteId = null, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, bookingOfferingPresets = [], mailingList = { tag: "not_configured" }, eventRegistrationOverlayEnabled = false } = dataContext ?? {};
|
|
48336
|
+
const { siteId = null, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, bookingOfferingPresets = [], mailingList = { tag: "not_configured" }, eventRegistrationOverlayEnabled = false, loaderFailures = {} } = dataContext ?? {};
|
|
48189
48337
|
return {
|
|
48190
48338
|
siteId,
|
|
48191
48339
|
pageId,
|
|
@@ -48196,7 +48344,8 @@ function buildPageRendererRootRuntime(dataContext) {
|
|
|
48196
48344
|
portalToken,
|
|
48197
48345
|
bookingOfferingPresets,
|
|
48198
48346
|
mailingList,
|
|
48199
|
-
eventRegistrationOverlayEnabled
|
|
48347
|
+
eventRegistrationOverlayEnabled,
|
|
48348
|
+
loaderFailures
|
|
48200
48349
|
};
|
|
48201
48350
|
}
|
|
48202
48351
|
//#endregion
|
|
@@ -57466,7 +57615,7 @@ function collectNestedPreviewFieldConstraintEntries(field, path) {
|
|
|
57466
57615
|
}
|
|
57467
57616
|
function makeDefaultBlockComponent(args) {
|
|
57468
57617
|
const { manifest } = args;
|
|
57469
|
-
return function DefaultBlockComponent({ content, data, registry, theme, themeConfig, transforms, viewModelOverrides, pathBase, blockId, blockKind, blockBindings, editableRouteMetadataFieldIds, fragmentRegistry, imageResolveContext, previewAuthoring }) {
|
|
57618
|
+
return function DefaultBlockComponent({ content, data, registry, theme, themeConfig, transforms, viewModelOverrides, pathBase, blockId, contentVersionId, blockKind, blockBindings, editableRouteMetadataFieldIds, fragmentRegistry, imageResolveContext, previewAuthoring }) {
|
|
57470
57619
|
const perf = beginBlockRenderMeasurement();
|
|
57471
57620
|
if (!theme) throw new Error("Block rendering requires theme tokens; none were provided to makeDefaultBlockComponent");
|
|
57472
57621
|
if (!registry) throw new Error("Block rendering requires a component registry; none was provided");
|
|
@@ -57486,6 +57635,7 @@ function makeDefaultBlockComponent(args) {
|
|
|
57486
57635
|
theme: withButtonSystem(theme, themeConfig),
|
|
57487
57636
|
pathBase,
|
|
57488
57637
|
blockId,
|
|
57638
|
+
contentVersionId,
|
|
57489
57639
|
blockKind,
|
|
57490
57640
|
blockContent: mergedContent,
|
|
57491
57641
|
blockBindings,
|
|
@@ -58279,6 +58429,7 @@ function buildBlockOverrideProps(input) {
|
|
|
58279
58429
|
...blockSubjectProps(dataContext),
|
|
58280
58430
|
imageResolveContext: input.imageResolveContext,
|
|
58281
58431
|
blockId: block.id ?? null,
|
|
58432
|
+
contentVersionId: block.contentVersionId ?? null,
|
|
58282
58433
|
blockKind: block.kind
|
|
58283
58434
|
};
|
|
58284
58435
|
}
|
|
@@ -58379,6 +58530,7 @@ function toPresentationPage(page) {
|
|
|
58379
58530
|
id: block.id,
|
|
58380
58531
|
kind: block.kind,
|
|
58381
58532
|
purpose: block.purpose,
|
|
58533
|
+
...block.contentVersionId ? { contentVersionId: block.contentVersionId } : {},
|
|
58382
58534
|
...block.bindings ? { bindings: block.bindings } : {}
|
|
58383
58535
|
};
|
|
58384
58536
|
return block.admission.kind === "renderable" ? {
|
|
@@ -68632,7 +68784,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68632
68784
|
text-align: left;
|
|
68633
68785
|
}
|
|
68634
68786
|
|
|
68635
|
-
:where(.theme-scope)
|
|
68787
|
+
:where(.theme-scope)
|
|
68788
|
+
:where([data-block="customer-portal"])
|
|
68789
|
+
.cp-login__subtitle {
|
|
68636
68790
|
color: var(--cp-muted);
|
|
68637
68791
|
font-size: 0.9375rem;
|
|
68638
68792
|
text-align: left;
|
|
@@ -68659,7 +68813,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68659
68813
|
text-align: left;
|
|
68660
68814
|
}
|
|
68661
68815
|
|
|
68662
|
-
:where(.theme-scope)
|
|
68816
|
+
:where(.theme-scope)
|
|
68817
|
+
:where([data-block="customer-portal"])
|
|
68818
|
+
.cp-login__reset-link {
|
|
68663
68819
|
appearance: none;
|
|
68664
68820
|
background: none;
|
|
68665
68821
|
border: 0;
|
|
@@ -68673,11 +68829,15 @@ const containerResponsiveThemeCss = `/*
|
|
|
68673
68829
|
text-underline-offset: 0.15em;
|
|
68674
68830
|
}
|
|
68675
68831
|
|
|
68676
|
-
:where(.theme-scope)
|
|
68832
|
+
:where(.theme-scope)
|
|
68833
|
+
:where([data-block="customer-portal"])
|
|
68834
|
+
.cp-login__reset-link:hover {
|
|
68677
68835
|
color: var(--cp-text);
|
|
68678
68836
|
}
|
|
68679
68837
|
|
|
68680
|
-
:where(.theme-scope)
|
|
68838
|
+
:where(.theme-scope)
|
|
68839
|
+
:where([data-block="customer-portal"])
|
|
68840
|
+
.cp-login__reset-link:focus-visible {
|
|
68681
68841
|
outline: 2px solid currentColor;
|
|
68682
68842
|
outline-offset: 3px;
|
|
68683
68843
|
}
|
|
@@ -68722,7 +68882,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68722
68882
|
border-bottom: none;
|
|
68723
68883
|
}
|
|
68724
68884
|
|
|
68725
|
-
:where(.theme-scope)
|
|
68885
|
+
:where(.theme-scope)
|
|
68886
|
+
:where([data-block="customer-portal"])
|
|
68887
|
+
.cp-header__welcome {
|
|
68726
68888
|
font-size: 1.125rem;
|
|
68727
68889
|
font-weight: 500;
|
|
68728
68890
|
}
|
|
@@ -68738,8 +68900,14 @@ const containerResponsiveThemeCss = `/*
|
|
|
68738
68900
|
}
|
|
68739
68901
|
|
|
68740
68902
|
@keyframes cp-fade-in {
|
|
68741
|
-
from {
|
|
68742
|
-
|
|
68903
|
+
from {
|
|
68904
|
+
opacity: 0;
|
|
68905
|
+
transform: translateY(4px);
|
|
68906
|
+
}
|
|
68907
|
+
to {
|
|
68908
|
+
opacity: 1;
|
|
68909
|
+
transform: translateY(0);
|
|
68910
|
+
}
|
|
68743
68911
|
}
|
|
68744
68912
|
|
|
68745
68913
|
/* Empty state */
|
|
@@ -68828,6 +68996,77 @@ const containerResponsiveThemeCss = `/*
|
|
|
68828
68996
|
margin-top: 1rem;
|
|
68829
68997
|
}
|
|
68830
68998
|
|
|
68999
|
+
/* Event waitlists */
|
|
69000
|
+
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-waitlist-list {
|
|
69001
|
+
display: grid;
|
|
69002
|
+
gap: 1rem;
|
|
69003
|
+
}
|
|
69004
|
+
|
|
69005
|
+
:where(.theme-scope)
|
|
69006
|
+
:where([data-block="customer-portal"])
|
|
69007
|
+
.cp-waitlists
|
|
69008
|
+
> .cp-alert {
|
|
69009
|
+
margin-bottom: 1rem;
|
|
69010
|
+
}
|
|
69011
|
+
|
|
69012
|
+
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-waitlist-card {
|
|
69013
|
+
transition:
|
|
69014
|
+
border-color 180ms ease,
|
|
69015
|
+
box-shadow 180ms ease;
|
|
69016
|
+
}
|
|
69017
|
+
|
|
69018
|
+
:where(.theme-scope)
|
|
69019
|
+
:where([data-block="customer-portal"])
|
|
69020
|
+
.cp-waitlist-card--focused {
|
|
69021
|
+
border-color: var(--cp-primary);
|
|
69022
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--cp-primary) 22%, transparent);
|
|
69023
|
+
}
|
|
69024
|
+
|
|
69025
|
+
:where(.theme-scope)
|
|
69026
|
+
:where([data-block="customer-portal"])
|
|
69027
|
+
.cp-waitlist-card__summary,
|
|
69028
|
+
:where(.theme-scope)
|
|
69029
|
+
:where([data-block="customer-portal"])
|
|
69030
|
+
.cp-waitlist-card__position {
|
|
69031
|
+
font-weight: 600;
|
|
69032
|
+
}
|
|
69033
|
+
|
|
69034
|
+
:where(.theme-scope)
|
|
69035
|
+
:where([data-block="customer-portal"])
|
|
69036
|
+
.cp-waitlist-card
|
|
69037
|
+
.cp-card-body
|
|
69038
|
+
p {
|
|
69039
|
+
margin: 0.4rem 0;
|
|
69040
|
+
}
|
|
69041
|
+
|
|
69042
|
+
@container rb-site (max-width: 640px) {
|
|
69043
|
+
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
69044
|
+
:where(.theme-scope)
|
|
69045
|
+
:where([data-block="customer-portal"])
|
|
69046
|
+
.cp-waitlist-card
|
|
69047
|
+
.cp-card-header {
|
|
69048
|
+
flex-direction: column-reverse;
|
|
69049
|
+
}
|
|
69050
|
+
|
|
69051
|
+
:where(.theme-scope)
|
|
69052
|
+
:where([data-block="customer-portal"])
|
|
69053
|
+
.cp-waitlist-card
|
|
69054
|
+
.cp-card-actions {
|
|
69055
|
+
align-items: stretch;
|
|
69056
|
+
flex-direction: column;
|
|
69057
|
+
}
|
|
69058
|
+
|
|
69059
|
+
:where(.theme-scope)
|
|
69060
|
+
:where([data-block="customer-portal"])
|
|
69061
|
+
.cp-waitlist-card
|
|
69062
|
+
.cp-card-actions
|
|
69063
|
+
> * {
|
|
69064
|
+
justify-content: center;
|
|
69065
|
+
text-align: center;
|
|
69066
|
+
}
|
|
69067
|
+
}
|
|
69068
|
+
}
|
|
69069
|
+
|
|
68831
69070
|
/* Badge */
|
|
68832
69071
|
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-badge {
|
|
68833
69072
|
display: inline-flex;
|
|
@@ -68964,11 +69203,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
68964
69203
|
background: rgba(var(--tb-border), 0.2);
|
|
68965
69204
|
}
|
|
68966
69205
|
|
|
68967
|
-
:where(.theme-scope)
|
|
69206
|
+
:where(.theme-scope)
|
|
69207
|
+
:where([data-block="customer-portal"])
|
|
69208
|
+
.cp-table
|
|
69209
|
+
tbody
|
|
69210
|
+
tr:last-child
|
|
69211
|
+
td {
|
|
68968
69212
|
border-bottom: none;
|
|
68969
69213
|
}
|
|
68970
69214
|
|
|
68971
|
-
:where(.theme-scope)
|
|
69215
|
+
:where(.theme-scope)
|
|
69216
|
+
:where([data-block="customer-portal"])
|
|
69217
|
+
:is(.cp-row--past, .cp-row--muted) {
|
|
68972
69218
|
opacity: 0.65;
|
|
68973
69219
|
}
|
|
68974
69220
|
|
|
@@ -68981,7 +69227,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68981
69227
|
line-height: 1.2;
|
|
68982
69228
|
}
|
|
68983
69229
|
|
|
68984
|
-
:where(.theme-scope)
|
|
69230
|
+
:where(.theme-scope)
|
|
69231
|
+
:where([data-block="customer-portal"])
|
|
69232
|
+
.cp-row-title__badges {
|
|
68985
69233
|
margin-left: auto;
|
|
68986
69234
|
display: flex;
|
|
68987
69235
|
flex-wrap: wrap;
|
|
@@ -68989,7 +69237,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
68989
69237
|
gap: 0.375rem;
|
|
68990
69238
|
}
|
|
68991
69239
|
|
|
68992
|
-
:where(.theme-scope)
|
|
69240
|
+
:where(.theme-scope)
|
|
69241
|
+
:where([data-block="customer-portal"])
|
|
69242
|
+
.cp-row-title__text {
|
|
68993
69243
|
min-width: 0;
|
|
68994
69244
|
}
|
|
68995
69245
|
|
|
@@ -69009,12 +69259,16 @@ const containerResponsiveThemeCss = `/*
|
|
|
69009
69259
|
line-height: 1.35;
|
|
69010
69260
|
}
|
|
69011
69261
|
|
|
69012
|
-
:where(.theme-scope)
|
|
69262
|
+
:where(.theme-scope)
|
|
69263
|
+
:where([data-block="customer-portal"])
|
|
69264
|
+
.cp-row-note--success {
|
|
69013
69265
|
border-left-color: rgb(var(--tb-success));
|
|
69014
69266
|
color: rgb(var(--tb-success));
|
|
69015
69267
|
}
|
|
69016
69268
|
|
|
69017
|
-
:where(.theme-scope)
|
|
69269
|
+
:where(.theme-scope)
|
|
69270
|
+
:where([data-block="customer-portal"])
|
|
69271
|
+
.cp-row-note--error {
|
|
69018
69272
|
border-left-color: rgb(var(--tb-destructive));
|
|
69019
69273
|
color: rgb(var(--tb-destructive));
|
|
69020
69274
|
}
|
|
@@ -69033,16 +69287,23 @@ const containerResponsiveThemeCss = `/*
|
|
|
69033
69287
|
white-space: nowrap;
|
|
69034
69288
|
}
|
|
69035
69289
|
|
|
69036
|
-
:where(.theme-scope)
|
|
69290
|
+
:where(.theme-scope)
|
|
69291
|
+
:where([data-block="customer-portal"])
|
|
69292
|
+
.cp-col-actions
|
|
69293
|
+
.btn-sm {
|
|
69037
69294
|
white-space: nowrap;
|
|
69038
69295
|
}
|
|
69039
69296
|
|
|
69040
|
-
:where(.theme-scope)
|
|
69297
|
+
:where(.theme-scope)
|
|
69298
|
+
:where([data-block="customer-portal"])
|
|
69299
|
+
.cp-row-title__link {
|
|
69041
69300
|
color: inherit;
|
|
69042
69301
|
text-decoration: none;
|
|
69043
69302
|
}
|
|
69044
69303
|
|
|
69045
|
-
:where(.theme-scope)
|
|
69304
|
+
:where(.theme-scope)
|
|
69305
|
+
:where([data-block="customer-portal"])
|
|
69306
|
+
.cp-row-title__link:hover {
|
|
69046
69307
|
text-decoration: underline;
|
|
69047
69308
|
text-decoration-thickness: 2px;
|
|
69048
69309
|
text-underline-offset: 2px;
|
|
@@ -69064,7 +69325,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
69064
69325
|
}
|
|
69065
69326
|
|
|
69066
69327
|
/* Profile actions */
|
|
69067
|
-
:where(.theme-scope)
|
|
69328
|
+
:where(.theme-scope)
|
|
69329
|
+
:where([data-block="customer-portal"])
|
|
69330
|
+
.cp-profile__actions {
|
|
69068
69331
|
display: flex;
|
|
69069
69332
|
gap: 0.75rem;
|
|
69070
69333
|
margin-top: 1rem;
|
|
@@ -69131,28 +69394,39 @@ const containerResponsiveThemeCss = `/*
|
|
|
69131
69394
|
gap: 0.375rem;
|
|
69132
69395
|
}
|
|
69133
69396
|
|
|
69134
|
-
:where(.theme-scope)
|
|
69397
|
+
:where(.theme-scope)
|
|
69398
|
+
:where([data-block="customer-portal"])
|
|
69399
|
+
.cp-guest-edit-row__index {
|
|
69135
69400
|
font-size: 0.75rem;
|
|
69136
69401
|
font-weight: 500;
|
|
69137
69402
|
color: var(--cp-muted);
|
|
69138
69403
|
}
|
|
69139
69404
|
|
|
69140
|
-
:where(.theme-scope)
|
|
69405
|
+
:where(.theme-scope)
|
|
69406
|
+
:where([data-block="customer-portal"])
|
|
69407
|
+
.cp-guest-edit-row__fields {
|
|
69141
69408
|
display: flex;
|
|
69142
69409
|
gap: 0.5rem;
|
|
69143
69410
|
}
|
|
69144
69411
|
|
|
69145
|
-
:where(.theme-scope)
|
|
69412
|
+
:where(.theme-scope)
|
|
69413
|
+
:where([data-block="customer-portal"])
|
|
69414
|
+
.cp-guest-edit-row__fields
|
|
69415
|
+
input {
|
|
69146
69416
|
flex: 1;
|
|
69147
69417
|
min-width: 0;
|
|
69148
69418
|
}
|
|
69149
69419
|
|
|
69150
|
-
:where(.theme-scope)
|
|
69420
|
+
:where(.theme-scope)
|
|
69421
|
+
:where([data-block="customer-portal"])
|
|
69422
|
+
.cp-guest-edit-row__error {
|
|
69151
69423
|
font-size: 0.75rem;
|
|
69152
69424
|
color: var(--cp-error);
|
|
69153
69425
|
}
|
|
69154
69426
|
|
|
69155
|
-
:where(.theme-scope)
|
|
69427
|
+
:where(.theme-scope)
|
|
69428
|
+
:where([data-block="customer-portal"])
|
|
69429
|
+
.cp-guests__actions {
|
|
69156
69430
|
display: flex;
|
|
69157
69431
|
gap: 0.5rem;
|
|
69158
69432
|
margin-top: 0.5rem;
|
|
@@ -69166,13 +69440,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
69166
69440
|
}
|
|
69167
69441
|
|
|
69168
69442
|
/* In the actions modal, tiles sit on a surface modal, so use "background" for contrast. */
|
|
69169
|
-
:where(.theme-scope)
|
|
69443
|
+
:where(.theme-scope)
|
|
69444
|
+
:where([data-block="customer-portal"])
|
|
69445
|
+
.cp-actions-list
|
|
69446
|
+
:where(.rb-tile) {
|
|
69170
69447
|
--rb-event-tile-bg: rgb(var(--tb-background));
|
|
69171
69448
|
--rb-event-tile-border: rgb(var(--tb-border));
|
|
69172
69449
|
}
|
|
69173
69450
|
|
|
69174
69451
|
/* Actions trigger: icon-only kebab button */
|
|
69175
|
-
:where(.theme-scope)
|
|
69452
|
+
:where(.theme-scope)
|
|
69453
|
+
:where([data-block="customer-portal"])
|
|
69454
|
+
.cp-actions-trigger.btn-sm {
|
|
69176
69455
|
padding: 0.35rem !important;
|
|
69177
69456
|
line-height: 1 !important;
|
|
69178
69457
|
min-width: 32px;
|
|
@@ -69196,17 +69475,24 @@ const containerResponsiveThemeCss = `/*
|
|
|
69196
69475
|
gap: 0.25rem;
|
|
69197
69476
|
}
|
|
69198
69477
|
|
|
69199
|
-
:where(.theme-scope)
|
|
69478
|
+
:where(.theme-scope)
|
|
69479
|
+
:where([data-block="customer-portal"])
|
|
69480
|
+
.cp-action-tile__title {
|
|
69200
69481
|
font-weight: 600;
|
|
69201
69482
|
font-size: 0.9375rem;
|
|
69202
69483
|
}
|
|
69203
69484
|
|
|
69204
|
-
:where(.theme-scope)
|
|
69485
|
+
:where(.theme-scope)
|
|
69486
|
+
:where([data-block="customer-portal"])
|
|
69487
|
+
.cp-action-tile__desc {
|
|
69205
69488
|
font-size: 0.875rem;
|
|
69206
69489
|
line-height: 1.35;
|
|
69207
69490
|
}
|
|
69208
69491
|
|
|
69209
|
-
:where(.theme-scope)
|
|
69492
|
+
:where(.theme-scope)
|
|
69493
|
+
:where([data-block="customer-portal"])
|
|
69494
|
+
.cp-action-tile--danger
|
|
69495
|
+
.cp-action-tile__title {
|
|
69210
69496
|
color: rgb(var(--tb-destructive));
|
|
69211
69497
|
}
|
|
69212
69498
|
|
|
@@ -69228,7 +69514,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
69228
69514
|
text-decoration: underline;
|
|
69229
69515
|
}
|
|
69230
69516
|
|
|
69231
|
-
:where(.theme-scope)
|
|
69517
|
+
:where(.theme-scope)
|
|
69518
|
+
:where([data-block="customer-portal"])
|
|
69519
|
+
.cp-btn--link:hover {
|
|
69232
69520
|
color: var(--cp-primary-hover);
|
|
69233
69521
|
}
|
|
69234
69522
|
|
|
@@ -69267,34 +69555,48 @@ const containerResponsiveThemeCss = `/*
|
|
|
69267
69555
|
margin-top: 0.75rem;
|
|
69268
69556
|
}
|
|
69269
69557
|
|
|
69270
|
-
:where(.theme-scope)
|
|
69558
|
+
:where(.theme-scope)
|
|
69559
|
+
:where([data-block="customer-portal"])
|
|
69560
|
+
.cp-cancel-confirm__title {
|
|
69271
69561
|
font-weight: 600;
|
|
69272
69562
|
margin-bottom: 0.5rem;
|
|
69273
69563
|
}
|
|
69274
69564
|
|
|
69275
|
-
:where(.theme-scope)
|
|
69565
|
+
:where(.theme-scope)
|
|
69566
|
+
:where([data-block="customer-portal"])
|
|
69567
|
+
.cp-cancel-confirm__message {
|
|
69276
69568
|
margin-bottom: 0.25rem;
|
|
69277
69569
|
}
|
|
69278
69570
|
|
|
69279
|
-
:where(.theme-scope)
|
|
69571
|
+
:where(.theme-scope)
|
|
69572
|
+
:where([data-block="customer-portal"])
|
|
69573
|
+
.cp-cancel-confirm__warning {
|
|
69280
69574
|
margin-bottom: 0.75rem;
|
|
69281
69575
|
}
|
|
69282
69576
|
|
|
69283
|
-
:where(.theme-scope)
|
|
69577
|
+
:where(.theme-scope)
|
|
69578
|
+
:where([data-block="customer-portal"])
|
|
69579
|
+
.cp-cancel-confirm__actions {
|
|
69284
69580
|
display: flex;
|
|
69285
69581
|
gap: 0.75rem;
|
|
69286
69582
|
}
|
|
69287
69583
|
|
|
69288
69584
|
/* Membership actions */
|
|
69289
|
-
:where(.theme-scope)
|
|
69585
|
+
:where(.theme-scope)
|
|
69586
|
+
:where([data-block="customer-portal"])
|
|
69587
|
+
.cp-membership-actions {
|
|
69290
69588
|
margin-top: 0.75rem;
|
|
69291
69589
|
}
|
|
69292
69590
|
|
|
69293
|
-
:where(.theme-scope)
|
|
69591
|
+
:where(.theme-scope)
|
|
69592
|
+
:where([data-block="customer-portal"])
|
|
69593
|
+
.cp-section-actions {
|
|
69294
69594
|
margin-top: 1rem;
|
|
69295
69595
|
}
|
|
69296
69596
|
|
|
69297
|
-
:where(.theme-scope)
|
|
69597
|
+
:where(.theme-scope)
|
|
69598
|
+
:where([data-block="customer-portal"])
|
|
69599
|
+
.cp-card-subtitle--spaced {
|
|
69298
69600
|
margin-top: 0.75rem;
|
|
69299
69601
|
}
|
|
69300
69602
|
|
|
@@ -69318,9 +69620,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
69318
69620
|
display: none;
|
|
69319
69621
|
}
|
|
69320
69622
|
|
|
69321
|
-
:where(.theme-scope)
|
|
69322
|
-
|
|
69323
|
-
|
|
69623
|
+
:where(.theme-scope)
|
|
69624
|
+
:where([data-block="customer-portal"])
|
|
69625
|
+
.cp-table
|
|
69626
|
+
:is(th, td).cp-col-guests,
|
|
69627
|
+
:where(.theme-scope)
|
|
69628
|
+
:where([data-block="customer-portal"])
|
|
69629
|
+
.cp-table
|
|
69630
|
+
:is(th, td).cp-col-tickets,
|
|
69631
|
+
:where(.theme-scope)
|
|
69632
|
+
:where([data-block="customer-portal"])
|
|
69633
|
+
.cp-table
|
|
69634
|
+
:is(th, td).cp-col-actions {
|
|
69324
69635
|
display: none;
|
|
69325
69636
|
}
|
|
69326
69637
|
|
|
@@ -69329,24 +69640,34 @@ const containerResponsiveThemeCss = `/*
|
|
|
69329
69640
|
}
|
|
69330
69641
|
|
|
69331
69642
|
/* Make the cell a positioning context for the kebab */
|
|
69332
|
-
:where(.theme-scope)
|
|
69643
|
+
:where(.theme-scope)
|
|
69644
|
+
:where([data-block="customer-portal"])
|
|
69645
|
+
.cp-row
|
|
69646
|
+
> td:first-child {
|
|
69333
69647
|
position: relative;
|
|
69334
69648
|
padding-right: 2.5rem;
|
|
69335
69649
|
}
|
|
69336
69650
|
|
|
69337
69651
|
/* Position kebab in top-right of the cell */
|
|
69338
|
-
:where(.theme-scope)
|
|
69652
|
+
:where(.theme-scope)
|
|
69653
|
+
:where([data-block="customer-portal"])
|
|
69654
|
+
.cp-row-mobile-actions {
|
|
69339
69655
|
position: absolute;
|
|
69340
69656
|
top: 0.5rem;
|
|
69341
69657
|
right: 0.5rem;
|
|
69342
69658
|
margin-top: 0;
|
|
69343
69659
|
}
|
|
69344
69660
|
|
|
69345
|
-
:where(.theme-scope)
|
|
69661
|
+
:where(.theme-scope)
|
|
69662
|
+
:where([data-block="customer-portal"])
|
|
69663
|
+
.cp-row-mobile-actions
|
|
69664
|
+
.btn-sm {
|
|
69346
69665
|
width: auto;
|
|
69347
69666
|
}
|
|
69348
69667
|
|
|
69349
|
-
:where(.theme-scope)
|
|
69668
|
+
:where(.theme-scope)
|
|
69669
|
+
:where([data-block="customer-portal"])
|
|
69670
|
+
.cp-profile__edit {
|
|
69350
69671
|
align-self: stretch;
|
|
69351
69672
|
}
|
|
69352
69673
|
}
|
|
@@ -69794,6 +70115,30 @@ const containerResponsiveThemeCss = `/*
|
|
|
69794
70115
|
gap: 0.25rem;
|
|
69795
70116
|
}
|
|
69796
70117
|
|
|
70118
|
+
/* Topic choices (visitor picks what to hear about). Same treatment as the
|
|
70119
|
+
form block's .fb-fieldset / .fb-inline, defined here because the newsletter
|
|
70120
|
+
form also renders inside contact-newsletter and the site footer. */
|
|
70121
|
+
:where(.theme-scope) .newsletter-topics {
|
|
70122
|
+
display: flex;
|
|
70123
|
+
flex-direction: column;
|
|
70124
|
+
gap: 0.5rem;
|
|
70125
|
+
border: none;
|
|
70126
|
+
padding: 0;
|
|
70127
|
+
margin: 0;
|
|
70128
|
+
min-width: 0;
|
|
70129
|
+
}
|
|
70130
|
+
|
|
70131
|
+
:where(.theme-scope) .newsletter-topics > legend {
|
|
70132
|
+
padding: 0;
|
|
70133
|
+
margin-bottom: 0.25rem;
|
|
70134
|
+
}
|
|
70135
|
+
|
|
70136
|
+
:where(.theme-scope) .newsletter-topic-choice {
|
|
70137
|
+
display: flex;
|
|
70138
|
+
align-items: center;
|
|
70139
|
+
gap: 0.5rem;
|
|
70140
|
+
}
|
|
70141
|
+
|
|
69797
70142
|
/* Required indicator */
|
|
69798
70143
|
:where(.theme-scope) .newsletter-required {
|
|
69799
70144
|
color: rgb(var(--tb-primary));
|
|
@@ -69843,6 +70188,10 @@ const containerResponsiveThemeCss = `/*
|
|
|
69843
70188
|
flex-shrink: 0;
|
|
69844
70189
|
}
|
|
69845
70190
|
|
|
70191
|
+
:where(.theme-scope) .newsletter-inline .newsletter-topics {
|
|
70192
|
+
flex-basis: 100%;
|
|
70193
|
+
}
|
|
70194
|
+
|
|
69846
70195
|
/* Mobile fallback for inline variant */
|
|
69847
70196
|
@container rb-site (max-width: 640px) {
|
|
69848
70197
|
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
@@ -72359,7 +72708,7 @@ function PageContent(props) {
|
|
|
72359
72708
|
previewToken,
|
|
72360
72709
|
resolvedData,
|
|
72361
72710
|
bookingOfferingPresets: bookingOfferingPresets ?? [],
|
|
72362
|
-
mailingList,
|
|
72711
|
+
mailingList: mailingList ?? dataContext?.mailingList,
|
|
72363
72712
|
bookingTimeZone: resolveSdkBookingTimeZone(bookingTimeZone),
|
|
72364
72713
|
routes: routeMap,
|
|
72365
72714
|
pagesByIdentifier,
|
|
@@ -74206,8 +74555,12 @@ function shouldSkipResolvedLoader(input) {
|
|
|
74206
74555
|
* ```
|
|
74207
74556
|
*/
|
|
74208
74557
|
async function prefetchBlockData$1(page, context, options) {
|
|
74558
|
+
return (await prefetchBlockDataWithFailures(page, context, options)).resolvedData;
|
|
74559
|
+
}
|
|
74560
|
+
async function prefetchBlockDataWithFailures(page, context, options) {
|
|
74209
74561
|
const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders, getBlockDefinition: getBlockDefinition$1 = getBlockDefinition, resolveParamsBindings: resolveParamsBindings$1 = resolveParamsBindings } = options;
|
|
74210
74562
|
const results = {};
|
|
74563
|
+
const loaderFailures = {};
|
|
74211
74564
|
const tasks = [];
|
|
74212
74565
|
for (const block of page.blocks) {
|
|
74213
74566
|
const blockId = block.id;
|
|
@@ -74255,6 +74608,11 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
74255
74608
|
const blockResults = results[blockId] ?? (results[blockId] = {});
|
|
74256
74609
|
blockResults[key] = data;
|
|
74257
74610
|
} catch (error) {
|
|
74611
|
+
const blockFailures = loaderFailures[blockId] ?? (loaderFailures[blockId] = {});
|
|
74612
|
+
blockFailures[key] = {
|
|
74613
|
+
endpoint,
|
|
74614
|
+
params
|
|
74615
|
+
};
|
|
74258
74616
|
if (onError) onError(error, {
|
|
74259
74617
|
block: block.kind,
|
|
74260
74618
|
loader: key
|
|
@@ -74264,7 +74622,10 @@ async function prefetchBlockData$1(page, context, options) {
|
|
|
74264
74622
|
}
|
|
74265
74623
|
}
|
|
74266
74624
|
if (tasks.length > 0) await Promise.all(tasks);
|
|
74267
|
-
return
|
|
74625
|
+
return {
|
|
74626
|
+
resolvedData: results,
|
|
74627
|
+
loaderFailures
|
|
74628
|
+
};
|
|
74268
74629
|
}
|
|
74269
74630
|
//#endregion
|
|
74270
74631
|
//#region ../blocks/src/system/data/loaderEndpoints.ts
|
|
@@ -74451,9 +74812,11 @@ function convertPageResponseBlock(block) {
|
|
|
74451
74812
|
if (typeof block.id !== "string" && block.id !== null) throw new Error(`Invalid block id in page: expected string or null, got ${typeof block.id}`);
|
|
74452
74813
|
if (typeof block.kind !== "string") throw new Error(`Invalid block kind in page: expected string, got ${typeof block.kind}`);
|
|
74453
74814
|
if (typeof block.purpose !== "string") throw new Error(`Invalid block purpose in page: expected string, got ${typeof block.purpose}`);
|
|
74815
|
+
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}`);
|
|
74454
74816
|
const admission = readInvalidBlockAdmission(block.admission);
|
|
74455
74817
|
return {
|
|
74456
74818
|
id: block.id,
|
|
74819
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
74457
74820
|
kind: block.kind,
|
|
74458
74821
|
purpose: block.purpose,
|
|
74459
74822
|
content: sanitizeSdkRuntimeBlockContent(block.kind, readContentRecord(block.content) ?? {}),
|
|
@@ -74486,6 +74849,7 @@ function projectRenderablePageOutline(page) {
|
|
|
74486
74849
|
...page,
|
|
74487
74850
|
blocks: page.blocks.flatMap((block) => block.admission.kind === "renderable" ? [{
|
|
74488
74851
|
id: block.id,
|
|
74852
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
74489
74853
|
kind: block.kind,
|
|
74490
74854
|
purpose: block.purpose,
|
|
74491
74855
|
content: block.admission.content,
|
|
@@ -74496,6 +74860,7 @@ function projectRenderablePageOutline(page) {
|
|
|
74496
74860
|
function admitSdkRuntimePageBlock(block, customBlocks) {
|
|
74497
74861
|
const base = {
|
|
74498
74862
|
id: block.id,
|
|
74863
|
+
...block.contentVersionId !== void 0 ? { contentVersionId: block.contentVersionId } : {},
|
|
74499
74864
|
kind: block.kind,
|
|
74500
74865
|
purpose: block.purpose,
|
|
74501
74866
|
...block.bindings ? { bindings: block.bindings } : {}
|
|
@@ -76241,6 +76606,14 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
|
|
|
76241
76606
|
auth: "public",
|
|
76242
76607
|
responseKind: "json"
|
|
76243
76608
|
},
|
|
76609
|
+
getPublicBookingServiceBySlug: {
|
|
76610
|
+
path: "/public/bookings/services/by-slug/{slug}",
|
|
76611
|
+
method: "GET",
|
|
76612
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
|
|
76613
|
+
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
76614
|
+
auth: "public",
|
|
76615
|
+
responseKind: "json"
|
|
76616
|
+
},
|
|
76244
76617
|
getPublicBookingResourcesReference: {
|
|
76245
76618
|
path: "/public/bookings/resources/reference",
|
|
76246
76619
|
method: "GET",
|
|
@@ -76793,16 +77166,110 @@ const PUBLIC_READ_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
76793
77166
|
responseKind: "json"
|
|
76794
77167
|
}
|
|
76795
77168
|
});
|
|
77169
|
+
//#endregion
|
|
77170
|
+
//#region ../api/src/publicOnboardingAttemptEndpointDefinitions.ts
|
|
77171
|
+
/**
|
|
77172
|
+
* The anonymous onboarding attempt, addressed by its opaque resume token.
|
|
77173
|
+
*
|
|
77174
|
+
* Every route here is reached before there is an account, so none of them can
|
|
77175
|
+
* be scoped to a site or a user: the token is the whole credential. They are
|
|
77176
|
+
* kept together so that stays obvious.
|
|
77177
|
+
*/
|
|
77178
|
+
const PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
77179
|
+
createPublicOnboardingAttempt: {
|
|
77180
|
+
path: "/public/onboarding/attempts",
|
|
77181
|
+
method: "POST",
|
|
77182
|
+
auth: "public",
|
|
77183
|
+
errors: [],
|
|
77184
|
+
responseKind: "json"
|
|
77185
|
+
},
|
|
77186
|
+
createPublicOnboardingLogoUploadUrl: {
|
|
77187
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
|
|
77188
|
+
method: "POST",
|
|
77189
|
+
auth: "public",
|
|
77190
|
+
errors: [],
|
|
77191
|
+
responseKind: "json"
|
|
77192
|
+
},
|
|
77193
|
+
uploadPublicOnboardingLogo: {
|
|
77194
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo",
|
|
77195
|
+
method: "POST",
|
|
77196
|
+
auth: "public",
|
|
77197
|
+
errors: [],
|
|
77198
|
+
responseKind: "json"
|
|
77199
|
+
},
|
|
77200
|
+
getPublicOnboardingAttempt: {
|
|
77201
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
77202
|
+
method: "GET",
|
|
77203
|
+
auth: "public",
|
|
77204
|
+
errors: [],
|
|
77205
|
+
responseKind: "json"
|
|
77206
|
+
},
|
|
77207
|
+
getPublicOnboardingAttemptProgress: {
|
|
77208
|
+
path: "/public/onboarding/attempts/{attemptToken}/status",
|
|
77209
|
+
method: "GET",
|
|
77210
|
+
auth: "public",
|
|
77211
|
+
errors: [],
|
|
77212
|
+
responseKind: "json"
|
|
77213
|
+
},
|
|
77214
|
+
updatePublicOnboardingAttempt: {
|
|
77215
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
77216
|
+
method: "PATCH",
|
|
77217
|
+
auth: "public",
|
|
77218
|
+
errors: [],
|
|
77219
|
+
responseKind: "json"
|
|
77220
|
+
},
|
|
77221
|
+
runPublicOnboardingAttempt: {
|
|
77222
|
+
path: "/public/onboarding/attempts/{attemptToken}/run",
|
|
77223
|
+
method: "POST",
|
|
77224
|
+
auth: "public",
|
|
77225
|
+
errors: [],
|
|
77226
|
+
responseKind: "json"
|
|
77227
|
+
},
|
|
77228
|
+
resendPublicOnboardingAttemptConfirmation: {
|
|
77229
|
+
path: "/public/onboarding/attempts/{attemptToken}/resend-confirmation",
|
|
77230
|
+
method: "POST",
|
|
77231
|
+
auth: "public",
|
|
77232
|
+
errors: [],
|
|
77233
|
+
responseKind: "json"
|
|
77234
|
+
}
|
|
77235
|
+
});
|
|
77236
|
+
//#endregion
|
|
77237
|
+
//#region ../api/src/billingEndpointDefinitions.ts
|
|
77238
|
+
const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
77239
|
+
adminChangePlan: {
|
|
77240
|
+
path: "/admin/billing/plan",
|
|
77241
|
+
method: "POST",
|
|
77242
|
+
tags: ["admin", "billing"],
|
|
77243
|
+
auth: "admin",
|
|
77244
|
+
responseKind: "json"
|
|
77245
|
+
},
|
|
77246
|
+
changePlan: {
|
|
77247
|
+
path: "/billing/plan/change",
|
|
77248
|
+
method: "POST",
|
|
77249
|
+
tags: ["billing"],
|
|
77250
|
+
auth: "user",
|
|
77251
|
+
responseKind: "json"
|
|
77252
|
+
},
|
|
77253
|
+
createBillingPortalSession: {
|
|
77254
|
+
path: "/billing/portal/session",
|
|
77255
|
+
method: "POST",
|
|
77256
|
+
tags: ["billing"],
|
|
77257
|
+
auth: "user",
|
|
77258
|
+
responseKind: "json"
|
|
77259
|
+
}
|
|
77260
|
+
});
|
|
76796
77261
|
({
|
|
76797
77262
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
77263
|
+
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
76798
77264
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
76799
77265
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
76800
|
-
...PUBLIC_READ_ENDPOINT_DEFINITIONS
|
|
77266
|
+
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
77267
|
+
...BILLING_ENDPOINT_DEFINITIONS
|
|
76801
77268
|
}), 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, {
|
|
76802
77269
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
76803
77270
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
76804
77271
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
76805
|
-
}, 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 };
|
|
77272
|
+
}, 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 };
|
|
76806
77273
|
z$1.object({ refreshToken: z$1.string().min(1).max(4096) }).strict();
|
|
76807
77274
|
z$1.object({
|
|
76808
77275
|
accessToken: z$1.string().min(1).max(4096),
|
|
@@ -77359,7 +77826,17 @@ const riverbankSiteConfigInputSchema = z$1.object({
|
|
|
77359
77826
|
z$1.object({
|
|
77360
77827
|
config: riverbankSiteConfigInputSchema,
|
|
77361
77828
|
forceContentTypes: z$1.boolean().optional(),
|
|
77362
|
-
mode: z$1.enum(["apply", "preview"]).optional()
|
|
77829
|
+
mode: z$1.enum(["apply", "preview"]).optional(),
|
|
77830
|
+
expectedMailingListProviderScope: z$1.unknown().transform((value, ctx) => {
|
|
77831
|
+
if (value === void 0) return void 0;
|
|
77832
|
+
const parsed = parseMailingListProviderScope(value);
|
|
77833
|
+
if (parsed.ok) return parsed.value;
|
|
77834
|
+
ctx.addIssue({
|
|
77835
|
+
code: "custom",
|
|
77836
|
+
message: "Invalid mailing-list provider scope"
|
|
77837
|
+
});
|
|
77838
|
+
return z$1.NEVER;
|
|
77839
|
+
}).optional()
|
|
77363
77840
|
}).strict();
|
|
77364
77841
|
//#endregion
|
|
77365
77842
|
//#region ../api/src/sdkThemeWire.ts
|
|
@@ -81988,6 +82465,7 @@ function readEntrySlotKey(block) {
|
|
|
81988
82465
|
function admitEntrySlotBlock(block, customBlocks) {
|
|
81989
82466
|
const base = {
|
|
81990
82467
|
id: block.id ?? block.blockId ?? null,
|
|
82468
|
+
contentVersionId: block.contentVersionId,
|
|
81991
82469
|
kind: block.kind,
|
|
81992
82470
|
purpose: block.purpose,
|
|
81993
82471
|
...isRecord(block.bindings) ? { bindings: block.bindings } : {}
|