@riverbankcms/sdk 0.146.0 → 0.147.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/{PreviewEditorSidebar-kg2r2Fyi.mjs → PreviewEditorSidebar-DtpB3_sS.mjs} +51 -33
- package/dist/{PreviewEditorUI-sWMLp5dT.mjs → PreviewEditorUI-DxTLgaHo.mjs} +3 -3
- package/dist/{PreviewQueryProvider-Cg51xq1w.mjs → PreviewQueryProvider-Dd4dxOiU.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-h2ti3Hch.mjs → SdkPreviewModeRuntime-DMMNCngt.mjs} +39 -12
- package/dist/{SiteChromeCustomizeContext-DEACFH9m.mjs → SiteChromeCustomizeContext-DQXZXiqS.mjs} +2499 -1682
- package/dist/_dts/ai/src/contracts/proposals.d.ts +198 -0
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +18 -0
- package/dist/_dts/api/src/accountApi.d.ts +5 -5
- package/dist/_dts/api/src/bookingConfig.d.ts +16 -0
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -13
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -44
- package/dist/_dts/api/src/bookingPeople.d.ts +92 -0
- package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +38 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +11 -49
- package/dist/_dts/api/src/bookingSettingsSections.d.ts +1 -1
- package/dist/_dts/api/src/bookings.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +587 -561
- package/dist/_dts/api/src/eventManagementContracts.d.ts +23 -8
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/index.d.ts +3 -2
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +1 -6
- package/dist/_dts/api/src/mailingListIntegration.d.ts +6 -0
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +1 -1
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +15 -0
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +19 -0
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +48 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +7 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +15 -0
- package/dist/_dts/api/src/sdkCourseBooking.d.ts +4 -4
- package/dist/_dts/api/src/siteLifecycleEndpoints.d.ts +61 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -18
- package/dist/_dts/api/src/siteOnboarding.d.ts +2 -14
- package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -0
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +22 -4
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +19 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-choice.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-note.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-state.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-success.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +2 -4
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingMailingListNote.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/shared/mailingListSignupCopy.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -2
- package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -3
- package/dist/_dts/core/src/index.d.ts +1 -1
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +15 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -0
- package/dist/_dts/core/src/navigation-portal-labels.d.ts +9 -0
- package/dist/_dts/core/src/participants.d.ts +0 -38
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +102 -22
- package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +7 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +4 -3
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +2 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +13 -0
- package/dist/_dts/theme-core/src/footer/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/effectiveNavLinkStyle.d.ts +17 -0
- package/dist/_dts/theme-core/src/header/generateHeaderLogoStyles.d.ts +15 -0
- package/dist/_dts/theme-core/src/header/generateHeaderNavLinkStyles.d.ts +4 -0
- package/dist/_dts/theme-core/src/header/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/openingForegroundProjection.d.ts +7 -0
- package/dist/_dts/theme-core/src/header/rootPaint.d.ts +4 -0
- package/dist/_dts/theme-core/src/navigation/effectPolicy.d.ts +38 -0
- package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +4 -0
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +1 -1
- package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +7 -0
- package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +29 -22
- package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +10 -2
- package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +9 -0
- package/dist/_dts/theme-core/src/utils/cssDeclarations.d.ts +2 -0
- package/dist/_dts/ui/src/badge.d.ts +2 -1
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/_dts/ui/src/combobox-keys.d.ts +23 -0
- package/dist/_dts/ui/src/combobox-rows.d.ts +34 -0
- package/dist/_dts/ui/src/combobox.d.ts +26 -1
- package/dist/_dts/ui/src/date-picker.d.ts +5 -8
- package/dist/_dts/ui/src/editor-item-card.d.ts +1 -0
- package/dist/_dts/ui/src/field-trigger.d.ts +39 -0
- package/dist/_dts/ui/src/fieldControl.d.ts +27 -0
- package/dist/_dts/ui/src/index.d.ts +4 -1
- package/dist/_dts/ui/src/native-select.d.ts +8 -0
- package/dist/_dts/ui/src/popover.d.ts +7 -1
- package/dist/_dts/ui/src/segmented-control.d.ts +4 -0
- package/dist/_dts/ui/src/surface.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-BQKL045f.mjs → BookingMailingListNote-1n4Ch_u_.mjs} +15 -4
- package/dist/client/{CheckboxChoice--W2n6yKs.mjs → CheckboxChoice-B33MqoUo.mjs} +1 -1
- package/dist/client/{DiscountCodeDisclosure-CsOtjFY7.mjs → DiscountCodeDisclosure-CKJtz0mY.mjs} +1 -1
- package/dist/client/{EventCombined.client-BdRjVbhH.mjs → EventCombined.client-C0pgma9y.mjs} +7 -7
- package/dist/client/{EventListing.client-DBxC6xOU.mjs → EventListing.client-4fhLOvHP.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-mHEJKrTs.mjs → LeafletStaticMap-DScC4F3w.mjs} +1 -1
- package/dist/client/{scrollToBlock-BNgaEUpo.mjs → TerminalPanel-B5ZUsYhe.mjs} +77 -77
- package/dist/client/{ThemedButton-CE5KYT6z.mjs → ThemedButton-DoVIV1Ao.mjs} +2 -2
- package/dist/client/{accordion-BEQNSptH.mjs → accordion-CoT5g7zo.mjs} +1 -1
- package/dist/client/{bookingForm-AMr-s5vw.mjs → bookingForm-BWxB46xD.mjs} +226 -106
- package/dist/client/bookings.mjs +367 -188
- package/dist/client/{carousel-Bbt_QgJy.mjs → carousel-DtNYWFd3.mjs} +2 -2
- package/dist/client/{carousel.client-jahpU9Vz.mjs → carousel.client-A2lG-9od.mjs} +1 -1
- package/dist/client/{cart-CnWi30zJ.mjs → cart-z4qZih1Y.mjs} +3 -3
- package/dist/client/{checkout-f3nkWgd4.mjs → checkout-DpL7euFH.mjs} +3 -3
- package/dist/client/{checkoutUrls-CW3-78uu.mjs → checkoutUrls-BEfR7kVu.mjs} +1 -1
- package/dist/client/client.mjs +2125 -1420
- package/dist/client/{colorStyles-CuJBiS-1.mjs → colorStyles-j5U9v5JA.mjs} +5 -1
- package/dist/client/{context-Bc8T6pCe.mjs → context-C8TinPJc.mjs} +1 -1
- package/dist/client/{dates-DUsCEzLb.mjs → dates-vwwxTeB0.mjs} +2 -2
- package/dist/client/{eventCalendar-CKwgXui5.mjs → eventCalendar-DIbHfJXO.mjs} +10 -10
- package/dist/client/{eventCombined-CBAOSTGR.mjs → eventCombined-DoGMJ6cg.mjs} +4 -4
- package/dist/client/{eventDetails-Dh-_WiBD.mjs → eventDetails-BjN9v6a1.mjs} +4 -4
- package/dist/client/{eventListing-CA3frIH5.mjs → eventListing-DajjWgOv.mjs} +4 -4
- package/dist/client/{eventRegistration-BHtsgdcg.mjs → eventRegistration-DMq9gMA-.mjs} +109 -41
- package/dist/client/{form-C2h3YAcg.mjs → form-Qf6qTbos.mjs} +5 -5
- package/dist/client/{headerSection-lwMuMTH9.mjs → headerSection-D7qJrqFX.mjs} +3 -3
- package/dist/client/hooks.mjs +661 -116
- package/dist/client/{locationMap-DJ2bLODV.mjs → locationMap-CCF9-t_0.mjs} +4 -4
- package/dist/client/{FieldValidationMessage-AYanWFb-.mjs → mailingListSignupCopy-DZSHZrm6.mjs} +14 -1
- package/dist/client/{media-BtJ37tzS.mjs → media-CwBGetqC.mjs} +1 -1
- package/dist/client/{newsletterForm-8Pu5K32g.mjs → newsletterForm-DzCLSP4S.mjs} +6 -6
- package/dist/client/{pricing-HHx3IgBz.mjs → pricing-Cgxv2KLC.mjs} +1 -1
- package/dist/client/{productDetail-C_1odnAf.mjs → productDetail-ru9w5GHx.mjs} +3 -3
- package/dist/client/{productList-CtCv-Nmx.mjs → productList-zaapKSl-.mjs} +3 -3
- package/dist/client/{propsDecoder-Dcgsncxb.mjs → propsDecoder-CwvvNOHx.mjs} +52 -6
- package/dist/client/rendering/client.mjs +951 -369
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2153 -1393
- package/dist/client/{routeIslandApiConfig-CWLP7wu3.mjs → routeIslandApiConfig-BwVFo0Y4.mjs} +1 -1
- package/dist/client/{shop-commerce-B88zmWWo.mjs → shop-commerce-De7gEnkA.mjs} +8 -8
- package/dist/client/{shop-commerce-store-DtSfkKuX.mjs → shop-commerce-store-B3MCxIBW.mjs} +1 -1
- package/dist/client/{shop-DQXrQ8kJ.mjs → shop-mktkXvbV.mjs} +7 -7
- package/dist/client/{shopShared-cuaONpkJ.mjs → shopShared-TqExh235.mjs} +5 -5
- package/dist/client/{useEventFilters-Bukew6Gb.mjs → useEventFilters-n_OjkIjX.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +122 -50
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-base.css +53 -2
- package/dist/preview-next/editor-chrome.css +7 -4
- package/dist/preview-next/keepAlive.mjs +122 -50
- package/dist/preview-next/middleware.mjs +122 -50
- package/dist/{previewAuthStore-h5IgbSp4.mjs → previewAuthStore-C_EHQ5XA.mjs} +122 -50
- package/dist/{sdk-runtime-DTc1uIXn.mjs → sdk-runtime-BIkJg5y1.mjs} +2 -2
- package/dist/{separator-BpHS1KZK.mjs → separator-C9qDP95Z.mjs} +1 -1
- package/dist/server/components.mjs +25345 -24942
- package/dist/server/config-validation.mjs +711 -163
- package/dist/server/config.mjs +711 -163
- package/dist/server/data.mjs +709 -162
- package/dist/server/index.mjs +123 -51
- package/dist/server/navigation.mjs +13 -2
- package/dist/server/next.mjs +4538 -4169
- package/dist/server/page-converter.mjs +107 -64
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2509 -2104
- package/dist/server/rendering.mjs +25526 -25104
- package/dist/server/routing.mjs +750 -289
- package/dist/server/server.mjs +671 -148
- package/dist/server/theme-bridge.mjs +66 -17
- package/dist/server/theme.mjs +5 -1
- package/dist/styles/index.css +32 -4
- package/package.json +1 -1
- package/dist/_dts/core/src/participant-identity.d.ts +0 -135
package/dist/client/hooks.mjs
CHANGED
|
@@ -662,17 +662,35 @@ function parseMailingListRuntimeContext(value) {
|
|
|
662
662
|
if (!isRecord$13(value)) return invalidRuntimeContext();
|
|
663
663
|
if (value.tag === "not_configured") return ok({ tag: "not_configured" });
|
|
664
664
|
if (value.tag !== "configured") return invalidRuntimeContext();
|
|
665
|
+
return parseConfiguredRuntimeContext(value);
|
|
666
|
+
}
|
|
667
|
+
function parseConfiguredRuntimeContext(value) {
|
|
665
668
|
const revision = parseMailingListSetupRevision(value.revision);
|
|
666
669
|
const form = parseMailingListGlobalForm(value.form);
|
|
667
670
|
const provider = parseRuntimeProvider(value.provider);
|
|
668
|
-
|
|
671
|
+
const bookingSignup = parseBookingSignupOffer(value.bookingSignup);
|
|
672
|
+
if (revision === null || !form.ok || provider === null || bookingSignup === null) return invalidRuntimeContext();
|
|
669
673
|
return ok({
|
|
670
674
|
tag: "configured",
|
|
671
675
|
revision,
|
|
676
|
+
bookingSignup,
|
|
672
677
|
form: form.value,
|
|
673
678
|
provider
|
|
674
679
|
});
|
|
675
680
|
}
|
|
681
|
+
function parseBookingSignupOffer(value) {
|
|
682
|
+
if (value === void 0) return {
|
|
683
|
+
tag: "unavailable",
|
|
684
|
+
reason: "disabled"
|
|
685
|
+
};
|
|
686
|
+
if (!isRecord$13(value)) return null;
|
|
687
|
+
if (value.tag === "offered") return { tag: "offered" };
|
|
688
|
+
if (value.tag === "unavailable" && (value.reason === "disabled" || value.reason === "fields" || value.reason === "destination")) return {
|
|
689
|
+
tag: "unavailable",
|
|
690
|
+
reason: value.reason
|
|
691
|
+
};
|
|
692
|
+
return null;
|
|
693
|
+
}
|
|
676
694
|
function parseRuntimeProvider(value) {
|
|
677
695
|
if (!isRecord$13(value)) return null;
|
|
678
696
|
switch (value.provider) {
|
|
@@ -2384,13 +2402,16 @@ const SURFACE_FOREGROUND_CSS_VARS = {
|
|
|
2384
2402
|
text: "--rb-surface-text-color",
|
|
2385
2403
|
heading: "--rb-surface-heading-color",
|
|
2386
2404
|
link: "--rb-surface-link-color",
|
|
2405
|
+
linkHover: "--rb-surface-link-hover-color",
|
|
2387
2406
|
supporting: "--rb-surface-supporting-color"
|
|
2388
2407
|
};
|
|
2389
2408
|
const DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
|
|
2409
|
+
const DEFAULT_SURFACE_LINK_COLOR = "rgb(var(--tb-primary, var(--tb-text, 17 24 39)))";
|
|
2390
2410
|
const DEFAULT_ROLE_FALLBACKS = {
|
|
2391
2411
|
text: DEFAULT_SURFACE_TEXT_COLOR,
|
|
2392
2412
|
heading: DEFAULT_SURFACE_TEXT_COLOR,
|
|
2393
|
-
link:
|
|
2413
|
+
link: DEFAULT_SURFACE_LINK_COLOR,
|
|
2414
|
+
linkHover: DEFAULT_SURFACE_LINK_COLOR,
|
|
2394
2415
|
supporting: "rgb(var(--tb-mutedText, 100 116 139))"
|
|
2395
2416
|
};
|
|
2396
2417
|
function requireSurfaceColorValue(role, value) {
|
|
@@ -2400,10 +2421,12 @@ function requireSurfaceColorValue(role, value) {
|
|
|
2400
2421
|
}
|
|
2401
2422
|
function completeSurfaceForegrounds(input) {
|
|
2402
2423
|
const text = requireSurfaceColorValue("text", input.text);
|
|
2424
|
+
const link = input.link === void 0 ? text : requireSurfaceColorValue("link", input.link);
|
|
2403
2425
|
return {
|
|
2404
2426
|
text,
|
|
2405
2427
|
heading: input.heading === void 0 ? text : requireSurfaceColorValue("heading", input.heading),
|
|
2406
|
-
link
|
|
2428
|
+
link,
|
|
2429
|
+
linkHover: input.linkHover === void 0 ? link : requireSurfaceColorValue("linkHover", input.linkHover),
|
|
2407
2430
|
supporting: input.supporting === void 0 ? text : requireSurfaceColorValue("supporting", input.supporting)
|
|
2408
2431
|
};
|
|
2409
2432
|
}
|
|
@@ -2411,6 +2434,7 @@ function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FAL
|
|
|
2411
2434
|
const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
|
|
2412
2435
|
const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
|
|
2413
2436
|
if (role === "text") return `var(${roleVariable}, ${fallback})`;
|
|
2437
|
+
if (role === "linkHover") return `var(${roleVariable}, ${surfaceForegroundValue("link", fallback)})`;
|
|
2414
2438
|
return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
|
|
2415
2439
|
}
|
|
2416
2440
|
function surfaceForegroundValueWithOpacity(role, opacityPercent) {
|
|
@@ -2424,9 +2448,25 @@ function surfaceForegroundStyle(input) {
|
|
|
2424
2448
|
[SURFACE_FOREGROUND_CSS_VARS.text]: foregrounds.text,
|
|
2425
2449
|
[SURFACE_FOREGROUND_CSS_VARS.heading]: foregrounds.heading,
|
|
2426
2450
|
[SURFACE_FOREGROUND_CSS_VARS.link]: foregrounds.link,
|
|
2427
|
-
[SURFACE_FOREGROUND_CSS_VARS.
|
|
2451
|
+
[SURFACE_FOREGROUND_CSS_VARS.linkHover]: foregrounds.linkHover,
|
|
2452
|
+
[SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting,
|
|
2453
|
+
"--rb-surface-link-hover-decoration": hoverDecoration(input)
|
|
2454
|
+
};
|
|
2455
|
+
}
|
|
2456
|
+
function surfaceForegroundInputFromResolved(foreground, color) {
|
|
2457
|
+
const { roles } = foreground;
|
|
2458
|
+
return {
|
|
2459
|
+
text: color(roles.text),
|
|
2460
|
+
heading: color(roles.heading),
|
|
2461
|
+
link: color(roles.link),
|
|
2462
|
+
linkHover: color(roles.linkHover),
|
|
2463
|
+
supporting: color(roles.supporting),
|
|
2464
|
+
hoverDecoration: foreground.hoverDecoration
|
|
2428
2465
|
};
|
|
2429
2466
|
}
|
|
2467
|
+
function hoverDecoration(input) {
|
|
2468
|
+
return input.hoverDecoration ?? "underline";
|
|
2469
|
+
}
|
|
2430
2470
|
//#endregion
|
|
2431
2471
|
//#region ../theme-core/src/buttons/constants.ts
|
|
2432
2472
|
/**
|
|
@@ -3283,6 +3323,64 @@ function parseAlpha(source) {
|
|
|
3283
3323
|
function isRgbChannel(value) {
|
|
3284
3324
|
return Number.isFinite(value) && value >= 0 && value <= 255;
|
|
3285
3325
|
}
|
|
3326
|
+
/**
|
|
3327
|
+
* Derive the hover foreground that belongs with a resolved resting foreground.
|
|
3328
|
+
*
|
|
3329
|
+
* A resting foreground is chosen to be legible against a known surface. A hover
|
|
3330
|
+
* state derived from it stays within a bounded distance of that colour, so it
|
|
3331
|
+
* inherits most of the resting colour's contrast margin instead of asserting
|
|
3332
|
+
* an unrelated brand colour that no one checked against the surface.
|
|
3333
|
+
*
|
|
3334
|
+
* That bounded-distance property is what lets this be used on a transparent
|
|
3335
|
+
* overlay header, where the backdrop is only partly knowable: the scrolled
|
|
3336
|
+
* state composites a 60% glass tint over arbitrary page content, so no
|
|
3337
|
+
* compile-time contrast proof is available there. Staying near a colour that
|
|
3338
|
+
* is already trusted in both states is a weaker claim than a contrast proof,
|
|
3339
|
+
* and it is one this function can actually keep.
|
|
3340
|
+
*
|
|
3341
|
+
* Returns `null` when the resting token is not a plain palette token — an
|
|
3342
|
+
* already-faded or raw value has no well-defined softening, and the caller
|
|
3343
|
+
* should leave hover alone rather than guess.
|
|
3344
|
+
*/
|
|
3345
|
+
function deriveForegroundHoverToken(restingToken) {
|
|
3346
|
+
const parts = parseColorTokenParts(restingToken);
|
|
3347
|
+
if (parts.kind !== "token") return null;
|
|
3348
|
+
if (parts.opacityPercent !== null) return null;
|
|
3349
|
+
return parseThemeColorToken(`${parts.token}/85`);
|
|
3350
|
+
}
|
|
3351
|
+
/**
|
|
3352
|
+
* Prefer an authored hover that survives every measured backdrop, then a
|
|
3353
|
+
* checked softening of the resting colour. A null backdrop set represents a
|
|
3354
|
+
* trusted treatment: only an explicit authored hover may change the colour.
|
|
3355
|
+
* When neither option works, retain the resting colour and underline it.
|
|
3356
|
+
*/
|
|
3357
|
+
function planForegroundHover(input) {
|
|
3358
|
+
const { restingToken, candidate, palette, backdrops } = input;
|
|
3359
|
+
if (candidate && candidate !== restingToken) {
|
|
3360
|
+
if (backdrops === null || survivesEveryBackdrop(candidate, palette, backdrops)) return {
|
|
3361
|
+
kind: "candidate",
|
|
3362
|
+
token: candidate,
|
|
3363
|
+
decoration: "initial"
|
|
3364
|
+
};
|
|
3365
|
+
}
|
|
3366
|
+
const softened = deriveForegroundHoverToken(restingToken);
|
|
3367
|
+
if (softened && backdrops && survivesEveryBackdrop(softened, palette, backdrops)) return {
|
|
3368
|
+
kind: "softened",
|
|
3369
|
+
token: softened,
|
|
3370
|
+
decoration: "initial"
|
|
3371
|
+
};
|
|
3372
|
+
return {
|
|
3373
|
+
kind: "resting",
|
|
3374
|
+
token: restingToken,
|
|
3375
|
+
decoration: "underline"
|
|
3376
|
+
};
|
|
3377
|
+
}
|
|
3378
|
+
function survivesEveryBackdrop(token, palette, backdrops) {
|
|
3379
|
+
return backdrops.length > 0 && backdrops.every((backdrop) => {
|
|
3380
|
+
const foreground = resolveOpaqueSurfaceHex(token, palette, backdrop);
|
|
3381
|
+
return foreground !== null && contrastRatio(foreground, backdrop) >= 4.5;
|
|
3382
|
+
});
|
|
3383
|
+
}
|
|
3286
3384
|
//#endregion
|
|
3287
3385
|
//#region ../theme-core/src/surfaces/resolveSurfaceForeground.ts
|
|
3288
3386
|
const FALLBACK_TEXT_TOKENS = [
|
|
@@ -3329,12 +3427,16 @@ function resolveSurfaceForeground(background, palette, candidates = {}, options
|
|
|
3329
3427
|
}
|
|
3330
3428
|
function foregroundCandidates(background, overrides) {
|
|
3331
3429
|
return {
|
|
3332
|
-
text: overrides.text
|
|
3333
|
-
heading: overrides.heading
|
|
3334
|
-
link: overrides.link
|
|
3335
|
-
|
|
3430
|
+
text: candidateOrBackground(overrides.text, background?.textColor),
|
|
3431
|
+
heading: candidateOrBackground(overrides.heading, background?.headingColor),
|
|
3432
|
+
link: candidateOrBackground(overrides.link, background?.linkColor),
|
|
3433
|
+
linkHover: candidateOrBackground(overrides.linkHover),
|
|
3434
|
+
supporting: candidateOrBackground(overrides.supporting, background?.supportingColor)
|
|
3336
3435
|
};
|
|
3337
3436
|
}
|
|
3437
|
+
function candidateOrBackground(candidate, backgroundValue) {
|
|
3438
|
+
return candidate ?? backgroundValue ?? null;
|
|
3439
|
+
}
|
|
3338
3440
|
function resolveDeterministicForeground(backgroundReference, candidates, palette, compositeBase) {
|
|
3339
3441
|
const backgroundHex = resolveOpaqueSurfaceHex(backgroundReference, palette, compositeBase);
|
|
3340
3442
|
if (!backgroundHex) return resolveTrustedTreatmentForeground(candidates, palette);
|
|
@@ -3346,29 +3448,51 @@ function resolveDeterministicForeground(backgroundReference, candidates, palette
|
|
|
3346
3448
|
...FALLBACK_TEXT_TOKENS
|
|
3347
3449
|
], backgroundHex, palette, derivedOnToken ? [derivedOnToken] : []);
|
|
3348
3450
|
if (!text) return { kind: "unknown" };
|
|
3349
|
-
return {
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
};
|
|
3451
|
+
return knownForeground({
|
|
3452
|
+
text,
|
|
3453
|
+
heading: safeTokenOr(candidates.heading, text, backgroundHex, palette),
|
|
3454
|
+
link: safeTokenOr(candidates.link, text, backgroundHex, palette),
|
|
3455
|
+
supporting: safeTokenOr(candidates.supporting, text, backgroundHex, palette)
|
|
3456
|
+
}, {
|
|
3457
|
+
kind: "measured",
|
|
3458
|
+
backdropHex: backgroundHex
|
|
3459
|
+
}, candidates.linkHover, palette);
|
|
3358
3460
|
}
|
|
3359
3461
|
function resolveTrustedTreatmentForeground(candidates, palette) {
|
|
3360
3462
|
const text = canonicalToken(candidates.text, palette);
|
|
3361
3463
|
if (!text) return { kind: "unknown" };
|
|
3464
|
+
return knownForeground({
|
|
3465
|
+
text,
|
|
3466
|
+
heading: canonicalToken(candidates.heading, palette) ?? text,
|
|
3467
|
+
link: canonicalToken(candidates.link, palette) ?? text,
|
|
3468
|
+
supporting: canonicalToken(candidates.supporting, palette) ?? text
|
|
3469
|
+
}, { kind: "trusted-treatment" }, candidates.linkHover, palette);
|
|
3470
|
+
}
|
|
3471
|
+
function knownForeground(roles, provenance, hoverCandidate, palette) {
|
|
3472
|
+
const hover = planForegroundHover({
|
|
3473
|
+
restingToken: roles.link,
|
|
3474
|
+
candidate: canonicalHoverToken(hoverCandidate, palette),
|
|
3475
|
+
palette,
|
|
3476
|
+
backdrops: provenance.kind === "measured" ? [provenance.backdropHex] : null
|
|
3477
|
+
});
|
|
3362
3478
|
return {
|
|
3363
3479
|
kind: "known",
|
|
3480
|
+
provenance,
|
|
3364
3481
|
roles: {
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
}
|
|
3482
|
+
...roles,
|
|
3483
|
+
linkHover: hover.token
|
|
3484
|
+
},
|
|
3485
|
+
hoverDecoration: hover.decoration
|
|
3370
3486
|
};
|
|
3371
3487
|
}
|
|
3488
|
+
function canonicalHoverToken(reference, palette) {
|
|
3489
|
+
const token = parseThemeColorToken(reference);
|
|
3490
|
+
if (token) {
|
|
3491
|
+
const parts = parseColorTokenParts(token);
|
|
3492
|
+
if (parts.kind === "token" && resolveConcreteColorHex(parts.token, palette)) return token;
|
|
3493
|
+
}
|
|
3494
|
+
return canonicalToken(reference, palette);
|
|
3495
|
+
}
|
|
3372
3496
|
function safeTokenOr(candidate, fallback, backgroundHex, palette) {
|
|
3373
3497
|
return firstSafeToken([candidate], backgroundHex, palette) ?? fallback;
|
|
3374
3498
|
}
|
|
@@ -6307,6 +6431,43 @@ const effectCompositionSchema = z.object({
|
|
|
6307
6431
|
/** Effects applied on focus */
|
|
6308
6432
|
focus: z.array(effectApplicationSchema).optional()
|
|
6309
6433
|
});
|
|
6434
|
+
const policiesById = {
|
|
6435
|
+
"darken-background": "other",
|
|
6436
|
+
"lighten-background": "other",
|
|
6437
|
+
"fade-background": "other",
|
|
6438
|
+
"opacity-reduce": "other",
|
|
6439
|
+
"animated-gradient": "other",
|
|
6440
|
+
"background-on-hover": "paired-hover",
|
|
6441
|
+
"background-on-hover-alpha": "paired-hover",
|
|
6442
|
+
"border-glow": "other",
|
|
6443
|
+
"drop-shadow": "other",
|
|
6444
|
+
"inner-shadow": "other",
|
|
6445
|
+
"neumorphic-shadow": "other",
|
|
6446
|
+
"outer-glow": "other",
|
|
6447
|
+
"retro-3d-shadow": "other",
|
|
6448
|
+
"scale-up": "other",
|
|
6449
|
+
"scale-down": "other",
|
|
6450
|
+
lift: "other",
|
|
6451
|
+
"press-down": "other",
|
|
6452
|
+
pop: "other",
|
|
6453
|
+
"aurora-glow": "other",
|
|
6454
|
+
"cosmic-stardust": "other",
|
|
6455
|
+
"gradient-border-fill": "other",
|
|
6456
|
+
"animated-gradient-border-fill": "other",
|
|
6457
|
+
"border-bottom-grow": "other",
|
|
6458
|
+
"gradient-text": "other",
|
|
6459
|
+
"text-color-change": "text-colour",
|
|
6460
|
+
"border-color-change": "other",
|
|
6461
|
+
"sketchy-border": "other",
|
|
6462
|
+
"pulse-animation": "other",
|
|
6463
|
+
"nav-underline": "underline",
|
|
6464
|
+
"nav-frosted-base": "other",
|
|
6465
|
+
"nav-frosted-hover": "other",
|
|
6466
|
+
"nav-frosted-active": "other"
|
|
6467
|
+
};
|
|
6468
|
+
function navEffectPolicy(effectId) {
|
|
6469
|
+
return policiesById[effectId] ?? null;
|
|
6470
|
+
}
|
|
6310
6471
|
//#endregion
|
|
6311
6472
|
//#region ../theme-core/src/navigation/types.ts
|
|
6312
6473
|
/**
|
|
@@ -6395,6 +6556,16 @@ const navLinkStyleSchema = z.object({
|
|
|
6395
6556
|
/** Composable effects */
|
|
6396
6557
|
effects: effectCompositionSchema.optional()
|
|
6397
6558
|
});
|
|
6559
|
+
function navLinkHoverColorCandidate(style) {
|
|
6560
|
+
const effect = style?.effects?.hover?.find((item) => navEffectPolicy(item.effectId) === "text-colour");
|
|
6561
|
+
return parseThemeColorToken(effect?.options?.hoverColorToken ?? style?.hoverColorToken);
|
|
6562
|
+
}
|
|
6563
|
+
function navLinkOwnsHoverForeground(style) {
|
|
6564
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "paired-hover") ?? false;
|
|
6565
|
+
}
|
|
6566
|
+
function navLinkOwnsUnderline(style) {
|
|
6567
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "underline") ?? false;
|
|
6568
|
+
}
|
|
6398
6569
|
//#endregion
|
|
6399
6570
|
//#region ../theme-core/src/customCss/validation.ts
|
|
6400
6571
|
/**
|
|
@@ -8563,6 +8734,64 @@ function defineEndpointDefinitions(definitions) {
|
|
|
8563
8734
|
return definitions;
|
|
8564
8735
|
}
|
|
8565
8736
|
//#endregion
|
|
8737
|
+
//#region ../api/src/apiEndpointTypes.ts
|
|
8738
|
+
function allowedDemoMutationPolicy() {
|
|
8739
|
+
return {
|
|
8740
|
+
classification: "allowed",
|
|
8741
|
+
publicMessage: ""
|
|
8742
|
+
};
|
|
8743
|
+
}
|
|
8744
|
+
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
8745
|
+
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
8746
|
+
return {
|
|
8747
|
+
classification,
|
|
8748
|
+
publicMessage
|
|
8749
|
+
};
|
|
8750
|
+
}
|
|
8751
|
+
//#endregion
|
|
8752
|
+
//#region ../api/src/demoMutationPolicies.ts
|
|
8753
|
+
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
8754
|
+
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
8755
|
+
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
8756
|
+
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
8757
|
+
//#endregion
|
|
8758
|
+
//#region ../api/src/siteLifecycleEndpoints.ts
|
|
8759
|
+
const SITE_LIFECYCLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8760
|
+
createSite: {
|
|
8761
|
+
path: "/sites/manage",
|
|
8762
|
+
method: "POST",
|
|
8763
|
+
tags: ["site"],
|
|
8764
|
+
auth: "user",
|
|
8765
|
+
responseKind: "json",
|
|
8766
|
+
errors: []
|
|
8767
|
+
},
|
|
8768
|
+
createSiteManual: {
|
|
8769
|
+
path: "/sites/manual",
|
|
8770
|
+
method: "POST",
|
|
8771
|
+
tags: ["site"],
|
|
8772
|
+
auth: "user",
|
|
8773
|
+
responseKind: "json",
|
|
8774
|
+
errors: []
|
|
8775
|
+
},
|
|
8776
|
+
updateSite: {
|
|
8777
|
+
path: "/sites/manage",
|
|
8778
|
+
method: "PUT",
|
|
8779
|
+
tags: ["site"],
|
|
8780
|
+
auth: "user",
|
|
8781
|
+
responseKind: "json",
|
|
8782
|
+
errors: []
|
|
8783
|
+
},
|
|
8784
|
+
deleteSite: {
|
|
8785
|
+
path: "/sites/{siteId}",
|
|
8786
|
+
method: "DELETE",
|
|
8787
|
+
tags: ["site", "site-{siteId}"],
|
|
8788
|
+
auth: "user",
|
|
8789
|
+
responseKind: "json",
|
|
8790
|
+
errors: [],
|
|
8791
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
8792
|
+
}
|
|
8793
|
+
});
|
|
8794
|
+
//#endregion
|
|
8566
8795
|
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
8567
8796
|
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8568
8797
|
subscribeNewsletter: {
|
|
@@ -8623,27 +8852,6 @@ const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
8623
8852
|
}
|
|
8624
8853
|
});
|
|
8625
8854
|
//#endregion
|
|
8626
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
8627
|
-
function allowedDemoMutationPolicy() {
|
|
8628
|
-
return {
|
|
8629
|
-
classification: "allowed",
|
|
8630
|
-
publicMessage: ""
|
|
8631
|
-
};
|
|
8632
|
-
}
|
|
8633
|
-
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
8634
|
-
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
8635
|
-
return {
|
|
8636
|
-
classification,
|
|
8637
|
-
publicMessage
|
|
8638
|
-
};
|
|
8639
|
-
}
|
|
8640
|
-
//#endregion
|
|
8641
|
-
//#region ../api/src/demoMutationPolicies.ts
|
|
8642
|
-
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
8643
|
-
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
8644
|
-
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
8645
|
-
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
8646
|
-
//#endregion
|
|
8647
8855
|
//#region ../api/src/cache-tags.ts
|
|
8648
8856
|
/**
|
|
8649
8857
|
* Tag templates for endpoint definitions (support `{param}` placeholders).
|
|
@@ -9670,6 +9878,20 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
9670
9878
|
responseKind: "json",
|
|
9671
9879
|
errors: ["auth:forbidden", "server:internal_error"]
|
|
9672
9880
|
},
|
|
9881
|
+
setMailingListBookingOptIn: {
|
|
9882
|
+
path: "/sites/{siteId}/mailing-list/setup/booking-opt-in",
|
|
9883
|
+
method: "PUT",
|
|
9884
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9885
|
+
auth: "user",
|
|
9886
|
+
responseKind: "json",
|
|
9887
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
9888
|
+
errors: [
|
|
9889
|
+
"auth:forbidden",
|
|
9890
|
+
"validation:invalid_input",
|
|
9891
|
+
"resource:conflict",
|
|
9892
|
+
"server:internal_error"
|
|
9893
|
+
]
|
|
9894
|
+
},
|
|
9673
9895
|
getMailingListAuthoringContext: {
|
|
9674
9896
|
path: "/sites/{siteId}/mailing-list/authoring-context",
|
|
9675
9897
|
method: "GET",
|
|
@@ -10994,6 +11216,54 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10994
11216
|
}
|
|
10995
11217
|
});
|
|
10996
11218
|
//#endregion
|
|
11219
|
+
//#region ../api/src/bookingPeopleEndpointDefinitions.ts
|
|
11220
|
+
/**
|
|
11221
|
+
* People endpoints (#1356): the People list, its CSV export, and deleting a
|
|
11222
|
+
* person when nothing is attached to them.
|
|
11223
|
+
*/
|
|
11224
|
+
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
11225
|
+
listPeople: {
|
|
11226
|
+
path: "/sites/{siteId}/bookings/people",
|
|
11227
|
+
method: "GET",
|
|
11228
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11229
|
+
auth: "user",
|
|
11230
|
+
responseKind: "json",
|
|
11231
|
+
errors: ["server:internal_error"]
|
|
11232
|
+
},
|
|
11233
|
+
exportPeopleCsv: {
|
|
11234
|
+
path: "/sites/{siteId}/bookings/people/export.csv",
|
|
11235
|
+
method: "GET",
|
|
11236
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11237
|
+
auth: "user",
|
|
11238
|
+
errors: [],
|
|
11239
|
+
responseKind: "blob"
|
|
11240
|
+
},
|
|
11241
|
+
checkPersonDeletion: {
|
|
11242
|
+
path: "/sites/{siteId}/bookings/people/{personId}/deletion-check",
|
|
11243
|
+
method: "GET",
|
|
11244
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11245
|
+
auth: "user",
|
|
11246
|
+
responseKind: "json",
|
|
11247
|
+
errors: [
|
|
11248
|
+
"auth:forbidden",
|
|
11249
|
+
"resource:not_found",
|
|
11250
|
+
"server:internal_error"
|
|
11251
|
+
]
|
|
11252
|
+
},
|
|
11253
|
+
deletePerson: {
|
|
11254
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
11255
|
+
method: "DELETE",
|
|
11256
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11257
|
+
auth: "user",
|
|
11258
|
+
responseKind: "json",
|
|
11259
|
+
errors: [
|
|
11260
|
+
"auth:forbidden",
|
|
11261
|
+
"resource:not_found",
|
|
11262
|
+
"server:internal_error"
|
|
11263
|
+
]
|
|
11264
|
+
}
|
|
11265
|
+
});
|
|
11266
|
+
//#endregion
|
|
10997
11267
|
//#region ../api/src/clientErrorReporting.ts
|
|
10998
11268
|
const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
|
|
10999
11269
|
path: "/client/error-report",
|
|
@@ -11029,6 +11299,7 @@ z.object({
|
|
|
11029
11299
|
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
11030
11300
|
}).strict();
|
|
11031
11301
|
({
|
|
11302
|
+
...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
|
|
11032
11303
|
...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
|
|
11033
11304
|
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
11034
11305
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
@@ -11042,7 +11313,7 @@ z.object({
|
|
|
11042
11313
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
11043
11314
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
11044
11315
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
11045
|
-
}, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteById, TAG_TEMPLATES.siteBySlug, TAG_TEMPLATES.siteByDomain, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.workflowRunById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.routeById, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.site, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.navigationItemById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteNavigation, TAG_TEMPLATES.navigationMenuById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteSettings, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicBookingServices, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.pageSurfaceById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.pageById, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteRedirects, TAG_TEMPLATES.siteRouteOutcomes, TAG_TEMPLATES.siteRoutableContent, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug, TAG_TEMPLATES.siteForms, { ...PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEventFilters, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicShop, TAG_TEMPLATES.publicCheckout, TAG_TEMPLATES.siteRoutableContent, { ...PUBLIC_EVENT_CHECKOUT_ENDPOINT_DEFINITIONS }, TAG_TEMPLATES.publicEvents, TAG_TEMPLATES.publicEvents, { ...EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS }, { ...SDK_EVENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
|
|
11316
|
+
}, 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 }, { ...BOOKING_PEOPLE_ENDPOINT_DEFINITIONS }, { ...SDK_MEDIA_ENDPOINT_DEFINITIONS }, { ...SDK_ENDPOINT_DEFINITIONS }, { ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS }, { ...SDK_EVENT_ENDPOINT_DEFINITIONS }, { ...SDK_ENTRY_READ_ENDPOINTS };
|
|
11046
11317
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
11047
11318
|
z.object({
|
|
11048
11319
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -11273,7 +11544,11 @@ z.discriminatedUnion("kind", navigationLinkInputSchemaOptions);
|
|
|
11273
11544
|
/** Pair a published version with the content it authorises at the render boundary. */
|
|
11274
11545
|
function readPublishedBlockPlacement(id, content) {
|
|
11275
11546
|
if (id == null && content == null) return null;
|
|
11276
|
-
if (id == null || content == null)
|
|
11547
|
+
if (id == null || content == null) return {
|
|
11548
|
+
kind: "incomplete",
|
|
11549
|
+
id: id ?? null,
|
|
11550
|
+
content: content ?? null
|
|
11551
|
+
};
|
|
11277
11552
|
return {
|
|
11278
11553
|
id,
|
|
11279
11554
|
content
|
|
@@ -17342,6 +17617,14 @@ const blockDesignFallback = {
|
|
|
17342
17617
|
};
|
|
17343
17618
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
17344
17619
|
//#endregion
|
|
17620
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
17621
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
17622
|
+
function headerRootPaint(header) {
|
|
17623
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
17624
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
17625
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
17626
|
+
}
|
|
17627
|
+
//#endregion
|
|
17345
17628
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
17346
17629
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
17347
17630
|
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
@@ -17521,6 +17804,259 @@ z.object(headerPreferencesShape).omit({
|
|
|
17521
17804
|
structure: true
|
|
17522
17805
|
}).strict();
|
|
17523
17806
|
//#endregion
|
|
17807
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
17808
|
+
/**
|
|
17809
|
+
* Built-in nav link style presets
|
|
17810
|
+
*
|
|
17811
|
+
* Each preset uses composable effects to achieve its look.
|
|
17812
|
+
*/
|
|
17813
|
+
const NAV_LINK_PRESETS = {
|
|
17814
|
+
/**
|
|
17815
|
+
* Minimal - subtle color change on hover
|
|
17816
|
+
*/
|
|
17817
|
+
minimal: {
|
|
17818
|
+
name: "Minimal",
|
|
17819
|
+
typography: "body",
|
|
17820
|
+
fontWeight: "medium",
|
|
17821
|
+
textTransform: "none",
|
|
17822
|
+
italic: false,
|
|
17823
|
+
colorToken: "text",
|
|
17824
|
+
hoverColorToken: "primary",
|
|
17825
|
+
padding: "none",
|
|
17826
|
+
borderRadius: "none",
|
|
17827
|
+
effects: { hover: [{
|
|
17828
|
+
effectId: "text-color-change",
|
|
17829
|
+
options: { hoverColorToken: "primary" }
|
|
17830
|
+
}] }
|
|
17831
|
+
},
|
|
17832
|
+
/**
|
|
17833
|
+
* Underline - static underline appears on hover
|
|
17834
|
+
*/
|
|
17835
|
+
underline: {
|
|
17836
|
+
name: "Underline",
|
|
17837
|
+
typography: "body",
|
|
17838
|
+
fontWeight: "medium",
|
|
17839
|
+
textTransform: "none",
|
|
17840
|
+
italic: false,
|
|
17841
|
+
colorToken: "text",
|
|
17842
|
+
padding: "none",
|
|
17843
|
+
borderRadius: "none",
|
|
17844
|
+
effects: { hover: [{
|
|
17845
|
+
effectId: "nav-underline",
|
|
17846
|
+
options: { style: "static" }
|
|
17847
|
+
}] }
|
|
17848
|
+
},
|
|
17849
|
+
/**
|
|
17850
|
+
* Underline Grow - animated underline grows from center on hover
|
|
17851
|
+
*/
|
|
17852
|
+
"underline-grow": {
|
|
17853
|
+
name: "Underline Grow",
|
|
17854
|
+
typography: "body",
|
|
17855
|
+
fontWeight: "medium",
|
|
17856
|
+
textTransform: "none",
|
|
17857
|
+
italic: false,
|
|
17858
|
+
colorToken: "text",
|
|
17859
|
+
padding: "none",
|
|
17860
|
+
borderRadius: "none",
|
|
17861
|
+
effects: { hover: [{
|
|
17862
|
+
effectId: "nav-underline",
|
|
17863
|
+
options: { style: "grow" }
|
|
17864
|
+
}] }
|
|
17865
|
+
},
|
|
17866
|
+
/**
|
|
17867
|
+
* Capsule - pill-shaped background on hover
|
|
17868
|
+
*/
|
|
17869
|
+
capsule: {
|
|
17870
|
+
name: "Capsule",
|
|
17871
|
+
typography: "body",
|
|
17872
|
+
fontWeight: "medium",
|
|
17873
|
+
textTransform: "none",
|
|
17874
|
+
italic: false,
|
|
17875
|
+
colorToken: "text",
|
|
17876
|
+
padding: "compact",
|
|
17877
|
+
borderRadius: "full",
|
|
17878
|
+
effects: {
|
|
17879
|
+
hover: [{
|
|
17880
|
+
effectId: "background-on-hover-alpha",
|
|
17881
|
+
options: {
|
|
17882
|
+
colorToken: "primary",
|
|
17883
|
+
opacity: 10
|
|
17884
|
+
}
|
|
17885
|
+
}],
|
|
17886
|
+
active: [{
|
|
17887
|
+
effectId: "background-on-hover-alpha",
|
|
17888
|
+
options: {
|
|
17889
|
+
colorToken: "primary",
|
|
17890
|
+
opacity: 15
|
|
17891
|
+
}
|
|
17892
|
+
}]
|
|
17893
|
+
}
|
|
17894
|
+
},
|
|
17895
|
+
/**
|
|
17896
|
+
* Solid - solid background color on hover
|
|
17897
|
+
*/
|
|
17898
|
+
solid: {
|
|
17899
|
+
name: "Solid",
|
|
17900
|
+
typography: "body",
|
|
17901
|
+
fontWeight: "medium",
|
|
17902
|
+
textTransform: "none",
|
|
17903
|
+
italic: false,
|
|
17904
|
+
colorToken: "text",
|
|
17905
|
+
padding: "compact",
|
|
17906
|
+
borderRadius: "none",
|
|
17907
|
+
effects: {
|
|
17908
|
+
hover: [{
|
|
17909
|
+
effectId: "background-on-hover",
|
|
17910
|
+
options: {
|
|
17911
|
+
colorToken: "primary",
|
|
17912
|
+
textColorToken: "primaryForeground"
|
|
17913
|
+
}
|
|
17914
|
+
}],
|
|
17915
|
+
active: [{
|
|
17916
|
+
effectId: "background-on-hover",
|
|
17917
|
+
options: {
|
|
17918
|
+
colorToken: "primary",
|
|
17919
|
+
textColorToken: "primaryForeground"
|
|
17920
|
+
}
|
|
17921
|
+
}]
|
|
17922
|
+
}
|
|
17923
|
+
},
|
|
17924
|
+
/**
|
|
17925
|
+
* Scale - gentle scale-up on hover
|
|
17926
|
+
*/
|
|
17927
|
+
scale: {
|
|
17928
|
+
name: "Scale",
|
|
17929
|
+
typography: "body",
|
|
17930
|
+
fontWeight: "medium",
|
|
17931
|
+
textTransform: "none",
|
|
17932
|
+
italic: false,
|
|
17933
|
+
colorToken: "text",
|
|
17934
|
+
padding: "none",
|
|
17935
|
+
borderRadius: "none",
|
|
17936
|
+
effects: { hover: [{
|
|
17937
|
+
effectId: "scale-up",
|
|
17938
|
+
options: { scale: 1.05 }
|
|
17939
|
+
}] }
|
|
17940
|
+
},
|
|
17941
|
+
/**
|
|
17942
|
+
* Frosted - semi-transparent glass-like background
|
|
17943
|
+
*/
|
|
17944
|
+
frosted: {
|
|
17945
|
+
name: "Frosted",
|
|
17946
|
+
typography: "body",
|
|
17947
|
+
fontWeight: "medium",
|
|
17948
|
+
textTransform: "none",
|
|
17949
|
+
italic: false,
|
|
17950
|
+
colorToken: "text",
|
|
17951
|
+
padding: "compact",
|
|
17952
|
+
borderRadius: "md",
|
|
17953
|
+
effects: {
|
|
17954
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
17955
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
17956
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
17957
|
+
}
|
|
17958
|
+
}
|
|
17959
|
+
};
|
|
17960
|
+
/**
|
|
17961
|
+
* Get a nav link style preset by ID
|
|
17962
|
+
*/
|
|
17963
|
+
function getNavLinkPreset(presetId) {
|
|
17964
|
+
return NAV_LINK_PRESETS[presetId];
|
|
17965
|
+
}
|
|
17966
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
17967
|
+
//#endregion
|
|
17968
|
+
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
17969
|
+
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
17970
|
+
const navStyle = header.navStyle ?? "minimal";
|
|
17971
|
+
const basePreset = getNavLinkPreset(navStyle);
|
|
17972
|
+
if (!basePreset) return null;
|
|
17973
|
+
const style = {
|
|
17974
|
+
...basePreset,
|
|
17975
|
+
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
17976
|
+
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
17977
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
17978
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
17979
|
+
};
|
|
17980
|
+
if (header.navWeight === "bold" && navStyle === "solid") style.textTransform = "uppercase";
|
|
17981
|
+
applyLegacyGlassTreatment(style, header, navStyle);
|
|
17982
|
+
return style;
|
|
17983
|
+
}
|
|
17984
|
+
function applyLegacyGlassTreatment(style, header, navStyle) {
|
|
17985
|
+
if (header.navContainer?.type !== "glass" || navStyle !== "minimal") return;
|
|
17986
|
+
style.borderRadius = "full";
|
|
17987
|
+
style.effects = {
|
|
17988
|
+
...style.effects,
|
|
17989
|
+
hover: glassStateEffects(10),
|
|
17990
|
+
active: glassStateEffects(18)
|
|
17991
|
+
};
|
|
17992
|
+
}
|
|
17993
|
+
function glassStateEffects(opacity) {
|
|
17994
|
+
return [{
|
|
17995
|
+
effectId: "background-on-hover-alpha",
|
|
17996
|
+
options: {
|
|
17997
|
+
colorToken: "neutral-50",
|
|
17998
|
+
opacity
|
|
17999
|
+
}
|
|
18000
|
+
}, {
|
|
18001
|
+
effectId: "text-color-change",
|
|
18002
|
+
options: { hoverColorToken: "neutral-50" }
|
|
18003
|
+
}];
|
|
18004
|
+
}
|
|
18005
|
+
//#endregion
|
|
18006
|
+
//#region ../theme-core/src/header/openingForegroundProjection.ts
|
|
18007
|
+
function readOpeningForegroundProjection(header) {
|
|
18008
|
+
return header?.__runtimeOpeningForeground ?? null;
|
|
18009
|
+
}
|
|
18010
|
+
//#endregion
|
|
18011
|
+
//#region ../theme-core/src/header/effectiveNavLinkStyle.ts
|
|
18012
|
+
function effectiveHeaderNavLinkStyle(header, contrastTreatment = null, navTextSize = null) {
|
|
18013
|
+
if (!header) return null;
|
|
18014
|
+
if (!header.navLinkStyle) return buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize);
|
|
18015
|
+
return {
|
|
18016
|
+
...header.navLinkStyle,
|
|
18017
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
18018
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
18019
|
+
};
|
|
18020
|
+
}
|
|
18021
|
+
function headerForegroundCandidates(header) {
|
|
18022
|
+
if (!header) return {};
|
|
18023
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
18024
|
+
return {
|
|
18025
|
+
text: header.textColor ?? header.background?.textColor,
|
|
18026
|
+
link: style?.colorToken ?? header.navColor ?? header.textColor,
|
|
18027
|
+
linkHover: navLinkHoverColorCandidate(style)
|
|
18028
|
+
};
|
|
18029
|
+
}
|
|
18030
|
+
function headerLeafTextColor(header) {
|
|
18031
|
+
if (!header) return "text";
|
|
18032
|
+
return header.textColor ?? header.navColor ?? header.background?.textColor ?? header.navLinkStyle?.colorToken ?? "text";
|
|
18033
|
+
}
|
|
18034
|
+
/** Transparent chrome must reset the whole contract on its own root. */
|
|
18035
|
+
function transparentHeaderForegroundInput(header, palette) {
|
|
18036
|
+
const projection = readOpeningForegroundProjection(header);
|
|
18037
|
+
if (projection?.kind === "known") return surfaceForegroundInputFromResolved(projection, rgbColorValue);
|
|
18038
|
+
return authoredTransparentHeaderForegroundInput(header, palette);
|
|
18039
|
+
}
|
|
18040
|
+
function authoredTransparentHeaderForegroundInput(header, palette) {
|
|
18041
|
+
const text = headerLeafTextColor(header);
|
|
18042
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
18043
|
+
const link = style?.colorToken ?? text;
|
|
18044
|
+
const restingToken = parseThemeColorToken(link) ?? parseThemeColorToken("text");
|
|
18045
|
+
if (!restingToken) throw new Error("Built-in text colour token is invalid");
|
|
18046
|
+
const hover = planForegroundHover({
|
|
18047
|
+
restingToken,
|
|
18048
|
+
candidate: navLinkOwnsHoverForeground(style) ? null : navLinkHoverColorCandidate(style),
|
|
18049
|
+
palette,
|
|
18050
|
+
backdrops: null
|
|
18051
|
+
});
|
|
18052
|
+
return {
|
|
18053
|
+
text: rgbColorValue(text),
|
|
18054
|
+
link: rgbColorValue(link),
|
|
18055
|
+
linkHover: rgbColorValue(hover.token),
|
|
18056
|
+
hoverDecoration: navLinkOwnsUnderline(style) ? "initial" : hover.decoration
|
|
18057
|
+
};
|
|
18058
|
+
}
|
|
18059
|
+
//#endregion
|
|
17524
18060
|
//#region ../theme-core/src/site-styles/pageDesignAuthority.ts
|
|
17525
18061
|
const nonEmptyStringSchema = z.string().min(1);
|
|
17526
18062
|
const blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
|
|
@@ -17673,6 +18209,28 @@ z.object({
|
|
|
17673
18209
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
17674
18210
|
});
|
|
17675
18211
|
//#endregion
|
|
18212
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
18213
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
18214
|
+
if (!footer) return null;
|
|
18215
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
18216
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
18217
|
+
if (!basePreset) return null;
|
|
18218
|
+
return {
|
|
18219
|
+
...basePreset,
|
|
18220
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
18221
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
18222
|
+
};
|
|
18223
|
+
}
|
|
18224
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
18225
|
+
if (!footer) return {};
|
|
18226
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
18227
|
+
return {
|
|
18228
|
+
text: footer.background?.textColor,
|
|
18229
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
18230
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
18231
|
+
};
|
|
18232
|
+
}
|
|
18233
|
+
//#endregion
|
|
17676
18234
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
17677
18235
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
17678
18236
|
//#endregion
|
|
@@ -22265,33 +22823,28 @@ function resolveBackgroundColorValue(value, context) {
|
|
|
22265
22823
|
//#endregion
|
|
22266
22824
|
//#region ../blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.ts
|
|
22267
22825
|
const contextualButtonStylesCache = /* @__PURE__ */ new WeakMap();
|
|
22268
|
-
function resolveHeaderLeafTextColor(header) {
|
|
22269
|
-
return header?.textColor ?? header?.navColor ?? header?.background?.textColor ?? header?.navLinkStyle?.colorToken ?? "text";
|
|
22270
|
-
}
|
|
22271
22826
|
function resolveHeaderRootForeground(header, palette, isTransparent) {
|
|
22272
|
-
if (isTransparent) return { kind: "unknown" };
|
|
22827
|
+
if (isTransparent) return readOpeningForegroundProjection(header) ?? { kind: "unknown" };
|
|
22273
22828
|
const background = header?.background;
|
|
22274
22829
|
return resolveSurfaceForeground(background ?? {
|
|
22275
22830
|
type: "color",
|
|
22276
22831
|
color: "surface"
|
|
22277
|
-
}, palette,
|
|
22278
|
-
|
|
22279
|
-
|
|
22280
|
-
|
|
22832
|
+
}, palette, headerForegroundCandidates(header));
|
|
22833
|
+
}
|
|
22834
|
+
function resolveFooterRootForeground(footer, palette, proseHoverCandidate) {
|
|
22835
|
+
return resolveSurfaceForeground(footer?.background ?? {
|
|
22836
|
+
type: "color",
|
|
22837
|
+
color: "surface"
|
|
22838
|
+
}, palette, footerForegroundCandidates(footer, proseHoverCandidate), { compositeBase: "background" });
|
|
22281
22839
|
}
|
|
22282
22840
|
function resolveSurfaceForegroundStyles(value, context, options) {
|
|
22283
22841
|
const input = parseBackgroundContent(value);
|
|
22284
|
-
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, {}, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
22842
|
+
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, { linkHover: context.proseHoverCandidate }, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
22285
22843
|
const buttonStyles = resolveContextualButtonStyles(input, foreground, context, options);
|
|
22286
22844
|
if (foreground.kind === "unknown") return buttonStyles;
|
|
22287
22845
|
return {
|
|
22288
22846
|
...buttonStyles,
|
|
22289
|
-
...surfaceForegroundStyle(
|
|
22290
|
-
text: resolveBackgroundColorValue(foreground.roles.text, context),
|
|
22291
|
-
heading: resolveBackgroundColorValue(foreground.roles.heading, context),
|
|
22292
|
-
link: resolveBackgroundColorValue(foreground.roles.link, context),
|
|
22293
|
-
supporting: resolveBackgroundColorValue(foreground.roles.supporting, context)
|
|
22294
|
-
})
|
|
22847
|
+
...surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, (token) => resolveBackgroundColorValue(token, context)))
|
|
22295
22848
|
};
|
|
22296
22849
|
}
|
|
22297
22850
|
function resolveContextualButtonStyles(background, foreground, context, options) {
|
|
@@ -28103,10 +28656,7 @@ function resolveBackgroundVisualStyles(backgroundColor, defaultToken = "surface"
|
|
|
28103
28656
|
};
|
|
28104
28657
|
}
|
|
28105
28658
|
function resolveHeaderVisualStyles(header) {
|
|
28106
|
-
|
|
28107
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
28108
|
-
const hasOverlayVariant = header?.variant === "floating";
|
|
28109
|
-
if (hasContainedNav || hasOverlayVariant) return {
|
|
28659
|
+
if (headerRootPaint(header) !== "own-surface") return {
|
|
28110
28660
|
backgroundToken: "transparent",
|
|
28111
28661
|
isTransparent: true
|
|
28112
28662
|
};
|
|
@@ -28117,23 +28667,7 @@ function resolveHeaderVisualStyles(header) {
|
|
|
28117
28667
|
}
|
|
28118
28668
|
function resolvedForegroundStyle(foreground) {
|
|
28119
28669
|
if (foreground.kind === "unknown") return void 0;
|
|
28120
|
-
|
|
28121
|
-
return surfaceForegroundStyle({
|
|
28122
|
-
text: rgbColorValue(roles.text),
|
|
28123
|
-
heading: rgbColorValue(roles.heading),
|
|
28124
|
-
link: rgbColorValue(roles.link),
|
|
28125
|
-
supporting: rgbColorValue(roles.supporting)
|
|
28126
|
-
});
|
|
28127
|
-
}
|
|
28128
|
-
function resolveFooterRootForeground(footer, palette) {
|
|
28129
|
-
const background = footer?.background;
|
|
28130
|
-
return resolveSurfaceForeground(background ?? {
|
|
28131
|
-
type: "color",
|
|
28132
|
-
color: "surface"
|
|
28133
|
-
}, palette, {
|
|
28134
|
-
text: background?.textColor,
|
|
28135
|
-
link: footer?.navLinkStyle?.colorToken ?? footer?.navColor ?? background?.textColor
|
|
28136
|
-
});
|
|
28670
|
+
return surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, rgbColorValue));
|
|
28137
28671
|
}
|
|
28138
28672
|
function footerBottomBarBorderWidthStyle(width) {
|
|
28139
28673
|
if (!width) return void 0;
|
|
@@ -28160,8 +28694,7 @@ const headerRootClassTransform = {
|
|
|
28160
28694
|
const placement = planSiteChromePlacement(parseHeaderPositioning(content.positioning));
|
|
28161
28695
|
const header = asPartialObject(value);
|
|
28162
28696
|
const visuals = resolveHeaderVisualStyles(header);
|
|
28163
|
-
const
|
|
28164
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
28697
|
+
const hasContainedNav = headerRootPaint(header) === "contained-nav";
|
|
28165
28698
|
const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
|
|
28166
28699
|
const classes = [config.base, backgroundClass];
|
|
28167
28700
|
if (!hasContainedNav) {
|
|
@@ -28204,7 +28737,7 @@ const headerRootStyleTransform = {
|
|
|
28204
28737
|
run: (value, _options, context) => {
|
|
28205
28738
|
const header = asPartialObject(value);
|
|
28206
28739
|
const visuals = resolveHeaderVisualStyles(header);
|
|
28207
|
-
return mergeStyles(resolvedForegroundStyle(resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent)) ?? { color: rgbColorValue(
|
|
28740
|
+
return mergeStyles(resolvedForegroundStyle(resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent)) ?? (visuals.isTransparent ? surfaceForegroundStyle(transparentHeaderForegroundInput(header, context.theme.palette)) : { color: rgbColorValue(headerLeafTextColor(header)) }), borderColorStyle(header?.border?.colorToken ?? "border"));
|
|
28208
28741
|
}
|
|
28209
28742
|
};
|
|
28210
28743
|
const headerSectionBackgroundTransform = {
|
|
@@ -28212,9 +28745,7 @@ const headerSectionBackgroundTransform = {
|
|
|
28212
28745
|
kind: "string",
|
|
28213
28746
|
summary: "Resolve the inner site-header section background token",
|
|
28214
28747
|
run: (value) => {
|
|
28215
|
-
|
|
28216
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
28217
|
-
return header?.variant === "floating" || navContainerType === "glass" || navContainerType === "pill" ? "raw:transparent" : "background";
|
|
28748
|
+
return headerRootPaint(asPartialObject(value)) !== "own-surface" ? "raw:transparent" : "background";
|
|
28218
28749
|
}
|
|
28219
28750
|
};
|
|
28220
28751
|
const footerRootStyleTransform = {
|
|
@@ -28232,7 +28763,7 @@ const footerRootStyleTransform = {
|
|
|
28232
28763
|
styleParts.push(backgroundColorStyle(token));
|
|
28233
28764
|
}
|
|
28234
28765
|
}
|
|
28235
|
-
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette)));
|
|
28766
|
+
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
28236
28767
|
styleParts.push(borderColorStyle("border"));
|
|
28237
28768
|
return mergeStyles(...styleParts);
|
|
28238
28769
|
}
|
|
@@ -28294,22 +28825,28 @@ const footerBottomBarStyleTransform = {
|
|
|
28294
28825
|
run: (value, _options, context) => {
|
|
28295
28826
|
const footer = asPartialObject(value);
|
|
28296
28827
|
const bottomBar = footer?.bottomBar;
|
|
28297
|
-
|
|
28298
|
-
const background = bottomBar?.background;
|
|
28299
|
-
if (background?.type === "color") styleParts.push(backgroundColorStyle(background.color ?? "surface"));
|
|
28300
|
-
styleParts.push(borderColorStyle(bottomBar?.borderTop?.colorToken ?? "border"), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width));
|
|
28301
|
-
const foreground = resolveSurfaceForeground(background?.type === "color" ? background : {
|
|
28302
|
-
type: "color",
|
|
28303
|
-
color: "transparent"
|
|
28304
|
-
}, context.theme.palette, {
|
|
28305
|
-
text: bottomBar?.textColor,
|
|
28306
|
-
link: footer?.bottomTextLinkStyle?.colorToken ?? bottomBar?.textColor
|
|
28307
|
-
});
|
|
28308
|
-
if (background?.type === "color") styleParts.push(resolvedForegroundStyle(foreground));
|
|
28309
|
-
else if (bottomBar?.textColor) styleParts.push(textColorStyle(bottomBar.textColor));
|
|
28310
|
-
return mergeStyles(...styleParts);
|
|
28828
|
+
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0, borderColorStyle(bottomBar?.borderTop?.colorToken ?? "border"), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette));
|
|
28311
28829
|
}
|
|
28312
28830
|
};
|
|
28831
|
+
function footerBottomBarForegroundStyle(footer, palette) {
|
|
28832
|
+
if (!footer?.bottomBar) return void 0;
|
|
28833
|
+
const bar = footer.bottomBar;
|
|
28834
|
+
if (bar.background?.type !== "color") return backgroundlessBottomBarForegroundStyle(footer);
|
|
28835
|
+
return resolvedForegroundStyle(resolveSurfaceForeground(bar.background, palette, {
|
|
28836
|
+
text: bar.textColor,
|
|
28837
|
+
link: footer.bottomTextLinkStyle?.colorToken ?? bar.textColor,
|
|
28838
|
+
linkHover: footer.bottomTextLinkStyle?.hoverColorToken
|
|
28839
|
+
}, { compositeBase: measuredFooterBackdrop(footer, palette) }));
|
|
28840
|
+
}
|
|
28841
|
+
function backgroundlessBottomBarForegroundStyle(footer) {
|
|
28842
|
+
if (footer.background?.contentOwner === "site-chrome-editor") return;
|
|
28843
|
+
const textColor = footer.bottomBar?.textColor;
|
|
28844
|
+
return textColor ? textColorStyle(textColor) : void 0;
|
|
28845
|
+
}
|
|
28846
|
+
function measuredFooterBackdrop(footer, palette) {
|
|
28847
|
+
const foreground = resolveFooterRootForeground(footer, palette);
|
|
28848
|
+
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
28849
|
+
}
|
|
28313
28850
|
const footerSplitMainClassTransform = {
|
|
28314
28851
|
id: "layout.footerSplitMainClass",
|
|
28315
28852
|
kind: "string",
|
|
@@ -28405,7 +28942,7 @@ function chromeSurfaceTextToken(surface, theme, palette) {
|
|
|
28405
28942
|
case "header-root": {
|
|
28406
28943
|
const header = theme.header;
|
|
28407
28944
|
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
28408
|
-
return foreground.kind === "known" ? foreground.roles.text :
|
|
28945
|
+
return foreground.kind === "known" ? foreground.roles.text : headerLeafTextColor(header);
|
|
28409
28946
|
}
|
|
28410
28947
|
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
28411
28948
|
case "footer-root": {
|
|
@@ -30484,7 +31021,9 @@ const bookingWizard = bookingForm(withApiBindings({
|
|
|
30484
31021
|
} },
|
|
30485
31022
|
formId: { $bind: { from: "content.formId" } },
|
|
30486
31023
|
form: { $bind: { from: "data.form" } },
|
|
30487
|
-
services: { $bind: { from: "data.services" } }
|
|
31024
|
+
services: { $bind: { from: "data.services" } },
|
|
31025
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
31026
|
+
siteName: { $bind: { from: "$root.siteName" } }
|
|
30488
31027
|
}));
|
|
30489
31028
|
/** Both variants sit in the same section shell; only the inner layout differs. */
|
|
30490
31029
|
function bookingSection(children) {
|
|
@@ -31400,7 +31939,13 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
31400
31939
|
spamProtectionEnabled: z.boolean().optional(),
|
|
31401
31940
|
supportEmail: z.string().optional(),
|
|
31402
31941
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
31403
|
-
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
31942
|
+
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional(),
|
|
31943
|
+
mailingList: z.unknown().transform((value) => {
|
|
31944
|
+
if (value === void 0) return void 0;
|
|
31945
|
+
const parsed = parseMailingListRuntimeContext(value);
|
|
31946
|
+
return parsed.ok ? parsed.value : void 0;
|
|
31947
|
+
}),
|
|
31948
|
+
siteName: z.string().optional()
|
|
31404
31949
|
};
|
|
31405
31950
|
const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
|
|
31406
31951
|
kind: z.literal("loaded"),
|
|
@@ -31572,7 +32117,9 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
31572
32117
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
31573
32118
|
supportEmail: source.supportEmail,
|
|
31574
32119
|
sitePasses: source.sitePasses ?? null,
|
|
31575
|
-
siteMemberships: source.siteMemberships ?? null
|
|
32120
|
+
siteMemberships: source.siteMemberships ?? null,
|
|
32121
|
+
mailingList: source.mailingList,
|
|
32122
|
+
siteName: source.siteName
|
|
31576
32123
|
}
|
|
31577
32124
|
};
|
|
31578
32125
|
}
|
|
@@ -31740,6 +32287,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
31740
32287
|
events: { $bind: { from: "data.events" } },
|
|
31741
32288
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
31742
32289
|
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
32290
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
32291
|
+
siteName: { $bind: { from: "$root.siteName" } },
|
|
31743
32292
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
31744
32293
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
31745
32294
|
stage: { $bind: {
|
|
@@ -38814,18 +39363,11 @@ const newsletterSignupManifest = createBlockManifest({
|
|
|
38814
39363
|
],
|
|
38815
39364
|
icon: "Mail"
|
|
38816
39365
|
});
|
|
39366
|
+
const newsletterPublicFieldIds = [...(newsletterSignupManifest.fields ?? []).map((field) => field.id), "_containerStyles"];
|
|
38817
39367
|
function sanitizeNewsletterSignupPublicContent(content) {
|
|
38818
39368
|
if (typeof content !== "object" || content === null || Array.isArray(content)) return content;
|
|
38819
39369
|
const value = content;
|
|
38820
|
-
return
|
|
38821
|
-
title: value.title,
|
|
38822
|
-
subtitle: value.subtitle,
|
|
38823
|
-
targeting: value.targeting,
|
|
38824
|
-
buttonVariant: value.buttonVariant,
|
|
38825
|
-
mailingListSource: value.mailingListSource,
|
|
38826
|
-
mailingListSourceToken: value.mailingListSourceToken,
|
|
38827
|
-
_sectionStyles: value._sectionStyles
|
|
38828
|
-
};
|
|
39370
|
+
return Object.fromEntries(newsletterPublicFieldIds.map((id) => [id, value[id]]));
|
|
38829
39371
|
}
|
|
38830
39372
|
const newsletterSignupBlockDefinition = {
|
|
38831
39373
|
manifest: newsletterSignupManifest,
|
|
@@ -43099,7 +43641,10 @@ function usePage(params) {
|
|
|
43099
43641
|
let cancelled = false;
|
|
43100
43642
|
async function fetchPage() {
|
|
43101
43643
|
try {
|
|
43102
|
-
const [site, pageResponse] = await Promise.all([client.getSite({
|
|
43644
|
+
const [site, pageResponse] = await Promise.all([client.getSite({
|
|
43645
|
+
id: siteId,
|
|
43646
|
+
currentPath: path
|
|
43647
|
+
}), client.getPage({
|
|
43103
43648
|
siteId,
|
|
43104
43649
|
path,
|
|
43105
43650
|
preview
|