@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/config.mjs
CHANGED
|
@@ -63,6 +63,64 @@ function defineEndpointDefinitions(definitions) {
|
|
|
63
63
|
return definitions;
|
|
64
64
|
}
|
|
65
65
|
//#endregion
|
|
66
|
+
//#region ../api/src/apiEndpointTypes.ts
|
|
67
|
+
function allowedDemoMutationPolicy() {
|
|
68
|
+
return {
|
|
69
|
+
classification: "allowed",
|
|
70
|
+
publicMessage: ""
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
74
|
+
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
75
|
+
return {
|
|
76
|
+
classification,
|
|
77
|
+
publicMessage
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
//#region ../api/src/demoMutationPolicies.ts
|
|
82
|
+
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
83
|
+
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
84
|
+
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
85
|
+
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region ../api/src/siteLifecycleEndpoints.ts
|
|
88
|
+
const SITE_LIFECYCLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
89
|
+
createSite: {
|
|
90
|
+
path: "/sites/manage",
|
|
91
|
+
method: "POST",
|
|
92
|
+
tags: ["site"],
|
|
93
|
+
auth: "user",
|
|
94
|
+
responseKind: "json",
|
|
95
|
+
errors: []
|
|
96
|
+
},
|
|
97
|
+
createSiteManual: {
|
|
98
|
+
path: "/sites/manual",
|
|
99
|
+
method: "POST",
|
|
100
|
+
tags: ["site"],
|
|
101
|
+
auth: "user",
|
|
102
|
+
responseKind: "json",
|
|
103
|
+
errors: []
|
|
104
|
+
},
|
|
105
|
+
updateSite: {
|
|
106
|
+
path: "/sites/manage",
|
|
107
|
+
method: "PUT",
|
|
108
|
+
tags: ["site"],
|
|
109
|
+
auth: "user",
|
|
110
|
+
responseKind: "json",
|
|
111
|
+
errors: []
|
|
112
|
+
},
|
|
113
|
+
deleteSite: {
|
|
114
|
+
path: "/sites/{siteId}",
|
|
115
|
+
method: "DELETE",
|
|
116
|
+
tags: ["site", "site-{siteId}"],
|
|
117
|
+
auth: "user",
|
|
118
|
+
responseKind: "json",
|
|
119
|
+
errors: [],
|
|
120
|
+
demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
//#endregion
|
|
66
124
|
//#region ../api/src/publicNewsletterEndpointDefinitions.ts
|
|
67
125
|
const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
68
126
|
subscribeNewsletter: {
|
|
@@ -123,27 +181,6 @@ const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
123
181
|
}
|
|
124
182
|
});
|
|
125
183
|
//#endregion
|
|
126
|
-
//#region ../api/src/apiEndpointTypes.ts
|
|
127
|
-
function allowedDemoMutationPolicy() {
|
|
128
|
-
return {
|
|
129
|
-
classification: "allowed",
|
|
130
|
-
publicMessage: ""
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
134
|
-
if (publicMessage.trim() === "") throw new Error(`Demo mutation policy ${classification} requires publicMessage.`);
|
|
135
|
-
return {
|
|
136
|
-
classification,
|
|
137
|
-
publicMessage
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
//#endregion
|
|
141
|
-
//#region ../api/src/demoMutationPolicies.ts
|
|
142
|
-
const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
|
|
143
|
-
const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
|
|
144
|
-
blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
|
|
145
|
-
const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
|
|
146
|
-
//#endregion
|
|
147
184
|
//#region ../api/src/cache-tags.ts
|
|
148
185
|
/**
|
|
149
186
|
* Tag templates for endpoint definitions (support `{param}` placeholders).
|
|
@@ -1170,6 +1207,20 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
1170
1207
|
responseKind: "json",
|
|
1171
1208
|
errors: ["auth:forbidden", "server:internal_error"]
|
|
1172
1209
|
},
|
|
1210
|
+
setMailingListBookingOptIn: {
|
|
1211
|
+
path: "/sites/{siteId}/mailing-list/setup/booking-opt-in",
|
|
1212
|
+
method: "PUT",
|
|
1213
|
+
tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
|
|
1214
|
+
auth: "user",
|
|
1215
|
+
responseKind: "json",
|
|
1216
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
1217
|
+
errors: [
|
|
1218
|
+
"auth:forbidden",
|
|
1219
|
+
"validation:invalid_input",
|
|
1220
|
+
"resource:conflict",
|
|
1221
|
+
"server:internal_error"
|
|
1222
|
+
]
|
|
1223
|
+
},
|
|
1173
1224
|
getMailingListAuthoringContext: {
|
|
1174
1225
|
path: "/sites/{siteId}/mailing-list/authoring-context",
|
|
1175
1226
|
method: "GET",
|
|
@@ -2327,17 +2378,35 @@ function parseMailingListRuntimeContext(value) {
|
|
|
2327
2378
|
if (!isRecord$8(value)) return invalidRuntimeContext();
|
|
2328
2379
|
if (value.tag === "not_configured") return ok({ tag: "not_configured" });
|
|
2329
2380
|
if (value.tag !== "configured") return invalidRuntimeContext();
|
|
2381
|
+
return parseConfiguredRuntimeContext(value);
|
|
2382
|
+
}
|
|
2383
|
+
function parseConfiguredRuntimeContext(value) {
|
|
2330
2384
|
const revision = parseMailingListSetupRevision(value.revision);
|
|
2331
2385
|
const form = parseMailingListGlobalForm(value.form);
|
|
2332
2386
|
const provider = parseRuntimeProvider(value.provider);
|
|
2333
|
-
|
|
2387
|
+
const bookingSignup = parseBookingSignupOffer(value.bookingSignup);
|
|
2388
|
+
if (revision === null || !form.ok || provider === null || bookingSignup === null) return invalidRuntimeContext();
|
|
2334
2389
|
return ok({
|
|
2335
2390
|
tag: "configured",
|
|
2336
2391
|
revision,
|
|
2392
|
+
bookingSignup,
|
|
2337
2393
|
form: form.value,
|
|
2338
2394
|
provider
|
|
2339
2395
|
});
|
|
2340
2396
|
}
|
|
2397
|
+
function parseBookingSignupOffer(value) {
|
|
2398
|
+
if (value === void 0) return {
|
|
2399
|
+
tag: "unavailable",
|
|
2400
|
+
reason: "disabled"
|
|
2401
|
+
};
|
|
2402
|
+
if (!isRecord$8(value)) return null;
|
|
2403
|
+
if (value.tag === "offered") return { tag: "offered" };
|
|
2404
|
+
if (value.tag === "unavailable" && (value.reason === "disabled" || value.reason === "fields" || value.reason === "destination")) return {
|
|
2405
|
+
tag: "unavailable",
|
|
2406
|
+
reason: value.reason
|
|
2407
|
+
};
|
|
2408
|
+
return null;
|
|
2409
|
+
}
|
|
2341
2410
|
function parseRuntimeProvider(value) {
|
|
2342
2411
|
if (!isRecord$8(value)) return null;
|
|
2343
2412
|
switch (value.provider) {
|
|
@@ -3827,6 +3896,54 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
3827
3896
|
}
|
|
3828
3897
|
});
|
|
3829
3898
|
//#endregion
|
|
3899
|
+
//#region ../api/src/bookingPeopleEndpointDefinitions.ts
|
|
3900
|
+
/**
|
|
3901
|
+
* People endpoints (#1356): the People list, its CSV export, and deleting a
|
|
3902
|
+
* person when nothing is attached to them.
|
|
3903
|
+
*/
|
|
3904
|
+
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
3905
|
+
listPeople: {
|
|
3906
|
+
path: "/sites/{siteId}/bookings/people",
|
|
3907
|
+
method: "GET",
|
|
3908
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3909
|
+
auth: "user",
|
|
3910
|
+
responseKind: "json",
|
|
3911
|
+
errors: ["server:internal_error"]
|
|
3912
|
+
},
|
|
3913
|
+
exportPeopleCsv: {
|
|
3914
|
+
path: "/sites/{siteId}/bookings/people/export.csv",
|
|
3915
|
+
method: "GET",
|
|
3916
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3917
|
+
auth: "user",
|
|
3918
|
+
errors: [],
|
|
3919
|
+
responseKind: "blob"
|
|
3920
|
+
},
|
|
3921
|
+
checkPersonDeletion: {
|
|
3922
|
+
path: "/sites/{siteId}/bookings/people/{personId}/deletion-check",
|
|
3923
|
+
method: "GET",
|
|
3924
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3925
|
+
auth: "user",
|
|
3926
|
+
responseKind: "json",
|
|
3927
|
+
errors: [
|
|
3928
|
+
"auth:forbidden",
|
|
3929
|
+
"resource:not_found",
|
|
3930
|
+
"server:internal_error"
|
|
3931
|
+
]
|
|
3932
|
+
},
|
|
3933
|
+
deletePerson: {
|
|
3934
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
3935
|
+
method: "DELETE",
|
|
3936
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
3937
|
+
auth: "user",
|
|
3938
|
+
responseKind: "json",
|
|
3939
|
+
errors: [
|
|
3940
|
+
"auth:forbidden",
|
|
3941
|
+
"resource:not_found",
|
|
3942
|
+
"server:internal_error"
|
|
3943
|
+
]
|
|
3944
|
+
}
|
|
3945
|
+
});
|
|
3946
|
+
//#endregion
|
|
3830
3947
|
//#region ../api/src/clientErrorReporting.ts
|
|
3831
3948
|
const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
|
|
3832
3949
|
path: "/client/error-report",
|
|
@@ -3862,6 +3979,7 @@ z.object({
|
|
|
3862
3979
|
sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
|
|
3863
3980
|
}).strict();
|
|
3864
3981
|
({
|
|
3982
|
+
...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
|
|
3865
3983
|
...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
|
|
3866
3984
|
...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3867
3985
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
@@ -3875,7 +3993,7 @@ z.object({
|
|
|
3875
3993
|
...NEWSLETTER_ENDPOINT_DEFINITIONS,
|
|
3876
3994
|
...APPOINTMENT_ENDPOINT_DEFINITIONS,
|
|
3877
3995
|
...EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS
|
|
3878
|
-
}, 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 };
|
|
3996
|
+
}, 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 };
|
|
3879
3997
|
z.object({ refreshToken: z.string().min(1).max(4096) }).strict();
|
|
3880
3998
|
z.object({
|
|
3881
3999
|
accessToken: z.string().min(1).max(4096),
|
|
@@ -6376,13 +6494,16 @@ const SURFACE_FOREGROUND_CSS_VARS = {
|
|
|
6376
6494
|
text: "--rb-surface-text-color",
|
|
6377
6495
|
heading: "--rb-surface-heading-color",
|
|
6378
6496
|
link: "--rb-surface-link-color",
|
|
6497
|
+
linkHover: "--rb-surface-link-hover-color",
|
|
6379
6498
|
supporting: "--rb-surface-supporting-color"
|
|
6380
6499
|
};
|
|
6381
6500
|
const DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
|
|
6501
|
+
const DEFAULT_SURFACE_LINK_COLOR = "rgb(var(--tb-primary, var(--tb-text, 17 24 39)))";
|
|
6382
6502
|
const DEFAULT_ROLE_FALLBACKS = {
|
|
6383
6503
|
text: DEFAULT_SURFACE_TEXT_COLOR,
|
|
6384
6504
|
heading: DEFAULT_SURFACE_TEXT_COLOR,
|
|
6385
|
-
link:
|
|
6505
|
+
link: DEFAULT_SURFACE_LINK_COLOR,
|
|
6506
|
+
linkHover: DEFAULT_SURFACE_LINK_COLOR,
|
|
6386
6507
|
supporting: "rgb(var(--tb-mutedText, 100 116 139))"
|
|
6387
6508
|
};
|
|
6388
6509
|
function requireSurfaceColorValue(role, value) {
|
|
@@ -6392,10 +6513,12 @@ function requireSurfaceColorValue(role, value) {
|
|
|
6392
6513
|
}
|
|
6393
6514
|
function completeSurfaceForegrounds(input) {
|
|
6394
6515
|
const text = requireSurfaceColorValue("text", input.text);
|
|
6516
|
+
const link = input.link === void 0 ? text : requireSurfaceColorValue("link", input.link);
|
|
6395
6517
|
return {
|
|
6396
6518
|
text,
|
|
6397
6519
|
heading: input.heading === void 0 ? text : requireSurfaceColorValue("heading", input.heading),
|
|
6398
|
-
link
|
|
6520
|
+
link,
|
|
6521
|
+
linkHover: input.linkHover === void 0 ? link : requireSurfaceColorValue("linkHover", input.linkHover),
|
|
6399
6522
|
supporting: input.supporting === void 0 ? text : requireSurfaceColorValue("supporting", input.supporting)
|
|
6400
6523
|
};
|
|
6401
6524
|
}
|
|
@@ -6403,6 +6526,7 @@ function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FAL
|
|
|
6403
6526
|
const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
|
|
6404
6527
|
const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
|
|
6405
6528
|
if (role === "text") return `var(${roleVariable}, ${fallback})`;
|
|
6529
|
+
if (role === "linkHover") return `var(${roleVariable}, ${surfaceForegroundValue("link", fallback)})`;
|
|
6406
6530
|
return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
|
|
6407
6531
|
}
|
|
6408
6532
|
function surfaceForegroundValueWithOpacity(role, opacityPercent) {
|
|
@@ -6416,9 +6540,25 @@ function surfaceForegroundStyle(input) {
|
|
|
6416
6540
|
[SURFACE_FOREGROUND_CSS_VARS.text]: foregrounds.text,
|
|
6417
6541
|
[SURFACE_FOREGROUND_CSS_VARS.heading]: foregrounds.heading,
|
|
6418
6542
|
[SURFACE_FOREGROUND_CSS_VARS.link]: foregrounds.link,
|
|
6419
|
-
[SURFACE_FOREGROUND_CSS_VARS.
|
|
6543
|
+
[SURFACE_FOREGROUND_CSS_VARS.linkHover]: foregrounds.linkHover,
|
|
6544
|
+
[SURFACE_FOREGROUND_CSS_VARS.supporting]: foregrounds.supporting,
|
|
6545
|
+
"--rb-surface-link-hover-decoration": hoverDecoration(input)
|
|
6420
6546
|
};
|
|
6421
6547
|
}
|
|
6548
|
+
function surfaceForegroundInputFromResolved(foreground, color) {
|
|
6549
|
+
const { roles } = foreground;
|
|
6550
|
+
return {
|
|
6551
|
+
text: color(roles.text),
|
|
6552
|
+
heading: color(roles.heading),
|
|
6553
|
+
link: color(roles.link),
|
|
6554
|
+
linkHover: color(roles.linkHover),
|
|
6555
|
+
supporting: color(roles.supporting),
|
|
6556
|
+
hoverDecoration: foreground.hoverDecoration
|
|
6557
|
+
};
|
|
6558
|
+
}
|
|
6559
|
+
function hoverDecoration(input) {
|
|
6560
|
+
return input.hoverDecoration ?? "underline";
|
|
6561
|
+
}
|
|
6422
6562
|
//#endregion
|
|
6423
6563
|
//#region ../theme-core/src/buttons/constants.ts
|
|
6424
6564
|
/**
|
|
@@ -7173,6 +7313,64 @@ function parseAlpha(source) {
|
|
|
7173
7313
|
function isRgbChannel(value) {
|
|
7174
7314
|
return Number.isFinite(value) && value >= 0 && value <= 255;
|
|
7175
7315
|
}
|
|
7316
|
+
/**
|
|
7317
|
+
* Derive the hover foreground that belongs with a resolved resting foreground.
|
|
7318
|
+
*
|
|
7319
|
+
* A resting foreground is chosen to be legible against a known surface. A hover
|
|
7320
|
+
* state derived from it stays within a bounded distance of that colour, so it
|
|
7321
|
+
* inherits most of the resting colour's contrast margin instead of asserting
|
|
7322
|
+
* an unrelated brand colour that no one checked against the surface.
|
|
7323
|
+
*
|
|
7324
|
+
* That bounded-distance property is what lets this be used on a transparent
|
|
7325
|
+
* overlay header, where the backdrop is only partly knowable: the scrolled
|
|
7326
|
+
* state composites a 60% glass tint over arbitrary page content, so no
|
|
7327
|
+
* compile-time contrast proof is available there. Staying near a colour that
|
|
7328
|
+
* is already trusted in both states is a weaker claim than a contrast proof,
|
|
7329
|
+
* and it is one this function can actually keep.
|
|
7330
|
+
*
|
|
7331
|
+
* Returns `null` when the resting token is not a plain palette token — an
|
|
7332
|
+
* already-faded or raw value has no well-defined softening, and the caller
|
|
7333
|
+
* should leave hover alone rather than guess.
|
|
7334
|
+
*/
|
|
7335
|
+
function deriveForegroundHoverToken(restingToken) {
|
|
7336
|
+
const parts = parseColorTokenParts(restingToken);
|
|
7337
|
+
if (parts.kind !== "token") return null;
|
|
7338
|
+
if (parts.opacityPercent !== null) return null;
|
|
7339
|
+
return parseThemeColorToken(`${parts.token}/85`);
|
|
7340
|
+
}
|
|
7341
|
+
/**
|
|
7342
|
+
* Prefer an authored hover that survives every measured backdrop, then a
|
|
7343
|
+
* checked softening of the resting colour. A null backdrop set represents a
|
|
7344
|
+
* trusted treatment: only an explicit authored hover may change the colour.
|
|
7345
|
+
* When neither option works, retain the resting colour and underline it.
|
|
7346
|
+
*/
|
|
7347
|
+
function planForegroundHover(input) {
|
|
7348
|
+
const { restingToken, candidate, palette, backdrops } = input;
|
|
7349
|
+
if (candidate && candidate !== restingToken) {
|
|
7350
|
+
if (backdrops === null || survivesEveryBackdrop(candidate, palette, backdrops)) return {
|
|
7351
|
+
kind: "candidate",
|
|
7352
|
+
token: candidate,
|
|
7353
|
+
decoration: "initial"
|
|
7354
|
+
};
|
|
7355
|
+
}
|
|
7356
|
+
const softened = deriveForegroundHoverToken(restingToken);
|
|
7357
|
+
if (softened && backdrops && survivesEveryBackdrop(softened, palette, backdrops)) return {
|
|
7358
|
+
kind: "softened",
|
|
7359
|
+
token: softened,
|
|
7360
|
+
decoration: "initial"
|
|
7361
|
+
};
|
|
7362
|
+
return {
|
|
7363
|
+
kind: "resting",
|
|
7364
|
+
token: restingToken,
|
|
7365
|
+
decoration: "underline"
|
|
7366
|
+
};
|
|
7367
|
+
}
|
|
7368
|
+
function survivesEveryBackdrop(token, palette, backdrops) {
|
|
7369
|
+
return backdrops.length > 0 && backdrops.every((backdrop) => {
|
|
7370
|
+
const foreground = resolveOpaqueSurfaceHex(token, palette, backdrop);
|
|
7371
|
+
return foreground !== null && contrastRatio(foreground, backdrop) >= 4.5;
|
|
7372
|
+
});
|
|
7373
|
+
}
|
|
7176
7374
|
//#endregion
|
|
7177
7375
|
//#region ../theme-core/src/surfaces/resolveSurfaceForeground.ts
|
|
7178
7376
|
const FALLBACK_TEXT_TOKENS = [
|
|
@@ -7219,12 +7417,16 @@ function resolveSurfaceForeground(background, palette, candidates = {}, options
|
|
|
7219
7417
|
}
|
|
7220
7418
|
function foregroundCandidates(background, overrides) {
|
|
7221
7419
|
return {
|
|
7222
|
-
text: overrides.text
|
|
7223
|
-
heading: overrides.heading
|
|
7224
|
-
link: overrides.link
|
|
7225
|
-
|
|
7420
|
+
text: candidateOrBackground(overrides.text, background?.textColor),
|
|
7421
|
+
heading: candidateOrBackground(overrides.heading, background?.headingColor),
|
|
7422
|
+
link: candidateOrBackground(overrides.link, background?.linkColor),
|
|
7423
|
+
linkHover: candidateOrBackground(overrides.linkHover),
|
|
7424
|
+
supporting: candidateOrBackground(overrides.supporting, background?.supportingColor)
|
|
7226
7425
|
};
|
|
7227
7426
|
}
|
|
7427
|
+
function candidateOrBackground(candidate, backgroundValue) {
|
|
7428
|
+
return candidate ?? backgroundValue ?? null;
|
|
7429
|
+
}
|
|
7228
7430
|
function resolveDeterministicForeground(backgroundReference, candidates, palette, compositeBase) {
|
|
7229
7431
|
const backgroundHex = resolveOpaqueSurfaceHex(backgroundReference, palette, compositeBase);
|
|
7230
7432
|
if (!backgroundHex) return resolveTrustedTreatmentForeground(candidates, palette);
|
|
@@ -7236,29 +7438,51 @@ function resolveDeterministicForeground(backgroundReference, candidates, palette
|
|
|
7236
7438
|
...FALLBACK_TEXT_TOKENS
|
|
7237
7439
|
], backgroundHex, palette, derivedOnToken ? [derivedOnToken] : []);
|
|
7238
7440
|
if (!text) return { kind: "unknown" };
|
|
7239
|
-
return {
|
|
7240
|
-
|
|
7241
|
-
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
};
|
|
7441
|
+
return knownForeground({
|
|
7442
|
+
text,
|
|
7443
|
+
heading: safeTokenOr(candidates.heading, text, backgroundHex, palette),
|
|
7444
|
+
link: safeTokenOr(candidates.link, text, backgroundHex, palette),
|
|
7445
|
+
supporting: safeTokenOr(candidates.supporting, text, backgroundHex, palette)
|
|
7446
|
+
}, {
|
|
7447
|
+
kind: "measured",
|
|
7448
|
+
backdropHex: backgroundHex
|
|
7449
|
+
}, candidates.linkHover, palette);
|
|
7248
7450
|
}
|
|
7249
7451
|
function resolveTrustedTreatmentForeground(candidates, palette) {
|
|
7250
7452
|
const text = canonicalToken(candidates.text, palette);
|
|
7251
7453
|
if (!text) return { kind: "unknown" };
|
|
7454
|
+
return knownForeground({
|
|
7455
|
+
text,
|
|
7456
|
+
heading: canonicalToken(candidates.heading, palette) ?? text,
|
|
7457
|
+
link: canonicalToken(candidates.link, palette) ?? text,
|
|
7458
|
+
supporting: canonicalToken(candidates.supporting, palette) ?? text
|
|
7459
|
+
}, { kind: "trusted-treatment" }, candidates.linkHover, palette);
|
|
7460
|
+
}
|
|
7461
|
+
function knownForeground(roles, provenance, hoverCandidate, palette) {
|
|
7462
|
+
const hover = planForegroundHover({
|
|
7463
|
+
restingToken: roles.link,
|
|
7464
|
+
candidate: canonicalHoverToken(hoverCandidate, palette),
|
|
7465
|
+
palette,
|
|
7466
|
+
backdrops: provenance.kind === "measured" ? [provenance.backdropHex] : null
|
|
7467
|
+
});
|
|
7252
7468
|
return {
|
|
7253
7469
|
kind: "known",
|
|
7470
|
+
provenance,
|
|
7254
7471
|
roles: {
|
|
7255
|
-
|
|
7256
|
-
|
|
7257
|
-
|
|
7258
|
-
|
|
7259
|
-
}
|
|
7472
|
+
...roles,
|
|
7473
|
+
linkHover: hover.token
|
|
7474
|
+
},
|
|
7475
|
+
hoverDecoration: hover.decoration
|
|
7260
7476
|
};
|
|
7261
7477
|
}
|
|
7478
|
+
function canonicalHoverToken(reference, palette) {
|
|
7479
|
+
const token = parseThemeColorToken(reference);
|
|
7480
|
+
if (token) {
|
|
7481
|
+
const parts = parseColorTokenParts(token);
|
|
7482
|
+
if (parts.kind === "token" && resolveConcreteColorHex(parts.token, palette)) return token;
|
|
7483
|
+
}
|
|
7484
|
+
return canonicalToken(reference, palette);
|
|
7485
|
+
}
|
|
7262
7486
|
function safeTokenOr(candidate, fallback, backgroundHex, palette) {
|
|
7263
7487
|
return firstSafeToken([candidate], backgroundHex, palette) ?? fallback;
|
|
7264
7488
|
}
|
|
@@ -10198,6 +10422,43 @@ const effectCompositionSchema = z.object({
|
|
|
10198
10422
|
/** Effects applied on focus */
|
|
10199
10423
|
focus: z.array(effectApplicationSchema).optional()
|
|
10200
10424
|
});
|
|
10425
|
+
const policiesById = {
|
|
10426
|
+
"darken-background": "other",
|
|
10427
|
+
"lighten-background": "other",
|
|
10428
|
+
"fade-background": "other",
|
|
10429
|
+
"opacity-reduce": "other",
|
|
10430
|
+
"animated-gradient": "other",
|
|
10431
|
+
"background-on-hover": "paired-hover",
|
|
10432
|
+
"background-on-hover-alpha": "paired-hover",
|
|
10433
|
+
"border-glow": "other",
|
|
10434
|
+
"drop-shadow": "other",
|
|
10435
|
+
"inner-shadow": "other",
|
|
10436
|
+
"neumorphic-shadow": "other",
|
|
10437
|
+
"outer-glow": "other",
|
|
10438
|
+
"retro-3d-shadow": "other",
|
|
10439
|
+
"scale-up": "other",
|
|
10440
|
+
"scale-down": "other",
|
|
10441
|
+
lift: "other",
|
|
10442
|
+
"press-down": "other",
|
|
10443
|
+
pop: "other",
|
|
10444
|
+
"aurora-glow": "other",
|
|
10445
|
+
"cosmic-stardust": "other",
|
|
10446
|
+
"gradient-border-fill": "other",
|
|
10447
|
+
"animated-gradient-border-fill": "other",
|
|
10448
|
+
"border-bottom-grow": "other",
|
|
10449
|
+
"gradient-text": "other",
|
|
10450
|
+
"text-color-change": "text-colour",
|
|
10451
|
+
"border-color-change": "other",
|
|
10452
|
+
"sketchy-border": "other",
|
|
10453
|
+
"pulse-animation": "other",
|
|
10454
|
+
"nav-underline": "underline",
|
|
10455
|
+
"nav-frosted-base": "other",
|
|
10456
|
+
"nav-frosted-hover": "other",
|
|
10457
|
+
"nav-frosted-active": "other"
|
|
10458
|
+
};
|
|
10459
|
+
function navEffectPolicy(effectId) {
|
|
10460
|
+
return policiesById[effectId] ?? null;
|
|
10461
|
+
}
|
|
10201
10462
|
//#endregion
|
|
10202
10463
|
//#region ../theme-core/src/navigation/types.ts
|
|
10203
10464
|
/**
|
|
@@ -10286,6 +10547,16 @@ const navLinkStyleSchema = z.object({
|
|
|
10286
10547
|
/** Composable effects */
|
|
10287
10548
|
effects: effectCompositionSchema.optional()
|
|
10288
10549
|
});
|
|
10550
|
+
function navLinkHoverColorCandidate(style) {
|
|
10551
|
+
const effect = style?.effects?.hover?.find((item) => navEffectPolicy(item.effectId) === "text-colour");
|
|
10552
|
+
return parseThemeColorToken(effect?.options?.hoverColorToken ?? style?.hoverColorToken);
|
|
10553
|
+
}
|
|
10554
|
+
function navLinkOwnsHoverForeground(style) {
|
|
10555
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "paired-hover") ?? false;
|
|
10556
|
+
}
|
|
10557
|
+
function navLinkOwnsUnderline(style) {
|
|
10558
|
+
return style?.effects?.hover?.some((effect) => navEffectPolicy(effect.effectId) === "underline") ?? false;
|
|
10559
|
+
}
|
|
10289
10560
|
//#endregion
|
|
10290
10561
|
//#region ../theme-core/src/customCss/validation.ts
|
|
10291
10562
|
/**
|
|
@@ -16474,6 +16745,14 @@ const blockDesignFallback = {
|
|
|
16474
16745
|
};
|
|
16475
16746
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
16476
16747
|
//#endregion
|
|
16748
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
16749
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
16750
|
+
function headerRootPaint(header) {
|
|
16751
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
16752
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
16753
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
16754
|
+
}
|
|
16755
|
+
//#endregion
|
|
16477
16756
|
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
16478
16757
|
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
16479
16758
|
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
@@ -16653,6 +16932,259 @@ z.object(headerPreferencesShape).omit({
|
|
|
16653
16932
|
structure: true
|
|
16654
16933
|
}).strict();
|
|
16655
16934
|
//#endregion
|
|
16935
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
16936
|
+
/**
|
|
16937
|
+
* Built-in nav link style presets
|
|
16938
|
+
*
|
|
16939
|
+
* Each preset uses composable effects to achieve its look.
|
|
16940
|
+
*/
|
|
16941
|
+
const NAV_LINK_PRESETS = {
|
|
16942
|
+
/**
|
|
16943
|
+
* Minimal - subtle color change on hover
|
|
16944
|
+
*/
|
|
16945
|
+
minimal: {
|
|
16946
|
+
name: "Minimal",
|
|
16947
|
+
typography: "body",
|
|
16948
|
+
fontWeight: "medium",
|
|
16949
|
+
textTransform: "none",
|
|
16950
|
+
italic: false,
|
|
16951
|
+
colorToken: "text",
|
|
16952
|
+
hoverColorToken: "primary",
|
|
16953
|
+
padding: "none",
|
|
16954
|
+
borderRadius: "none",
|
|
16955
|
+
effects: { hover: [{
|
|
16956
|
+
effectId: "text-color-change",
|
|
16957
|
+
options: { hoverColorToken: "primary" }
|
|
16958
|
+
}] }
|
|
16959
|
+
},
|
|
16960
|
+
/**
|
|
16961
|
+
* Underline - static underline appears on hover
|
|
16962
|
+
*/
|
|
16963
|
+
underline: {
|
|
16964
|
+
name: "Underline",
|
|
16965
|
+
typography: "body",
|
|
16966
|
+
fontWeight: "medium",
|
|
16967
|
+
textTransform: "none",
|
|
16968
|
+
italic: false,
|
|
16969
|
+
colorToken: "text",
|
|
16970
|
+
padding: "none",
|
|
16971
|
+
borderRadius: "none",
|
|
16972
|
+
effects: { hover: [{
|
|
16973
|
+
effectId: "nav-underline",
|
|
16974
|
+
options: { style: "static" }
|
|
16975
|
+
}] }
|
|
16976
|
+
},
|
|
16977
|
+
/**
|
|
16978
|
+
* Underline Grow - animated underline grows from center on hover
|
|
16979
|
+
*/
|
|
16980
|
+
"underline-grow": {
|
|
16981
|
+
name: "Underline Grow",
|
|
16982
|
+
typography: "body",
|
|
16983
|
+
fontWeight: "medium",
|
|
16984
|
+
textTransform: "none",
|
|
16985
|
+
italic: false,
|
|
16986
|
+
colorToken: "text",
|
|
16987
|
+
padding: "none",
|
|
16988
|
+
borderRadius: "none",
|
|
16989
|
+
effects: { hover: [{
|
|
16990
|
+
effectId: "nav-underline",
|
|
16991
|
+
options: { style: "grow" }
|
|
16992
|
+
}] }
|
|
16993
|
+
},
|
|
16994
|
+
/**
|
|
16995
|
+
* Capsule - pill-shaped background on hover
|
|
16996
|
+
*/
|
|
16997
|
+
capsule: {
|
|
16998
|
+
name: "Capsule",
|
|
16999
|
+
typography: "body",
|
|
17000
|
+
fontWeight: "medium",
|
|
17001
|
+
textTransform: "none",
|
|
17002
|
+
italic: false,
|
|
17003
|
+
colorToken: "text",
|
|
17004
|
+
padding: "compact",
|
|
17005
|
+
borderRadius: "full",
|
|
17006
|
+
effects: {
|
|
17007
|
+
hover: [{
|
|
17008
|
+
effectId: "background-on-hover-alpha",
|
|
17009
|
+
options: {
|
|
17010
|
+
colorToken: "primary",
|
|
17011
|
+
opacity: 10
|
|
17012
|
+
}
|
|
17013
|
+
}],
|
|
17014
|
+
active: [{
|
|
17015
|
+
effectId: "background-on-hover-alpha",
|
|
17016
|
+
options: {
|
|
17017
|
+
colorToken: "primary",
|
|
17018
|
+
opacity: 15
|
|
17019
|
+
}
|
|
17020
|
+
}]
|
|
17021
|
+
}
|
|
17022
|
+
},
|
|
17023
|
+
/**
|
|
17024
|
+
* Solid - solid background color on hover
|
|
17025
|
+
*/
|
|
17026
|
+
solid: {
|
|
17027
|
+
name: "Solid",
|
|
17028
|
+
typography: "body",
|
|
17029
|
+
fontWeight: "medium",
|
|
17030
|
+
textTransform: "none",
|
|
17031
|
+
italic: false,
|
|
17032
|
+
colorToken: "text",
|
|
17033
|
+
padding: "compact",
|
|
17034
|
+
borderRadius: "none",
|
|
17035
|
+
effects: {
|
|
17036
|
+
hover: [{
|
|
17037
|
+
effectId: "background-on-hover",
|
|
17038
|
+
options: {
|
|
17039
|
+
colorToken: "primary",
|
|
17040
|
+
textColorToken: "primaryForeground"
|
|
17041
|
+
}
|
|
17042
|
+
}],
|
|
17043
|
+
active: [{
|
|
17044
|
+
effectId: "background-on-hover",
|
|
17045
|
+
options: {
|
|
17046
|
+
colorToken: "primary",
|
|
17047
|
+
textColorToken: "primaryForeground"
|
|
17048
|
+
}
|
|
17049
|
+
}]
|
|
17050
|
+
}
|
|
17051
|
+
},
|
|
17052
|
+
/**
|
|
17053
|
+
* Scale - gentle scale-up on hover
|
|
17054
|
+
*/
|
|
17055
|
+
scale: {
|
|
17056
|
+
name: "Scale",
|
|
17057
|
+
typography: "body",
|
|
17058
|
+
fontWeight: "medium",
|
|
17059
|
+
textTransform: "none",
|
|
17060
|
+
italic: false,
|
|
17061
|
+
colorToken: "text",
|
|
17062
|
+
padding: "none",
|
|
17063
|
+
borderRadius: "none",
|
|
17064
|
+
effects: { hover: [{
|
|
17065
|
+
effectId: "scale-up",
|
|
17066
|
+
options: { scale: 1.05 }
|
|
17067
|
+
}] }
|
|
17068
|
+
},
|
|
17069
|
+
/**
|
|
17070
|
+
* Frosted - semi-transparent glass-like background
|
|
17071
|
+
*/
|
|
17072
|
+
frosted: {
|
|
17073
|
+
name: "Frosted",
|
|
17074
|
+
typography: "body",
|
|
17075
|
+
fontWeight: "medium",
|
|
17076
|
+
textTransform: "none",
|
|
17077
|
+
italic: false,
|
|
17078
|
+
colorToken: "text",
|
|
17079
|
+
padding: "compact",
|
|
17080
|
+
borderRadius: "md",
|
|
17081
|
+
effects: {
|
|
17082
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
17083
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
17084
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
17085
|
+
}
|
|
17086
|
+
}
|
|
17087
|
+
};
|
|
17088
|
+
/**
|
|
17089
|
+
* Get a nav link style preset by ID
|
|
17090
|
+
*/
|
|
17091
|
+
function getNavLinkPreset(presetId) {
|
|
17092
|
+
return NAV_LINK_PRESETS[presetId];
|
|
17093
|
+
}
|
|
17094
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
17095
|
+
//#endregion
|
|
17096
|
+
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
17097
|
+
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
17098
|
+
const navStyle = header.navStyle ?? "minimal";
|
|
17099
|
+
const basePreset = getNavLinkPreset(navStyle);
|
|
17100
|
+
if (!basePreset) return null;
|
|
17101
|
+
const style = {
|
|
17102
|
+
...basePreset,
|
|
17103
|
+
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
17104
|
+
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
17105
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
17106
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
17107
|
+
};
|
|
17108
|
+
if (header.navWeight === "bold" && navStyle === "solid") style.textTransform = "uppercase";
|
|
17109
|
+
applyLegacyGlassTreatment(style, header, navStyle);
|
|
17110
|
+
return style;
|
|
17111
|
+
}
|
|
17112
|
+
function applyLegacyGlassTreatment(style, header, navStyle) {
|
|
17113
|
+
if (header.navContainer?.type !== "glass" || navStyle !== "minimal") return;
|
|
17114
|
+
style.borderRadius = "full";
|
|
17115
|
+
style.effects = {
|
|
17116
|
+
...style.effects,
|
|
17117
|
+
hover: glassStateEffects(10),
|
|
17118
|
+
active: glassStateEffects(18)
|
|
17119
|
+
};
|
|
17120
|
+
}
|
|
17121
|
+
function glassStateEffects(opacity) {
|
|
17122
|
+
return [{
|
|
17123
|
+
effectId: "background-on-hover-alpha",
|
|
17124
|
+
options: {
|
|
17125
|
+
colorToken: "neutral-50",
|
|
17126
|
+
opacity
|
|
17127
|
+
}
|
|
17128
|
+
}, {
|
|
17129
|
+
effectId: "text-color-change",
|
|
17130
|
+
options: { hoverColorToken: "neutral-50" }
|
|
17131
|
+
}];
|
|
17132
|
+
}
|
|
17133
|
+
//#endregion
|
|
17134
|
+
//#region ../theme-core/src/header/openingForegroundProjection.ts
|
|
17135
|
+
function readOpeningForegroundProjection(header) {
|
|
17136
|
+
return header?.__runtimeOpeningForeground ?? null;
|
|
17137
|
+
}
|
|
17138
|
+
//#endregion
|
|
17139
|
+
//#region ../theme-core/src/header/effectiveNavLinkStyle.ts
|
|
17140
|
+
function effectiveHeaderNavLinkStyle(header, contrastTreatment = null, navTextSize = null) {
|
|
17141
|
+
if (!header) return null;
|
|
17142
|
+
if (!header.navLinkStyle) return buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize);
|
|
17143
|
+
return {
|
|
17144
|
+
...header.navLinkStyle,
|
|
17145
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
17146
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
17147
|
+
};
|
|
17148
|
+
}
|
|
17149
|
+
function headerForegroundCandidates(header) {
|
|
17150
|
+
if (!header) return {};
|
|
17151
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
17152
|
+
return {
|
|
17153
|
+
text: header.textColor ?? header.background?.textColor,
|
|
17154
|
+
link: style?.colorToken ?? header.navColor ?? header.textColor,
|
|
17155
|
+
linkHover: navLinkHoverColorCandidate(style)
|
|
17156
|
+
};
|
|
17157
|
+
}
|
|
17158
|
+
function headerLeafTextColor(header) {
|
|
17159
|
+
if (!header) return "text";
|
|
17160
|
+
return header.textColor ?? header.navColor ?? header.background?.textColor ?? header.navLinkStyle?.colorToken ?? "text";
|
|
17161
|
+
}
|
|
17162
|
+
/** Transparent chrome must reset the whole contract on its own root. */
|
|
17163
|
+
function transparentHeaderForegroundInput(header, palette) {
|
|
17164
|
+
const projection = readOpeningForegroundProjection(header);
|
|
17165
|
+
if (projection?.kind === "known") return surfaceForegroundInputFromResolved(projection, rgbColorValue);
|
|
17166
|
+
return authoredTransparentHeaderForegroundInput(header, palette);
|
|
17167
|
+
}
|
|
17168
|
+
function authoredTransparentHeaderForegroundInput(header, palette) {
|
|
17169
|
+
const text = headerLeafTextColor(header);
|
|
17170
|
+
const style = effectiveHeaderNavLinkStyle(header);
|
|
17171
|
+
const link = style?.colorToken ?? text;
|
|
17172
|
+
const restingToken = parseThemeColorToken(link) ?? parseThemeColorToken("text");
|
|
17173
|
+
if (!restingToken) throw new Error("Built-in text colour token is invalid");
|
|
17174
|
+
const hover = planForegroundHover({
|
|
17175
|
+
restingToken,
|
|
17176
|
+
candidate: navLinkOwnsHoverForeground(style) ? null : navLinkHoverColorCandidate(style),
|
|
17177
|
+
palette,
|
|
17178
|
+
backdrops: null
|
|
17179
|
+
});
|
|
17180
|
+
return {
|
|
17181
|
+
text: rgbColorValue(text),
|
|
17182
|
+
link: rgbColorValue(link),
|
|
17183
|
+
linkHover: rgbColorValue(hover.token),
|
|
17184
|
+
hoverDecoration: navLinkOwnsUnderline(style) ? "initial" : hover.decoration
|
|
17185
|
+
};
|
|
17186
|
+
}
|
|
17187
|
+
//#endregion
|
|
16656
17188
|
//#region ../theme-core/src/site-styles/pageDesignAuthority.ts
|
|
16657
17189
|
const nonEmptyStringSchema = z.string().min(1);
|
|
16658
17190
|
const blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
|
|
@@ -16805,6 +17337,28 @@ z.object({
|
|
|
16805
17337
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
16806
17338
|
});
|
|
16807
17339
|
//#endregion
|
|
17340
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
17341
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
17342
|
+
if (!footer) return null;
|
|
17343
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
17344
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
17345
|
+
if (!basePreset) return null;
|
|
17346
|
+
return {
|
|
17347
|
+
...basePreset,
|
|
17348
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
17349
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
17350
|
+
};
|
|
17351
|
+
}
|
|
17352
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
17353
|
+
if (!footer) return {};
|
|
17354
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
17355
|
+
return {
|
|
17356
|
+
text: footer.background?.textColor,
|
|
17357
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
17358
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
17359
|
+
};
|
|
17360
|
+
}
|
|
17361
|
+
//#endregion
|
|
16808
17362
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
16809
17363
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
16810
17364
|
//#endregion
|
|
@@ -19778,33 +20332,28 @@ function resolveBackgroundColorValue(value, context) {
|
|
|
19778
20332
|
//#endregion
|
|
19779
20333
|
//#region ../blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.ts
|
|
19780
20334
|
const contextualButtonStylesCache = /* @__PURE__ */ new WeakMap();
|
|
19781
|
-
function resolveHeaderLeafTextColor(header) {
|
|
19782
|
-
return header?.textColor ?? header?.navColor ?? header?.background?.textColor ?? header?.navLinkStyle?.colorToken ?? "text";
|
|
19783
|
-
}
|
|
19784
20335
|
function resolveHeaderRootForeground(header, palette, isTransparent) {
|
|
19785
|
-
if (isTransparent) return { kind: "unknown" };
|
|
20336
|
+
if (isTransparent) return readOpeningForegroundProjection(header) ?? { kind: "unknown" };
|
|
19786
20337
|
const background = header?.background;
|
|
19787
20338
|
return resolveSurfaceForeground(background ?? {
|
|
19788
20339
|
type: "color",
|
|
19789
20340
|
color: "surface"
|
|
19790
|
-
}, palette,
|
|
19791
|
-
|
|
19792
|
-
|
|
19793
|
-
|
|
20341
|
+
}, palette, headerForegroundCandidates(header));
|
|
20342
|
+
}
|
|
20343
|
+
function resolveFooterRootForeground(footer, palette, proseHoverCandidate) {
|
|
20344
|
+
return resolveSurfaceForeground(footer?.background ?? {
|
|
20345
|
+
type: "color",
|
|
20346
|
+
color: "surface"
|
|
20347
|
+
}, palette, footerForegroundCandidates(footer, proseHoverCandidate), { compositeBase: "background" });
|
|
19794
20348
|
}
|
|
19795
20349
|
function resolveSurfaceForegroundStyles(value, context, options) {
|
|
19796
20350
|
const input = parseBackgroundContent(value);
|
|
19797
|
-
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, {}, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
20351
|
+
const foreground = input ? resolveSurfaceForeground(input, context.theme.palette, { linkHover: context.proseHoverCandidate }, { compositeBase: options?.fallbackToken }) : { kind: "unknown" };
|
|
19798
20352
|
const buttonStyles = resolveContextualButtonStyles(input, foreground, context, options);
|
|
19799
20353
|
if (foreground.kind === "unknown") return buttonStyles;
|
|
19800
20354
|
return {
|
|
19801
20355
|
...buttonStyles,
|
|
19802
|
-
...surfaceForegroundStyle(
|
|
19803
|
-
text: resolveBackgroundColorValue(foreground.roles.text, context),
|
|
19804
|
-
heading: resolveBackgroundColorValue(foreground.roles.heading, context),
|
|
19805
|
-
link: resolveBackgroundColorValue(foreground.roles.link, context),
|
|
19806
|
-
supporting: resolveBackgroundColorValue(foreground.roles.supporting, context)
|
|
19807
|
-
})
|
|
20356
|
+
...surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, (token) => resolveBackgroundColorValue(token, context)))
|
|
19808
20357
|
};
|
|
19809
20358
|
}
|
|
19810
20359
|
function resolveContextualButtonStyles(background, foreground, context, options) {
|
|
@@ -25620,10 +26169,7 @@ function resolveBackgroundVisualStyles(backgroundColor, defaultToken = "surface"
|
|
|
25620
26169
|
};
|
|
25621
26170
|
}
|
|
25622
26171
|
function resolveHeaderVisualStyles(header) {
|
|
25623
|
-
|
|
25624
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
25625
|
-
const hasOverlayVariant = header?.variant === "floating";
|
|
25626
|
-
if (hasContainedNav || hasOverlayVariant) return {
|
|
26172
|
+
if (headerRootPaint(header) !== "own-surface") return {
|
|
25627
26173
|
backgroundToken: "transparent",
|
|
25628
26174
|
isTransparent: true
|
|
25629
26175
|
};
|
|
@@ -25634,23 +26180,7 @@ function resolveHeaderVisualStyles(header) {
|
|
|
25634
26180
|
}
|
|
25635
26181
|
function resolvedForegroundStyle(foreground) {
|
|
25636
26182
|
if (foreground.kind === "unknown") return void 0;
|
|
25637
|
-
|
|
25638
|
-
return surfaceForegroundStyle({
|
|
25639
|
-
text: rgbColorValue(roles.text),
|
|
25640
|
-
heading: rgbColorValue(roles.heading),
|
|
25641
|
-
link: rgbColorValue(roles.link),
|
|
25642
|
-
supporting: rgbColorValue(roles.supporting)
|
|
25643
|
-
});
|
|
25644
|
-
}
|
|
25645
|
-
function resolveFooterRootForeground(footer, palette) {
|
|
25646
|
-
const background = footer?.background;
|
|
25647
|
-
return resolveSurfaceForeground(background ?? {
|
|
25648
|
-
type: "color",
|
|
25649
|
-
color: "surface"
|
|
25650
|
-
}, palette, {
|
|
25651
|
-
text: background?.textColor,
|
|
25652
|
-
link: footer?.navLinkStyle?.colorToken ?? footer?.navColor ?? background?.textColor
|
|
25653
|
-
});
|
|
26183
|
+
return surfaceForegroundStyle(surfaceForegroundInputFromResolved(foreground, rgbColorValue));
|
|
25654
26184
|
}
|
|
25655
26185
|
function footerBottomBarBorderWidthStyle(width) {
|
|
25656
26186
|
if (!width) return void 0;
|
|
@@ -25677,8 +26207,7 @@ const headerRootClassTransform = {
|
|
|
25677
26207
|
const placement = planSiteChromePlacement(parseHeaderPositioning(content.positioning));
|
|
25678
26208
|
const header = asPartialObject(value);
|
|
25679
26209
|
const visuals = resolveHeaderVisualStyles(header);
|
|
25680
|
-
const
|
|
25681
|
-
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
26210
|
+
const hasContainedNav = headerRootPaint(header) === "contained-nav";
|
|
25682
26211
|
const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
|
|
25683
26212
|
const classes = [config.base, backgroundClass];
|
|
25684
26213
|
if (!hasContainedNav) {
|
|
@@ -25721,7 +26250,7 @@ const headerRootStyleTransform = {
|
|
|
25721
26250
|
run: (value, _options, context) => {
|
|
25722
26251
|
const header = asPartialObject(value);
|
|
25723
26252
|
const visuals = resolveHeaderVisualStyles(header);
|
|
25724
|
-
return mergeStyles(resolvedForegroundStyle(resolveHeaderRootForeground(header, context.theme.palette, visuals.isTransparent)) ?? { color: rgbColorValue(
|
|
26253
|
+
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"));
|
|
25725
26254
|
}
|
|
25726
26255
|
};
|
|
25727
26256
|
const headerSectionBackgroundTransform = {
|
|
@@ -25729,9 +26258,7 @@ const headerSectionBackgroundTransform = {
|
|
|
25729
26258
|
kind: "string",
|
|
25730
26259
|
summary: "Resolve the inner site-header section background token",
|
|
25731
26260
|
run: (value) => {
|
|
25732
|
-
|
|
25733
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
25734
|
-
return header?.variant === "floating" || navContainerType === "glass" || navContainerType === "pill" ? "raw:transparent" : "background";
|
|
26261
|
+
return headerRootPaint(asPartialObject(value)) !== "own-surface" ? "raw:transparent" : "background";
|
|
25735
26262
|
}
|
|
25736
26263
|
};
|
|
25737
26264
|
const footerRootStyleTransform = {
|
|
@@ -25749,7 +26276,7 @@ const footerRootStyleTransform = {
|
|
|
25749
26276
|
styleParts.push(backgroundColorStyle(token));
|
|
25750
26277
|
}
|
|
25751
26278
|
}
|
|
25752
|
-
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette)));
|
|
26279
|
+
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
25753
26280
|
styleParts.push(borderColorStyle("border"));
|
|
25754
26281
|
return mergeStyles(...styleParts);
|
|
25755
26282
|
}
|
|
@@ -25811,22 +26338,28 @@ const footerBottomBarStyleTransform = {
|
|
|
25811
26338
|
run: (value, _options, context) => {
|
|
25812
26339
|
const footer = asPartialObject(value);
|
|
25813
26340
|
const bottomBar = footer?.bottomBar;
|
|
25814
|
-
|
|
25815
|
-
const background = bottomBar?.background;
|
|
25816
|
-
if (background?.type === "color") styleParts.push(backgroundColorStyle(background.color ?? "surface"));
|
|
25817
|
-
styleParts.push(borderColorStyle(bottomBar?.borderTop?.colorToken ?? "border"), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width));
|
|
25818
|
-
const foreground = resolveSurfaceForeground(background?.type === "color" ? background : {
|
|
25819
|
-
type: "color",
|
|
25820
|
-
color: "transparent"
|
|
25821
|
-
}, context.theme.palette, {
|
|
25822
|
-
text: bottomBar?.textColor,
|
|
25823
|
-
link: footer?.bottomTextLinkStyle?.colorToken ?? bottomBar?.textColor
|
|
25824
|
-
});
|
|
25825
|
-
if (background?.type === "color") styleParts.push(resolvedForegroundStyle(foreground));
|
|
25826
|
-
else if (bottomBar?.textColor) styleParts.push(textColorStyle(bottomBar.textColor));
|
|
25827
|
-
return mergeStyles(...styleParts);
|
|
26341
|
+
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));
|
|
25828
26342
|
}
|
|
25829
26343
|
};
|
|
26344
|
+
function footerBottomBarForegroundStyle(footer, palette) {
|
|
26345
|
+
if (!footer?.bottomBar) return void 0;
|
|
26346
|
+
const bar = footer.bottomBar;
|
|
26347
|
+
if (bar.background?.type !== "color") return backgroundlessBottomBarForegroundStyle(footer);
|
|
26348
|
+
return resolvedForegroundStyle(resolveSurfaceForeground(bar.background, palette, {
|
|
26349
|
+
text: bar.textColor,
|
|
26350
|
+
link: footer.bottomTextLinkStyle?.colorToken ?? bar.textColor,
|
|
26351
|
+
linkHover: footer.bottomTextLinkStyle?.hoverColorToken
|
|
26352
|
+
}, { compositeBase: measuredFooterBackdrop(footer, palette) }));
|
|
26353
|
+
}
|
|
26354
|
+
function backgroundlessBottomBarForegroundStyle(footer) {
|
|
26355
|
+
if (footer.background?.contentOwner === "site-chrome-editor") return;
|
|
26356
|
+
const textColor = footer.bottomBar?.textColor;
|
|
26357
|
+
return textColor ? textColorStyle(textColor) : void 0;
|
|
26358
|
+
}
|
|
26359
|
+
function measuredFooterBackdrop(footer, palette) {
|
|
26360
|
+
const foreground = resolveFooterRootForeground(footer, palette);
|
|
26361
|
+
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
26362
|
+
}
|
|
25830
26363
|
const footerSplitMainClassTransform = {
|
|
25831
26364
|
id: "layout.footerSplitMainClass",
|
|
25832
26365
|
kind: "string",
|
|
@@ -25922,7 +26455,7 @@ function chromeSurfaceTextToken(surface, theme, palette) {
|
|
|
25922
26455
|
case "header-root": {
|
|
25923
26456
|
const header = theme.header;
|
|
25924
26457
|
const foreground = resolveHeaderRootForeground(header, palette, resolveHeaderVisualStyles(header).isTransparent);
|
|
25925
|
-
return foreground.kind === "known" ? foreground.roles.text :
|
|
26458
|
+
return foreground.kind === "known" ? foreground.roles.text : headerLeafTextColor(header);
|
|
25926
26459
|
}
|
|
25927
26460
|
case "header-mobile-panel": return theme.header?.dropdownStyle?.textColor ?? "text";
|
|
25928
26461
|
case "footer-root": {
|
|
@@ -28009,7 +28542,9 @@ const bookingWizard = bookingForm(withApiBindings({
|
|
|
28009
28542
|
} },
|
|
28010
28543
|
formId: { $bind: { from: "content.formId" } },
|
|
28011
28544
|
form: { $bind: { from: "data.form" } },
|
|
28012
|
-
services: { $bind: { from: "data.services" } }
|
|
28545
|
+
services: { $bind: { from: "data.services" } },
|
|
28546
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
28547
|
+
siteName: { $bind: { from: "$root.siteName" } }
|
|
28013
28548
|
}));
|
|
28014
28549
|
/** Both variants sit in the same section shell; only the inner layout differs. */
|
|
28015
28550
|
function bookingSection(children) {
|
|
@@ -29511,7 +30046,13 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
29511
30046
|
spamProtectionEnabled: z.boolean().optional(),
|
|
29512
30047
|
supportEmail: z.string().optional(),
|
|
29513
30048
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
29514
|
-
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
30049
|
+
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional(),
|
|
30050
|
+
mailingList: z.unknown().transform((value) => {
|
|
30051
|
+
if (value === void 0) return void 0;
|
|
30052
|
+
const parsed = parseMailingListRuntimeContext(value);
|
|
30053
|
+
return parsed.ok ? parsed.value : void 0;
|
|
30054
|
+
}),
|
|
30055
|
+
siteName: z.string().optional()
|
|
29515
30056
|
};
|
|
29516
30057
|
const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
|
|
29517
30058
|
kind: z.literal("loaded"),
|
|
@@ -29683,7 +30224,9 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
29683
30224
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
29684
30225
|
supportEmail: source.supportEmail,
|
|
29685
30226
|
sitePasses: source.sitePasses ?? null,
|
|
29686
|
-
siteMemberships: source.siteMemberships ?? null
|
|
30227
|
+
siteMemberships: source.siteMemberships ?? null,
|
|
30228
|
+
mailingList: source.mailingList,
|
|
30229
|
+
siteName: source.siteName
|
|
29687
30230
|
}
|
|
29688
30231
|
};
|
|
29689
30232
|
}
|
|
@@ -29851,6 +30394,8 @@ const eventRegistrationBlockDefinition = {
|
|
|
29851
30394
|
events: { $bind: { from: "data.events" } },
|
|
29852
30395
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
29853
30396
|
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
30397
|
+
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
30398
|
+
siteName: { $bind: { from: "$root.siteName" } },
|
|
29854
30399
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
29855
30400
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
29856
30401
|
stage: { $bind: {
|
|
@@ -36734,65 +37279,67 @@ const editorialSplitLayout = styledSection({
|
|
|
36734
37279
|
spacing: "comfortable",
|
|
36735
37280
|
background: "surface"
|
|
36736
37281
|
});
|
|
36737
|
-
const
|
|
36738
|
-
|
|
36739
|
-
|
|
36740
|
-
|
|
36741
|
-
|
|
36742
|
-
|
|
36743
|
-
|
|
36744
|
-
|
|
36745
|
-
|
|
36746
|
-
|
|
36747
|
-
|
|
36748
|
-
|
|
36749
|
-
|
|
36750
|
-
|
|
36751
|
-
|
|
36752
|
-
|
|
36753
|
-
|
|
36754
|
-
|
|
36755
|
-
|
|
36756
|
-
|
|
36757
|
-
|
|
36758
|
-
|
|
36759
|
-
|
|
36760
|
-
|
|
36761
|
-
|
|
36762
|
-
description: "Vertical layout with fields stacked"
|
|
36763
|
-
},
|
|
36764
|
-
inline: {
|
|
36765
|
-
label: "Inline",
|
|
36766
|
-
description: "Horizontal layout (email + button side by side)"
|
|
36767
|
-
},
|
|
36768
|
-
"editorial-split": {
|
|
36769
|
-
label: "Editorial split",
|
|
36770
|
-
description: "Copy and form in balanced side-by-side columns, stacked on mobile."
|
|
36771
|
-
}
|
|
36772
|
-
},
|
|
36773
|
-
styleTokens: {
|
|
36774
|
-
background: "surface",
|
|
36775
|
-
typography: "body",
|
|
36776
|
-
spacing: "md"
|
|
37282
|
+
const newsletterSignupManifest = createBlockManifest({
|
|
37283
|
+
id: "block.newsletter-signup",
|
|
37284
|
+
title: "Newsletter Signup",
|
|
37285
|
+
titleSource: "title",
|
|
37286
|
+
description: "Newsletter subscription form with configurable field presets.",
|
|
37287
|
+
category: "interactive",
|
|
37288
|
+
contentSource: { kind: "inline" },
|
|
37289
|
+
fragments: [{
|
|
37290
|
+
fragment: newsletterCopyFragment,
|
|
37291
|
+
fieldPriority: 0
|
|
37292
|
+
}, {
|
|
37293
|
+
fragment: newsletterFormFragment,
|
|
37294
|
+
fieldPriority: 1
|
|
37295
|
+
}],
|
|
37296
|
+
layout: stackedLayout,
|
|
37297
|
+
variants: {
|
|
37298
|
+
stacked: stackedLayout,
|
|
37299
|
+
inline: inlineLayout,
|
|
37300
|
+
"editorial-split": editorialSplitLayout
|
|
37301
|
+
},
|
|
37302
|
+
defaultVariant: "stacked",
|
|
37303
|
+
variantOptions: {
|
|
37304
|
+
stacked: {
|
|
37305
|
+
label: "Stacked",
|
|
37306
|
+
description: "Vertical layout with fields stacked"
|
|
36777
37307
|
},
|
|
36778
|
-
|
|
36779
|
-
|
|
36780
|
-
|
|
36781
|
-
animation: false,
|
|
36782
|
-
paletteHidden: false
|
|
37308
|
+
inline: {
|
|
37309
|
+
label: "Inline",
|
|
37310
|
+
description: "Horizontal layout (email + button side by side)"
|
|
36783
37311
|
},
|
|
36784
|
-
|
|
36785
|
-
"
|
|
36786
|
-
"
|
|
36787
|
-
|
|
36788
|
-
|
|
36789
|
-
|
|
36790
|
-
|
|
36791
|
-
|
|
36792
|
-
|
|
36793
|
-
|
|
36794
|
-
|
|
36795
|
-
|
|
37312
|
+
"editorial-split": {
|
|
37313
|
+
label: "Editorial split",
|
|
37314
|
+
description: "Copy and form in balanced side-by-side columns, stacked on mobile."
|
|
37315
|
+
}
|
|
37316
|
+
},
|
|
37317
|
+
styleTokens: {
|
|
37318
|
+
background: "surface",
|
|
37319
|
+
typography: "body",
|
|
37320
|
+
spacing: "md"
|
|
37321
|
+
},
|
|
37322
|
+
behaviours: {
|
|
37323
|
+
supportsThemeSwitching: true,
|
|
37324
|
+
inlineEditing: false,
|
|
37325
|
+
animation: false,
|
|
37326
|
+
paletteHidden: false
|
|
37327
|
+
},
|
|
37328
|
+
tags: [
|
|
37329
|
+
"newsletter",
|
|
37330
|
+
"signup",
|
|
37331
|
+
"email",
|
|
37332
|
+
"subscribe",
|
|
37333
|
+
"subscription",
|
|
37334
|
+
"mailchimp",
|
|
37335
|
+
"marketing",
|
|
37336
|
+
"lead-capture"
|
|
37337
|
+
],
|
|
37338
|
+
icon: "Mail"
|
|
37339
|
+
});
|
|
37340
|
+
[...(newsletterSignupManifest.fields ?? []).map((field) => field.id)];
|
|
37341
|
+
const newsletterSignupBlockDefinition = {
|
|
37342
|
+
manifest: newsletterSignupManifest,
|
|
36796
37343
|
runtime: newsletterFormBlockRuntime
|
|
36797
37344
|
};
|
|
36798
37345
|
//#endregion
|
|
@@ -38834,7 +39381,8 @@ const BOOKING_FORM_DATA_RESERVED_KEYS = /* @__PURE__ */ new Set([
|
|
|
38834
39381
|
"discountCode",
|
|
38835
39382
|
"selectedSlidingAmountInput",
|
|
38836
39383
|
"selectedCollectionOptionKind",
|
|
38837
|
-
"selectedAppointmentPackageId"
|
|
39384
|
+
"selectedAppointmentPackageId",
|
|
39385
|
+
"mailingListOptIn"
|
|
38838
39386
|
]);
|
|
38839
39387
|
function isBookingFormDataReservedKey(value) {
|
|
38840
39388
|
return BOOKING_FORM_DATA_RESERVED_KEYS.has(value);
|