@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
|
@@ -18,6 +18,64 @@ function defineEndpointDefinitions(definitions) {
|
|
|
18
18
|
return definitions;
|
|
19
19
|
}
|
|
20
20
|
//#endregion
|
|
21
|
+
//#region ../api/src/apiEndpointTypes.ts
|
|
22
|
+
function allowedDemoMutationPolicy() {
|
|
23
|
+
return {
|
|
24
|
+
classification: "allowed",
|
|
25
|
+
publicMessage: ""
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
29
|
+
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
30
|
+
return {
|
|
31
|
+
classification,
|
|
32
|
+
publicMessage
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region ../api/src/demoMutationPolicies.ts
|
|
37
|
+
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
38
|
+
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
39
|
+
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
40
|
+
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region ../api/src/siteLifecycleEndpoints.ts
|
|
43
|
+
const SITE_LIFECYCLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
44
|
+
createSite: {
|
|
45
|
+
path: "/sites/manage",
|
|
46
|
+
method: "POST",
|
|
47
|
+
tags: ["site"],
|
|
48
|
+
auth: "user",
|
|
49
|
+
responseKind: "json",
|
|
50
|
+
errors: []
|
|
51
|
+
},
|
|
52
|
+
createSiteManual: {
|
|
53
|
+
path: "/sites/manual",
|
|
54
|
+
method: "POST",
|
|
55
|
+
tags: ["site"],
|
|
56
|
+
auth: "user",
|
|
57
|
+
responseKind: "json",
|
|
58
|
+
errors: []
|
|
59
|
+
},
|
|
60
|
+
updateSite: {
|
|
61
|
+
path: "/sites/manage",
|
|
62
|
+
method: "PUT",
|
|
63
|
+
tags: ["site"],
|
|
64
|
+
auth: "user",
|
|
65
|
+
responseKind: "json",
|
|
66
|
+
errors: []
|
|
67
|
+
},
|
|
68
|
+
deleteSite: {
|
|
69
|
+
path: "/sites/{siteId}",
|
|
70
|
+
method: "DELETE",
|
|
71
|
+
tags: ["site", "site-{siteId}"],
|
|
72
|
+
auth: "user",
|
|
73
|
+
responseKind: "json",
|
|
74
|
+
errors: [],
|
|
75
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
//#endregion
|
|
21
79
|
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
22
80
|
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
23
81
|
subscribeNewsletter: {
|
|
@@ -78,27 +136,6 @@ const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
78
136
|
}
|
|
79
137
|
});
|
|
80
138
|
//#endregion
|
|
81
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
82
|
-
function allowedDemoMutationPolicy() {
|
|
83
|
-
return {
|
|
84
|
-
classification: "allowed",
|
|
85
|
-
publicMessage: ""
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
89
|
-
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
90
|
-
return {
|
|
91
|
-
classification,
|
|
92
|
-
publicMessage
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
//#endregion
|
|
96
|
-
//#region ../api/src/demoMutationPolicies.ts
|
|
97
|
-
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
98
|
-
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
99
|
-
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
100
|
-
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
101
|
-
//#endregion
|
|
102
139
|
//#region ../api/src/cache-tags.ts
|
|
103
140
|
/**
|
|
104
141
|
* Tag templates for endpoint definitions (support `{param}` placeholders).
|
|
@@ -1125,6 +1162,20 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1125
1162
|
responseKind: "json",
|
|
1126
1163
|
errors: ["auth:forbidden", "server:internal_error"]
|
|
1127
1164
|
},
|
|
1165
|
+
setMailingListBookingOptIn: {
|
|
1166
|
+
path: "/sites/{siteId}/mailing-list/setup/booking-opt-in",
|
|
1167
|
+
method: "PUT",
|
|
1168
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1169
|
+
auth: "user",
|
|
1170
|
+
responseKind: "json",
|
|
1171
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
1172
|
+
errors: [
|
|
1173
|
+
"auth:forbidden",
|
|
1174
|
+
"validation:invalid_input",
|
|
1175
|
+
"resource:conflict",
|
|
1176
|
+
"server:internal_error"
|
|
1177
|
+
]
|
|
1178
|
+
},
|
|
1128
1179
|
getMailingListAuthoringContext: {
|
|
1129
1180
|
path: "/sites/{siteId}/mailing-list/authoring-context",
|
|
1130
1181
|
method: "GET",
|
|
@@ -2250,17 +2301,35 @@ function parseMailingListRuntimeContext(value) {
|
|
|
2250
2301
|
if (!isRecord$8(value)) return invalidRuntimeContext();
|
|
2251
2302
|
if (value.tag === "not_configured") return ok({ tag: "not_configured" });
|
|
2252
2303
|
if (value.tag !== "configured") return invalidRuntimeContext();
|
|
2304
|
+
return parseConfiguredRuntimeContext(value);
|
|
2305
|
+
}
|
|
2306
|
+
function parseConfiguredRuntimeContext(value) {
|
|
2253
2307
|
const revision = parseMailingListSetupRevision(value.revision);
|
|
2254
2308
|
const form = parseMailingListGlobalForm(value.form);
|
|
2255
2309
|
const provider = parseRuntimeProvider(value.provider);
|
|
2256
|
-
|
|
2310
|
+
const bookingSignup = parseBookingSignupOffer(value.bookingSignup);
|
|
2311
|
+
if (revision === null || !form.ok || provider === null || bookingSignup === null) return invalidRuntimeContext();
|
|
2257
2312
|
return ok({
|
|
2258
2313
|
tag: "configured",
|
|
2259
2314
|
revision,
|
|
2315
|
+
bookingSignup,
|
|
2260
2316
|
form: form.value,
|
|
2261
2317
|
provider
|
|
2262
2318
|
});
|
|
2263
2319
|
}
|
|
2320
|
+
function parseBookingSignupOffer(value) {
|
|
2321
|
+
if (value === void 0) return {
|
|
2322
|
+
tag: "unavailable",
|
|
2323
|
+
reason: "disabled"
|
|
2324
|
+
};
|
|
2325
|
+
if (!isRecord$8(value)) return null;
|
|
2326
|
+
if (value.tag === "offered") return { tag: "offered" };
|
|
2327
|
+
if (value.tag === "unavailable" && (value.reason === "disabled" || value.reason === "fields" || value.reason === "destination")) return {
|
|
2328
|
+
tag: "unavailable",
|
|
2329
|
+
reason: value.reason
|
|
2330
|
+
};
|
|
2331
|
+
return null;
|
|
2332
|
+
}
|
|
2264
2333
|
function parseRuntimeProvider(value) {
|
|
2265
2334
|
if (!isRecord$8(value)) return null;
|
|
2266
2335
|
switch (value.provider) {
|
|
@@ -3750,6 +3819,54 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
3750
3819
|
}
|
|
3751
3820
|
});
|
|
3752
3821
|
//#endregion
|
|
3822
|
+
//#region ../api/src/bookingPeopleEndpointDefinitions.ts
|
|
3823
|
+
/**
|
|
3824
|
+
* People endpoints (#1356): the People list, its CSV export, and deleting a
|
|
3825
|
+
* person when nothing is attached to them.
|
|
3826
|
+
*/
|
|
3827
|
+
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
3828
|
+
listPeople: {
|
|
3829
|
+
path: "/sites/{siteId}/bookings/people",
|
|
3830
|
+
method: "GET",
|
|
3831
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3832
|
+
auth: "user",
|
|
3833
|
+
responseKind: "json",
|
|
3834
|
+
errors: ["server:internal_error"]
|
|
3835
|
+
},
|
|
3836
|
+
exportPeopleCsv: {
|
|
3837
|
+
path: "/sites/{siteId}/bookings/people/export.csv",
|
|
3838
|
+
method: "GET",
|
|
3839
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3840
|
+
auth: "user",
|
|
3841
|
+
errors: [],
|
|
3842
|
+
responseKind: "blob"
|
|
3843
|
+
},
|
|
3844
|
+
checkPersonDeletion: {
|
|
3845
|
+
path: "/sites/{siteId}/bookings/people/{personId}/deletion-check",
|
|
3846
|
+
method: "GET",
|
|
3847
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3848
|
+
auth: "user",
|
|
3849
|
+
responseKind: "json",
|
|
3850
|
+
errors: [
|
|
3851
|
+
"auth:forbidden",
|
|
3852
|
+
"resource:not_found",
|
|
3853
|
+
"server:internal_error"
|
|
3854
|
+
]
|
|
3855
|
+
},
|
|
3856
|
+
deletePerson: {
|
|
3857
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
3858
|
+
method: "DELETE",
|
|
3859
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3860
|
+
auth: "user",
|
|
3861
|
+
responseKind: "json",
|
|
3862
|
+
errors: [
|
|
3863
|
+
"auth:forbidden",
|
|
3864
|
+
"resource:not_found",
|
|
3865
|
+
"server:internal_error"
|
|
3866
|
+
]
|
|
3867
|
+
}
|
|
3868
|
+
});
|
|
3869
|
+
//#endregion
|
|
3753
3870
|
//#region ../api/src/clientErrorReporting.ts
|
|
3754
3871
|
const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
|
|
3755
3872
|
path: "/client/error-report",
|
|
@@ -3785,6 +3902,7 @@ z.object({
|
|
|
3785
3902
|
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
3786
3903
|
}).strict();
|
|
3787
3904
|
({
|
|
3905
|
+
...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
|
|
3788
3906
|
...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
|
|
3789
3907
|
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3790
3908
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
@@ -3798,7 +3916,7 @@ z.object({
|
|
|
3798
3916
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3799
3917
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
3800
3918
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
3801
|
-
}, 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 };
|
|
3919
|
+
}, 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 };
|
|
3802
3920
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
3803
3921
|
z.object({
|
|
3804
3922
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -6299,13 +6417,16 @@ const SURFACE_FOREGROUND_CSS_VARS = {
|
|
|
6299
6417
|
text: "--rb-surface-text-color",
|
|
6300
6418
|
heading: "--rb-surface-heading-color",
|
|
6301
6419
|
link: "--rb-surface-link-color",
|
|
6420
|
+
linkHover: "--rb-surface-link-hover-color",
|
|
6302
6421
|
supporting: "--rb-surface-supporting-color"
|
|
6303
6422
|
};
|
|
6304
6423
|
const DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
|
|
6424
|
+
const DEFAULT_SURFACE_LINK_COLOR = "rgb(var(--tb-primary, var(--tb-text, 17 24 39)))";
|
|
6305
6425
|
const DEFAULT_ROLE_FALLBACKS = {
|
|
6306
6426
|
text: DEFAULT_SURFACE_TEXT_COLOR,
|
|
6307
6427
|
heading: DEFAULT_SURFACE_TEXT_COLOR,
|
|
6308
|
-
link:
|
|
6428
|
+
link: DEFAULT_SURFACE_LINK_COLOR,
|
|
6429
|
+
linkHover: DEFAULT_SURFACE_LINK_COLOR,
|
|
6309
6430
|
supporting: "rgb(var(--tb-mutedText, 100 116 139))"
|
|
6310
6431
|
};
|
|
6311
6432
|
function requireSurfaceColorValue(role, value) {
|
|
@@ -6315,10 +6436,12 @@ function requireSurfaceColorValue(role, value) {
|
|
|
6315
6436
|
}
|
|
6316
6437
|
function completeSurfaceForegrounds(input) {
|
|
6317
6438
|
const text = requireSurfaceColorValue("text", input.text);
|
|
6439
|
+
const link = input.link === void 0 ? text : requireSurfaceColorValue("link", input.link);
|
|
6318
6440
|
return {
|
|
6319
6441
|
text,
|
|
6320
6442
|
heading: input.heading === void 0 ? text : requireSurfaceColorValue("heading", input.heading),
|
|
6321
|
-
link
|
|
6443
|
+
link,
|
|
6444
|
+
linkHover: input.linkHover === void 0 ? link : requireSurfaceColorValue("linkHover", input.linkHover),
|
|
6322
6445
|
supporting: input.supporting === void 0 ? text : requireSurfaceColorValue("supporting", input.supporting)
|
|
6323
6446
|
};
|
|
6324
6447
|
}
|
|
@@ -6326,6 +6449,7 @@ function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FAL
|
|
|
6326
6449
|
const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
|
|
6327
6450
|
const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
|
|
6328
6451
|
if (role === "text") return `var(${roleVariable}, ${fallback})`;
|
|
6452
|
+
if (role === "linkHover") return `var(${roleVariable}, ${surfaceForegroundValue("link", fallback)})`;
|
|
6329
6453
|
return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
|
|
6330
6454
|
}
|
|
6331
6455
|
function surfaceForegroundValueWithOpacity(role, opacityPercent) {
|
|
@@ -6339,9 +6463,25 @@ function surfaceForegroundStyle(input) {
|
|
|
6339
6463
|
[SURFACE_FOREGROUND_CSS_VARS.text]: foregrounds.text,
|
|
6340
6464
|
[SURFACE_FOREGROUND_CSS_VARS.heading]: foregrounds.heading,
|
|
6341
6465
|
[SURFACE_FOREGROUND_CSS_VARS.link]: foregrounds.link,
|
|
6342
|
-
[SURFACE_FOREGROUND_CSS_VARS.
|
|
6466
|
+
[SURFACE_FOREGROUND_CSS_VARS.linkHover]: foregrounds.linkHover,
|
|
6467
|
+
[SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting,
|
|
6468
|
+
"--rb-surface-link-hover-decoration": hoverDecoration(input)
|
|
6343
6469
|
};
|
|
6344
6470
|
}
|
|
6471
|
+
function surfaceForegroundInputFromResolved(foreground, color) {
|
|
6472
|
+
const { roles } = foreground;
|
|
6473
|
+
return {
|
|
6474
|
+
text: color(roles.text),
|
|
6475
|
+
heading: color(roles.heading),
|
|
6476
|
+
link: color(roles.link),
|
|
6477
|
+
linkHover: color(roles.linkHover),
|
|
6478
|
+
supporting: color(roles.supporting),
|
|
6479
|
+
hoverDecoration: foreground.hoverDecoration
|
|
6480
|
+
};
|
|
6481
|
+
}
|
|
6482
|
+
function hoverDecoration(input) {
|
|
6483
|
+
return input.hoverDecoration ?? "underline";
|
|
6484
|
+
}
|
|
6345
6485
|
//#endregion
|
|
6346
6486
|
//#region ../theme-core/src/buttons/constants.ts
|
|
6347
6487
|
/**
|
|
@@ -7096,6 +7236,64 @@ function parseAlpha(source) {
|
|
|
7096
7236
|
function isRgbChannel(value) {
|
|
7097
7237
|
return Number.isFinite(value) && value >= 0 && value <= 255;
|
|
7098
7238
|
}
|
|
7239
|
+
/**
|
|
7240
|
+
* Derive the hover foreground that belongs with a resolved resting foreground.
|
|
7241
|
+
*
|
|
7242
|
+
* A resting foreground is chosen to be legible against a known surface. A hover
|
|
7243
|
+
* state derived from it stays within a bounded distance of that colour, so it
|
|
7244
|
+
* inherits most of the resting colour's contrast margin instead of asserting
|
|
7245
|
+
* an unrelated brand colour that no one checked against the surface.
|
|
7246
|
+
*
|
|
7247
|
+
* That bounded-distance property is what lets this be used on a transparent
|
|
7248
|
+
* overlay header, where the backdrop is only partly knowable: the scrolled
|
|
7249
|
+
* state composites a 60% glass tint over arbitrary page content, so no
|
|
7250
|
+
* compile-time contrast proof is available there. Staying near a colour that
|
|
7251
|
+
* is already trusted in both states is a weaker claim than a contrast proof,
|
|
7252
|
+
* and it is one this function can actually keep.
|
|
7253
|
+
*
|
|
7254
|
+
* Returns `null` when the resting token is not a plain palette token — an
|
|
7255
|
+
* already-faded or raw value has no well-defined softening, and the caller
|
|
7256
|
+
* should leave hover alone rather than guess.
|
|
7257
|
+
*/
|
|
7258
|
+
function deriveForegroundHoverToken(restingToken) {
|
|
7259
|
+
const parts = parseColorTokenParts(restingToken);
|
|
7260
|
+
if (parts.kind !== "token") return null;
|
|
7261
|
+
if (parts.opacityPercent !== null) return null;
|
|
7262
|
+
return parseThemeColorToken(`${parts.token}/85`);
|
|
7263
|
+
}
|
|
7264
|
+
/**
|
|
7265
|
+
* Prefer an authored hover that survives every measured backdrop, then a
|
|
7266
|
+
* checked softening of the resting colour. A null backdrop set represents a
|
|
7267
|
+
* trusted treatment: only an explicit authored hover may change the colour.
|
|
7268
|
+
* When neither option works, retain the resting colour and underline it.
|
|
7269
|
+
*/
|
|
7270
|
+
function planForegroundHover(input) {
|
|
7271
|
+
const { restingToken, candidate, palette, backdrops } = input;
|
|
7272
|
+
if (candidate && candidate !== restingToken) {
|
|
7273
|
+
if (backdrops === null || survivesEveryBackdrop(candidate, palette, backdrops)) return {
|
|
7274
|
+
kind: "candidate",
|
|
7275
|
+
token: candidate,
|
|
7276
|
+
decoration: "initial"
|
|
7277
|
+
};
|
|
7278
|
+
}
|
|
7279
|
+
const softened = deriveForegroundHoverToken(restingToken);
|
|
7280
|
+
if (softened && backdrops && survivesEveryBackdrop(softened, palette, backdrops)) return {
|
|
7281
|
+
kind: "softened",
|
|
7282
|
+
token: softened,
|
|
7283
|
+
decoration: "initial"
|
|
7284
|
+
};
|
|
7285
|
+
return {
|
|
7286
|
+
kind: "resting",
|
|
7287
|
+
token: restingToken,
|
|
7288
|
+
decoration: "underline"
|
|
7289
|
+
};
|
|
7290
|
+
}
|
|
7291
|
+
function survivesEveryBackdrop(token, palette, backdrops) {
|
|
7292
|
+
return backdrops.length > 0 && backdrops.every((backdrop) => {
|
|
7293
|
+
const foreground = resolveOpaqueSurfaceHex(token, palette, backdrop);
|
|
7294
|
+
return foreground !== null && contrastRatio(foreground, backdrop) >= 4.5;
|
|
7295
|
+
});
|
|
7296
|
+
}
|
|
7099
7297
|
//#endregion
|
|
7100
7298
|
//#region ../theme-core/src/surfaces/resolveSurfaceForeground.ts
|
|
7101
7299
|
const FALLBACK_TEXT_TOKENS = [
|
|
@@ -7142,12 +7340,16 @@ function resolveSurfaceForeground(background, palette, candidates = {}, options
|
|
|
7142
7340
|
}
|
|
7143
7341
|
function foregroundCandidates(background, overrides) {
|
|
7144
7342
|
return {
|
|
7145
|
-
text: overrides.text
|
|
7146
|
-
heading: overrides.heading
|
|
7147
|
-
link: overrides.link
|
|
7148
|
-
|
|
7343
|
+
text: candidateOrBackground(overrides.text, background?.textColor),
|
|
7344
|
+
heading: candidateOrBackground(overrides.heading, background?.headingColor),
|
|
7345
|
+
link: candidateOrBackground(overrides.link, background?.linkColor),
|
|
7346
|
+
linkHover: candidateOrBackground(overrides.linkHover),
|
|
7347
|
+
supporting: candidateOrBackground(overrides.supporting, background?.supportingColor)
|
|
7149
7348
|
};
|
|
7150
7349
|
}
|
|
7350
|
+
function candidateOrBackground(candidate, backgroundValue) {
|
|
7351
|
+
return candidate ?? backgroundValue ?? null;
|
|
7352
|
+
}
|
|
7151
7353
|
function resolveDeterministicForeground(backgroundReference, candidates, palette, compositeBase) {
|
|
7152
7354
|
const backgroundHex = resolveOpaqueSurfaceHex(backgroundReference, palette, compositeBase);
|
|
7153
7355
|
if (!backgroundHex) return resolveTrustedTreatmentForeground(candidates, palette);
|
|
@@ -7159,29 +7361,51 @@ function resolveDeterministicForeground(backgroundReference, candidates, palette
|
|
|
7159
7361
|
...FALLBACK_TEXT_TOKENS
|
|
7160
7362
|
], backgroundHex, palette, derivedOnToken ? [derivedOnToken] : []);
|
|
7161
7363
|
if (!text) return { kind: "unknown" };
|
|
7162
|
-
return {
|
|
7163
|
-
|
|
7164
|
-
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
};
|
|
7364
|
+
return knownForeground({
|
|
7365
|
+
text,
|
|
7366
|
+
heading: safeTokenOr(candidates.heading, text, backgroundHex, palette),
|
|
7367
|
+
link: safeTokenOr(candidates.link, text, backgroundHex, palette),
|
|
7368
|
+
supporting: safeTokenOr(candidates.supporting, text, backgroundHex, palette)
|
|
7369
|
+
}, {
|
|
7370
|
+
kind: "measured",
|
|
7371
|
+
backdropHex: backgroundHex
|
|
7372
|
+
}, candidates.linkHover, palette);
|
|
7171
7373
|
}
|
|
7172
7374
|
function resolveTrustedTreatmentForeground(candidates, palette) {
|
|
7173
7375
|
const text = canonicalToken(candidates.text, palette);
|
|
7174
7376
|
if (!text) return { kind: "unknown" };
|
|
7377
|
+
return knownForeground({
|
|
7378
|
+
text,
|
|
7379
|
+
heading: canonicalToken(candidates.heading, palette) ?? text,
|
|
7380
|
+
link: canonicalToken(candidates.link, palette) ?? text,
|
|
7381
|
+
supporting: canonicalToken(candidates.supporting, palette) ?? text
|
|
7382
|
+
}, { kind: "trusted-treatment" }, candidates.linkHover, palette);
|
|
7383
|
+
}
|
|
7384
|
+
function knownForeground(roles, provenance, hoverCandidate, palette) {
|
|
7385
|
+
const hover = planForegroundHover({
|
|
7386
|
+
restingToken: roles.link,
|
|
7387
|
+
candidate: canonicalHoverToken(hoverCandidate, palette),
|
|
7388
|
+
palette,
|
|
7389
|
+
backdrops: provenance.kind === "measured" ? [provenance.backdropHex] : null
|
|
7390
|
+
});
|
|
7175
7391
|
return {
|
|
7176
7392
|
kind: "known",
|
|
7393
|
+
provenance,
|
|
7177
7394
|
roles: {
|
|
7178
|
-
|
|
7179
|
-
|
|
7180
|
-
|
|
7181
|
-
|
|
7182
|
-
}
|
|
7395
|
+
...roles,
|
|
7396
|
+
linkHover: hover.token
|
|
7397
|
+
},
|
|
7398
|
+
hoverDecoration: hover.decoration
|
|
7183
7399
|
};
|
|
7184
7400
|
}
|
|
7401
|
+
function canonicalHoverToken(reference, palette) {
|
|
7402
|
+
const token = parseThemeColorToken(reference);
|
|
7403
|
+
if (token) {
|
|
7404
|
+
const parts = parseColorTokenParts(token);
|
|
7405
|
+
if (parts.kind === "token" && resolveConcreteColorHex(parts.token, palette)) return token;
|
|
7406
|
+
}
|
|
7407
|
+
return canonicalToken(reference, palette);
|
|
7408
|
+
}
|
|
7185
7409
|
function safeTokenOr(candidate, fallback, backgroundHex, palette) {
|
|
7186
7410
|
return firstSafeToken([candidate], backgroundHex, palette) ?? fallback;
|
|
7187
7411
|
}
|
|
@@ -10121,6 +10345,43 @@ const effectCompositionSchema = z.object({
|
|
|
10121
10345
|
/** Effects applied on focus */
|
|
10122
10346
|
focus: z.array(effectApplicationSchema).optional()
|
|
10123
10347
|
});
|
|
10348
|
+
const policiesById = {
|
|
10349
|
+
"darken-background": "other",
|
|
10350
|
+
"lighten-background": "other",
|
|
10351
|
+
"fade-background": "other",
|
|
10352
|
+
"opacity-reduce": "other",
|
|
10353
|
+
"animated-gradient": "other",
|
|
10354
|
+
"background-on-hover": "paired-hover",
|
|
10355
|
+
"background-on-hover-alpha": "paired-hover",
|
|
10356
|
+
"border-glow": "other",
|
|
10357
|
+
"drop-shadow": "other",
|
|
10358
|
+
"inner-shadow": "other",
|
|
10359
|
+
"neumorphic-shadow": "other",
|
|
10360
|
+
"outer-glow": "other",
|
|
10361
|
+
"retro-3d-shadow": "other",
|
|
10362
|
+
"scale-up": "other",
|
|
10363
|
+
"scale-down": "other",
|
|
10364
|
+
lift: "other",
|
|
10365
|
+
"press-down": "other",
|
|
10366
|
+
pop: "other",
|
|
10367
|
+
"aurora-glow": "other",
|
|
10368
|
+
"cosmic-stardust": "other",
|
|
10369
|
+
"gradient-border-fill": "other",
|
|
10370
|
+
"animated-gradient-border-fill": "other",
|
|
10371
|
+
"border-bottom-grow": "other",
|
|
10372
|
+
"gradient-text": "other",
|
|
10373
|
+
"text-color-change": "text-colour",
|
|
10374
|
+
"border-color-change": "other",
|
|
10375
|
+
"sketchy-border": "other",
|
|
10376
|
+
"pulse-animation": "other",
|
|
10377
|
+
"nav-underline": "underline",
|
|
10378
|
+
"nav-frosted-base": "other",
|
|
10379
|
+
"nav-frosted-hover": "other",
|
|
10380
|
+
"nav-frosted-active": "other"
|
|
10381
|
+
};
|
|
10382
|
+
function navEffectPolicy(effectId) {
|
|
10383
|
+
return policiesById[effectId] ?? null;
|
|
10384
|
+
}
|
|
10124
10385
|
//#endregion
|
|
10125
10386
|
//#region ../theme-core/src/navigation/types.ts
|
|
10126
10387
|
/**
|
|
@@ -10209,6 +10470,16 @@ const navLinkStyleSchema = z.object({
|
|
|
10209
10470
|
/** Composable effects */
|
|
10210
10471
|
effects: effectCompositionSchema.optional()
|
|
10211
10472
|
});
|
|
10473
|
+
function navLinkHoverColorCandidate(style) {
|
|
10474
|
+
const effect = style?.effects?.hover?.find((item) => navEffectPolicy(item.effectId) === "text-colour");
|
|
10475
|
+
return parseThemeColorToken(effect?.options?.hoverColorToken ?? style?.hoverColorToken);
|
|
10476
|
+
}
|
|
10477
|
+
function navLinkOwnsHoverForeground(style) {
|
|
10478
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "paired-hover") ?? false;
|
|
10479
|
+
}
|
|
10480
|
+
function navLinkOwnsUnderline(style) {
|
|
10481
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "underline") ?? false;
|
|
10482
|
+
}
|
|
10212
10483
|
//#endregion
|
|
10213
10484
|
//#region ../theme-core/src/customCss/validation.ts
|
|
10214
10485
|
/**
|
|
@@ -16397,6 +16668,14 @@ const blockDesignFallback = {
|
|
|
16397
16668
|
};
|
|
16398
16669
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
16399
16670
|
//#endregion
|
|
16671
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
16672
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
16673
|
+
function headerRootPaint(header) {
|
|
16674
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
16675
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
16676
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
16677
|
+
}
|
|
16678
|
+
//#endregion
|
|
16400
16679
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
16401
16680
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
16402
16681
|
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
@@ -16576,6 +16855,259 @@ z.object(headerPreferencesShape).omit({
|
|
|
16576
16855
|
structure: true
|
|
16577
16856
|
}).strict();
|
|
16578
16857
|
//#endregion
|
|
16858
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
16859
|
+
/**
|
|
16860
|
+
* Built-in nav link style presets
|
|
16861
|
+
*
|
|
16862
|
+
* Each preset uses composable effects to achieve its look.
|
|
16863
|
+
*/
|
|
16864
|
+
const NAV_LINK_PRESETS = {
|
|
16865
|
+
/**
|
|
16866
|
+
* Minimal - subtle color change on hover
|
|
16867
|
+
*/
|
|
16868
|
+
minimal: {
|
|
16869
|
+
name: "Minimal",
|
|
16870
|
+
typography: "body",
|
|
16871
|
+
fontWeight: "medium",
|
|
16872
|
+
textTransform: "none",
|
|
16873
|
+
italic: false,
|
|
16874
|
+
colorToken: "text",
|
|
16875
|
+
hoverColorToken: "primary",
|
|
16876
|
+
padding: "none",
|
|
16877
|
+
borderRadius: "none",
|
|
16878
|
+
effects: { hover: [{
|
|
16879
|
+
effectId: "text-color-change",
|
|
16880
|
+
options: { hoverColorToken: "primary" }
|
|
16881
|
+
}] }
|
|
16882
|
+
},
|
|
16883
|
+
/**
|
|
16884
|
+
* Underline - static underline appears on hover
|
|
16885
|
+
*/
|
|
16886
|
+
underline: {
|
|
16887
|
+
name: "Underline",
|
|
16888
|
+
typography: "body",
|
|
16889
|
+
fontWeight: "medium",
|
|
16890
|
+
textTransform: "none",
|
|
16891
|
+
italic: false,
|
|
16892
|
+
colorToken: "text",
|
|
16893
|
+
padding: "none",
|
|
16894
|
+
borderRadius: "none",
|
|
16895
|
+
effects: { hover: [{
|
|
16896
|
+
effectId: "nav-underline",
|
|
16897
|
+
options: { style: "static" }
|
|
16898
|
+
}] }
|
|
16899
|
+
},
|
|
16900
|
+
/**
|
|
16901
|
+
* Underline Grow - animated underline grows from center on hover
|
|
16902
|
+
*/
|
|
16903
|
+
"underline-grow": {
|
|
16904
|
+
name: "Underline Grow",
|
|
16905
|
+
typography: "body",
|
|
16906
|
+
fontWeight: "medium",
|
|
16907
|
+
textTransform: "none",
|
|
16908
|
+
italic: false,
|
|
16909
|
+
colorToken: "text",
|
|
16910
|
+
padding: "none",
|
|
16911
|
+
borderRadius: "none",
|
|
16912
|
+
effects: { hover: [{
|
|
16913
|
+
effectId: "nav-underline",
|
|
16914
|
+
options: { style: "grow" }
|
|
16915
|
+
}] }
|
|
16916
|
+
},
|
|
16917
|
+
/**
|
|
16918
|
+
* Capsule - pill-shaped background on hover
|
|
16919
|
+
*/
|
|
16920
|
+
capsule: {
|
|
16921
|
+
name: "Capsule",
|
|
16922
|
+
typography: "body",
|
|
16923
|
+
fontWeight: "medium",
|
|
16924
|
+
textTransform: "none",
|
|
16925
|
+
italic: false,
|
|
16926
|
+
colorToken: "text",
|
|
16927
|
+
padding: "compact",
|
|
16928
|
+
borderRadius: "full",
|
|
16929
|
+
effects: {
|
|
16930
|
+
hover: [{
|
|
16931
|
+
effectId: "background-on-hover-alpha",
|
|
16932
|
+
options: {
|
|
16933
|
+
colorToken: "primary",
|
|
16934
|
+
opacity: 10
|
|
16935
|
+
}
|
|
16936
|
+
}],
|
|
16937
|
+
active: [{
|
|
16938
|
+
effectId: "background-on-hover-alpha",
|
|
16939
|
+
options: {
|
|
16940
|
+
colorToken: "primary",
|
|
16941
|
+
opacity: 15
|
|
16942
|
+
}
|
|
16943
|
+
}]
|
|
16944
|
+
}
|
|
16945
|
+
},
|
|
16946
|
+
/**
|
|
16947
|
+
* Solid - solid background color on hover
|
|
16948
|
+
*/
|
|
16949
|
+
solid: {
|
|
16950
|
+
name: "Solid",
|
|
16951
|
+
typography: "body",
|
|
16952
|
+
fontWeight: "medium",
|
|
16953
|
+
textTransform: "none",
|
|
16954
|
+
italic: false,
|
|
16955
|
+
colorToken: "text",
|
|
16956
|
+
padding: "compact",
|
|
16957
|
+
borderRadius: "none",
|
|
16958
|
+
effects: {
|
|
16959
|
+
hover: [{
|
|
16960
|
+
effectId: "background-on-hover",
|
|
16961
|
+
options: {
|
|
16962
|
+
colorToken: "primary",
|
|
16963
|
+
textColorToken: "primaryForeground"
|
|
16964
|
+
}
|
|
16965
|
+
}],
|
|
16966
|
+
active: [{
|
|
16967
|
+
effectId: "background-on-hover",
|
|
16968
|
+
options: {
|
|
16969
|
+
colorToken: "primary",
|
|
16970
|
+
textColorToken: "primaryForeground"
|
|
16971
|
+
}
|
|
16972
|
+
}]
|
|
16973
|
+
}
|
|
16974
|
+
},
|
|
16975
|
+
/**
|
|
16976
|
+
* Scale - gentle scale-up on hover
|
|
16977
|
+
*/
|
|
16978
|
+
scale: {
|
|
16979
|
+
name: "Scale",
|
|
16980
|
+
typography: "body",
|
|
16981
|
+
fontWeight: "medium",
|
|
16982
|
+
textTransform: "none",
|
|
16983
|
+
italic: false,
|
|
16984
|
+
colorToken: "text",
|
|
16985
|
+
padding: "none",
|
|
16986
|
+
borderRadius: "none",
|
|
16987
|
+
effects: { hover: [{
|
|
16988
|
+
effectId: "scale-up",
|
|
16989
|
+
options: { scale: 1.05 }
|
|
16990
|
+
}] }
|
|
16991
|
+
},
|
|
16992
|
+
/**
|
|
16993
|
+
* Frosted - semi-transparent glass-like background
|
|
16994
|
+
*/
|
|
16995
|
+
frosted: {
|
|
16996
|
+
name: "Frosted",
|
|
16997
|
+
typography: "body",
|
|
16998
|
+
fontWeight: "medium",
|
|
16999
|
+
textTransform: "none",
|
|
17000
|
+
italic: false,
|
|
17001
|
+
colorToken: "text",
|
|
17002
|
+
padding: "compact",
|
|
17003
|
+
borderRadius: "md",
|
|
17004
|
+
effects: {
|
|
17005
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
17006
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
17007
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
17008
|
+
}
|
|
17009
|
+
}
|
|
17010
|
+
};
|
|
17011
|
+
/**
|
|
17012
|
+
* Get a nav link style preset by ID
|
|
17013
|
+
*/
|
|
17014
|
+
function getNavLinkPreset(presetId) {
|
|
17015
|
+
return NAV_LINK_PRESETS[presetId];
|
|
17016
|
+
}
|
|
17017
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
17018
|
+
//#endregion
|
|
17019
|
+
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
17020
|
+
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
17021
|
+
const navStyle = header.navStyle ?? "minimal";
|
|
17022
|
+
const basePreset = getNavLinkPreset(navStyle);
|
|
17023
|
+
if (!basePreset) return null;
|
|
17024
|
+
const style = {
|
|
17025
|
+
...basePreset,
|
|
17026
|
+
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
17027
|
+
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
17028
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
17029
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
17030
|
+
};
|
|
17031
|
+
if (header.navWeight === "bold" && navStyle === "solid") style.textTransform = "uppercase";
|
|
17032
|
+
applyLegacyGlassTreatment(style, header, navStyle);
|
|
17033
|
+
return style;
|
|
17034
|
+
}
|
|
17035
|
+
function applyLegacyGlassTreatment(style, header, navStyle) {
|
|
17036
|
+
if (header.navContainer?.type !== "glass" || navStyle !== "minimal") return;
|
|
17037
|
+
style.borderRadius = "full";
|
|
17038
|
+
style.effects = {
|
|
17039
|
+
...style.effects,
|
|
17040
|
+
hover: glassStateEffects(10),
|
|
17041
|
+
active: glassStateEffects(18)
|
|
17042
|
+
};
|
|
17043
|
+
}
|
|
17044
|
+
function glassStateEffects(opacity) {
|
|
17045
|
+
return [{
|
|
17046
|
+
effectId: "background-on-hover-alpha",
|
|
17047
|
+
options: {
|
|
17048
|
+
colorToken: "neutral-50",
|
|
17049
|
+
opacity
|
|
17050
|
+
}
|
|
17051
|
+
}, {
|
|
17052
|
+
effectId: "text-color-change",
|
|
17053
|
+
options: { hoverColorToken: "neutral-50" }
|
|
17054
|
+
}];
|
|
17055
|
+
}
|
|
17056
|
+
//#endregion
|
|
17057
|
+
//#region ../theme-core/src/header/openingForegroundProjection.ts
|
|
17058
|
+
function readOpeningForegroundProjection(header) {
|
|
17059
|
+
return header?.__runtimeOpeningForeground ?? null;
|
|
17060
|
+
}
|
|
17061
|
+
//#endregion
|
|
17062
|
+
//#region ../theme-core/src/header/effectiveNavLinkStyle.ts
|
|
17063
|
+
function effectiveHeaderNavLinkStyle(header, contrastTreatment = null, navTextSize = null) {
|
|
17064
|
+
if (!header) return null;
|
|
17065
|
+
if (!header.navLinkStyle) return buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize);
|
|
17066
|
+
return {
|
|
17067
|
+
...header.navLinkStyle,
|
|
17068
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
17069
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
17070
|
+
};
|
|
17071
|
+
}
|
|
17072
|
+
function headerForegroundCandidates(header) {
|
|
17073
|
+
if (!header) return {};
|
|
17074
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
17075
|
+
return {
|
|
17076
|
+
text: header.textColor ?? header.background?.textColor,
|
|
17077
|
+
link: style?.colorToken ?? header.navColor ?? header.textColor,
|
|
17078
|
+
linkHover: navLinkHoverColorCandidate(style)
|
|
17079
|
+
};
|
|
17080
|
+
}
|
|
17081
|
+
function headerLeafTextColor(header) {
|
|
17082
|
+
if (!header) return "text";
|
|
17083
|
+
return header.textColor ?? header.navColor ?? header.background?.textColor ?? header.navLinkStyle?.colorToken ?? "text";
|
|
17084
|
+
}
|
|
17085
|
+
/** Transparent chrome must reset the whole contract on its own root. */
|
|
17086
|
+
function transparentHeaderForegroundInput(header, palette) {
|
|
17087
|
+
const projection = readOpeningForegroundProjection(header);
|
|
17088
|
+
if (projection?.kind === "known") return surfaceForegroundInputFromResolved(projection, rgbColorValue);
|
|
17089
|
+
return authoredTransparentHeaderForegroundInput(header, palette);
|
|
17090
|
+
}
|
|
17091
|
+
function authoredTransparentHeaderForegroundInput(header, palette) {
|
|
17092
|
+
const text = headerLeafTextColor(header);
|
|
17093
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
17094
|
+
const link = style?.colorToken ?? text;
|
|
17095
|
+
const restingToken = parseThemeColorToken(link) ?? parseThemeColorToken("text");
|
|
17096
|
+
if (!restingToken) throw new Error("Built-in text colour token is invalid");
|
|
17097
|
+
const hover = planForegroundHover({
|
|
17098
|
+
restingToken,
|
|
17099
|
+
candidate: navLinkOwnsHoverForeground(style) ? null : navLinkHoverColorCandidate(style),
|
|
17100
|
+
palette,
|
|
17101
|
+
backdrops: null
|
|
17102
|
+
});
|
|
17103
|
+
return {
|
|
17104
|
+
text: rgbColorValue(text),
|
|
17105
|
+
link: rgbColorValue(link),
|
|
17106
|
+
linkHover: rgbColorValue(hover.token),
|
|
17107
|
+
hoverDecoration: navLinkOwnsUnderline(style) ? "initial" : hover.decoration
|
|
17108
|
+
};
|
|
17109
|
+
}
|
|
17110
|
+
//#endregion
|
|
16579
17111
|
//#region ../theme-core/src/site-styles/pageDesignAuthority.ts
|
|
16580
17112
|
const nonEmptyStringSchema = z.string().min(1);
|
|
16581
17113
|
const blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
|
|
@@ -16728,6 +17260,28 @@ z.object({
|
|
|
16728
17260
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
16729
17261
|
});
|
|
16730
17262
|
//#endregion
|
|
17263
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
17264
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
17265
|
+
if (!footer) return null;
|
|
17266
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
17267
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
17268
|
+
if (!basePreset) return null;
|
|
17269
|
+
return {
|
|
17270
|
+
...basePreset,
|
|
17271
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
17272
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
17273
|
+
};
|
|
17274
|
+
}
|
|
17275
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
17276
|
+
if (!footer) return {};
|
|
17277
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
17278
|
+
return {
|
|
17279
|
+
text: footer.background?.textColor,
|
|
17280
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
17281
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
17282
|
+
};
|
|
17283
|
+
}
|
|
17284
|
+
//#endregion
|
|
16731
17285
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
16732
17286
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
16733
17287
|
//#endregion
|
|
@@ -19701,33 +20255,28 @@ function resolveBackgroundColorValue(value, context) {
|
|
|
19701
20255
|
//#endregion
|
|
19702
20256
|
//#region ../blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.ts
|
|
19703
20257
|
const contextualButtonStylesCache = /* @__PURE__ */ new WeakMap();
|
|
19704
|
-
function resolveHeaderLeafTextColor(header) {
|
|
19705
|
-
return header?.textColor ?? header?.navColor ?? header?.background?.textColor ?? header?.navLinkStyle?.colorToken ?? "text";
|
|
19706
|
-
}
|
|
19707
20258
|
function resolveHeaderRootForeground(header, palette, isTransparent) {
|
|
19708
|
-
if (isTransparent) return { kind: "unknown" };
|
|
20259
|
+
if (isTransparent) return readOpeningForegroundProjection(header) ?? { kind: "unknown" };
|
|
19709
20260
|
const background = header?.background;
|
|
19710
20261
|
return resolveSurfaceForeground(background ?? {
|
|
19711
20262
|
type: "color",
|
|
19712
20263
|
color: "surface"
|
|
19713
|
-
}, palette,
|
|
19714
|
-
|
|
19715
|
-
|
|
19716
|
-
|
|
20264
|
+
}, palette, headerForegroundCandidates(header));
|
|
20265
|
+
}
|
|
20266
|
+
function resolveFooterRootForeground(footer, palette, proseHoverCandidate) {
|
|
20267
|
+
return resolveSurfaceForeground(footer?.background ?? {
|
|
20268
|
+
type: "color",
|
|
20269
|
+
color: "surface"
|
|
20270
|
+
}, palette, footerForegroundCandidates(footer, proseHoverCandidate), { compositeBase: "background" });
|
|
19717
20271
|
}
|
|
19718
20272
|
function resolveSurfaceForegroundStyles(value, context, options) {
|
|
19719
20273
|
const input = parseBackgroundContent(value);
|
|
19720
|
-
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, {}, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
20274
|
+
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, { linkHover: context.proseHoverCandidate }, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
19721
20275
|
const buttonStyles = resolveContextualButtonStyles(input, foreground, context, options);
|
|
19722
20276
|
if (foreground.kind === "unknown") return buttonStyles;
|
|
19723
20277
|
return {
|
|
19724
20278
|
...buttonStyles,
|
|
19725
|
-
...surfaceForegroundStyle(
|
|
19726
|
-
text: resolveBackgroundColorValue(foreground.roles.text, context),
|
|
19727
|
-
heading: resolveBackgroundColorValue(foreground.roles.heading, context),
|
|
19728
|
-
link: resolveBackgroundColorValue(foreground.roles.link, context),
|
|
19729
|
-
supporting: resolveBackgroundColorValue(foreground.roles.supporting, context)
|
|
19730
|
-
})
|
|
20279
|
+
...surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, (token) => resolveBackgroundColorValue(token, context)))
|
|
19731
20280
|
};
|
|
19732
20281
|
}
|
|
19733
20282
|
function resolveContextualButtonStyles(background, foreground, context, options) {
|
|
@@ -25543,10 +26092,7 @@ function resolveBackgroundVisualStyles(backgroundColor, defaultToken = "surface"
|
|
|
25543
26092
|
};
|
|
25544
26093
|
}
|
|
25545
26094
|
function resolveHeaderVisualStyles(header) {
|
|
25546
|
-
|
|
25547
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
25548
|
-
const hasOverlayVariant = header?.variant === "floating";
|
|
25549
|
-
if (hasContainedNav || hasOverlayVariant) return {
|
|
26095
|
+
if (headerRootPaint(header) !== "own-surface") return {
|
|
25550
26096
|
backgroundToken: "transparent",
|
|
25551
26097
|
isTransparent: true
|
|
25552
26098
|
};
|
|
@@ -25557,23 +26103,7 @@ function resolveHeaderVisualStyles(header) {
|
|
|
25557
26103
|
}
|
|
25558
26104
|
function resolvedForegroundStyle(foreground) {
|
|
25559
26105
|
if (foreground.kind === "unknown") return void 0;
|
|
25560
|
-
|
|
25561
|
-
return surfaceForegroundStyle({
|
|
25562
|
-
text: rgbColorValue(roles.text),
|
|
25563
|
-
heading: rgbColorValue(roles.heading),
|
|
25564
|
-
link: rgbColorValue(roles.link),
|
|
25565
|
-
supporting: rgbColorValue(roles.supporting)
|
|
25566
|
-
});
|
|
25567
|
-
}
|
|
25568
|
-
function resolveFooterRootForeground(footer, palette) {
|
|
25569
|
-
const background = footer?.background;
|
|
25570
|
-
return resolveSurfaceForeground(background ?? {
|
|
25571
|
-
type: "color",
|
|
25572
|
-
color: "surface"
|
|
25573
|
-
}, palette, {
|
|
25574
|
-
text: background?.textColor,
|
|
25575
|
-
link: footer?.navLinkStyle?.colorToken ?? footer?.navColor ?? background?.textColor
|
|
25576
|
-
});
|
|
26106
|
+
return surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, rgbColorValue));
|
|
25577
26107
|
}
|
|
25578
26108
|
function footerBottomBarBorderWidthStyle(width) {
|
|
25579
26109
|
if (!width) return void 0;
|
|
@@ -25600,8 +26130,7 @@ const headerRootClassTransform = {
|
|
|
25600
26130
|
const placement = planSiteChromePlacement(parseHeaderPositioning(content.positioning));
|
|
25601
26131
|
const header = asPartialObject(value);
|
|
25602
26132
|
const visuals = resolveHeaderVisualStyles(header);
|
|
25603
|
-
const
|
|
25604
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
26133
|
+
const hasContainedNav = headerRootPaint(header) === "contained-nav";
|
|
25605
26134
|
const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
|
|
25606
26135
|
const classes = [config.base, backgroundClass];
|
|
25607
26136
|
if (!hasContainedNav) {
|
|
@@ -25644,7 +26173,7 @@ const headerRootStyleTransform = {
|
|
|
25644
26173
|
run: (value, _options, context) => {
|
|
25645
26174
|
const header = asPartialObject(value);
|
|
25646
26175
|
const visuals = resolveHeaderVisualStyles(header);
|
|
25647
|
-
return mergeStyles(resolvedForegroundStyle(resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent)) ?? { color: rgbColorValue(
|
|
26176
|
+
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"));
|
|
25648
26177
|
}
|
|
25649
26178
|
};
|
|
25650
26179
|
const headerSectionBackgroundTransform = {
|
|
@@ -25652,9 +26181,7 @@ const headerSectionBackgroundTransform = {
|
|
|
25652
26181
|
kind: "string",
|
|
25653
26182
|
summary: "Resolve the inner site-header section background token",
|
|
25654
26183
|
run: (value) => {
|
|
25655
|
-
|
|
25656
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
25657
|
-
return header?.variant === "floating" || navContainerType === "glass" || navContainerType === "pill" ? "raw:transparent" : "background";
|
|
26184
|
+
return headerRootPaint(asPartialObject(value)) !== "own-surface" ? "raw:transparent" : "background";
|
|
25658
26185
|
}
|
|
25659
26186
|
};
|
|
25660
26187
|
const footerRootStyleTransform = {
|
|
@@ -25672,7 +26199,7 @@ const footerRootStyleTransform = {
|
|
|
25672
26199
|
styleParts.push(backgroundColorStyle(token));
|
|
25673
26200
|
}
|
|
25674
26201
|
}
|
|
25675
|
-
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette)));
|
|
26202
|
+
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
25676
26203
|
styleParts.push(borderColorStyle("border"));
|
|
25677
26204
|
return mergeStyles(...styleParts);
|
|
25678
26205
|
}
|
|
@@ -25734,22 +26261,28 @@ const footerBottomBarStyleTransform = {
|
|
|
25734
26261
|
run: (value, _options, context) => {
|
|
25735
26262
|
const footer = asPartialObject(value);
|
|
25736
26263
|
const bottomBar = footer?.bottomBar;
|
|
25737
|
-
|
|
25738
|
-
const background = bottomBar?.background;
|
|
25739
|
-
if (background?.type === "color") styleParts.push(backgroundColorStyle(background.color ?? "surface"));
|
|
25740
|
-
styleParts.push(borderColorStyle(bottomBar?.borderTop?.colorToken ?? "border"), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width));
|
|
25741
|
-
const foreground = resolveSurfaceForeground(background?.type === "color" ? background : {
|
|
25742
|
-
type: "color",
|
|
25743
|
-
color: "transparent"
|
|
25744
|
-
}, context.theme.palette, {
|
|
25745
|
-
text: bottomBar?.textColor,
|
|
25746
|
-
link: footer?.bottomTextLinkStyle?.colorToken ?? bottomBar?.textColor
|
|
25747
|
-
});
|
|
25748
|
-
if (background?.type === "color") styleParts.push(resolvedForegroundStyle(foreground));
|
|
25749
|
-
else if (bottomBar?.textColor) styleParts.push(textColorStyle(bottomBar.textColor));
|
|
25750
|
-
return mergeStyles(...styleParts);
|
|
26264
|
+
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));
|
|
25751
26265
|
}
|
|
25752
26266
|
};
|
|
26267
|
+
function footerBottomBarForegroundStyle(footer, palette) {
|
|
26268
|
+
if (!footer?.bottomBar) return void 0;
|
|
26269
|
+
const bar = footer.bottomBar;
|
|
26270
|
+
if (bar.background?.type !== "color") return backgroundlessBottomBarForegroundStyle(footer);
|
|
26271
|
+
return resolvedForegroundStyle(resolveSurfaceForeground(bar.background, palette, {
|
|
26272
|
+
text: bar.textColor,
|
|
26273
|
+
link: footer.bottomTextLinkStyle?.colorToken ?? bar.textColor,
|
|
26274
|
+
linkHover: footer.bottomTextLinkStyle?.hoverColorToken
|
|
26275
|
+
}, { compositeBase: measuredFooterBackdrop(footer, palette) }));
|
|
26276
|
+
}
|
|
26277
|
+
function backgroundlessBottomBarForegroundStyle(footer) {
|
|
26278
|
+
if (footer.background?.contentOwner === "site-chrome-editor") return;
|
|
26279
|
+
const textColor = footer.bottomBar?.textColor;
|
|
26280
|
+
return textColor ? textColorStyle(textColor) : void 0;
|
|
26281
|
+
}
|
|
26282
|
+
function measuredFooterBackdrop(footer, palette) {
|
|
26283
|
+
const foreground = resolveFooterRootForeground(footer, palette);
|
|
26284
|
+
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
26285
|
+
}
|
|
25753
26286
|
const footerSplitMainClassTransform = {
|
|
25754
26287
|
id: "layout.footerSplitMainClass",
|
|
25755
26288
|
kind: "string",
|
|
@@ -25845,7 +26378,7 @@ function chromeSurfaceTextToken(surface, theme, palette) {
|
|
|
25845
26378
|
case "header-root": {
|
|
25846
26379
|
const header = theme.header;
|
|
25847
26380
|
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
25848
|
-
return foreground.kind === "known" ? foreground.roles.text :
|
|
26381
|
+
return foreground.kind === "known" ? foreground.roles.text : headerLeafTextColor(header);
|
|
25849
26382
|
}
|
|
25850
26383
|
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
25851
26384
|
case "footer-root": {
|
|
@@ -27932,7 +28465,9 @@ const bookingWizard = bookingForm(withApiBindings({
|
|
|
27932
28465
|
} },
|
|
27933
28466
|
formId: { $bind: { from: "content.formId" } },
|
|
27934
28467
|
form: { $bind: { from: "data.form" } },
|
|
27935
|
-
services: { $bind: { from: "data.services" } }
|
|
28468
|
+
services: { $bind: { from: "data.services" } },
|
|
28469
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
28470
|
+
siteName: { $bind: { from: "$root.siteName" } }
|
|
27936
28471
|
}));
|
|
27937
28472
|
/** Both variants sit in the same section shell; only the inner layout differs. */
|
|
27938
28473
|
function bookingSection(children) {
|
|
@@ -29434,7 +29969,13 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
29434
29969
|
spamProtectionEnabled: z.boolean().optional(),
|
|
29435
29970
|
supportEmail: z.string().optional(),
|
|
29436
29971
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
29437
|
-
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
29972
|
+
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional(),
|
|
29973
|
+
mailingList: z.unknown().transform((value) => {
|
|
29974
|
+
if (value === void 0) return void 0;
|
|
29975
|
+
const parsed = parseMailingListRuntimeContext(value);
|
|
29976
|
+
return parsed.ok ? parsed.value : void 0;
|
|
29977
|
+
}),
|
|
29978
|
+
siteName: z.string().optional()
|
|
29438
29979
|
};
|
|
29439
29980
|
const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
|
|
29440
29981
|
kind: z.literal("loaded"),
|
|
@@ -29606,7 +30147,9 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
29606
30147
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
29607
30148
|
supportEmail: source.supportEmail,
|
|
29608
30149
|
sitePasses: source.sitePasses ?? null,
|
|
29609
|
-
siteMemberships: source.siteMemberships ?? null
|
|
30150
|
+
siteMemberships: source.siteMemberships ?? null,
|
|
30151
|
+
mailingList: source.mailingList,
|
|
30152
|
+
siteName: source.siteName
|
|
29610
30153
|
}
|
|
29611
30154
|
};
|
|
29612
30155
|
}
|
|
@@ -29774,6 +30317,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
29774
30317
|
events: { $bind: { from: "data.events" } },
|
|
29775
30318
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
29776
30319
|
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
30320
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
30321
|
+
siteName: { $bind: { from: "$root.siteName" } },
|
|
29777
30322
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
29778
30323
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
29779
30324
|
stage: { $bind: {
|
|
@@ -36657,65 +37202,67 @@ const editorialSplitLayout = styledSection({
|
|
|
36657
37202
|
spacing: "comfortable",
|
|
36658
37203
|
background: "surface"
|
|
36659
37204
|
});
|
|
36660
|
-
const
|
|
36661
|
-
|
|
36662
|
-
|
|
36663
|
-
|
|
36664
|
-
|
|
36665
|
-
|
|
36666
|
-
|
|
36667
|
-
|
|
36668
|
-
|
|
36669
|
-
|
|
36670
|
-
|
|
36671
|
-
|
|
36672
|
-
|
|
36673
|
-
|
|
36674
|
-
|
|
36675
|
-
|
|
36676
|
-
|
|
36677
|
-
|
|
36678
|
-
|
|
36679
|
-
|
|
36680
|
-
|
|
36681
|
-
|
|
36682
|
-
|
|
36683
|
-
|
|
36684
|
-
|
|
36685
|
-
description: "Vertical layout with fields stacked"
|
|
36686
|
-
},
|
|
36687
|
-
inline: {
|
|
36688
|
-
label: "Inline",
|
|
36689
|
-
description: "Horizontal layout (email + button side by side)"
|
|
36690
|
-
},
|
|
36691
|
-
"editorial-split": {
|
|
36692
|
-
label: "Editorial split",
|
|
36693
|
-
description: "Copy and form in balanced side-by-side columns, stacked on mobile."
|
|
36694
|
-
}
|
|
36695
|
-
},
|
|
36696
|
-
styleTokens: {
|
|
36697
|
-
background: "surface",
|
|
36698
|
-
typography: "body",
|
|
36699
|
-
spacing: "md"
|
|
37205
|
+
const newsletterSignupManifest = createBlockManifest({
|
|
37206
|
+
id: "block.newsletter-signup",
|
|
37207
|
+
title: "Newsletter Signup",
|
|
37208
|
+
titleSource: "title",
|
|
37209
|
+
description: "Newsletter subscription form with configurable field presets.",
|
|
37210
|
+
category: "interactive",
|
|
37211
|
+
contentSource: { kind: "inline" },
|
|
37212
|
+
fragments: [{
|
|
37213
|
+
fragment: newsletterCopyFragment,
|
|
37214
|
+
fieldPriority: 0
|
|
37215
|
+
}, {
|
|
37216
|
+
fragment: newsletterFormFragment,
|
|
37217
|
+
fieldPriority: 1
|
|
37218
|
+
}],
|
|
37219
|
+
layout: stackedLayout,
|
|
37220
|
+
variants: {
|
|
37221
|
+
stacked: stackedLayout,
|
|
37222
|
+
inline: inlineLayout,
|
|
37223
|
+
"editorial-split": editorialSplitLayout
|
|
37224
|
+
},
|
|
37225
|
+
defaultVariant: "stacked",
|
|
37226
|
+
variantOptions: {
|
|
37227
|
+
stacked: {
|
|
37228
|
+
label: "Stacked",
|
|
37229
|
+
description: "Vertical layout with fields stacked"
|
|
36700
37230
|
},
|
|
36701
|
-
|
|
36702
|
-
|
|
36703
|
-
|
|
36704
|
-
animation: false,
|
|
36705
|
-
paletteHidden: false
|
|
37231
|
+
inline: {
|
|
37232
|
+
label: "Inline",
|
|
37233
|
+
description: "Horizontal layout (email + button side by side)"
|
|
36706
37234
|
},
|
|
36707
|
-
|
|
36708
|
-
"
|
|
36709
|
-
"
|
|
36710
|
-
|
|
36711
|
-
|
|
36712
|
-
|
|
36713
|
-
|
|
36714
|
-
|
|
36715
|
-
|
|
36716
|
-
|
|
36717
|
-
|
|
36718
|
-
|
|
37235
|
+
"editorial-split": {
|
|
37236
|
+
label: "Editorial split",
|
|
37237
|
+
description: "Copy and form in balanced side-by-side columns, stacked on mobile."
|
|
37238
|
+
}
|
|
37239
|
+
},
|
|
37240
|
+
styleTokens: {
|
|
37241
|
+
background: "surface",
|
|
37242
|
+
typography: "body",
|
|
37243
|
+
spacing: "md"
|
|
37244
|
+
},
|
|
37245
|
+
behaviours: {
|
|
37246
|
+
supportsThemeSwitching: true,
|
|
37247
|
+
inlineEditing: false,
|
|
37248
|
+
animation: false,
|
|
37249
|
+
paletteHidden: false
|
|
37250
|
+
},
|
|
37251
|
+
tags: [
|
|
37252
|
+
"newsletter",
|
|
37253
|
+
"signup",
|
|
37254
|
+
"email",
|
|
37255
|
+
"subscribe",
|
|
37256
|
+
"subscription",
|
|
37257
|
+
"mailchimp",
|
|
37258
|
+
"marketing",
|
|
37259
|
+
"lead-capture"
|
|
37260
|
+
],
|
|
37261
|
+
icon: "Mail"
|
|
37262
|
+
});
|
|
37263
|
+
[...(newsletterSignupManifest.fields ?? []).map((field) => field.id)];
|
|
37264
|
+
const newsletterSignupBlockDefinition = {
|
|
37265
|
+
manifest: newsletterSignupManifest,
|
|
36719
37266
|
runtime: newsletterFormBlockRuntime
|
|
36720
37267
|
};
|
|
36721
37268
|
//#endregion
|
|
@@ -38757,7 +39304,8 @@ const BOOKING_FORM_DATA_RESERVED_KEYS = /* @__PURE__ */ new Set([
|
|
|
38757
39304
|
"discountCode",
|
|
38758
39305
|
"selectedSlidingAmountInput",
|
|
38759
39306
|
"selectedCollectionOptionKind",
|
|
38760
|
-
"selectedAppointmentPackageId"
|
|
39307
|
+
"selectedAppointmentPackageId",
|
|
39308
|
+
"mailingListOptIn"
|
|
38761
39309
|
]);
|
|
38762
39310
|
function isBookingFormDataReservedKey(value) {
|
|
38763
39311
|
return BOOKING_FORM_DATA_RESERVED_KEYS.has(value);
|