@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/server/data.mjs
CHANGED
|
@@ -661,17 +661,35 @@ function parseMailingListRuntimeContext(value) {
|
|
|
661
661
|
if (!isRecord$10(value)) return invalidRuntimeContext();
|
|
662
662
|
if (value.tag === "not_configured") return ok({ tag: "not_configured" });
|
|
663
663
|
if (value.tag !== "configured") return invalidRuntimeContext();
|
|
664
|
+
return parseConfiguredRuntimeContext(value);
|
|
665
|
+
}
|
|
666
|
+
function parseConfiguredRuntimeContext(value) {
|
|
664
667
|
const revision = parseMailingListSetupRevision(value.revision);
|
|
665
668
|
const form = parseMailingListGlobalForm(value.form);
|
|
666
669
|
const provider = parseRuntimeProvider(value.provider);
|
|
667
|
-
|
|
670
|
+
const bookingSignup = parseBookingSignupOffer(value.bookingSignup);
|
|
671
|
+
if (revision === null || !form.ok || provider === null || bookingSignup === null) return invalidRuntimeContext();
|
|
668
672
|
return ok({
|
|
669
673
|
tag: "configured",
|
|
670
674
|
revision,
|
|
675
|
+
bookingSignup,
|
|
671
676
|
form: form.value,
|
|
672
677
|
provider
|
|
673
678
|
});
|
|
674
679
|
}
|
|
680
|
+
function parseBookingSignupOffer(value) {
|
|
681
|
+
if (value === void 0) return {
|
|
682
|
+
tag: "unavailable",
|
|
683
|
+
reason: "disabled"
|
|
684
|
+
};
|
|
685
|
+
if (!isRecord$10(value)) return null;
|
|
686
|
+
if (value.tag === "offered") return { tag: "offered" };
|
|
687
|
+
if (value.tag === "unavailable" && (value.reason === "disabled" || value.reason === "fields" || value.reason === "destination")) return {
|
|
688
|
+
tag: "unavailable",
|
|
689
|
+
reason: value.reason
|
|
690
|
+
};
|
|
691
|
+
return null;
|
|
692
|
+
}
|
|
675
693
|
function parseRuntimeProvider(value) {
|
|
676
694
|
if (!isRecord$10(value)) return null;
|
|
677
695
|
switch (value.provider) {
|
|
@@ -2347,13 +2365,16 @@ const SURFACE_FOREGROUND_CSS_VARS = {
|
|
|
2347
2365
|
text: "--rb-surface-text-color",
|
|
2348
2366
|
heading: "--rb-surface-heading-color",
|
|
2349
2367
|
link: "--rb-surface-link-color",
|
|
2368
|
+
linkHover: "--rb-surface-link-hover-color",
|
|
2350
2369
|
supporting: "--rb-surface-supporting-color"
|
|
2351
2370
|
};
|
|
2352
2371
|
const DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
|
|
2372
|
+
const DEFAULT_SURFACE_LINK_COLOR = "rgb(var(--tb-primary, var(--tb-text, 17 24 39)))";
|
|
2353
2373
|
const DEFAULT_ROLE_FALLBACKS = {
|
|
2354
2374
|
text: DEFAULT_SURFACE_TEXT_COLOR,
|
|
2355
2375
|
heading: DEFAULT_SURFACE_TEXT_COLOR,
|
|
2356
|
-
link:
|
|
2376
|
+
link: DEFAULT_SURFACE_LINK_COLOR,
|
|
2377
|
+
linkHover: DEFAULT_SURFACE_LINK_COLOR,
|
|
2357
2378
|
supporting: "rgb(var(--tb-mutedText, 100 116 139))"
|
|
2358
2379
|
};
|
|
2359
2380
|
function requireSurfaceColorValue(role, value) {
|
|
@@ -2363,10 +2384,12 @@ function requireSurfaceColorValue(role, value) {
|
|
|
2363
2384
|
}
|
|
2364
2385
|
function completeSurfaceForegrounds(input) {
|
|
2365
2386
|
const text = requireSurfaceColorValue("text", input.text);
|
|
2387
|
+
const link = input.link === void 0 ? text : requireSurfaceColorValue("link", input.link);
|
|
2366
2388
|
return {
|
|
2367
2389
|
text,
|
|
2368
2390
|
heading: input.heading === void 0 ? text : requireSurfaceColorValue("heading", input.heading),
|
|
2369
|
-
link
|
|
2391
|
+
link,
|
|
2392
|
+
linkHover: input.linkHover === void 0 ? link : requireSurfaceColorValue("linkHover", input.linkHover),
|
|
2370
2393
|
supporting: input.supporting === void 0 ? text : requireSurfaceColorValue("supporting", input.supporting)
|
|
2371
2394
|
};
|
|
2372
2395
|
}
|
|
@@ -2374,6 +2397,7 @@ function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FAL
|
|
|
2374
2397
|
const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
|
|
2375
2398
|
const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
|
|
2376
2399
|
if (role === "text") return `var(${roleVariable}, ${fallback})`;
|
|
2400
|
+
if (role === "linkHover") return `var(${roleVariable}, ${surfaceForegroundValue("link", fallback)})`;
|
|
2377
2401
|
return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
|
|
2378
2402
|
}
|
|
2379
2403
|
function surfaceForegroundValueWithOpacity(role, opacityPercent) {
|
|
@@ -2387,9 +2411,25 @@ function surfaceForegroundStyle(input) {
|
|
|
2387
2411
|
[SURFACE_FOREGROUND_CSS_VARS.text]: foregrounds.text,
|
|
2388
2412
|
[SURFACE_FOREGROUND_CSS_VARS.heading]: foregrounds.heading,
|
|
2389
2413
|
[SURFACE_FOREGROUND_CSS_VARS.link]: foregrounds.link,
|
|
2390
|
-
[SURFACE_FOREGROUND_CSS_VARS.
|
|
2414
|
+
[SURFACE_FOREGROUND_CSS_VARS.linkHover]: foregrounds.linkHover,
|
|
2415
|
+
[SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting,
|
|
2416
|
+
"--rb-surface-link-hover-decoration": hoverDecoration(input)
|
|
2391
2417
|
};
|
|
2392
2418
|
}
|
|
2419
|
+
function surfaceForegroundInputFromResolved(foreground, color) {
|
|
2420
|
+
const { roles } = foreground;
|
|
2421
|
+
return {
|
|
2422
|
+
text: color(roles.text),
|
|
2423
|
+
heading: color(roles.heading),
|
|
2424
|
+
link: color(roles.link),
|
|
2425
|
+
linkHover: color(roles.linkHover),
|
|
2426
|
+
supporting: color(roles.supporting),
|
|
2427
|
+
hoverDecoration: foreground.hoverDecoration
|
|
2428
|
+
};
|
|
2429
|
+
}
|
|
2430
|
+
function hoverDecoration(input) {
|
|
2431
|
+
return input.hoverDecoration ?? "underline";
|
|
2432
|
+
}
|
|
2393
2433
|
//#endregion
|
|
2394
2434
|
//#region ../theme-core/src/buttons/constants.ts
|
|
2395
2435
|
/**
|
|
@@ -3246,6 +3286,64 @@ function parseAlpha(source) {
|
|
|
3246
3286
|
function isRgbChannel(value) {
|
|
3247
3287
|
return Number.isFinite(value) && value >= 0 && value <= 255;
|
|
3248
3288
|
}
|
|
3289
|
+
/**
|
|
3290
|
+
* Derive the hover foreground that belongs with a resolved resting foreground.
|
|
3291
|
+
*
|
|
3292
|
+
* A resting foreground is chosen to be legible against a known surface. A hover
|
|
3293
|
+
* state derived from it stays within a bounded distance of that colour, so it
|
|
3294
|
+
* inherits most of the resting colour's contrast margin instead of asserting
|
|
3295
|
+
* an unrelated brand colour that no one checked against the surface.
|
|
3296
|
+
*
|
|
3297
|
+
* That bounded-distance property is what lets this be used on a transparent
|
|
3298
|
+
* overlay header, where the backdrop is only partly knowable: the scrolled
|
|
3299
|
+
* state composites a 60% glass tint over arbitrary page content, so no
|
|
3300
|
+
* compile-time contrast proof is available there. Staying near a colour that
|
|
3301
|
+
* is already trusted in both states is a weaker claim than a contrast proof,
|
|
3302
|
+
* and it is one this function can actually keep.
|
|
3303
|
+
*
|
|
3304
|
+
* Returns `null` when the resting token is not a plain palette token — an
|
|
3305
|
+
* already-faded or raw value has no well-defined softening, and the caller
|
|
3306
|
+
* should leave hover alone rather than guess.
|
|
3307
|
+
*/
|
|
3308
|
+
function deriveForegroundHoverToken(restingToken) {
|
|
3309
|
+
const parts = parseColorTokenParts(restingToken);
|
|
3310
|
+
if (parts.kind !== "token") return null;
|
|
3311
|
+
if (parts.opacityPercent !== null) return null;
|
|
3312
|
+
return parseThemeColorToken(`${parts.token}/85`);
|
|
3313
|
+
}
|
|
3314
|
+
/**
|
|
3315
|
+
* Prefer an authored hover that survives every measured backdrop, then a
|
|
3316
|
+
* checked softening of the resting colour. A null backdrop set represents a
|
|
3317
|
+
* trusted treatment: only an explicit authored hover may change the colour.
|
|
3318
|
+
* When neither option works, retain the resting colour and underline it.
|
|
3319
|
+
*/
|
|
3320
|
+
function planForegroundHover(input) {
|
|
3321
|
+
const { restingToken, candidate, palette, backdrops } = input;
|
|
3322
|
+
if (candidate && candidate !== restingToken) {
|
|
3323
|
+
if (backdrops === null || survivesEveryBackdrop(candidate, palette, backdrops)) return {
|
|
3324
|
+
kind: "candidate",
|
|
3325
|
+
token: candidate,
|
|
3326
|
+
decoration: "initial"
|
|
3327
|
+
};
|
|
3328
|
+
}
|
|
3329
|
+
const softened = deriveForegroundHoverToken(restingToken);
|
|
3330
|
+
if (softened && backdrops && survivesEveryBackdrop(softened, palette, backdrops)) return {
|
|
3331
|
+
kind: "softened",
|
|
3332
|
+
token: softened,
|
|
3333
|
+
decoration: "initial"
|
|
3334
|
+
};
|
|
3335
|
+
return {
|
|
3336
|
+
kind: "resting",
|
|
3337
|
+
token: restingToken,
|
|
3338
|
+
decoration: "underline"
|
|
3339
|
+
};
|
|
3340
|
+
}
|
|
3341
|
+
function survivesEveryBackdrop(token, palette, backdrops) {
|
|
3342
|
+
return backdrops.length > 0 && backdrops.every((backdrop) => {
|
|
3343
|
+
const foreground = resolveOpaqueSurfaceHex(token, palette, backdrop);
|
|
3344
|
+
return foreground !== null && contrastRatio(foreground, backdrop) >= 4.5;
|
|
3345
|
+
});
|
|
3346
|
+
}
|
|
3249
3347
|
//#endregion
|
|
3250
3348
|
//#region ../theme-core/src/surfaces/resolveSurfaceForeground.ts
|
|
3251
3349
|
const FALLBACK_TEXT_TOKENS = [
|
|
@@ -3292,12 +3390,16 @@ function resolveSurfaceForeground(background, palette, candidates = {}, options
|
|
|
3292
3390
|
}
|
|
3293
3391
|
function foregroundCandidates(background, overrides) {
|
|
3294
3392
|
return {
|
|
3295
|
-
text: overrides.text
|
|
3296
|
-
heading: overrides.heading
|
|
3297
|
-
link: overrides.link
|
|
3298
|
-
|
|
3393
|
+
text: candidateOrBackground(overrides.text, background?.textColor),
|
|
3394
|
+
heading: candidateOrBackground(overrides.heading, background?.headingColor),
|
|
3395
|
+
link: candidateOrBackground(overrides.link, background?.linkColor),
|
|
3396
|
+
linkHover: candidateOrBackground(overrides.linkHover),
|
|
3397
|
+
supporting: candidateOrBackground(overrides.supporting, background?.supportingColor)
|
|
3299
3398
|
};
|
|
3300
3399
|
}
|
|
3400
|
+
function candidateOrBackground(candidate, backgroundValue) {
|
|
3401
|
+
return candidate ?? backgroundValue ?? null;
|
|
3402
|
+
}
|
|
3301
3403
|
function resolveDeterministicForeground(backgroundReference, candidates, palette, compositeBase) {
|
|
3302
3404
|
const backgroundHex = resolveOpaqueSurfaceHex(backgroundReference, palette, compositeBase);
|
|
3303
3405
|
if (!backgroundHex) return resolveTrustedTreatmentForeground(candidates, palette);
|
|
@@ -3309,29 +3411,51 @@ function resolveDeterministicForeground(backgroundReference, candidates, palette
|
|
|
3309
3411
|
...FALLBACK_TEXT_TOKENS
|
|
3310
3412
|
], backgroundHex, palette, derivedOnToken ? [derivedOnToken] : []);
|
|
3311
3413
|
if (!text) return { kind: "unknown" };
|
|
3312
|
-
return {
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
};
|
|
3414
|
+
return knownForeground({
|
|
3415
|
+
text,
|
|
3416
|
+
heading: safeTokenOr(candidates.heading, text, backgroundHex, palette),
|
|
3417
|
+
link: safeTokenOr(candidates.link, text, backgroundHex, palette),
|
|
3418
|
+
supporting: safeTokenOr(candidates.supporting, text, backgroundHex, palette)
|
|
3419
|
+
}, {
|
|
3420
|
+
kind: "measured",
|
|
3421
|
+
backdropHex: backgroundHex
|
|
3422
|
+
}, candidates.linkHover, palette);
|
|
3321
3423
|
}
|
|
3322
3424
|
function resolveTrustedTreatmentForeground(candidates, palette) {
|
|
3323
3425
|
const text = canonicalToken(candidates.text, palette);
|
|
3324
3426
|
if (!text) return { kind: "unknown" };
|
|
3427
|
+
return knownForeground({
|
|
3428
|
+
text,
|
|
3429
|
+
heading: canonicalToken(candidates.heading, palette) ?? text,
|
|
3430
|
+
link: canonicalToken(candidates.link, palette) ?? text,
|
|
3431
|
+
supporting: canonicalToken(candidates.supporting, palette) ?? text
|
|
3432
|
+
}, { kind: "trusted-treatment" }, candidates.linkHover, palette);
|
|
3433
|
+
}
|
|
3434
|
+
function knownForeground(roles, provenance, hoverCandidate, palette) {
|
|
3435
|
+
const hover = planForegroundHover({
|
|
3436
|
+
restingToken: roles.link,
|
|
3437
|
+
candidate: canonicalHoverToken(hoverCandidate, palette),
|
|
3438
|
+
palette,
|
|
3439
|
+
backdrops: provenance.kind === "measured" ? [provenance.backdropHex] : null
|
|
3440
|
+
});
|
|
3325
3441
|
return {
|
|
3326
3442
|
kind: "known",
|
|
3443
|
+
provenance,
|
|
3327
3444
|
roles: {
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
}
|
|
3445
|
+
...roles,
|
|
3446
|
+
linkHover: hover.token
|
|
3447
|
+
},
|
|
3448
|
+
hoverDecoration: hover.decoration
|
|
3333
3449
|
};
|
|
3334
3450
|
}
|
|
3451
|
+
function canonicalHoverToken(reference, palette) {
|
|
3452
|
+
const token = parseThemeColorToken(reference);
|
|
3453
|
+
if (token) {
|
|
3454
|
+
const parts = parseColorTokenParts(token);
|
|
3455
|
+
if (parts.kind === "token" && resolveConcreteColorHex(parts.token, palette)) return token;
|
|
3456
|
+
}
|
|
3457
|
+
return canonicalToken(reference, palette);
|
|
3458
|
+
}
|
|
3335
3459
|
function safeTokenOr(candidate, fallback, backgroundHex, palette) {
|
|
3336
3460
|
return firstSafeToken([candidate], backgroundHex, palette) ?? fallback;
|
|
3337
3461
|
}
|
|
@@ -6271,6 +6395,43 @@ const effectCompositionSchema = z.object({
|
|
|
6271
6395
|
/** Effects applied on focus */
|
|
6272
6396
|
focus: z.array(effectApplicationSchema).optional()
|
|
6273
6397
|
});
|
|
6398
|
+
const policiesById = {
|
|
6399
|
+
"darken-background": "other",
|
|
6400
|
+
"lighten-background": "other",
|
|
6401
|
+
"fade-background": "other",
|
|
6402
|
+
"opacity-reduce": "other",
|
|
6403
|
+
"animated-gradient": "other",
|
|
6404
|
+
"background-on-hover": "paired-hover",
|
|
6405
|
+
"background-on-hover-alpha": "paired-hover",
|
|
6406
|
+
"border-glow": "other",
|
|
6407
|
+
"drop-shadow": "other",
|
|
6408
|
+
"inner-shadow": "other",
|
|
6409
|
+
"neumorphic-shadow": "other",
|
|
6410
|
+
"outer-glow": "other",
|
|
6411
|
+
"retro-3d-shadow": "other",
|
|
6412
|
+
"scale-up": "other",
|
|
6413
|
+
"scale-down": "other",
|
|
6414
|
+
lift: "other",
|
|
6415
|
+
"press-down": "other",
|
|
6416
|
+
pop: "other",
|
|
6417
|
+
"aurora-glow": "other",
|
|
6418
|
+
"cosmic-stardust": "other",
|
|
6419
|
+
"gradient-border-fill": "other",
|
|
6420
|
+
"animated-gradient-border-fill": "other",
|
|
6421
|
+
"border-bottom-grow": "other",
|
|
6422
|
+
"gradient-text": "other",
|
|
6423
|
+
"text-color-change": "text-colour",
|
|
6424
|
+
"border-color-change": "other",
|
|
6425
|
+
"sketchy-border": "other",
|
|
6426
|
+
"pulse-animation": "other",
|
|
6427
|
+
"nav-underline": "underline",
|
|
6428
|
+
"nav-frosted-base": "other",
|
|
6429
|
+
"nav-frosted-hover": "other",
|
|
6430
|
+
"nav-frosted-active": "other"
|
|
6431
|
+
};
|
|
6432
|
+
function navEffectPolicy(effectId) {
|
|
6433
|
+
return policiesById[effectId] ?? null;
|
|
6434
|
+
}
|
|
6274
6435
|
//#endregion
|
|
6275
6436
|
//#region ../theme-core/src/navigation/types.ts
|
|
6276
6437
|
/**
|
|
@@ -6359,6 +6520,16 @@ const navLinkStyleSchema = z.object({
|
|
|
6359
6520
|
/** Composable effects */
|
|
6360
6521
|
effects: effectCompositionSchema.optional()
|
|
6361
6522
|
});
|
|
6523
|
+
function navLinkHoverColorCandidate(style) {
|
|
6524
|
+
const effect = style?.effects?.hover?.find((item) => navEffectPolicy(item.effectId) === "text-colour");
|
|
6525
|
+
return parseThemeColorToken(effect?.options?.hoverColorToken ?? style?.hoverColorToken);
|
|
6526
|
+
}
|
|
6527
|
+
function navLinkOwnsHoverForeground(style) {
|
|
6528
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "paired-hover") ?? false;
|
|
6529
|
+
}
|
|
6530
|
+
function navLinkOwnsUnderline(style) {
|
|
6531
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "underline") ?? false;
|
|
6532
|
+
}
|
|
6362
6533
|
//#endregion
|
|
6363
6534
|
//#region ../theme-core/src/customCss/validation.ts
|
|
6364
6535
|
/**
|
|
@@ -8517,6 +8688,64 @@ function defineEndpointDefinitions(definitions) {
|
|
|
8517
8688
|
return definitions;
|
|
8518
8689
|
}
|
|
8519
8690
|
//#endregion
|
|
8691
|
+
//#region ../api/src/apiEndpointTypes.ts
|
|
8692
|
+
function allowedDemoMutationPolicy() {
|
|
8693
|
+
return {
|
|
8694
|
+
classification: "allowed",
|
|
8695
|
+
publicMessage: ""
|
|
8696
|
+
};
|
|
8697
|
+
}
|
|
8698
|
+
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
8699
|
+
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
8700
|
+
return {
|
|
8701
|
+
classification,
|
|
8702
|
+
publicMessage
|
|
8703
|
+
};
|
|
8704
|
+
}
|
|
8705
|
+
//#endregion
|
|
8706
|
+
//#region ../api/src/demoMutationPolicies.ts
|
|
8707
|
+
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
8708
|
+
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
8709
|
+
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
8710
|
+
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
8711
|
+
//#endregion
|
|
8712
|
+
//#region ../api/src/siteLifecycleEndpoints.ts
|
|
8713
|
+
const SITE_LIFECYCLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8714
|
+
createSite: {
|
|
8715
|
+
path: "/sites/manage",
|
|
8716
|
+
method: "POST",
|
|
8717
|
+
tags: ["site"],
|
|
8718
|
+
auth: "user",
|
|
8719
|
+
responseKind: "json",
|
|
8720
|
+
errors: []
|
|
8721
|
+
},
|
|
8722
|
+
createSiteManual: {
|
|
8723
|
+
path: "/sites/manual",
|
|
8724
|
+
method: "POST",
|
|
8725
|
+
tags: ["site"],
|
|
8726
|
+
auth: "user",
|
|
8727
|
+
responseKind: "json",
|
|
8728
|
+
errors: []
|
|
8729
|
+
},
|
|
8730
|
+
updateSite: {
|
|
8731
|
+
path: "/sites/manage",
|
|
8732
|
+
method: "PUT",
|
|
8733
|
+
tags: ["site"],
|
|
8734
|
+
auth: "user",
|
|
8735
|
+
responseKind: "json",
|
|
8736
|
+
errors: []
|
|
8737
|
+
},
|
|
8738
|
+
deleteSite: {
|
|
8739
|
+
path: "/sites/{siteId}",
|
|
8740
|
+
method: "DELETE",
|
|
8741
|
+
tags: ["site", "site-{siteId}"],
|
|
8742
|
+
auth: "user",
|
|
8743
|
+
responseKind: "json",
|
|
8744
|
+
errors: [],
|
|
8745
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
8746
|
+
}
|
|
8747
|
+
});
|
|
8748
|
+
//#endregion
|
|
8520
8749
|
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
8521
8750
|
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
8522
8751
|
subscribeNewsletter: {
|
|
@@ -8577,27 +8806,6 @@ const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
8577
8806
|
}
|
|
8578
8807
|
});
|
|
8579
8808
|
//#endregion
|
|
8580
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
8581
|
-
function allowedDemoMutationPolicy() {
|
|
8582
|
-
return {
|
|
8583
|
-
classification: "allowed",
|
|
8584
|
-
publicMessage: ""
|
|
8585
|
-
};
|
|
8586
|
-
}
|
|
8587
|
-
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
8588
|
-
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
8589
|
-
return {
|
|
8590
|
-
classification,
|
|
8591
|
-
publicMessage
|
|
8592
|
-
};
|
|
8593
|
-
}
|
|
8594
|
-
//#endregion
|
|
8595
|
-
//#region ../api/src/demoMutationPolicies.ts
|
|
8596
|
-
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
8597
|
-
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
8598
|
-
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
8599
|
-
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
8600
|
-
//#endregion
|
|
8601
8809
|
//#region ../api/src/cache-tags.ts
|
|
8602
8810
|
/**
|
|
8603
8811
|
* Tag templates for endpoint definitions (support `{param}` placeholders).
|
|
@@ -9624,6 +9832,20 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
9624
9832
|
responseKind: "json",
|
|
9625
9833
|
errors: ["auth:forbidden", "server:internal_error"]
|
|
9626
9834
|
},
|
|
9835
|
+
setMailingListBookingOptIn: {
|
|
9836
|
+
path: "/sites/{siteId}/mailing-list/setup/booking-opt-in",
|
|
9837
|
+
method: "PUT",
|
|
9838
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
9839
|
+
auth: "user",
|
|
9840
|
+
responseKind: "json",
|
|
9841
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
9842
|
+
errors: [
|
|
9843
|
+
"auth:forbidden",
|
|
9844
|
+
"validation:invalid_input",
|
|
9845
|
+
"resource:conflict",
|
|
9846
|
+
"server:internal_error"
|
|
9847
|
+
]
|
|
9848
|
+
},
|
|
9627
9849
|
getMailingListAuthoringContext: {
|
|
9628
9850
|
path: "/sites/{siteId}/mailing-list/authoring-context",
|
|
9629
9851
|
method: "GET",
|
|
@@ -10948,6 +11170,54 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
10948
11170
|
}
|
|
10949
11171
|
});
|
|
10950
11172
|
//#endregion
|
|
11173
|
+
//#region ../api/src/bookingPeopleEndpointDefinitions.ts
|
|
11174
|
+
/**
|
|
11175
|
+
* People endpoints (#1356): the People list, its CSV export, and deleting a
|
|
11176
|
+
* person when nothing is attached to them.
|
|
11177
|
+
*/
|
|
11178
|
+
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
11179
|
+
listPeople: {
|
|
11180
|
+
path: "/sites/{siteId}/bookings/people",
|
|
11181
|
+
method: "GET",
|
|
11182
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11183
|
+
auth: "user",
|
|
11184
|
+
responseKind: "json",
|
|
11185
|
+
errors: ["server:internal_error"]
|
|
11186
|
+
},
|
|
11187
|
+
exportPeopleCsv: {
|
|
11188
|
+
path: "/sites/{siteId}/bookings/people/export.csv",
|
|
11189
|
+
method: "GET",
|
|
11190
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11191
|
+
auth: "user",
|
|
11192
|
+
errors: [],
|
|
11193
|
+
responseKind: "blob"
|
|
11194
|
+
},
|
|
11195
|
+
checkPersonDeletion: {
|
|
11196
|
+
path: "/sites/{siteId}/bookings/people/{personId}/deletion-check",
|
|
11197
|
+
method: "GET",
|
|
11198
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11199
|
+
auth: "user",
|
|
11200
|
+
responseKind: "json",
|
|
11201
|
+
errors: [
|
|
11202
|
+
"auth:forbidden",
|
|
11203
|
+
"resource:not_found",
|
|
11204
|
+
"server:internal_error"
|
|
11205
|
+
]
|
|
11206
|
+
},
|
|
11207
|
+
deletePerson: {
|
|
11208
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
11209
|
+
method: "DELETE",
|
|
11210
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
11211
|
+
auth: "user",
|
|
11212
|
+
responseKind: "json",
|
|
11213
|
+
errors: [
|
|
11214
|
+
"auth:forbidden",
|
|
11215
|
+
"resource:not_found",
|
|
11216
|
+
"server:internal_error"
|
|
11217
|
+
]
|
|
11218
|
+
}
|
|
11219
|
+
});
|
|
11220
|
+
//#endregion
|
|
10951
11221
|
//#region ../api/src/clientErrorReporting.ts
|
|
10952
11222
|
const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
|
|
10953
11223
|
path: "/client/error-report",
|
|
@@ -10983,6 +11253,7 @@ z.object({
|
|
|
10983
11253
|
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
10984
11254
|
}).strict();
|
|
10985
11255
|
({
|
|
11256
|
+
...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
|
|
10986
11257
|
...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
|
|
10987
11258
|
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10988
11259
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
@@ -10996,7 +11267,7 @@ z.object({
|
|
|
10996
11267
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
10997
11268
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
10998
11269
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
10999
|
-
}, 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 };
|
|
11270
|
+
}, 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 };
|
|
11000
11271
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
11001
11272
|
z.object({
|
|
11002
11273
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -17285,6 +17556,14 @@ const blockDesignFallback = {
|
|
|
17285
17556
|
};
|
|
17286
17557
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
17287
17558
|
//#endregion
|
|
17559
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
17560
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
17561
|
+
function headerRootPaint(header) {
|
|
17562
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
17563
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
17564
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
17565
|
+
}
|
|
17566
|
+
//#endregion
|
|
17288
17567
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
17289
17568
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
17290
17569
|
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
@@ -17464,6 +17743,259 @@ z.object(headerPreferencesShape).omit({
|
|
|
17464
17743
|
structure: true
|
|
17465
17744
|
}).strict();
|
|
17466
17745
|
//#endregion
|
|
17746
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
17747
|
+
/**
|
|
17748
|
+
* Built-in nav link style presets
|
|
17749
|
+
*
|
|
17750
|
+
* Each preset uses composable effects to achieve its look.
|
|
17751
|
+
*/
|
|
17752
|
+
const NAV_LINK_PRESETS = {
|
|
17753
|
+
/**
|
|
17754
|
+
* Minimal - subtle color change on hover
|
|
17755
|
+
*/
|
|
17756
|
+
minimal: {
|
|
17757
|
+
name: "Minimal",
|
|
17758
|
+
typography: "body",
|
|
17759
|
+
fontWeight: "medium",
|
|
17760
|
+
textTransform: "none",
|
|
17761
|
+
italic: false,
|
|
17762
|
+
colorToken: "text",
|
|
17763
|
+
hoverColorToken: "primary",
|
|
17764
|
+
padding: "none",
|
|
17765
|
+
borderRadius: "none",
|
|
17766
|
+
effects: { hover: [{
|
|
17767
|
+
effectId: "text-color-change",
|
|
17768
|
+
options: { hoverColorToken: "primary" }
|
|
17769
|
+
}] }
|
|
17770
|
+
},
|
|
17771
|
+
/**
|
|
17772
|
+
* Underline - static underline appears on hover
|
|
17773
|
+
*/
|
|
17774
|
+
underline: {
|
|
17775
|
+
name: "Underline",
|
|
17776
|
+
typography: "body",
|
|
17777
|
+
fontWeight: "medium",
|
|
17778
|
+
textTransform: "none",
|
|
17779
|
+
italic: false,
|
|
17780
|
+
colorToken: "text",
|
|
17781
|
+
padding: "none",
|
|
17782
|
+
borderRadius: "none",
|
|
17783
|
+
effects: { hover: [{
|
|
17784
|
+
effectId: "nav-underline",
|
|
17785
|
+
options: { style: "static" }
|
|
17786
|
+
}] }
|
|
17787
|
+
},
|
|
17788
|
+
/**
|
|
17789
|
+
* Underline Grow - animated underline grows from center on hover
|
|
17790
|
+
*/
|
|
17791
|
+
"underline-grow": {
|
|
17792
|
+
name: "Underline Grow",
|
|
17793
|
+
typography: "body",
|
|
17794
|
+
fontWeight: "medium",
|
|
17795
|
+
textTransform: "none",
|
|
17796
|
+
italic: false,
|
|
17797
|
+
colorToken: "text",
|
|
17798
|
+
padding: "none",
|
|
17799
|
+
borderRadius: "none",
|
|
17800
|
+
effects: { hover: [{
|
|
17801
|
+
effectId: "nav-underline",
|
|
17802
|
+
options: { style: "grow" }
|
|
17803
|
+
}] }
|
|
17804
|
+
},
|
|
17805
|
+
/**
|
|
17806
|
+
* Capsule - pill-shaped background on hover
|
|
17807
|
+
*/
|
|
17808
|
+
capsule: {
|
|
17809
|
+
name: "Capsule",
|
|
17810
|
+
typography: "body",
|
|
17811
|
+
fontWeight: "medium",
|
|
17812
|
+
textTransform: "none",
|
|
17813
|
+
italic: false,
|
|
17814
|
+
colorToken: "text",
|
|
17815
|
+
padding: "compact",
|
|
17816
|
+
borderRadius: "full",
|
|
17817
|
+
effects: {
|
|
17818
|
+
hover: [{
|
|
17819
|
+
effectId: "background-on-hover-alpha",
|
|
17820
|
+
options: {
|
|
17821
|
+
colorToken: "primary",
|
|
17822
|
+
opacity: 10
|
|
17823
|
+
}
|
|
17824
|
+
}],
|
|
17825
|
+
active: [{
|
|
17826
|
+
effectId: "background-on-hover-alpha",
|
|
17827
|
+
options: {
|
|
17828
|
+
colorToken: "primary",
|
|
17829
|
+
opacity: 15
|
|
17830
|
+
}
|
|
17831
|
+
}]
|
|
17832
|
+
}
|
|
17833
|
+
},
|
|
17834
|
+
/**
|
|
17835
|
+
* Solid - solid background color on hover
|
|
17836
|
+
*/
|
|
17837
|
+
solid: {
|
|
17838
|
+
name: "Solid",
|
|
17839
|
+
typography: "body",
|
|
17840
|
+
fontWeight: "medium",
|
|
17841
|
+
textTransform: "none",
|
|
17842
|
+
italic: false,
|
|
17843
|
+
colorToken: "text",
|
|
17844
|
+
padding: "compact",
|
|
17845
|
+
borderRadius: "none",
|
|
17846
|
+
effects: {
|
|
17847
|
+
hover: [{
|
|
17848
|
+
effectId: "background-on-hover",
|
|
17849
|
+
options: {
|
|
17850
|
+
colorToken: "primary",
|
|
17851
|
+
textColorToken: "primaryForeground"
|
|
17852
|
+
}
|
|
17853
|
+
}],
|
|
17854
|
+
active: [{
|
|
17855
|
+
effectId: "background-on-hover",
|
|
17856
|
+
options: {
|
|
17857
|
+
colorToken: "primary",
|
|
17858
|
+
textColorToken: "primaryForeground"
|
|
17859
|
+
}
|
|
17860
|
+
}]
|
|
17861
|
+
}
|
|
17862
|
+
},
|
|
17863
|
+
/**
|
|
17864
|
+
* Scale - gentle scale-up on hover
|
|
17865
|
+
*/
|
|
17866
|
+
scale: {
|
|
17867
|
+
name: "Scale",
|
|
17868
|
+
typography: "body",
|
|
17869
|
+
fontWeight: "medium",
|
|
17870
|
+
textTransform: "none",
|
|
17871
|
+
italic: false,
|
|
17872
|
+
colorToken: "text",
|
|
17873
|
+
padding: "none",
|
|
17874
|
+
borderRadius: "none",
|
|
17875
|
+
effects: { hover: [{
|
|
17876
|
+
effectId: "scale-up",
|
|
17877
|
+
options: { scale: 1.05 }
|
|
17878
|
+
}] }
|
|
17879
|
+
},
|
|
17880
|
+
/**
|
|
17881
|
+
* Frosted - semi-transparent glass-like background
|
|
17882
|
+
*/
|
|
17883
|
+
frosted: {
|
|
17884
|
+
name: "Frosted",
|
|
17885
|
+
typography: "body",
|
|
17886
|
+
fontWeight: "medium",
|
|
17887
|
+
textTransform: "none",
|
|
17888
|
+
italic: false,
|
|
17889
|
+
colorToken: "text",
|
|
17890
|
+
padding: "compact",
|
|
17891
|
+
borderRadius: "md",
|
|
17892
|
+
effects: {
|
|
17893
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
17894
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
17895
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
17896
|
+
}
|
|
17897
|
+
}
|
|
17898
|
+
};
|
|
17899
|
+
/**
|
|
17900
|
+
* Get a nav link style preset by ID
|
|
17901
|
+
*/
|
|
17902
|
+
function getNavLinkPreset(presetId) {
|
|
17903
|
+
return NAV_LINK_PRESETS[presetId];
|
|
17904
|
+
}
|
|
17905
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
17906
|
+
//#endregion
|
|
17907
|
+
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
17908
|
+
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
17909
|
+
const navStyle = header.navStyle ?? "minimal";
|
|
17910
|
+
const basePreset = getNavLinkPreset(navStyle);
|
|
17911
|
+
if (!basePreset) return null;
|
|
17912
|
+
const style = {
|
|
17913
|
+
...basePreset,
|
|
17914
|
+
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
17915
|
+
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
17916
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
17917
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
17918
|
+
};
|
|
17919
|
+
if (header.navWeight === "bold" && navStyle === "solid") style.textTransform = "uppercase";
|
|
17920
|
+
applyLegacyGlassTreatment(style, header, navStyle);
|
|
17921
|
+
return style;
|
|
17922
|
+
}
|
|
17923
|
+
function applyLegacyGlassTreatment(style, header, navStyle) {
|
|
17924
|
+
if (header.navContainer?.type !== "glass" || navStyle !== "minimal") return;
|
|
17925
|
+
style.borderRadius = "full";
|
|
17926
|
+
style.effects = {
|
|
17927
|
+
...style.effects,
|
|
17928
|
+
hover: glassStateEffects(10),
|
|
17929
|
+
active: glassStateEffects(18)
|
|
17930
|
+
};
|
|
17931
|
+
}
|
|
17932
|
+
function glassStateEffects(opacity) {
|
|
17933
|
+
return [{
|
|
17934
|
+
effectId: "background-on-hover-alpha",
|
|
17935
|
+
options: {
|
|
17936
|
+
colorToken: "neutral-50",
|
|
17937
|
+
opacity
|
|
17938
|
+
}
|
|
17939
|
+
}, {
|
|
17940
|
+
effectId: "text-color-change",
|
|
17941
|
+
options: { hoverColorToken: "neutral-50" }
|
|
17942
|
+
}];
|
|
17943
|
+
}
|
|
17944
|
+
//#endregion
|
|
17945
|
+
//#region ../theme-core/src/header/openingForegroundProjection.ts
|
|
17946
|
+
function readOpeningForegroundProjection(header) {
|
|
17947
|
+
return header?.__runtimeOpeningForeground ?? null;
|
|
17948
|
+
}
|
|
17949
|
+
//#endregion
|
|
17950
|
+
//#region ../theme-core/src/header/effectiveNavLinkStyle.ts
|
|
17951
|
+
function effectiveHeaderNavLinkStyle(header, contrastTreatment = null, navTextSize = null) {
|
|
17952
|
+
if (!header) return null;
|
|
17953
|
+
if (!header.navLinkStyle) return buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize);
|
|
17954
|
+
return {
|
|
17955
|
+
...header.navLinkStyle,
|
|
17956
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
17957
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
17958
|
+
};
|
|
17959
|
+
}
|
|
17960
|
+
function headerForegroundCandidates(header) {
|
|
17961
|
+
if (!header) return {};
|
|
17962
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
17963
|
+
return {
|
|
17964
|
+
text: header.textColor ?? header.background?.textColor,
|
|
17965
|
+
link: style?.colorToken ?? header.navColor ?? header.textColor,
|
|
17966
|
+
linkHover: navLinkHoverColorCandidate(style)
|
|
17967
|
+
};
|
|
17968
|
+
}
|
|
17969
|
+
function headerLeafTextColor(header) {
|
|
17970
|
+
if (!header) return "text";
|
|
17971
|
+
return header.textColor ?? header.navColor ?? header.background?.textColor ?? header.navLinkStyle?.colorToken ?? "text";
|
|
17972
|
+
}
|
|
17973
|
+
/** Transparent chrome must reset the whole contract on its own root. */
|
|
17974
|
+
function transparentHeaderForegroundInput(header, palette) {
|
|
17975
|
+
const projection = readOpeningForegroundProjection(header);
|
|
17976
|
+
if (projection?.kind === "known") return surfaceForegroundInputFromResolved(projection, rgbColorValue);
|
|
17977
|
+
return authoredTransparentHeaderForegroundInput(header, palette);
|
|
17978
|
+
}
|
|
17979
|
+
function authoredTransparentHeaderForegroundInput(header, palette) {
|
|
17980
|
+
const text = headerLeafTextColor(header);
|
|
17981
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
17982
|
+
const link = style?.colorToken ?? text;
|
|
17983
|
+
const restingToken = parseThemeColorToken(link) ?? parseThemeColorToken("text");
|
|
17984
|
+
if (!restingToken) throw new Error("Built-in text colour token is invalid");
|
|
17985
|
+
const hover = planForegroundHover({
|
|
17986
|
+
restingToken,
|
|
17987
|
+
candidate: navLinkOwnsHoverForeground(style) ? null : navLinkHoverColorCandidate(style),
|
|
17988
|
+
palette,
|
|
17989
|
+
backdrops: null
|
|
17990
|
+
});
|
|
17991
|
+
return {
|
|
17992
|
+
text: rgbColorValue(text),
|
|
17993
|
+
link: rgbColorValue(link),
|
|
17994
|
+
linkHover: rgbColorValue(hover.token),
|
|
17995
|
+
hoverDecoration: navLinkOwnsUnderline(style) ? "initial" : hover.decoration
|
|
17996
|
+
};
|
|
17997
|
+
}
|
|
17998
|
+
//#endregion
|
|
17467
17999
|
//#region ../theme-core/src/site-styles/pageDesignAuthority.ts
|
|
17468
18000
|
const nonEmptyStringSchema = z.string().min(1);
|
|
17469
18001
|
const blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
|
|
@@ -17616,6 +18148,28 @@ z.object({
|
|
|
17616
18148
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
17617
18149
|
});
|
|
17618
18150
|
//#endregion
|
|
18151
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
18152
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
18153
|
+
if (!footer) return null;
|
|
18154
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
18155
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
18156
|
+
if (!basePreset) return null;
|
|
18157
|
+
return {
|
|
18158
|
+
...basePreset,
|
|
18159
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
18160
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
18161
|
+
};
|
|
18162
|
+
}
|
|
18163
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
18164
|
+
if (!footer) return {};
|
|
18165
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
18166
|
+
return {
|
|
18167
|
+
text: footer.background?.textColor,
|
|
18168
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
18169
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
18170
|
+
};
|
|
18171
|
+
}
|
|
18172
|
+
//#endregion
|
|
17619
18173
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
17620
18174
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
17621
18175
|
//#endregion
|
|
@@ -20389,33 +20943,28 @@ function resolveBackgroundColorValue(value, context) {
|
|
|
20389
20943
|
//#endregion
|
|
20390
20944
|
//#region ../blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.ts
|
|
20391
20945
|
const contextualButtonStylesCache = /* @__PURE__ */ new WeakMap();
|
|
20392
|
-
function resolveHeaderLeafTextColor(header) {
|
|
20393
|
-
return header?.textColor ?? header?.navColor ?? header?.background?.textColor ?? header?.navLinkStyle?.colorToken ?? "text";
|
|
20394
|
-
}
|
|
20395
20946
|
function resolveHeaderRootForeground(header, palette, isTransparent) {
|
|
20396
|
-
if (isTransparent) return { kind: "unknown" };
|
|
20947
|
+
if (isTransparent) return readOpeningForegroundProjection(header) ?? { kind: "unknown" };
|
|
20397
20948
|
const background = header?.background;
|
|
20398
20949
|
return resolveSurfaceForeground(background ?? {
|
|
20399
20950
|
type: "color",
|
|
20400
20951
|
color: "surface"
|
|
20401
|
-
}, palette,
|
|
20402
|
-
|
|
20403
|
-
|
|
20404
|
-
|
|
20952
|
+
}, palette, headerForegroundCandidates(header));
|
|
20953
|
+
}
|
|
20954
|
+
function resolveFooterRootForeground(footer, palette, proseHoverCandidate) {
|
|
20955
|
+
return resolveSurfaceForeground(footer?.background ?? {
|
|
20956
|
+
type: "color",
|
|
20957
|
+
color: "surface"
|
|
20958
|
+
}, palette, footerForegroundCandidates(footer, proseHoverCandidate), { compositeBase: "background" });
|
|
20405
20959
|
}
|
|
20406
20960
|
function resolveSurfaceForegroundStyles(value, context, options) {
|
|
20407
20961
|
const input = parseBackgroundContent(value);
|
|
20408
|
-
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, {}, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
20962
|
+
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, { linkHover: context.proseHoverCandidate }, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
20409
20963
|
const buttonStyles = resolveContextualButtonStyles(input, foreground, context, options);
|
|
20410
20964
|
if (foreground.kind === "unknown") return buttonStyles;
|
|
20411
20965
|
return {
|
|
20412
20966
|
...buttonStyles,
|
|
20413
|
-
...surfaceForegroundStyle(
|
|
20414
|
-
text: resolveBackgroundColorValue(foreground.roles.text, context),
|
|
20415
|
-
heading: resolveBackgroundColorValue(foreground.roles.heading, context),
|
|
20416
|
-
link: resolveBackgroundColorValue(foreground.roles.link, context),
|
|
20417
|
-
supporting: resolveBackgroundColorValue(foreground.roles.supporting, context)
|
|
20418
|
-
})
|
|
20967
|
+
...surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, (token) => resolveBackgroundColorValue(token, context)))
|
|
20419
20968
|
};
|
|
20420
20969
|
}
|
|
20421
20970
|
function resolveContextualButtonStyles(background, foreground, context, options) {
|
|
@@ -26231,10 +26780,7 @@ function resolveBackgroundVisualStyles(backgroundColor, defaultToken = "surface"
|
|
|
26231
26780
|
};
|
|
26232
26781
|
}
|
|
26233
26782
|
function resolveHeaderVisualStyles(header) {
|
|
26234
|
-
|
|
26235
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
26236
|
-
const hasOverlayVariant = header?.variant === "floating";
|
|
26237
|
-
if (hasContainedNav || hasOverlayVariant) return {
|
|
26783
|
+
if (headerRootPaint(header) !== "own-surface") return {
|
|
26238
26784
|
backgroundToken: "transparent",
|
|
26239
26785
|
isTransparent: true
|
|
26240
26786
|
};
|
|
@@ -26245,23 +26791,7 @@ function resolveHeaderVisualStyles(header) {
|
|
|
26245
26791
|
}
|
|
26246
26792
|
function resolvedForegroundStyle(foreground) {
|
|
26247
26793
|
if (foreground.kind === "unknown") return void 0;
|
|
26248
|
-
|
|
26249
|
-
return surfaceForegroundStyle({
|
|
26250
|
-
text: rgbColorValue(roles.text),
|
|
26251
|
-
heading: rgbColorValue(roles.heading),
|
|
26252
|
-
link: rgbColorValue(roles.link),
|
|
26253
|
-
supporting: rgbColorValue(roles.supporting)
|
|
26254
|
-
});
|
|
26255
|
-
}
|
|
26256
|
-
function resolveFooterRootForeground(footer, palette) {
|
|
26257
|
-
const background = footer?.background;
|
|
26258
|
-
return resolveSurfaceForeground(background ?? {
|
|
26259
|
-
type: "color",
|
|
26260
|
-
color: "surface"
|
|
26261
|
-
}, palette, {
|
|
26262
|
-
text: background?.textColor,
|
|
26263
|
-
link: footer?.navLinkStyle?.colorToken ?? footer?.navColor ?? background?.textColor
|
|
26264
|
-
});
|
|
26794
|
+
return surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, rgbColorValue));
|
|
26265
26795
|
}
|
|
26266
26796
|
function footerBottomBarBorderWidthStyle(width) {
|
|
26267
26797
|
if (!width) return void 0;
|
|
@@ -26288,8 +26818,7 @@ const headerRootClassTransform = {
|
|
|
26288
26818
|
const placement = planSiteChromePlacement(parseHeaderPositioning(content.positioning));
|
|
26289
26819
|
const header = asPartialObject(value);
|
|
26290
26820
|
const visuals = resolveHeaderVisualStyles(header);
|
|
26291
|
-
const
|
|
26292
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
26821
|
+
const hasContainedNav = headerRootPaint(header) === "contained-nav";
|
|
26293
26822
|
const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
|
|
26294
26823
|
const classes = [config.base, backgroundClass];
|
|
26295
26824
|
if (!hasContainedNav) {
|
|
@@ -26332,7 +26861,7 @@ const headerRootStyleTransform = {
|
|
|
26332
26861
|
run: (value, _options, context) => {
|
|
26333
26862
|
const header = asPartialObject(value);
|
|
26334
26863
|
const visuals = resolveHeaderVisualStyles(header);
|
|
26335
|
-
return mergeStyles(resolvedForegroundStyle(resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent)) ?? { color: rgbColorValue(
|
|
26864
|
+
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"));
|
|
26336
26865
|
}
|
|
26337
26866
|
};
|
|
26338
26867
|
const headerSectionBackgroundTransform = {
|
|
@@ -26340,9 +26869,7 @@ const headerSectionBackgroundTransform = {
|
|
|
26340
26869
|
kind: "string",
|
|
26341
26870
|
summary: "Resolve the inner site-header section background token",
|
|
26342
26871
|
run: (value) => {
|
|
26343
|
-
|
|
26344
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
26345
|
-
return header?.variant === "floating" || navContainerType === "glass" || navContainerType === "pill" ? "raw:transparent" : "background";
|
|
26872
|
+
return headerRootPaint(asPartialObject(value)) !== "own-surface" ? "raw:transparent" : "background";
|
|
26346
26873
|
}
|
|
26347
26874
|
};
|
|
26348
26875
|
const footerRootStyleTransform = {
|
|
@@ -26360,7 +26887,7 @@ const footerRootStyleTransform = {
|
|
|
26360
26887
|
styleParts.push(backgroundColorStyle(token));
|
|
26361
26888
|
}
|
|
26362
26889
|
}
|
|
26363
|
-
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette)));
|
|
26890
|
+
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
26364
26891
|
styleParts.push(borderColorStyle("border"));
|
|
26365
26892
|
return mergeStyles(...styleParts);
|
|
26366
26893
|
}
|
|
@@ -26422,22 +26949,28 @@ const footerBottomBarStyleTransform = {
|
|
|
26422
26949
|
run: (value, _options, context) => {
|
|
26423
26950
|
const footer = asPartialObject(value);
|
|
26424
26951
|
const bottomBar = footer?.bottomBar;
|
|
26425
|
-
|
|
26426
|
-
const background = bottomBar?.background;
|
|
26427
|
-
if (background?.type === "color") styleParts.push(backgroundColorStyle(background.color ?? "surface"));
|
|
26428
|
-
styleParts.push(borderColorStyle(bottomBar?.borderTop?.colorToken ?? "border"), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width));
|
|
26429
|
-
const foreground = resolveSurfaceForeground(background?.type === "color" ? background : {
|
|
26430
|
-
type: "color",
|
|
26431
|
-
color: "transparent"
|
|
26432
|
-
}, context.theme.palette, {
|
|
26433
|
-
text: bottomBar?.textColor,
|
|
26434
|
-
link: footer?.bottomTextLinkStyle?.colorToken ?? bottomBar?.textColor
|
|
26435
|
-
});
|
|
26436
|
-
if (background?.type === "color") styleParts.push(resolvedForegroundStyle(foreground));
|
|
26437
|
-
else if (bottomBar?.textColor) styleParts.push(textColorStyle(bottomBar.textColor));
|
|
26438
|
-
return mergeStyles(...styleParts);
|
|
26952
|
+
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));
|
|
26439
26953
|
}
|
|
26440
26954
|
};
|
|
26955
|
+
function footerBottomBarForegroundStyle(footer, palette) {
|
|
26956
|
+
if (!footer?.bottomBar) return void 0;
|
|
26957
|
+
const bar = footer.bottomBar;
|
|
26958
|
+
if (bar.background?.type !== "color") return backgroundlessBottomBarForegroundStyle(footer);
|
|
26959
|
+
return resolvedForegroundStyle(resolveSurfaceForeground(bar.background, palette, {
|
|
26960
|
+
text: bar.textColor,
|
|
26961
|
+
link: footer.bottomTextLinkStyle?.colorToken ?? bar.textColor,
|
|
26962
|
+
linkHover: footer.bottomTextLinkStyle?.hoverColorToken
|
|
26963
|
+
}, { compositeBase: measuredFooterBackdrop(footer, palette) }));
|
|
26964
|
+
}
|
|
26965
|
+
function backgroundlessBottomBarForegroundStyle(footer) {
|
|
26966
|
+
if (footer.background?.contentOwner === "site-chrome-editor") return;
|
|
26967
|
+
const textColor = footer.bottomBar?.textColor;
|
|
26968
|
+
return textColor ? textColorStyle(textColor) : void 0;
|
|
26969
|
+
}
|
|
26970
|
+
function measuredFooterBackdrop(footer, palette) {
|
|
26971
|
+
const foreground = resolveFooterRootForeground(footer, palette);
|
|
26972
|
+
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
26973
|
+
}
|
|
26441
26974
|
const footerSplitMainClassTransform = {
|
|
26442
26975
|
id: "layout.footerSplitMainClass",
|
|
26443
26976
|
kind: "string",
|
|
@@ -26533,7 +27066,7 @@ function chromeSurfaceTextToken(surface, theme, palette) {
|
|
|
26533
27066
|
case "header-root": {
|
|
26534
27067
|
const header = theme.header;
|
|
26535
27068
|
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
26536
|
-
return foreground.kind === "known" ? foreground.roles.text :
|
|
27069
|
+
return foreground.kind === "known" ? foreground.roles.text : headerLeafTextColor(header);
|
|
26537
27070
|
}
|
|
26538
27071
|
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
26539
27072
|
case "footer-root": {
|
|
@@ -28612,7 +29145,9 @@ const bookingWizard = bookingForm(withApiBindings({
|
|
|
28612
29145
|
} },
|
|
28613
29146
|
formId: { $bind: { from: "content.formId" } },
|
|
28614
29147
|
form: { $bind: { from: "data.form" } },
|
|
28615
|
-
services: { $bind: { from: "data.services" } }
|
|
29148
|
+
services: { $bind: { from: "data.services" } },
|
|
29149
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
29150
|
+
siteName: { $bind: { from: "$root.siteName" } }
|
|
28616
29151
|
}));
|
|
28617
29152
|
/** Both variants sit in the same section shell; only the inner layout differs. */
|
|
28618
29153
|
function bookingSection(children) {
|
|
@@ -29528,7 +30063,13 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
29528
30063
|
spamProtectionEnabled: z.boolean().optional(),
|
|
29529
30064
|
supportEmail: z.string().optional(),
|
|
29530
30065
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
29531
|
-
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
30066
|
+
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional(),
|
|
30067
|
+
mailingList: z.unknown().transform((value) => {
|
|
30068
|
+
if (value === void 0) return void 0;
|
|
30069
|
+
const parsed = parseMailingListRuntimeContext(value);
|
|
30070
|
+
return parsed.ok ? parsed.value : void 0;
|
|
30071
|
+
}),
|
|
30072
|
+
siteName: z.string().optional()
|
|
29532
30073
|
};
|
|
29533
30074
|
const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
|
|
29534
30075
|
kind: z.literal("loaded"),
|
|
@@ -29700,7 +30241,9 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
29700
30241
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
29701
30242
|
supportEmail: source.supportEmail,
|
|
29702
30243
|
sitePasses: source.sitePasses ?? null,
|
|
29703
|
-
siteMemberships: source.siteMemberships ?? null
|
|
30244
|
+
siteMemberships: source.siteMemberships ?? null,
|
|
30245
|
+
mailingList: source.mailingList,
|
|
30246
|
+
siteName: source.siteName
|
|
29704
30247
|
}
|
|
29705
30248
|
};
|
|
29706
30249
|
}
|
|
@@ -29868,6 +30411,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
29868
30411
|
events: { $bind: { from: "data.events" } },
|
|
29869
30412
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
29870
30413
|
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
30414
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
30415
|
+
siteName: { $bind: { from: "$root.siteName" } },
|
|
29871
30416
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
29872
30417
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
29873
30418
|
stage: { $bind: {
|
|
@@ -36884,65 +37429,67 @@ const editorialSplitLayout = styledSection({
|
|
|
36884
37429
|
spacing: "comfortable",
|
|
36885
37430
|
background: "surface"
|
|
36886
37431
|
});
|
|
36887
|
-
const
|
|
36888
|
-
|
|
36889
|
-
|
|
36890
|
-
|
|
36891
|
-
|
|
36892
|
-
|
|
36893
|
-
|
|
36894
|
-
|
|
36895
|
-
|
|
36896
|
-
|
|
36897
|
-
|
|
36898
|
-
|
|
36899
|
-
|
|
36900
|
-
|
|
36901
|
-
|
|
36902
|
-
|
|
36903
|
-
|
|
36904
|
-
|
|
36905
|
-
|
|
36906
|
-
|
|
36907
|
-
|
|
36908
|
-
|
|
36909
|
-
|
|
36910
|
-
|
|
36911
|
-
|
|
36912
|
-
description: "Vertical layout with fields stacked"
|
|
36913
|
-
},
|
|
36914
|
-
inline: {
|
|
36915
|
-
label: "Inline",
|
|
36916
|
-
description: "Horizontal layout (email + button side by side)"
|
|
36917
|
-
},
|
|
36918
|
-
"editorial-split": {
|
|
36919
|
-
label: "Editorial split",
|
|
36920
|
-
description: "Copy and form in balanced side-by-side columns, stacked on mobile."
|
|
36921
|
-
}
|
|
36922
|
-
},
|
|
36923
|
-
styleTokens: {
|
|
36924
|
-
background: "surface",
|
|
36925
|
-
typography: "body",
|
|
36926
|
-
spacing: "md"
|
|
37432
|
+
const newsletterSignupManifest = createBlockManifest({
|
|
37433
|
+
id: "block.newsletter-signup",
|
|
37434
|
+
title: "Newsletter Signup",
|
|
37435
|
+
titleSource: "title",
|
|
37436
|
+
description: "Newsletter subscription form with configurable field presets.",
|
|
37437
|
+
category: "interactive",
|
|
37438
|
+
contentSource: { kind: "inline" },
|
|
37439
|
+
fragments: [{
|
|
37440
|
+
fragment: newsletterCopyFragment,
|
|
37441
|
+
fieldPriority: 0
|
|
37442
|
+
}, {
|
|
37443
|
+
fragment: newsletterFormFragment,
|
|
37444
|
+
fieldPriority: 1
|
|
37445
|
+
}],
|
|
37446
|
+
layout: stackedLayout,
|
|
37447
|
+
variants: {
|
|
37448
|
+
stacked: stackedLayout,
|
|
37449
|
+
inline: inlineLayout,
|
|
37450
|
+
"editorial-split": editorialSplitLayout
|
|
37451
|
+
},
|
|
37452
|
+
defaultVariant: "stacked",
|
|
37453
|
+
variantOptions: {
|
|
37454
|
+
stacked: {
|
|
37455
|
+
label: "Stacked",
|
|
37456
|
+
description: "Vertical layout with fields stacked"
|
|
36927
37457
|
},
|
|
36928
|
-
|
|
36929
|
-
|
|
36930
|
-
|
|
36931
|
-
animation: false,
|
|
36932
|
-
paletteHidden: false
|
|
37458
|
+
inline: {
|
|
37459
|
+
label: "Inline",
|
|
37460
|
+
description: "Horizontal layout (email + button side by side)"
|
|
36933
37461
|
},
|
|
36934
|
-
|
|
36935
|
-
"
|
|
36936
|
-
"
|
|
36937
|
-
|
|
36938
|
-
|
|
36939
|
-
|
|
36940
|
-
|
|
36941
|
-
|
|
36942
|
-
|
|
36943
|
-
|
|
36944
|
-
|
|
36945
|
-
|
|
37462
|
+
"editorial-split": {
|
|
37463
|
+
label: "Editorial split",
|
|
37464
|
+
description: "Copy and form in balanced side-by-side columns, stacked on mobile."
|
|
37465
|
+
}
|
|
37466
|
+
},
|
|
37467
|
+
styleTokens: {
|
|
37468
|
+
background: "surface",
|
|
37469
|
+
typography: "body",
|
|
37470
|
+
spacing: "md"
|
|
37471
|
+
},
|
|
37472
|
+
behaviours: {
|
|
37473
|
+
supportsThemeSwitching: true,
|
|
37474
|
+
inlineEditing: false,
|
|
37475
|
+
animation: false,
|
|
37476
|
+
paletteHidden: false
|
|
37477
|
+
},
|
|
37478
|
+
tags: [
|
|
37479
|
+
"newsletter",
|
|
37480
|
+
"signup",
|
|
37481
|
+
"email",
|
|
37482
|
+
"subscribe",
|
|
37483
|
+
"subscription",
|
|
37484
|
+
"mailchimp",
|
|
37485
|
+
"marketing",
|
|
37486
|
+
"lead-capture"
|
|
37487
|
+
],
|
|
37488
|
+
icon: "Mail"
|
|
37489
|
+
});
|
|
37490
|
+
[...(newsletterSignupManifest.fields ?? []).map((field) => field.id)];
|
|
37491
|
+
const newsletterSignupBlockDefinition = {
|
|
37492
|
+
manifest: newsletterSignupManifest,
|
|
36946
37493
|
runtime: newsletterFormBlockRuntime
|
|
36947
37494
|
};
|
|
36948
37495
|
//#endregion
|