@riverbankcms/sdk 0.153.0 → 0.154.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/dist/{EventEmbeddedCheckoutStep-veN-QiAE.mjs → EventEmbeddedCheckoutStep-ba9npQtb.mjs} +1 -1
- package/dist/{PreviewEditorSidebar-jI_4DTZY.mjs → PreviewEditorSidebar-C7FiaxlF.mjs} +194 -22
- package/dist/{PreviewEditorUI-ORkVZhfu.mjs → PreviewEditorUI-DFst50q1.mjs} +20 -44
- package/dist/{SdkPreviewModeRuntime-DaNqevI1.mjs → SdkPreviewModeRuntime-BUNV_YHZ.mjs} +49 -32
- package/dist/{SiteChromeCustomizeContext-CgNuBHC0.mjs → SiteChromeCustomizeContext-DEj7qppF.mjs} +3558 -2321
- package/dist/{ThemedButton-X2UxhW6F.mjs → ThemedButton-C8kzu0hY.mjs} +400 -81
- package/dist/_dts/ai/src/contracts/proposals.d.ts +364 -130
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1035 -477
- package/dist/_dts/api/src/billing.d.ts +2 -0
- package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +78 -0
- package/dist/_dts/api/src/bookingAdjustments.d.ts +3 -2
- package/dist/_dts/api/src/bookingOperations.d.ts +7 -2
- package/dist/_dts/api/src/bookingPeople.d.ts +19 -0
- package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +8 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -106
- package/dist/_dts/api/src/bookings.d.ts +2 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +88 -43
- package/dist/_dts/api/src/index.d.ts +4 -2
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
- package/dist/_dts/api/src/moneyPayments.d.ts +116 -0
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +2 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
- package/dist/_dts/api/src/sdkThemeWire.d.ts +162 -103
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +18 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +17 -16
- package/dist/_dts/api/src/siteSettings.d.ts +1 -0
- package/dist/_dts/api/src/stripeConnectSetup.d.ts +90 -0
- package/dist/_dts/api/src/types.d.ts +11 -31
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -4
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -96
- package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/fields.d.ts +0 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +0 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +10 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery/fields.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +6 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -45
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +12 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-layout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-profile.d.ts +20 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +17 -16
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +75 -9
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
- package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
- package/dist/_dts/blocks/src/system/node/fragments/responsiveTwoColumn.d.ts +3 -1
- package/dist/_dts/blocks/src/system/node/fragments/sectionHead.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -198
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -99
- package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +16 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +10 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +29 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/form.interactive.d.ts +11 -79
- package/dist/_dts/blocks/src/system/runtime/nodes/form.parts.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/form.server.d.ts +2 -13
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +8 -72
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -0
- package/dist/_dts/blocks/src/system/transforms/registry/footerArrangement.d.ts +6 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -11
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -10
- package/dist/_dts/commerce/src/purchase/orderConfirmationPlanning.d.ts +1 -0
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +5 -2
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +1 -1
- package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +6 -3
- package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +1 -1
- package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
- package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +3 -1
- package/dist/_dts/content-editor/src/footerNavigationLayoutState.d.ts +56 -0
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +3 -4
- package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +11 -8
- package/dist/_dts/core/src/booking-refunds.d.ts +2 -0
- package/dist/_dts/core/src/date-display.d.ts +85 -0
- package/dist/_dts/core/src/date-time-formatter.d.ts +2 -0
- package/dist/_dts/core/src/footer-arrangement.d.ts +8 -1
- package/dist/_dts/core/src/footer-composition-types.d.ts +6 -1
- package/dist/_dts/core/src/footer-composition.d.ts +1 -1
- package/dist/_dts/core/src/footer-navigation-layout.d.ts +3 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +3 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -1
- package/dist/_dts/core/src/public-profile.d.ts +3 -1
- package/dist/_dts/core/src/scheduled-date-time.d.ts +69 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -9
- package/dist/_dts/db/src/schemas/forms.d.ts +16 -16
- package/dist/_dts/preview-next/src/client/blocks/ArrangementBlockToolbar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +27 -5
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/useConfirmedPreferenceRecord.d.ts +12 -0
- package/dist/_dts/preview-next/src/client/preview/usePersistedFooterPreferences.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +40 -2
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -46
- package/dist/_dts/sdk/src/date-time/index.d.ts +2 -68
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +2 -0
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +2 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/lanternRecipes.d.ts +60 -0
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +57 -0
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +10 -1
- package/dist/_dts/theme-core/src/buttons/types.d.ts +358 -46
- package/dist/_dts/theme-core/src/buttons/typography.d.ts +24 -0
- package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
- package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +1 -1
- package/dist/_dts/theme-core/src/footer/generateFooterCss.d.ts +4 -1
- package/dist/_dts/theme-core/src/footer/mode.d.ts +2 -11
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +234 -147
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
- package/dist/_dts/theme-core/src/schema.d.ts +300 -192
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +23 -7
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +4 -6
- package/dist/_dts/theme-core/src/site-styles/compileFooterAgainstRow.d.ts +121 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -0
- package/dist/_dts/theme-core/src/site-styles/footerLookDefaults.d.ts +45 -0
- package/dist/_dts/theme-core/src/site-styles/footerLookRecipe.d.ts +50 -0
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +9 -35
- package/dist/_dts/theme-core/src/site-styles/footerPreferences.d.ts +29 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +2 -3
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/themeParity.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/client/{BookingMailingListNote-DrchYW1m.mjs → BookingMailingListNote-CNoSqFtf.mjs} +2 -2
- package/dist/client/{CardListItem-CC_GVmF6.mjs → CardListItem-BkTkqBkh.mjs} +3 -3
- package/dist/client/{CheckboxChoice-Dq30m3DO.mjs → CheckboxChoice-CHJpsty4.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-ojwbVUmx.mjs → DemoBookingPortalAccess-C7KQKFNt.mjs} +2 -2
- package/dist/client/{EventCombined.client-DyN0v0Xk.mjs → EventCombined.client-BgeYMjHJ.mjs} +5 -5
- package/dist/client/{EventEmbeddedCheckoutStep-CgfpKc3n.mjs → EventEmbeddedCheckoutStep-BTc_lTkM.mjs} +2 -2
- package/dist/client/{EventListing.client-CuOuvYMz.mjs → EventListing.client-ChRs9Hl2.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-B0WhRr3j.mjs → LeafletStaticMap-C_dNQgd0.mjs} +1 -1
- package/dist/client/{RichText-C1fIXBzA.mjs → RichText-BI9bzbjo.mjs} +75 -42
- package/dist/client/{ThemedButton-B7HFqFBg.mjs → ThemedButton-wl3Z3wkH.mjs} +1 -1
- package/dist/client/{accordion-DCDVWSye.mjs → accordion-6Yz8Wd83.mjs} +1 -1
- package/dist/client/{bookingForm-BJ3C4GlM.mjs → bookingForm-i_pKIGiY.mjs} +8 -8
- package/dist/client/bookings.mjs +12565 -11839
- package/dist/client/{carousel-BSCBhfHY.mjs → carousel-DNqd_PjC.mjs} +2 -2
- package/dist/client/{carousel.client-GEtOGsxo.mjs → carousel.client-BUgjPbb6.mjs} +1 -1
- package/dist/client/{cart-Yv-aAtck.mjs → cart-D8OBHuF4.mjs} +3 -3
- package/dist/client/{checkout-B9xDkl30.mjs → checkout-F3-9IGLU.mjs} +3 -3
- package/dist/client/client.mjs +6109 -4778
- package/dist/client/{context-BOGe3rIA.mjs → context-Dg4ZrxDD.mjs} +1 -1
- package/dist/client/{eventCalendar-D6M0T9hs.mjs → eventCalendar-BUc7YIBM.mjs} +8 -8
- package/dist/client/{eventCombined-NM4UFBq8.mjs → eventCombined-BwfShk2a.mjs} +4 -4
- package/dist/client/{eventDetails-f_FhV4O8.mjs → eventDetails-BMOVC3go.mjs} +3 -3
- package/dist/client/{eventListing-WLkfAROh.mjs → eventListing-BwE9PM-t.mjs} +4 -4
- package/dist/client/{eventRegistration-D3ejfLvW.mjs → eventRegistration-CCWPYDc7.mjs} +9 -9
- package/dist/client/{form-D5Or2Jyu.mjs → form-CXFr0Gd5.mjs} +115 -51
- package/dist/client/{headerSection-hWgnv27V.mjs → headerSection-BX8qw8kH.mjs} +3 -3
- package/dist/client/hooks.mjs +2041 -1193
- package/dist/client/{locationMap-Di1K0O2S.mjs → locationMap-B3La71m0.mjs} +3 -3
- package/dist/client/{media-D29-F1u_.mjs → media-B1Cbv721.mjs} +1 -1
- package/dist/client/{newsletterForm-CwxcwTNO.mjs → newsletterForm-DnGyR0x7.mjs} +50 -14
- package/dist/client/{productDetail-BLSnhPdA.mjs → productDetail-BVgTqvkb.mjs} +3 -3
- package/dist/client/{productList-oGytONOX.mjs → productList-CcO7kUQw.mjs} +3 -3
- package/dist/client/{propsDecoder-lf_dTeZS.mjs → propsDecoder-B1OeWavE.mjs} +706 -229
- package/dist/client/rendering/client.mjs +11868 -11098
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +6058 -4676
- package/dist/client/{routeIslandApiConfig-Bc_WVPS8.mjs → routeIslandApiConfig-Dl4vglJm.mjs} +1 -1
- package/dist/client/{shop-BQ3bR7fA.mjs → shop-P72nX5Fs.mjs} +7 -7
- package/dist/client/{shop-commerce-DDPll6ZC.mjs → shop-commerce-Bt7uraDx.mjs} +8 -8
- package/dist/client/{shop-commerce-store-DO-e1pTe.mjs → shop-commerce-store-C1-mxSye.mjs} +1 -1
- package/dist/client/{shopShared-BylM9jh1.mjs → shopShared-Db-cRGu3.mjs} +4 -4
- package/dist/client/{useDiscountCodeUi-B1Puub2v.mjs → useDiscountCodeUi-jvAiUoUX.mjs} +1 -1
- package/dist/client/{useEventPagination-BBhkmQaT.mjs → useEventPagination-BdWpCniq.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +133 -51
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/preview-next/editor-chrome.css +5 -2
- package/dist/preview-next/keepAlive.mjs +133 -51
- package/dist/preview-next/middleware.mjs +133 -51
- package/dist/{sdk-runtime-DWCvhJGu.mjs → sdk-runtime-DLhjF2Nw.mjs} +1 -1
- package/dist/server/components.mjs +11284 -10014
- package/dist/server/config-validation.mjs +2016 -1188
- package/dist/server/config.mjs +2016 -1188
- package/dist/server/data.mjs +2041 -1193
- package/dist/server/date-time.mjs +258 -116
- package/dist/server/index.mjs +134 -52
- package/dist/server/next.mjs +10571 -9350
- package/dist/server/page-converter.mjs +1629 -941
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +11156 -9872
- package/dist/server/rendering.mjs +11284 -10014
- package/dist/server/routing.mjs +2204 -1283
- package/dist/server/server.mjs +2369 -1570
- package/dist/server/theme-bridge.mjs +838 -124
- package/dist/server/theme.mjs +348 -64
- package/dist/{spinner-BYM-Y81w.mjs → spinner-MTooKfck.mjs} +1 -1
- package/dist/styles/index.css +254 -1
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +0 -12
|
@@ -8,6 +8,19 @@ const footerModeSchema = z.enum([
|
|
|
8
8
|
"default+blocks",
|
|
9
9
|
"none"
|
|
10
10
|
]);
|
|
11
|
+
z.object({
|
|
12
|
+
variant: z.enum([
|
|
13
|
+
"simple",
|
|
14
|
+
"columns",
|
|
15
|
+
"split",
|
|
16
|
+
"centred"
|
|
17
|
+
]),
|
|
18
|
+
showLogoText: z.boolean().optional(),
|
|
19
|
+
logo: z.object({
|
|
20
|
+
showLogo: z.boolean().optional(),
|
|
21
|
+
showLogoText: z.boolean().optional()
|
|
22
|
+
}).optional()
|
|
23
|
+
});
|
|
11
24
|
//#endregion
|
|
12
25
|
//#region ../api/src/defineEndpointDefinitions.ts
|
|
13
26
|
/**
|
|
@@ -2081,6 +2094,25 @@ function validateBookingPaymentOptionKinds(kinds) {
|
|
|
2081
2094
|
return ok(void 0);
|
|
2082
2095
|
}
|
|
2083
2096
|
//#endregion
|
|
2097
|
+
//#region ../core/src/date-time-formatter.ts
|
|
2098
|
+
/** Shared Intl engine, internal to core's date presentation owners. */
|
|
2099
|
+
const FORMATTER_CACHE_LIMIT = 100;
|
|
2100
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
2101
|
+
function getDateTimeFormatter(locale, timeZone, format) {
|
|
2102
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
2103
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
2104
|
+
if (cached !== void 0) return cached;
|
|
2105
|
+
if (typeof locale !== "string" || Intl.DateTimeFormat.supportedLocalesOf([locale]).length === 0) throw new RangeError("An explicit supported locale is required");
|
|
2106
|
+
if (typeof timeZone !== "string" || timeZone.length === 0) throw new RangeError("An explicit time zone is required");
|
|
2107
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
2108
|
+
...format,
|
|
2109
|
+
timeZone
|
|
2110
|
+
});
|
|
2111
|
+
if (dateTimeFormatterCache.size >= FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
2112
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
2113
|
+
return formatter;
|
|
2114
|
+
}
|
|
2115
|
+
//#endregion
|
|
2084
2116
|
//#region ../core/src/booking-time-zone.ts
|
|
2085
2117
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
2086
2118
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -2117,8 +2149,6 @@ const START_OF_DAY = {
|
|
|
2117
2149
|
second: 0
|
|
2118
2150
|
};
|
|
2119
2151
|
const LOCAL_DATE_PATTERN = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
2120
|
-
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
2121
|
-
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
2122
2152
|
function getSafeTimeZone(timeZone) {
|
|
2123
2153
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
2124
2154
|
return normalized.length > 0 && isValidBookingTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
@@ -2135,19 +2165,7 @@ function formatParseError(error) {
|
|
|
2135
2165
|
}
|
|
2136
2166
|
}
|
|
2137
2167
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
2138
|
-
return new Map(
|
|
2139
|
-
}
|
|
2140
|
-
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
2141
|
-
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
2142
|
-
const cached = dateTimeFormatterCache.get(key);
|
|
2143
|
-
if (cached !== void 0) return cached;
|
|
2144
|
-
const formatter = new Intl.DateTimeFormat(locale, {
|
|
2145
|
-
...format,
|
|
2146
|
-
timeZone
|
|
2147
|
-
});
|
|
2148
|
-
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
2149
|
-
dateTimeFormatterCache.set(key, formatter);
|
|
2150
|
-
return formatter;
|
|
2168
|
+
return new Map(getDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
2151
2169
|
}
|
|
2152
2170
|
function getZonedDateTimeParts(date, timeZone) {
|
|
2153
2171
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -2235,7 +2253,7 @@ function toScheduledBookingDateTime(input) {
|
|
|
2235
2253
|
function formatBookingInstant(isoString, options) {
|
|
2236
2254
|
const date = new Date(isoString);
|
|
2237
2255
|
if (Number.isNaN(date.getTime())) return isoString;
|
|
2238
|
-
return
|
|
2256
|
+
return getDateTimeFormatter(options.locale ?? DEFAULT_LOCALE, getSafeTimeZone(options.timeZone), options.format).format(date);
|
|
2239
2257
|
}
|
|
2240
2258
|
function formatBookingDate(input, format = {
|
|
2241
2259
|
weekday: "long",
|
|
@@ -2360,6 +2378,17 @@ function localScheduleDateTimeToUtcDate(localDate, localTime, timeZone) {
|
|
|
2360
2378
|
return new Date(guess);
|
|
2361
2379
|
}
|
|
2362
2380
|
//#endregion
|
|
2381
|
+
//#region ../core/src/date-display.ts
|
|
2382
|
+
/** Site-language policy, shared by customer emails and public event adapters. */
|
|
2383
|
+
function inferSiteDateLocale(siteTimeZone) {
|
|
2384
|
+
if (siteTimeZone === null || siteTimeZone === void 0 || siteTimeZone === "") return "en-US";
|
|
2385
|
+
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
2386
|
+
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
2387
|
+
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
2388
|
+
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
2389
|
+
return "en-US";
|
|
2390
|
+
}
|
|
2391
|
+
//#endregion
|
|
2363
2392
|
//#region ../core/src/location.ts
|
|
2364
2393
|
function normalizeLocationAddressText(value) {
|
|
2365
2394
|
if (typeof value !== "string") return null;
|
|
@@ -2477,6 +2506,10 @@ function parseGlobalFields(value) {
|
|
|
2477
2506
|
preset: "emailName",
|
|
2478
2507
|
name: value.name
|
|
2479
2508
|
} : null;
|
|
2509
|
+
case "emailFirstName": return isRequirement(value.firstName) ? {
|
|
2510
|
+
preset: "emailFirstName",
|
|
2511
|
+
firstName: value.firstName
|
|
2512
|
+
} : null;
|
|
2480
2513
|
case "emailFirstLast": return isRequirement(value.firstName) && isRequirement(value.lastName) ? {
|
|
2481
2514
|
preset: "emailFirstLast",
|
|
2482
2515
|
firstName: value.firstName,
|
|
@@ -4213,6 +4246,129 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
4213
4246
|
tags: ["billing"],
|
|
4214
4247
|
auth: "user",
|
|
4215
4248
|
responseKind: "json"
|
|
4249
|
+
},
|
|
4250
|
+
stripeConnectSetupStart: {
|
|
4251
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
4252
|
+
method: "POST",
|
|
4253
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4254
|
+
auth: "user",
|
|
4255
|
+
responseKind: "json",
|
|
4256
|
+
errors: [
|
|
4257
|
+
"validation:invalid_input",
|
|
4258
|
+
"auth:forbidden",
|
|
4259
|
+
"resource:conflict",
|
|
4260
|
+
"server:internal_error"
|
|
4261
|
+
]
|
|
4262
|
+
},
|
|
4263
|
+
stripeConnectSetupDiscard: {
|
|
4264
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
4265
|
+
method: "DELETE",
|
|
4266
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4267
|
+
auth: "user",
|
|
4268
|
+
responseKind: "json",
|
|
4269
|
+
errors: [
|
|
4270
|
+
"validation:invalid_input",
|
|
4271
|
+
"auth:forbidden",
|
|
4272
|
+
"resource:conflict",
|
|
4273
|
+
"server:internal_error"
|
|
4274
|
+
]
|
|
4275
|
+
},
|
|
4276
|
+
stripeConnectSetupSave: {
|
|
4277
|
+
path: "/sites/{siteId}/billing/connect/setup/save",
|
|
4278
|
+
method: "POST",
|
|
4279
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4280
|
+
auth: "user",
|
|
4281
|
+
responseKind: "json",
|
|
4282
|
+
errors: [
|
|
4283
|
+
"validation:invalid_input",
|
|
4284
|
+
"auth:forbidden",
|
|
4285
|
+
"resource:conflict",
|
|
4286
|
+
"server:internal_error"
|
|
4287
|
+
]
|
|
4288
|
+
},
|
|
4289
|
+
stripeConnectAccountSession: {
|
|
4290
|
+
path: "/sites/{siteId}/billing/connect/session",
|
|
4291
|
+
method: "POST",
|
|
4292
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4293
|
+
auth: "user",
|
|
4294
|
+
responseKind: "json",
|
|
4295
|
+
errors: [
|
|
4296
|
+
"validation:invalid_input",
|
|
4297
|
+
"auth:forbidden",
|
|
4298
|
+
"resource:conflict",
|
|
4299
|
+
"server:internal_error"
|
|
4300
|
+
]
|
|
4301
|
+
},
|
|
4302
|
+
stripeConnectStart: {
|
|
4303
|
+
path: "/sites/{siteId}/billing/connect/start",
|
|
4304
|
+
method: "POST",
|
|
4305
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4306
|
+
auth: "user",
|
|
4307
|
+
responseKind: "json",
|
|
4308
|
+
errors: [
|
|
4309
|
+
"validation:invalid_input",
|
|
4310
|
+
"auth:forbidden",
|
|
4311
|
+
"resource:conflict",
|
|
4312
|
+
"server:internal_error"
|
|
4313
|
+
]
|
|
4314
|
+
},
|
|
4315
|
+
stripeConnectStatus: {
|
|
4316
|
+
path: "/sites/{siteId}/billing/connect/status",
|
|
4317
|
+
method: "GET",
|
|
4318
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4319
|
+
auth: "user",
|
|
4320
|
+
responseKind: "json",
|
|
4321
|
+
errors: [
|
|
4322
|
+
"validation:invalid_input",
|
|
4323
|
+
"auth:forbidden",
|
|
4324
|
+
"resource:conflict",
|
|
4325
|
+
"server:internal_error"
|
|
4326
|
+
]
|
|
4327
|
+
},
|
|
4328
|
+
stripeAutomaticTaxUpdate: {
|
|
4329
|
+
path: "/sites/{siteId}/billing/automatic-tax",
|
|
4330
|
+
method: "POST",
|
|
4331
|
+
tags: [
|
|
4332
|
+
"site-{siteId}",
|
|
4333
|
+
"billing",
|
|
4334
|
+
"stripe-tax"
|
|
4335
|
+
],
|
|
4336
|
+
auth: "user",
|
|
4337
|
+
responseKind: "json",
|
|
4338
|
+
errors: [
|
|
4339
|
+
"validation:invalid_input",
|
|
4340
|
+
"auth:forbidden",
|
|
4341
|
+
"resource:not_found",
|
|
4342
|
+
"server:unavailable",
|
|
4343
|
+
"server:internal_error"
|
|
4344
|
+
]
|
|
4345
|
+
},
|
|
4346
|
+
stripeConnectDisconnect: {
|
|
4347
|
+
path: "/sites/{siteId}/billing/connect/disconnect",
|
|
4348
|
+
method: "DELETE",
|
|
4349
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4350
|
+
auth: "user",
|
|
4351
|
+
responseKind: "json",
|
|
4352
|
+
errors: [
|
|
4353
|
+
"validation:invalid_input",
|
|
4354
|
+
"auth:forbidden",
|
|
4355
|
+
"resource:conflict",
|
|
4356
|
+
"server:internal_error"
|
|
4357
|
+
]
|
|
4358
|
+
},
|
|
4359
|
+
billingConnectReturn: {
|
|
4360
|
+
path: "/billing/connect/return",
|
|
4361
|
+
method: "GET",
|
|
4362
|
+
auth: "user",
|
|
4363
|
+
responseKind: "void",
|
|
4364
|
+
errors: []
|
|
4365
|
+
},
|
|
4366
|
+
billingConnectRefresh: {
|
|
4367
|
+
path: "/billing/connect/refresh",
|
|
4368
|
+
method: "GET",
|
|
4369
|
+
auth: "user",
|
|
4370
|
+
responseKind: "void",
|
|
4371
|
+
errors: []
|
|
4216
4372
|
}
|
|
4217
4373
|
});
|
|
4218
4374
|
//#endregion
|
|
@@ -4377,6 +4533,14 @@ const PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
|
|
|
4377
4533
|
* person when nothing is attached to them.
|
|
4378
4534
|
*/
|
|
4379
4535
|
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
4536
|
+
getBookingPerson: {
|
|
4537
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
4538
|
+
method: "GET",
|
|
4539
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
4540
|
+
auth: "user",
|
|
4541
|
+
responseKind: "json",
|
|
4542
|
+
errors: ["resource:not_found", "server:internal_error"]
|
|
4543
|
+
},
|
|
4380
4544
|
listPeople: {
|
|
4381
4545
|
path: "/sites/{siteId}/bookings/people",
|
|
4382
4546
|
method: "GET",
|
|
@@ -8174,6 +8338,29 @@ const paletteSchema = z.object({
|
|
|
8174
8338
|
};
|
|
8175
8339
|
});
|
|
8176
8340
|
//#endregion
|
|
8341
|
+
//#region ../theme-core/src/buttons/typography.ts
|
|
8342
|
+
const textTransformSchema = z.enum([
|
|
8343
|
+
"none",
|
|
8344
|
+
"uppercase",
|
|
8345
|
+
"lowercase",
|
|
8346
|
+
"capitalize"
|
|
8347
|
+
]);
|
|
8348
|
+
const fontWeightSchema = z.union([
|
|
8349
|
+
z.literal(400),
|
|
8350
|
+
z.literal(500),
|
|
8351
|
+
z.literal(600),
|
|
8352
|
+
z.literal(700),
|
|
8353
|
+
z.literal(800)
|
|
8354
|
+
]);
|
|
8355
|
+
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
8356
|
+
const letterSpacingSchema = z.enum([
|
|
8357
|
+
"tight",
|
|
8358
|
+
"normal",
|
|
8359
|
+
"slight",
|
|
8360
|
+
"loose",
|
|
8361
|
+
"wide"
|
|
8362
|
+
]);
|
|
8363
|
+
//#endregion
|
|
8177
8364
|
//#region ../theme-core/src/buttons/types.ts
|
|
8178
8365
|
/**
|
|
8179
8366
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -8289,6 +8476,7 @@ const buttonEffectApplicationSchema = z.discriminatedUnion("effectId", [
|
|
|
8289
8476
|
z.strictObject({
|
|
8290
8477
|
effectId: z.literal("lift"),
|
|
8291
8478
|
options: z.strictObject({ amount: z.enum([
|
|
8479
|
+
"0.125",
|
|
8292
8480
|
"0.25",
|
|
8293
8481
|
"0.5",
|
|
8294
8482
|
"1"
|
|
@@ -8335,24 +8523,6 @@ const shadowSizeSchema = z.enum([
|
|
|
8335
8523
|
"medium",
|
|
8336
8524
|
"high"
|
|
8337
8525
|
]);
|
|
8338
|
-
const textTransformSchema = z.enum([
|
|
8339
|
-
"none",
|
|
8340
|
-
"uppercase",
|
|
8341
|
-
"lowercase",
|
|
8342
|
-
"capitalize"
|
|
8343
|
-
]);
|
|
8344
|
-
const fontWeightSchema = z.union([
|
|
8345
|
-
z.literal(500),
|
|
8346
|
-
z.literal(600),
|
|
8347
|
-
z.literal(700),
|
|
8348
|
-
z.literal(800)
|
|
8349
|
-
]);
|
|
8350
|
-
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
8351
|
-
const letterSpacingSchema = z.enum([
|
|
8352
|
-
"tight",
|
|
8353
|
-
"normal",
|
|
8354
|
-
"loose"
|
|
8355
|
-
]);
|
|
8356
8526
|
const hoverTransformSchema = z.enum([
|
|
8357
8527
|
"none",
|
|
8358
8528
|
"lift",
|
|
@@ -8424,7 +8594,8 @@ const paddingShorthandSchema = z.string().refine((value) => {
|
|
|
8424
8594
|
}, { message: "Padding must be two space-separated CSS length tokens (e.g. \"0.5rem 1rem\"). Use `0` for zero." });
|
|
8425
8595
|
const buttonSizeConfigSchema = z.object({
|
|
8426
8596
|
padding: paddingShorthandSchema,
|
|
8427
|
-
fontSize: z.string().optional()
|
|
8597
|
+
fontSize: z.string().optional(),
|
|
8598
|
+
borderRadius: z.string().optional()
|
|
8428
8599
|
});
|
|
8429
8600
|
/**
|
|
8430
8601
|
* `xl` is optional on the wire so themes persisted before the `xl` size was
|
|
@@ -8547,12 +8718,20 @@ const buttonVisualAppearanceSchema = z.strictObject({
|
|
|
8547
8718
|
textTransform: textTransformSchema
|
|
8548
8719
|
}),
|
|
8549
8720
|
effects: z.array(buttonEffectApplicationSchema),
|
|
8721
|
+
transform: z.literal("none").optional(),
|
|
8550
8722
|
contextualHover: contextualButtonHoverSchema.optional()
|
|
8551
8723
|
});
|
|
8552
8724
|
const buttonVisualStatesSchema = z.strictObject({
|
|
8553
8725
|
base: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
8554
8726
|
hover: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
8555
|
-
focus: buttonVisualAppearanceSchema.extend({
|
|
8727
|
+
focus: buttonVisualAppearanceSchema.extend({
|
|
8728
|
+
shadow: z.literal("focus-indicator"),
|
|
8729
|
+
indicator: z.strictObject({
|
|
8730
|
+
kind: z.literal("surface-ink"),
|
|
8731
|
+
width: z.union([z.literal(2), z.literal(3)]),
|
|
8732
|
+
offset: z.union([z.literal(3), z.literal(4)])
|
|
8733
|
+
}).optional()
|
|
8734
|
+
}),
|
|
8556
8735
|
active: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
8557
8736
|
disabled: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema })
|
|
8558
8737
|
});
|
|
@@ -9019,6 +9198,10 @@ function validateButtonTextContrast(input) {
|
|
|
9019
9198
|
}
|
|
9020
9199
|
};
|
|
9021
9200
|
}
|
|
9201
|
+
/** A text-token slab inverts the palette's text/background pair, including text shades. */
|
|
9202
|
+
function solidForegroundToken(backgroundToken) {
|
|
9203
|
+
return /^text(?:-\d+)?$/.test(backgroundToken) ? "background" : onColorTokenName(backgroundToken);
|
|
9204
|
+
}
|
|
9022
9205
|
//#endregion
|
|
9023
9206
|
//#region ../theme-core/src/buttons/contextualHover.ts
|
|
9024
9207
|
function resolveContextualHoverPreference(input) {
|
|
@@ -9116,7 +9299,7 @@ function candidate(family, shade, currentShade, direction, seedHex, palette) {
|
|
|
9116
9299
|
}
|
|
9117
9300
|
function hasSafeTextContrast(token, palette) {
|
|
9118
9301
|
const background = palette[token];
|
|
9119
|
-
const foreground = palette[
|
|
9302
|
+
const foreground = palette[solidForegroundToken(token)];
|
|
9120
9303
|
return typeof background === "string" && typeof foreground === "string" && contrastRatio(background, foreground) >= BUTTON_CONTRAST_POLICY.textMinimumRatio;
|
|
9121
9304
|
}
|
|
9122
9305
|
function isSafeCandidate(token, palette, surface) {
|
|
@@ -9211,6 +9394,13 @@ function compileDeclaredVisualStates(input, states) {
|
|
|
9211
9394
|
const colours = collectStateColours(mapVisualStates((state) => compileDeclaredVisualState(input, states, state, state === "hover" ? hover.treatment : states[state].background)));
|
|
9212
9395
|
return colours.ok ? {
|
|
9213
9396
|
...colours,
|
|
9397
|
+
focusIndicator: states.focus.indicator ? {
|
|
9398
|
+
kind: "surface-role",
|
|
9399
|
+
colorCss: input.surface?.foregroundCss ?? surfaceForegroundValue("text"),
|
|
9400
|
+
width: states.focus.indicator.width,
|
|
9401
|
+
offset: states.focus.indicator.offset,
|
|
9402
|
+
minimumSurfaceContrast: BUTTON_CONTRAST_POLICY.nonTextMinimumRatio
|
|
9403
|
+
} : colours.focusIndicator,
|
|
9214
9404
|
contextualHoverRepair: hover.repair
|
|
9215
9405
|
} : colours;
|
|
9216
9406
|
}
|
|
@@ -9348,7 +9538,7 @@ function resolveFocusIndicator(colour) {
|
|
|
9348
9538
|
function resolveSolid(input, backgroundToken, edge) {
|
|
9349
9539
|
const backgroundHex = paletteHex(input, backgroundToken);
|
|
9350
9540
|
if (!backgroundHex.ok) return backgroundHex;
|
|
9351
|
-
const foregroundToken = unsafeAsOpaqueButtonColourToken(
|
|
9541
|
+
const foregroundToken = unsafeAsOpaqueButtonColourToken(solidForegroundToken(backgroundToken));
|
|
9352
9542
|
const foregroundHex = input.palette[foregroundToken];
|
|
9353
9543
|
if (typeof foregroundHex !== "string") return {
|
|
9354
9544
|
ok: false,
|
|
@@ -10522,6 +10712,287 @@ function normalizeAppearance(appearance) {
|
|
|
10522
10712
|
};
|
|
10523
10713
|
}
|
|
10524
10714
|
//#endregion
|
|
10715
|
+
//#region ../theme-core/src/buttons/styles/recipes/lanternRecipes.ts
|
|
10716
|
+
const flatShadow = {
|
|
10717
|
+
elevation: "none",
|
|
10718
|
+
softness: null,
|
|
10719
|
+
position: "bottom"
|
|
10720
|
+
};
|
|
10721
|
+
const lift$1 = {
|
|
10722
|
+
effectId: "lift",
|
|
10723
|
+
options: { amount: "0.125" }
|
|
10724
|
+
};
|
|
10725
|
+
const tags = {
|
|
10726
|
+
tone: "classic",
|
|
10727
|
+
energy: "calm",
|
|
10728
|
+
motion: "subtle",
|
|
10729
|
+
era: "editorial"
|
|
10730
|
+
};
|
|
10731
|
+
/** Each role supplies complete states, including a flat surface-ink focus ring. */
|
|
10732
|
+
function states(base, hover, offset = 4, width = 2) {
|
|
10733
|
+
return {
|
|
10734
|
+
base,
|
|
10735
|
+
hover,
|
|
10736
|
+
focus: {
|
|
10737
|
+
...base,
|
|
10738
|
+
shadow: "focus-indicator",
|
|
10739
|
+
indicator: {
|
|
10740
|
+
kind: "surface-ink",
|
|
10741
|
+
width,
|
|
10742
|
+
offset
|
|
10743
|
+
}
|
|
10744
|
+
},
|
|
10745
|
+
active: {
|
|
10746
|
+
...base,
|
|
10747
|
+
transform: "none"
|
|
10748
|
+
},
|
|
10749
|
+
disabled: {
|
|
10750
|
+
...base,
|
|
10751
|
+
effects: []
|
|
10752
|
+
}
|
|
10753
|
+
};
|
|
10754
|
+
}
|
|
10755
|
+
const gilt = {
|
|
10756
|
+
text: "treatment",
|
|
10757
|
+
border: "none",
|
|
10758
|
+
borderRadius: "rounded-10px",
|
|
10759
|
+
shadow: flatShadow,
|
|
10760
|
+
sizes: {
|
|
10761
|
+
sm: {
|
|
10762
|
+
padding: "10px 20px",
|
|
10763
|
+
fontSize: "text-base",
|
|
10764
|
+
borderRadius: "rounded-lg"
|
|
10765
|
+
},
|
|
10766
|
+
md: {
|
|
10767
|
+
padding: "18px 36px",
|
|
10768
|
+
fontSize: "text-19px"
|
|
10769
|
+
},
|
|
10770
|
+
lg: {
|
|
10771
|
+
padding: "18px 36px",
|
|
10772
|
+
fontSize: "text-19px"
|
|
10773
|
+
},
|
|
10774
|
+
xl: {
|
|
10775
|
+
padding: "18px 36px",
|
|
10776
|
+
fontSize: "text-19px"
|
|
10777
|
+
}
|
|
10778
|
+
},
|
|
10779
|
+
typography: {
|
|
10780
|
+
fontWeight: 400,
|
|
10781
|
+
typography: "heading",
|
|
10782
|
+
fontSize: "text-19px",
|
|
10783
|
+
letterSpacing: "slight",
|
|
10784
|
+
italic: false,
|
|
10785
|
+
textTransform: "none"
|
|
10786
|
+
},
|
|
10787
|
+
effects: []
|
|
10788
|
+
};
|
|
10789
|
+
const giltPrimary = {
|
|
10790
|
+
...gilt,
|
|
10791
|
+
background: {
|
|
10792
|
+
type: "gradient",
|
|
10793
|
+
stops: ["accent", "primary"],
|
|
10794
|
+
direction: "to-br",
|
|
10795
|
+
foregroundToken: "onAccent"
|
|
10796
|
+
}
|
|
10797
|
+
};
|
|
10798
|
+
const giltPrimaryHover = {
|
|
10799
|
+
...giltPrimary,
|
|
10800
|
+
background: {
|
|
10801
|
+
...giltPrimary.background,
|
|
10802
|
+
stops: ["accent-400", "primary-400"],
|
|
10803
|
+
foregroundToken: "secondary-950"
|
|
10804
|
+
},
|
|
10805
|
+
effects: [lift$1]
|
|
10806
|
+
};
|
|
10807
|
+
const giltSecondary = {
|
|
10808
|
+
...gilt,
|
|
10809
|
+
background: {
|
|
10810
|
+
type: "solid",
|
|
10811
|
+
colorToken: "text"
|
|
10812
|
+
}
|
|
10813
|
+
};
|
|
10814
|
+
const giltSecondaryHover = {
|
|
10815
|
+
...giltSecondary,
|
|
10816
|
+
effects: [lift$1],
|
|
10817
|
+
contextualHover: {
|
|
10818
|
+
kind: "shade-shift",
|
|
10819
|
+
seedToken: unsafeAsOpaqueButtonColourToken("text"),
|
|
10820
|
+
fallbackDirection: "lighter"
|
|
10821
|
+
}
|
|
10822
|
+
};
|
|
10823
|
+
const giltPrimaryStates = states(giltPrimary, giltPrimaryHover);
|
|
10824
|
+
const giltSecondaryStates = states(giltSecondary, giltSecondaryHover);
|
|
10825
|
+
const giltSlabRecipe = defineStaticButtonStyleRecipe({
|
|
10826
|
+
id: "gilt-slab",
|
|
10827
|
+
accessibilityLabel: "Gilt slab",
|
|
10828
|
+
tags,
|
|
10829
|
+
system: { roles: {
|
|
10830
|
+
primary: { states: giltPrimaryStates },
|
|
10831
|
+
secondary: { states: giltSecondaryStates },
|
|
10832
|
+
outline: { states: giltSecondaryStates },
|
|
10833
|
+
ghost: { states: giltSecondaryStates },
|
|
10834
|
+
accent: { states: giltPrimaryStates }
|
|
10835
|
+
} }
|
|
10836
|
+
});
|
|
10837
|
+
const hairline = {
|
|
10838
|
+
text: "treatment",
|
|
10839
|
+
borderRadius: "rounded-3px",
|
|
10840
|
+
shadow: flatShadow,
|
|
10841
|
+
sizes: {
|
|
10842
|
+
sm: {
|
|
10843
|
+
padding: "9px 16px",
|
|
10844
|
+
fontSize: "text-xs"
|
|
10845
|
+
},
|
|
10846
|
+
md: {
|
|
10847
|
+
padding: "15px 28px",
|
|
10848
|
+
fontSize: "text-13px"
|
|
10849
|
+
},
|
|
10850
|
+
lg: {
|
|
10851
|
+
padding: "15px 28px",
|
|
10852
|
+
fontSize: "text-13px"
|
|
10853
|
+
},
|
|
10854
|
+
xl: {
|
|
10855
|
+
padding: "15px 28px",
|
|
10856
|
+
fontSize: "text-13px"
|
|
10857
|
+
}
|
|
10858
|
+
},
|
|
10859
|
+
typography: {
|
|
10860
|
+
fontWeight: 700,
|
|
10861
|
+
typography: "body",
|
|
10862
|
+
fontSize: "text-13px",
|
|
10863
|
+
letterSpacing: "wide",
|
|
10864
|
+
italic: false,
|
|
10865
|
+
textTransform: "uppercase"
|
|
10866
|
+
},
|
|
10867
|
+
effects: []
|
|
10868
|
+
};
|
|
10869
|
+
const hairlinePrimary = {
|
|
10870
|
+
...hairline,
|
|
10871
|
+
background: {
|
|
10872
|
+
type: "solid",
|
|
10873
|
+
colorToken: "primary"
|
|
10874
|
+
},
|
|
10875
|
+
border: {
|
|
10876
|
+
widthClass: "border",
|
|
10877
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
10878
|
+
}
|
|
10879
|
+
};
|
|
10880
|
+
const hairlineOutline = {
|
|
10881
|
+
...hairline,
|
|
10882
|
+
background: {
|
|
10883
|
+
type: "surface",
|
|
10884
|
+
role: "link"
|
|
10885
|
+
},
|
|
10886
|
+
border: {
|
|
10887
|
+
widthClass: "border",
|
|
10888
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
10889
|
+
}
|
|
10890
|
+
};
|
|
10891
|
+
const hairlineSecondary = {
|
|
10892
|
+
...hairlineOutline,
|
|
10893
|
+
border: {
|
|
10894
|
+
widthClass: "border",
|
|
10895
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
10896
|
+
}
|
|
10897
|
+
};
|
|
10898
|
+
const hairlineFilled = {
|
|
10899
|
+
...hairlineSecondary,
|
|
10900
|
+
background: {
|
|
10901
|
+
type: "solid",
|
|
10902
|
+
colorToken: "accent"
|
|
10903
|
+
}
|
|
10904
|
+
};
|
|
10905
|
+
const hairlinePrimaryStates = states(hairlinePrimary, hairlineOutline, 3);
|
|
10906
|
+
const hairlineSecondaryStates = states(hairlineSecondary, hairlineFilled, 3);
|
|
10907
|
+
const hairlineTabRecipe = defineStaticButtonStyleRecipe({
|
|
10908
|
+
id: "hairline-tab",
|
|
10909
|
+
accessibilityLabel: "Hairline tab",
|
|
10910
|
+
tags,
|
|
10911
|
+
system: { roles: {
|
|
10912
|
+
primary: { states: hairlinePrimaryStates },
|
|
10913
|
+
secondary: { states: hairlineSecondaryStates },
|
|
10914
|
+
outline: { states: hairlineSecondaryStates },
|
|
10915
|
+
ghost: { states: hairlineSecondaryStates },
|
|
10916
|
+
accent: { states: states(hairlineFilled, hairlineSecondary, 3) }
|
|
10917
|
+
} }
|
|
10918
|
+
});
|
|
10919
|
+
const marqueeAccent = {
|
|
10920
|
+
text: "treatment",
|
|
10921
|
+
borderRadius: "rounded-none",
|
|
10922
|
+
shadow: flatShadow,
|
|
10923
|
+
sizes: {
|
|
10924
|
+
sm: {
|
|
10925
|
+
padding: "8px 17px",
|
|
10926
|
+
fontSize: "text-15px"
|
|
10927
|
+
},
|
|
10928
|
+
md: {
|
|
10929
|
+
padding: "14px 25px",
|
|
10930
|
+
fontSize: "text-17px"
|
|
10931
|
+
},
|
|
10932
|
+
lg: {
|
|
10933
|
+
padding: "14px 25px",
|
|
10934
|
+
fontSize: "text-17px"
|
|
10935
|
+
},
|
|
10936
|
+
xl: {
|
|
10937
|
+
padding: "14px 25px",
|
|
10938
|
+
fontSize: "text-17px"
|
|
10939
|
+
}
|
|
10940
|
+
},
|
|
10941
|
+
typography: {
|
|
10942
|
+
fontWeight: 800,
|
|
10943
|
+
typography: "body",
|
|
10944
|
+
fontSize: "text-17px",
|
|
10945
|
+
letterSpacing: "loose",
|
|
10946
|
+
italic: false,
|
|
10947
|
+
textTransform: "uppercase"
|
|
10948
|
+
},
|
|
10949
|
+
effects: [],
|
|
10950
|
+
background: {
|
|
10951
|
+
type: "solid",
|
|
10952
|
+
colorToken: "accent"
|
|
10953
|
+
},
|
|
10954
|
+
border: {
|
|
10955
|
+
widthClass: "border-2",
|
|
10956
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
10957
|
+
}
|
|
10958
|
+
};
|
|
10959
|
+
const marqueePrimary = {
|
|
10960
|
+
...marqueeAccent,
|
|
10961
|
+
background: {
|
|
10962
|
+
type: "solid",
|
|
10963
|
+
colorToken: "primary"
|
|
10964
|
+
},
|
|
10965
|
+
border: {
|
|
10966
|
+
widthClass: "border-2",
|
|
10967
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
10968
|
+
}
|
|
10969
|
+
};
|
|
10970
|
+
const marqueeSecondary = {
|
|
10971
|
+
...marqueeAccent,
|
|
10972
|
+
background: {
|
|
10973
|
+
type: "solid",
|
|
10974
|
+
colorToken: "text"
|
|
10975
|
+
},
|
|
10976
|
+
border: {
|
|
10977
|
+
widthClass: "border-2",
|
|
10978
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("text")
|
|
10979
|
+
}
|
|
10980
|
+
};
|
|
10981
|
+
const marqueePrimaryStates = states(marqueeAccent, marqueePrimary, 4, 3);
|
|
10982
|
+
const marqueeSecondaryStates = states(marqueeSecondary, marqueeAccent, 4, 3);
|
|
10983
|
+
const marqueeRecipe = defineStaticButtonStyleRecipe({
|
|
10984
|
+
id: "marquee",
|
|
10985
|
+
accessibilityLabel: "Marquee",
|
|
10986
|
+
tags,
|
|
10987
|
+
system: { roles: {
|
|
10988
|
+
primary: { states: marqueePrimaryStates },
|
|
10989
|
+
secondary: { states: marqueeSecondaryStates },
|
|
10990
|
+
outline: { states: marqueeSecondaryStates },
|
|
10991
|
+
ghost: { states: marqueeSecondaryStates },
|
|
10992
|
+
accent: { states: marqueePrimaryStates }
|
|
10993
|
+
} }
|
|
10994
|
+
});
|
|
10995
|
+
//#endregion
|
|
10525
10996
|
//#region ../theme-core/src/buttons/styles/recipes/fulcrumRecipe.ts
|
|
10526
10997
|
const fulcrumSizes = {
|
|
10527
10998
|
sm: {
|
|
@@ -11263,7 +11734,10 @@ const BUTTON_STYLE_IDS = [
|
|
|
11263
11734
|
"offset-block",
|
|
11264
11735
|
"ringed-pill",
|
|
11265
11736
|
"square-outline",
|
|
11266
|
-
"fulcrum"
|
|
11737
|
+
"fulcrum",
|
|
11738
|
+
"gilt-slab",
|
|
11739
|
+
"hairline-tab",
|
|
11740
|
+
"marquee"
|
|
11267
11741
|
];
|
|
11268
11742
|
const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
|
|
11269
11743
|
const flatInkHoverTreatmentSchema = z.enum([
|
|
@@ -11300,7 +11774,10 @@ const buttonStyleSelectionSchema = z.discriminatedUnion("styleId", [
|
|
|
11300
11774
|
selectionBranch("offset-block", emptyParametersSchema),
|
|
11301
11775
|
selectionBranch("ringed-pill", emptyParametersSchema),
|
|
11302
11776
|
selectionBranch("square-outline", emptyParametersSchema),
|
|
11303
|
-
selectionBranch("fulcrum", emptyParametersSchema)
|
|
11777
|
+
selectionBranch("fulcrum", emptyParametersSchema),
|
|
11778
|
+
selectionBranch("gilt-slab", emptyParametersSchema),
|
|
11779
|
+
selectionBranch("hairline-tab", emptyParametersSchema),
|
|
11780
|
+
selectionBranch("marquee", emptyParametersSchema)
|
|
11304
11781
|
]);
|
|
11305
11782
|
//#endregion
|
|
11306
11783
|
//#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
|
|
@@ -14816,7 +15293,10 @@ const buttonStyleRecipes = [
|
|
|
14816
15293
|
offsetBlockRecipe,
|
|
14817
15294
|
ringedPillRecipe,
|
|
14818
15295
|
squareOutlineRecipe,
|
|
14819
|
-
fulcrumRecipe
|
|
15296
|
+
fulcrumRecipe,
|
|
15297
|
+
giltSlabRecipe,
|
|
15298
|
+
hairlineTabRecipe,
|
|
15299
|
+
marqueeRecipe
|
|
14820
15300
|
];
|
|
14821
15301
|
const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
|
|
14822
15302
|
function findButtonStyleRecipe(id) {
|
|
@@ -14832,6 +15312,9 @@ function resolveButtonStyleSelection(selection) {
|
|
|
14832
15312
|
case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
|
|
14833
15313
|
case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
|
|
14834
15314
|
case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
|
|
15315
|
+
case "gilt-slab": return resolveButtonStyleRecipe(giltSlabRecipe, selection.parameters);
|
|
15316
|
+
case "hairline-tab": return resolveButtonStyleRecipe(hairlineTabRecipe, selection.parameters);
|
|
15317
|
+
case "marquee": return resolveButtonStyleRecipe(marqueeRecipe, selection.parameters);
|
|
14835
15318
|
case "fulcrum": return resolveButtonStyleRecipe(fulcrumRecipe, selection.parameters);
|
|
14836
15319
|
case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
|
|
14837
15320
|
case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
|
|
@@ -17063,20 +17546,15 @@ const headerSchema = z.object({
|
|
|
17063
17546
|
const footerVariant = z.enum([
|
|
17064
17547
|
"simple",
|
|
17065
17548
|
"columns",
|
|
17066
|
-
"split"
|
|
17067
|
-
|
|
17549
|
+
"split",
|
|
17550
|
+
"centred"
|
|
17551
|
+
]).transform((value) => value === "columns" ? "simple" : value);
|
|
17068
17552
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
17069
17553
|
const footerNavLayoutMode = z.enum([
|
|
17070
17554
|
"stack",
|
|
17071
17555
|
"inline",
|
|
17072
17556
|
"inline-wrap"
|
|
17073
17557
|
]);
|
|
17074
|
-
const footerNavLayoutAlign = z.enum([
|
|
17075
|
-
"start",
|
|
17076
|
-
"center",
|
|
17077
|
-
"end",
|
|
17078
|
-
"space-between"
|
|
17079
|
-
]);
|
|
17080
17558
|
const footerSpacing = z.enum([
|
|
17081
17559
|
"none",
|
|
17082
17560
|
"tight",
|
|
@@ -17085,12 +17563,6 @@ const footerSpacing = z.enum([
|
|
|
17085
17563
|
"relaxed",
|
|
17086
17564
|
"spacious"
|
|
17087
17565
|
]);
|
|
17088
|
-
const footerLogoPlacement = z.enum([
|
|
17089
|
-
"left",
|
|
17090
|
-
"right",
|
|
17091
|
-
"above",
|
|
17092
|
-
"below"
|
|
17093
|
-
]);
|
|
17094
17566
|
const footerLogoSize = z.enum([
|
|
17095
17567
|
"sm",
|
|
17096
17568
|
"md",
|
|
@@ -17131,17 +17603,8 @@ const footerBottomBarSchema = z.object({
|
|
|
17131
17603
|
]).optional()
|
|
17132
17604
|
}).optional()
|
|
17133
17605
|
});
|
|
17134
|
-
const footerNavLayoutSchema = z.object({
|
|
17135
|
-
layout: footerNavLayoutMode.optional(),
|
|
17136
|
-
align: footerNavLayoutAlign.optional(),
|
|
17137
|
-
gapX: footerSpacing.optional(),
|
|
17138
|
-
gapY: footerSpacing.optional(),
|
|
17139
|
-
columns: z.number().int().min(1).max(6).optional()
|
|
17140
|
-
});
|
|
17606
|
+
const footerNavLayoutSchema = z.object({ layout: footerNavLayoutMode.optional() });
|
|
17141
17607
|
const footerLogoSchema = z.object({
|
|
17142
|
-
showLogo: z.boolean().default(true),
|
|
17143
|
-
showLogoText: z.boolean().optional(),
|
|
17144
|
-
placement: footerLogoPlacement.optional(),
|
|
17145
17608
|
size: footerLogoSize.optional(),
|
|
17146
17609
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
17147
17610
|
align: z.enum([
|
|
@@ -17151,15 +17614,8 @@ const footerLogoSchema = z.object({
|
|
|
17151
17614
|
]).optional()
|
|
17152
17615
|
});
|
|
17153
17616
|
const footerSchema = z.object({
|
|
17154
|
-
/**
|
|
17155
|
-
* SDK-only footer rendering mode.
|
|
17156
|
-
*
|
|
17157
|
-
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
17158
|
-
*/
|
|
17159
|
-
mode: footerModeSchema.optional(),
|
|
17160
17617
|
variant: footerVariant,
|
|
17161
17618
|
maxWidth: footerMaxWidth,
|
|
17162
|
-
showLogoText: z.boolean().optional(),
|
|
17163
17619
|
background: headerBackgroundSchema.default({
|
|
17164
17620
|
type: "color",
|
|
17165
17621
|
color: "surface"
|
|
@@ -17342,7 +17798,9 @@ const cardListKnobBlocks = [...cardListFamilyBlocks, "block.event-calendar"];
|
|
|
17342
17798
|
const lookKnobBlocks = {
|
|
17343
17799
|
actionStyle: cardListKnobBlocks,
|
|
17344
17800
|
titleSize: "block.hero",
|
|
17345
|
-
imagePosition: "block.hero",
|
|
17801
|
+
imagePosition: ["block.hero", "block.media-text"],
|
|
17802
|
+
imageShape: "block.media-text",
|
|
17803
|
+
aspectRatio: "block.media-text",
|
|
17346
17804
|
stickerLine: "block.hero",
|
|
17347
17805
|
smallCaption: "block.hero",
|
|
17348
17806
|
candleGlow: "block.hero",
|
|
@@ -17352,7 +17810,11 @@ const lookKnobBlocks = {
|
|
|
17352
17810
|
dates: "block.offerings-preview",
|
|
17353
17811
|
showCapacity: "block.event-calendar",
|
|
17354
17812
|
quoteCount: "block.testimonials",
|
|
17355
|
-
archFrame:
|
|
17813
|
+
archFrame: [
|
|
17814
|
+
"block.testimonials",
|
|
17815
|
+
"block.newsletter-signup",
|
|
17816
|
+
"block.form"
|
|
17817
|
+
],
|
|
17356
17818
|
tilt: "block.testimonials"
|
|
17357
17819
|
};
|
|
17358
17820
|
function isArrangementAppearancePreset(preset) {
|
|
@@ -17379,13 +17841,25 @@ function cardListKnobDefaults(block, arrangement, knobs, defaults) {
|
|
|
17379
17841
|
}
|
|
17380
17842
|
};
|
|
17381
17843
|
}
|
|
17844
|
+
const arrangementLookTargets = {
|
|
17845
|
+
hero: "hero",
|
|
17846
|
+
"feature-cards": "feature-cards",
|
|
17847
|
+
"event-calendar": "events",
|
|
17848
|
+
testimonials: "testimonials",
|
|
17849
|
+
"event-details": "events",
|
|
17850
|
+
"media-text": "media-text",
|
|
17851
|
+
"image-gallery": "image-gallery",
|
|
17852
|
+
"newsletter-signup": "newsletter",
|
|
17853
|
+
form: "contact-form",
|
|
17854
|
+
"body-text": "body-text"
|
|
17855
|
+
};
|
|
17382
17856
|
function defineArrangementLook(id, block, name, arrangement, knobs, input = {}) {
|
|
17383
17857
|
const mode = block === "event-calendar" ? "list" : null;
|
|
17384
17858
|
return {
|
|
17385
17859
|
id: asAppearancePresetId(id),
|
|
17386
17860
|
blockKinds: [`block.${block}`],
|
|
17387
17861
|
label: name,
|
|
17388
|
-
target: block
|
|
17862
|
+
target: arrangementLookTargets[block],
|
|
17389
17863
|
structure: {
|
|
17390
17864
|
kind: "arrangement",
|
|
17391
17865
|
byMode: { [mode ?? "default"]: arrangement },
|
|
@@ -18205,6 +18679,15 @@ const appearancePresets = [
|
|
|
18205
18679
|
eyebrowTreatment: "accent"
|
|
18206
18680
|
}
|
|
18207
18681
|
}),
|
|
18682
|
+
defineArrangementLook("body-text-reading-column", "body-text", "Reading column", "prose", []),
|
|
18683
|
+
defineArrangementLook("form-beside-introduction-arched-panel", "form", "Introduction beside an arched form", "two-column", [], { slotRoles: { panel: "card" } }),
|
|
18684
|
+
defineArrangementLook("newsletter-signup-in-arch", "newsletter-signup", "Signup in an arch", "arch", []),
|
|
18685
|
+
defineArrangementLook("image-gallery-square-tiles", "image-gallery", "Square tiles", "tiles", []),
|
|
18686
|
+
defineArrangementLook("image-gallery-arched-captions", "image-gallery", "Arched photos with captions", "tiles", [], { styleFallback: [id$1("image-gallery-square-tiles")] }),
|
|
18687
|
+
defineArrangementLook("media-text-circle-beside-text", "media-text", "Circle beside the text", "circle-beside", ["imagePosition"], { forcedKnobs: {
|
|
18688
|
+
imageShape: "circle",
|
|
18689
|
+
aspectRatio: "1/1"
|
|
18690
|
+
} }),
|
|
18208
18691
|
defineArrangementLook("hero-photo-beside-text", "hero", "Photo beside the text", "split", heroKnobs, { slotRoles: { sticker: "highlight" } }),
|
|
18209
18692
|
defineArrangementLook("hero-headline-row", "hero", "Big headline, then text and photo", "headline-row", heroKnobs, {
|
|
18210
18693
|
slotRoles: { sticker: "highlight" },
|
|
@@ -18790,6 +19273,49 @@ function requireThemeColorToken$1(value) {
|
|
|
18790
19273
|
return token;
|
|
18791
19274
|
}
|
|
18792
19275
|
//#endregion
|
|
19276
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
19277
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
19278
|
+
function headerRootPaint(header) {
|
|
19279
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
19280
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
19281
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
19282
|
+
}
|
|
19283
|
+
//#endregion
|
|
19284
|
+
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
19285
|
+
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
19286
|
+
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
19287
|
+
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
19288
|
+
function parseSiteChromeBackgroundColorToken(value) {
|
|
19289
|
+
const token = parseBackgroundAppearanceColorToken(value);
|
|
19290
|
+
return token ? token : null;
|
|
19291
|
+
}
|
|
19292
|
+
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
19293
|
+
return tokenNames.flatMap((name) => {
|
|
19294
|
+
const token = parseSiteChromeBackgroundColorToken(name);
|
|
19295
|
+
return token ? [token] : [];
|
|
19296
|
+
});
|
|
19297
|
+
}
|
|
19298
|
+
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
19299
|
+
const token = parseSiteChromeBackgroundColorToken(value);
|
|
19300
|
+
if (token === null) {
|
|
19301
|
+
ctx.addIssue({
|
|
19302
|
+
code: "custom",
|
|
19303
|
+
message: "Unknown site chrome background colour token"
|
|
19304
|
+
});
|
|
19305
|
+
return z.NEVER;
|
|
19306
|
+
}
|
|
19307
|
+
return token;
|
|
19308
|
+
});
|
|
19309
|
+
const siteChromeBackgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
19310
|
+
kind: z.literal("color"),
|
|
19311
|
+
token: backgroundColorTokenSchema
|
|
19312
|
+
}).strict()]);
|
|
19313
|
+
z.object({
|
|
19314
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
19315
|
+
navigationLayout: z.enum(["inline-wrap", "stack"])
|
|
19316
|
+
}).strict();
|
|
19317
|
+
z.object({ background: siteChromeBackgroundOverrideSchema }).strict();
|
|
19318
|
+
//#endregion
|
|
18793
19319
|
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
18794
19320
|
const defaultHeaderBrandPreferences = {
|
|
18795
19321
|
brandDisplay: "auto",
|
|
@@ -18950,6 +19476,9 @@ function fallbackEndsAtOffer(entry, mode, style, catalogue, visited) {
|
|
|
18950
19476
|
appearancePresets.filter(isArrangementAppearancePreset);
|
|
18951
19477
|
/** Closed structural hooks shared by block arrangements and bounded skins. */
|
|
18952
19478
|
const arrangementSlotNames = [
|
|
19479
|
+
"contact",
|
|
19480
|
+
"social",
|
|
19481
|
+
"base",
|
|
18953
19482
|
"section",
|
|
18954
19483
|
"stack",
|
|
18955
19484
|
"inline",
|
|
@@ -19036,6 +19565,238 @@ function validateOfferKnobs(style, catalogue) {
|
|
|
19036
19565
|
});
|
|
19037
19566
|
}
|
|
19038
19567
|
//#endregion
|
|
19568
|
+
//#region ../theme-core/src/site-styles/footerLookDefaults.ts
|
|
19569
|
+
const defaultFooterLookRecipes = {
|
|
19570
|
+
"footer-centred-name": {
|
|
19571
|
+
arrangement: "centred",
|
|
19572
|
+
ground: {
|
|
19573
|
+
kind: "token",
|
|
19574
|
+
token: "surface"
|
|
19575
|
+
},
|
|
19576
|
+
nav: {
|
|
19577
|
+
weight: "regular",
|
|
19578
|
+
colorToken: "text",
|
|
19579
|
+
hoverColorToken: "primary",
|
|
19580
|
+
typography: "body"
|
|
19581
|
+
},
|
|
19582
|
+
legal: {
|
|
19583
|
+
kind: "separate",
|
|
19584
|
+
bar: null
|
|
19585
|
+
},
|
|
19586
|
+
brandAlign: "center"
|
|
19587
|
+
},
|
|
19588
|
+
"footer-links-row": {
|
|
19589
|
+
arrangement: "simple",
|
|
19590
|
+
ground: {
|
|
19591
|
+
kind: "token",
|
|
19592
|
+
token: "surface"
|
|
19593
|
+
},
|
|
19594
|
+
nav: {
|
|
19595
|
+
weight: "regular",
|
|
19596
|
+
colorToken: "text",
|
|
19597
|
+
hoverColorToken: "primary",
|
|
19598
|
+
typography: "body"
|
|
19599
|
+
},
|
|
19600
|
+
legal: { kind: "integrated" },
|
|
19601
|
+
brandAlign: "start"
|
|
19602
|
+
}
|
|
19603
|
+
};
|
|
19604
|
+
/** A whole authored recipe replaces the default; facets are never deep-merged. */
|
|
19605
|
+
function resolveFooterLookRecipe(style, id) {
|
|
19606
|
+
return style?.footerLookRecipes?.[id] ?? defaultFooterLookRecipes[id];
|
|
19607
|
+
}
|
|
19608
|
+
//#endregion
|
|
19609
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
19610
|
+
/**
|
|
19611
|
+
* Built-in nav link style presets
|
|
19612
|
+
*
|
|
19613
|
+
* Each preset uses composable effects to achieve its look.
|
|
19614
|
+
*/
|
|
19615
|
+
const NAV_LINK_PRESETS = {
|
|
19616
|
+
/**
|
|
19617
|
+
* Minimal - subtle color change on hover
|
|
19618
|
+
*/
|
|
19619
|
+
minimal: {
|
|
19620
|
+
name: "Minimal",
|
|
19621
|
+
typography: "body",
|
|
19622
|
+
fontWeight: "medium",
|
|
19623
|
+
textTransform: "none",
|
|
19624
|
+
italic: false,
|
|
19625
|
+
colorToken: "text",
|
|
19626
|
+
hoverColorToken: "primary",
|
|
19627
|
+
padding: "none",
|
|
19628
|
+
borderRadius: "none",
|
|
19629
|
+
effects: { hover: [{
|
|
19630
|
+
effectId: "text-color-change",
|
|
19631
|
+
options: { hoverColorToken: "primary" }
|
|
19632
|
+
}] }
|
|
19633
|
+
},
|
|
19634
|
+
/**
|
|
19635
|
+
* Underline - static underline appears on hover
|
|
19636
|
+
*/
|
|
19637
|
+
underline: {
|
|
19638
|
+
name: "Underline",
|
|
19639
|
+
typography: "body",
|
|
19640
|
+
fontWeight: "medium",
|
|
19641
|
+
textTransform: "none",
|
|
19642
|
+
italic: false,
|
|
19643
|
+
colorToken: "text",
|
|
19644
|
+
padding: "none",
|
|
19645
|
+
borderRadius: "none",
|
|
19646
|
+
effects: { hover: [{
|
|
19647
|
+
effectId: "nav-underline",
|
|
19648
|
+
options: { style: "static" }
|
|
19649
|
+
}] }
|
|
19650
|
+
},
|
|
19651
|
+
/**
|
|
19652
|
+
* Underline Grow - animated underline grows from center on hover
|
|
19653
|
+
*/
|
|
19654
|
+
"underline-grow": {
|
|
19655
|
+
name: "Underline Grow",
|
|
19656
|
+
typography: "body",
|
|
19657
|
+
fontWeight: "medium",
|
|
19658
|
+
textTransform: "none",
|
|
19659
|
+
italic: false,
|
|
19660
|
+
colorToken: "text",
|
|
19661
|
+
padding: "none",
|
|
19662
|
+
borderRadius: "none",
|
|
19663
|
+
effects: { hover: [{
|
|
19664
|
+
effectId: "nav-underline",
|
|
19665
|
+
options: { style: "grow" }
|
|
19666
|
+
}] }
|
|
19667
|
+
},
|
|
19668
|
+
/**
|
|
19669
|
+
* Capsule - pill-shaped background on hover
|
|
19670
|
+
*/
|
|
19671
|
+
capsule: {
|
|
19672
|
+
name: "Capsule",
|
|
19673
|
+
typography: "body",
|
|
19674
|
+
fontWeight: "medium",
|
|
19675
|
+
textTransform: "none",
|
|
19676
|
+
italic: false,
|
|
19677
|
+
colorToken: "text",
|
|
19678
|
+
padding: "compact",
|
|
19679
|
+
borderRadius: "full",
|
|
19680
|
+
effects: {
|
|
19681
|
+
hover: [{
|
|
19682
|
+
effectId: "background-on-hover-alpha",
|
|
19683
|
+
options: {
|
|
19684
|
+
colorToken: "primary",
|
|
19685
|
+
opacity: 10
|
|
19686
|
+
}
|
|
19687
|
+
}],
|
|
19688
|
+
active: [{
|
|
19689
|
+
effectId: "background-on-hover-alpha",
|
|
19690
|
+
options: {
|
|
19691
|
+
colorToken: "primary",
|
|
19692
|
+
opacity: 15
|
|
19693
|
+
}
|
|
19694
|
+
}]
|
|
19695
|
+
}
|
|
19696
|
+
},
|
|
19697
|
+
/**
|
|
19698
|
+
* Solid - solid background color on hover
|
|
19699
|
+
*/
|
|
19700
|
+
solid: {
|
|
19701
|
+
name: "Solid",
|
|
19702
|
+
typography: "body",
|
|
19703
|
+
fontWeight: "medium",
|
|
19704
|
+
textTransform: "none",
|
|
19705
|
+
italic: false,
|
|
19706
|
+
colorToken: "text",
|
|
19707
|
+
padding: "compact",
|
|
19708
|
+
borderRadius: "none",
|
|
19709
|
+
effects: {
|
|
19710
|
+
hover: [{
|
|
19711
|
+
effectId: "background-on-hover",
|
|
19712
|
+
options: {
|
|
19713
|
+
colorToken: "primary",
|
|
19714
|
+
textColorToken: "primaryForeground"
|
|
19715
|
+
}
|
|
19716
|
+
}],
|
|
19717
|
+
active: [{
|
|
19718
|
+
effectId: "background-on-hover",
|
|
19719
|
+
options: {
|
|
19720
|
+
colorToken: "primary",
|
|
19721
|
+
textColorToken: "primaryForeground"
|
|
19722
|
+
}
|
|
19723
|
+
}]
|
|
19724
|
+
}
|
|
19725
|
+
},
|
|
19726
|
+
/**
|
|
19727
|
+
* Scale - gentle scale-up on hover
|
|
19728
|
+
*/
|
|
19729
|
+
scale: {
|
|
19730
|
+
name: "Scale",
|
|
19731
|
+
typography: "body",
|
|
19732
|
+
fontWeight: "medium",
|
|
19733
|
+
textTransform: "none",
|
|
19734
|
+
italic: false,
|
|
19735
|
+
colorToken: "text",
|
|
19736
|
+
padding: "none",
|
|
19737
|
+
borderRadius: "none",
|
|
19738
|
+
effects: { hover: [{
|
|
19739
|
+
effectId: "scale-up",
|
|
19740
|
+
options: { scale: 1.05 }
|
|
19741
|
+
}] }
|
|
19742
|
+
},
|
|
19743
|
+
/**
|
|
19744
|
+
* Frosted - semi-transparent glass-like background
|
|
19745
|
+
*/
|
|
19746
|
+
frosted: {
|
|
19747
|
+
name: "Frosted",
|
|
19748
|
+
typography: "body",
|
|
19749
|
+
fontWeight: "medium",
|
|
19750
|
+
textTransform: "none",
|
|
19751
|
+
italic: false,
|
|
19752
|
+
colorToken: "text",
|
|
19753
|
+
padding: "compact",
|
|
19754
|
+
borderRadius: "md",
|
|
19755
|
+
effects: {
|
|
19756
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
19757
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
19758
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
19759
|
+
}
|
|
19760
|
+
}
|
|
19761
|
+
};
|
|
19762
|
+
/**
|
|
19763
|
+
* Get a nav link style preset by ID
|
|
19764
|
+
*/
|
|
19765
|
+
function getNavLinkPreset(presetId) {
|
|
19766
|
+
return NAV_LINK_PRESETS[presetId];
|
|
19767
|
+
}
|
|
19768
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
19769
|
+
//#endregion
|
|
19770
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
19771
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
19772
|
+
if (!footer) return null;
|
|
19773
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
19774
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
19775
|
+
if (!basePreset) return null;
|
|
19776
|
+
return {
|
|
19777
|
+
...basePreset,
|
|
19778
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
19779
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
19780
|
+
};
|
|
19781
|
+
}
|
|
19782
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
19783
|
+
if (!footer) return {};
|
|
19784
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
19785
|
+
return {
|
|
19786
|
+
text: footer.background?.textColor ?? (footer.variant === "centred" ? "text" : void 0),
|
|
19787
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
19788
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
19789
|
+
};
|
|
19790
|
+
}
|
|
19791
|
+
//#endregion
|
|
19792
|
+
//#region ../theme-core/src/site-styles/footerLookRecipe.ts
|
|
19793
|
+
/** Reject undeclared references when the curated catalogue is loaded, before rendering. */
|
|
19794
|
+
function validateFooterRecipeSurfaces(style, recipe) {
|
|
19795
|
+
[recipe.ground, ...recipe.legal.kind === "separate" && recipe.legal.bar ? [recipe.legal.bar.background] : []].forEach((ground) => {
|
|
19796
|
+
if (ground.kind === "style-surface" && (style.looks.kind !== "offers" || !style.looks.surfaces[ground.surface])) throw new Error(`Undeclared footer surface: ${ground.surface}`);
|
|
19797
|
+
});
|
|
19798
|
+
}
|
|
19799
|
+
//#endregion
|
|
19039
19800
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
19040
19801
|
/**
|
|
19041
19802
|
* Reusable accordion "looks" for curated site styles.
|
|
@@ -19763,52 +20524,14 @@ defineLookOptionGroup({
|
|
|
19763
20524
|
function asFooterLookId(value) {
|
|
19764
20525
|
return value;
|
|
19765
20526
|
}
|
|
19766
|
-
function quietFooterLinks(theme) {
|
|
19767
|
-
return {
|
|
19768
|
-
...theme.footer,
|
|
19769
|
-
navStyle: "minimal",
|
|
19770
|
-
navWeight: "regular",
|
|
19771
|
-
navColor: "text",
|
|
19772
|
-
navLinkStyle: {
|
|
19773
|
-
typography: "body",
|
|
19774
|
-
fontWeight: "regular",
|
|
19775
|
-
textTransform: "none",
|
|
19776
|
-
italic: false,
|
|
19777
|
-
colorToken: "text",
|
|
19778
|
-
hoverColorToken: "primary",
|
|
19779
|
-
padding: "none",
|
|
19780
|
-
borderRadius: "none"
|
|
19781
|
-
}
|
|
19782
|
-
};
|
|
19783
|
-
}
|
|
19784
|
-
function emphasizedFooterLinks(theme) {
|
|
19785
|
-
return {
|
|
19786
|
-
...theme.footer,
|
|
19787
|
-
navStyle: "minimal",
|
|
19788
|
-
navWeight: "medium",
|
|
19789
|
-
navColor: "text",
|
|
19790
|
-
navLinkStyle: {
|
|
19791
|
-
typography: "body",
|
|
19792
|
-
fontWeight: "medium",
|
|
19793
|
-
textTransform: "none",
|
|
19794
|
-
italic: false,
|
|
19795
|
-
colorToken: "text",
|
|
19796
|
-
hoverColorToken: "primary",
|
|
19797
|
-
padding: "none",
|
|
19798
|
-
borderRadius: "none"
|
|
19799
|
-
}
|
|
19800
|
-
};
|
|
19801
|
-
}
|
|
19802
20527
|
const footerLookCatalog = defineExactCatalog()([{
|
|
19803
|
-
id: asFooterLookId("footer-links-
|
|
19804
|
-
label: "
|
|
19805
|
-
description: "
|
|
19806
|
-
compile: quietFooterLinks
|
|
20528
|
+
id: asFooterLookId("footer-links-row"),
|
|
20529
|
+
label: "Links in a row",
|
|
20530
|
+
description: "Your links in a row, with the other footer sections in columns beside them."
|
|
19807
20531
|
}, {
|
|
19808
|
-
id: asFooterLookId("footer-
|
|
19809
|
-
label: "
|
|
19810
|
-
description: "
|
|
19811
|
-
compile: emphasizedFooterLinks
|
|
20532
|
+
id: asFooterLookId("footer-centred-name"),
|
|
20533
|
+
label: "Centred name, links beneath",
|
|
20534
|
+
description: "Your site name centred, with your links, contact details and social links beneath it."
|
|
19812
20535
|
}]);
|
|
19813
20536
|
new Map(footerLookCatalog.map((look) => [look.id, look]));
|
|
19814
20537
|
//#endregion
|
|
@@ -21225,6 +21948,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
21225
21948
|
recommendedAppearancePresetIds
|
|
21226
21949
|
},
|
|
21227
21950
|
headerCuration: headerCurationBySiteStyle[input.id],
|
|
21951
|
+
footerLookRecipes: input.footerLookRecipes,
|
|
21228
21952
|
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
|
|
21229
21953
|
buttonStyleChoices: input.buttonStyleChoices,
|
|
21230
21954
|
paletteRecommendations: input.paletteRecommendations,
|
|
@@ -21710,7 +22434,11 @@ const lanternLooks = {
|
|
|
21710
22434
|
margin: "40px"
|
|
21711
22435
|
},
|
|
21712
22436
|
fontLoading: {
|
|
21713
|
-
extraBodyFontWeights: [
|
|
22437
|
+
extraBodyFontWeights: [
|
|
22438
|
+
500,
|
|
22439
|
+
700,
|
|
22440
|
+
800
|
|
22441
|
+
],
|
|
21714
22442
|
italicBodyFontWeights: [400]
|
|
21715
22443
|
},
|
|
21716
22444
|
surfaces: {
|
|
@@ -21760,6 +22488,38 @@ const lanternLooks = {
|
|
|
21760
22488
|
]
|
|
21761
22489
|
},
|
|
21762
22490
|
offers: [
|
|
22491
|
+
{
|
|
22492
|
+
id: id("body-text-reading-column"),
|
|
22493
|
+
treatment: "reading-column",
|
|
22494
|
+
roleMap: lanternRoles
|
|
22495
|
+
},
|
|
22496
|
+
{
|
|
22497
|
+
id: id("form-beside-introduction-arched-panel"),
|
|
22498
|
+
treatment: "arched-panel",
|
|
22499
|
+
addKnobs: ["archFrame"],
|
|
22500
|
+
roleMap: lanternRoles
|
|
22501
|
+
},
|
|
22502
|
+
{
|
|
22503
|
+
id: id("newsletter-signup-in-arch"),
|
|
22504
|
+
treatment: "signup-arch",
|
|
22505
|
+
addKnobs: ["archFrame"],
|
|
22506
|
+
roleMap: lanternRoles
|
|
22507
|
+
},
|
|
22508
|
+
{
|
|
22509
|
+
id: id("image-gallery-square-tiles"),
|
|
22510
|
+
treatment: "square-tiles",
|
|
22511
|
+
roleMap: lanternRoles
|
|
22512
|
+
},
|
|
22513
|
+
{
|
|
22514
|
+
id: id("image-gallery-arched-captions"),
|
|
22515
|
+
treatment: "arched-captions",
|
|
22516
|
+
roleMap: lanternRoles
|
|
22517
|
+
},
|
|
22518
|
+
{
|
|
22519
|
+
id: id("media-text-circle-beside-text"),
|
|
22520
|
+
treatment: "circle-beside",
|
|
22521
|
+
roleMap: lanternRoles
|
|
22522
|
+
},
|
|
21763
22523
|
{
|
|
21764
22524
|
id: id("event-details-panel"),
|
|
21765
22525
|
treatment: "quiet",
|
|
@@ -22198,7 +22958,7 @@ const curatedSiteStyles = [
|
|
|
22198
22958
|
"faq-contained-help",
|
|
22199
22959
|
"contact-form-panel"
|
|
22200
22960
|
],
|
|
22201
|
-
recommendedFooterLookIds: ["footer-links-
|
|
22961
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22202
22962
|
buttonStyleChoices: [
|
|
22203
22963
|
buttonChoice("soft-pill"),
|
|
22204
22964
|
buttonChoice("pebble"),
|
|
@@ -22317,7 +23077,7 @@ const curatedSiteStyles = [
|
|
|
22317
23077
|
"testimonials-non-carded",
|
|
22318
23078
|
"contact-form-panel"
|
|
22319
23079
|
],
|
|
22320
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23080
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22321
23081
|
buttonStyleChoices: [
|
|
22322
23082
|
buttonChoice("earth-pill"),
|
|
22323
23083
|
buttonChoice("soft-pill"),
|
|
@@ -22372,7 +23132,41 @@ const curatedSiteStyles = [
|
|
|
22372
23132
|
"testimonials-brand-statement-cards",
|
|
22373
23133
|
"contact-form-panel"
|
|
22374
23134
|
],
|
|
22375
|
-
|
|
23135
|
+
footerLookRecipes: { "footer-links-row": {
|
|
23136
|
+
arrangement: "split",
|
|
23137
|
+
ground: {
|
|
23138
|
+
kind: "token",
|
|
23139
|
+
token: "primary-800"
|
|
23140
|
+
},
|
|
23141
|
+
nav: {
|
|
23142
|
+
weight: "medium",
|
|
23143
|
+
colorToken: "primaryForeground",
|
|
23144
|
+
hoverColorToken: "secondary",
|
|
23145
|
+
typography: "body"
|
|
23146
|
+
},
|
|
23147
|
+
legal: {
|
|
23148
|
+
kind: "separate",
|
|
23149
|
+
bar: {
|
|
23150
|
+
fullBleed: true,
|
|
23151
|
+
background: {
|
|
23152
|
+
kind: "token",
|
|
23153
|
+
token: "primary-900"
|
|
23154
|
+
},
|
|
23155
|
+
textColor: "primaryForeground",
|
|
23156
|
+
textAlign: "center",
|
|
23157
|
+
paddingY: "compact",
|
|
23158
|
+
paddingX: "default",
|
|
23159
|
+
borderTop: { width: "none" }
|
|
23160
|
+
},
|
|
23161
|
+
linkStyle: {
|
|
23162
|
+
colorToken: "secondary",
|
|
23163
|
+
decorationColorToken: "secondary"
|
|
23164
|
+
}
|
|
23165
|
+
},
|
|
23166
|
+
brandAlign: "start",
|
|
23167
|
+
brandLogoSize: "sm"
|
|
23168
|
+
} },
|
|
23169
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22376
23170
|
buttonStyleChoices: [
|
|
22377
23171
|
buttonChoice("showtime-pill"),
|
|
22378
23172
|
buttonChoice("confident-chip"),
|
|
@@ -22443,7 +23237,7 @@ const curatedSiteStyles = [
|
|
|
22443
23237
|
"testimonials-statement-cards",
|
|
22444
23238
|
"contact-form-panel"
|
|
22445
23239
|
],
|
|
22446
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23240
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22447
23241
|
buttonStyleChoices: [
|
|
22448
23242
|
buttonChoice("ornate-ritual"),
|
|
22449
23243
|
buttonChoice("joy-stamp"),
|
|
@@ -22490,7 +23284,22 @@ const curatedSiteStyles = [
|
|
|
22490
23284
|
} }
|
|
22491
23285
|
},
|
|
22492
23286
|
recommendedAppearancePresetIds: ["feature-cards-bold-colors", "testimonials-statement-cards"],
|
|
22493
|
-
|
|
23287
|
+
footerLookRecipes: { "footer-links-row": {
|
|
23288
|
+
arrangement: "simple",
|
|
23289
|
+
ground: {
|
|
23290
|
+
kind: "token",
|
|
23291
|
+
token: "surface"
|
|
23292
|
+
},
|
|
23293
|
+
nav: {
|
|
23294
|
+
weight: "medium",
|
|
23295
|
+
colorToken: "text",
|
|
23296
|
+
hoverColorToken: "primary",
|
|
23297
|
+
typography: "body"
|
|
23298
|
+
},
|
|
23299
|
+
legal: { kind: "integrated" },
|
|
23300
|
+
brandAlign: "start"
|
|
23301
|
+
} },
|
|
23302
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22494
23303
|
buttonStyleChoices: [
|
|
22495
23304
|
buttonChoice("joy-stamp"),
|
|
22496
23305
|
buttonChoice("ink-stamp"),
|
|
@@ -22542,7 +23351,7 @@ const curatedSiteStyles = [
|
|
|
22542
23351
|
},
|
|
22543
23352
|
testimonialQuote: serifDisplayQuote
|
|
22544
23353
|
},
|
|
22545
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23354
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22546
23355
|
buttonStyleChoices: [
|
|
22547
23356
|
buttonChoice("fulcrum"),
|
|
22548
23357
|
buttonChoice("editorial-link"),
|
|
@@ -22619,7 +23428,7 @@ const curatedSiteStyles = [
|
|
|
22619
23428
|
"faq-base-accordion",
|
|
22620
23429
|
"booking-brand-band"
|
|
22621
23430
|
],
|
|
22622
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23431
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22623
23432
|
buttonStyleChoices: [
|
|
22624
23433
|
buttonChoice("quiet-arrow", void 0, { secondaryTreatment: "solid-accent" }),
|
|
22625
23434
|
buttonChoice("flat-ink"),
|
|
@@ -22657,7 +23466,22 @@ const curatedSiteStyles = [
|
|
|
22657
23466
|
accordions: boldBorderedAccordionSystem,
|
|
22658
23467
|
testimonialQuote: accentGlyphQuote
|
|
22659
23468
|
},
|
|
22660
|
-
|
|
23469
|
+
footerLookRecipes: { "footer-links-row": {
|
|
23470
|
+
arrangement: "simple",
|
|
23471
|
+
ground: {
|
|
23472
|
+
kind: "token",
|
|
23473
|
+
token: "surface"
|
|
23474
|
+
},
|
|
23475
|
+
nav: {
|
|
23476
|
+
weight: "medium",
|
|
23477
|
+
colorToken: "text",
|
|
23478
|
+
hoverColorToken: "primary",
|
|
23479
|
+
typography: "body"
|
|
23480
|
+
},
|
|
23481
|
+
legal: { kind: "integrated" },
|
|
23482
|
+
brandAlign: "start"
|
|
23483
|
+
} },
|
|
23484
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22661
23485
|
buttonStyleChoices: [
|
|
22662
23486
|
buttonChoice("offset-block"),
|
|
22663
23487
|
buttonChoice("ink-stamp"),
|
|
@@ -22696,8 +23520,29 @@ const curatedSiteStyles = [
|
|
|
22696
23520
|
accordions: warmInsetAccordionSystem,
|
|
22697
23521
|
testimonialQuote: serifDisplayQuote
|
|
22698
23522
|
},
|
|
22699
|
-
|
|
23523
|
+
footerLookRecipes: { "footer-centred-name": {
|
|
23524
|
+
arrangement: "centred",
|
|
23525
|
+
ground: {
|
|
23526
|
+
kind: "style-surface",
|
|
23527
|
+
surface: "deep"
|
|
23528
|
+
},
|
|
23529
|
+
nav: {
|
|
23530
|
+
weight: "regular",
|
|
23531
|
+
colorToken: "text",
|
|
23532
|
+
hoverColorToken: "primary",
|
|
23533
|
+
typography: "heading"
|
|
23534
|
+
},
|
|
23535
|
+
legal: {
|
|
23536
|
+
kind: "separate",
|
|
23537
|
+
bar: null
|
|
23538
|
+
},
|
|
23539
|
+
brandAlign: "center"
|
|
23540
|
+
} },
|
|
23541
|
+
recommendedFooterLookIds: ["footer-centred-name", "footer-links-row"],
|
|
22700
23542
|
buttonStyleChoices: [
|
|
23543
|
+
buttonChoice("gilt-slab"),
|
|
23544
|
+
buttonChoice("hairline-tab"),
|
|
23545
|
+
buttonChoice("marquee"),
|
|
22701
23546
|
buttonChoice("ringed-pill"),
|
|
22702
23547
|
buttonChoice("earth-pill"),
|
|
22703
23548
|
buttonChoice("editorial-link")
|
|
@@ -22732,7 +23577,7 @@ const curatedSiteStyles = [
|
|
|
22732
23577
|
accordions: editorialDividedAccordionSystem,
|
|
22733
23578
|
testimonialQuote: serifDisplayQuote
|
|
22734
23579
|
},
|
|
22735
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23580
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22736
23581
|
buttonStyleChoices: [
|
|
22737
23582
|
buttonChoice("flat-ink", void 0, { corners: "square" }),
|
|
22738
23583
|
buttonChoice("editorial-link"),
|
|
@@ -22760,6 +23605,7 @@ function curatedStyleTemplate(input) {
|
|
|
22760
23605
|
}
|
|
22761
23606
|
curatedSiteStyles.forEach((style) => {
|
|
22762
23607
|
if (style.looks.kind === "offers") validateLookFallbacks(style.looks);
|
|
23608
|
+
(/* @__PURE__ */ new Set([...Object.values(style.footerLookRecipes ?? {}), ...style.recommendedFooterLookIds.map((id) => resolveFooterLookRecipe(style, id))])).forEach((recipe) => validateFooterRecipeSurfaces(style, recipe));
|
|
22763
23609
|
});
|
|
22764
23610
|
//#endregion
|
|
22765
23611
|
//#region ../theme-core/src/site-styles/effectiveArrangement.ts
|
|
@@ -22835,29 +23681,6 @@ const blockDesignFallback = {
|
|
|
22835
23681
|
};
|
|
22836
23682
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
22837
23683
|
//#endregion
|
|
22838
|
-
//#region ../theme-core/src/header/rootPaint.ts
|
|
22839
|
-
/** The nav container takes precedence when a floating header also has one. */
|
|
22840
|
-
function headerRootPaint(header) {
|
|
22841
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
22842
|
-
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
22843
|
-
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
22844
|
-
}
|
|
22845
|
-
//#endregion
|
|
22846
|
-
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
22847
|
-
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
22848
|
-
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
22849
|
-
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
22850
|
-
function parseSiteChromeBackgroundColorToken(value) {
|
|
22851
|
-
const token = parseBackgroundAppearanceColorToken(value);
|
|
22852
|
-
return token ? token : null;
|
|
22853
|
-
}
|
|
22854
|
-
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
22855
|
-
return tokenNames.flatMap((name) => {
|
|
22856
|
-
const token = parseSiteChromeBackgroundColorToken(name);
|
|
22857
|
-
return token ? [token] : [];
|
|
22858
|
-
});
|
|
22859
|
-
}
|
|
22860
|
-
//#endregion
|
|
22861
23684
|
//#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
|
|
22862
23685
|
const headerNavTypographyPreferenceValues = [
|
|
22863
23686
|
"inherit",
|
|
@@ -22973,21 +23796,6 @@ z.object({
|
|
|
22973
23796
|
}).strict();
|
|
22974
23797
|
//#endregion
|
|
22975
23798
|
//#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
|
|
22976
|
-
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
22977
|
-
const token = parseSiteChromeBackgroundColorToken(value);
|
|
22978
|
-
if (token === null) {
|
|
22979
|
-
ctx.addIssue({
|
|
22980
|
-
code: "custom",
|
|
22981
|
-
message: "Unknown site chrome background colour token"
|
|
22982
|
-
});
|
|
22983
|
-
return z.NEVER;
|
|
22984
|
-
}
|
|
22985
|
-
return token;
|
|
22986
|
-
});
|
|
22987
|
-
const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
22988
|
-
kind: z.literal("color"),
|
|
22989
|
-
token: backgroundColorTokenSchema
|
|
22990
|
-
}).strict()]);
|
|
22991
23799
|
const logoTextIntentSchema = z.object({
|
|
22992
23800
|
mobileMaxWidth: z.enum([
|
|
22993
23801
|
"xs",
|
|
@@ -23013,7 +23821,7 @@ const headerPreferencesShape = {
|
|
|
23013
23821
|
navFontRole: z.enum(headerNavTypographyPreferenceValues),
|
|
23014
23822
|
navTextSize: z.enum(headerNavFontSizePreferenceValues),
|
|
23015
23823
|
interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
|
|
23016
|
-
background:
|
|
23824
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
23017
23825
|
structure: structureSchema
|
|
23018
23826
|
};
|
|
23019
23827
|
z.object(headerPreferencesShape).strict();
|
|
@@ -23022,167 +23830,6 @@ z.object(headerPreferencesShape).omit({
|
|
|
23022
23830
|
structure: true
|
|
23023
23831
|
}).strict();
|
|
23024
23832
|
//#endregion
|
|
23025
|
-
//#region ../theme-core/src/navigation/presets.ts
|
|
23026
|
-
/**
|
|
23027
|
-
* Built-in nav link style presets
|
|
23028
|
-
*
|
|
23029
|
-
* Each preset uses composable effects to achieve its look.
|
|
23030
|
-
*/
|
|
23031
|
-
const NAV_LINK_PRESETS = {
|
|
23032
|
-
/**
|
|
23033
|
-
* Minimal - subtle color change on hover
|
|
23034
|
-
*/
|
|
23035
|
-
minimal: {
|
|
23036
|
-
name: "Minimal",
|
|
23037
|
-
typography: "body",
|
|
23038
|
-
fontWeight: "medium",
|
|
23039
|
-
textTransform: "none",
|
|
23040
|
-
italic: false,
|
|
23041
|
-
colorToken: "text",
|
|
23042
|
-
hoverColorToken: "primary",
|
|
23043
|
-
padding: "none",
|
|
23044
|
-
borderRadius: "none",
|
|
23045
|
-
effects: { hover: [{
|
|
23046
|
-
effectId: "text-color-change",
|
|
23047
|
-
options: { hoverColorToken: "primary" }
|
|
23048
|
-
}] }
|
|
23049
|
-
},
|
|
23050
|
-
/**
|
|
23051
|
-
* Underline - static underline appears on hover
|
|
23052
|
-
*/
|
|
23053
|
-
underline: {
|
|
23054
|
-
name: "Underline",
|
|
23055
|
-
typography: "body",
|
|
23056
|
-
fontWeight: "medium",
|
|
23057
|
-
textTransform: "none",
|
|
23058
|
-
italic: false,
|
|
23059
|
-
colorToken: "text",
|
|
23060
|
-
padding: "none",
|
|
23061
|
-
borderRadius: "none",
|
|
23062
|
-
effects: { hover: [{
|
|
23063
|
-
effectId: "nav-underline",
|
|
23064
|
-
options: { style: "static" }
|
|
23065
|
-
}] }
|
|
23066
|
-
},
|
|
23067
|
-
/**
|
|
23068
|
-
* Underline Grow - animated underline grows from center on hover
|
|
23069
|
-
*/
|
|
23070
|
-
"underline-grow": {
|
|
23071
|
-
name: "Underline Grow",
|
|
23072
|
-
typography: "body",
|
|
23073
|
-
fontWeight: "medium",
|
|
23074
|
-
textTransform: "none",
|
|
23075
|
-
italic: false,
|
|
23076
|
-
colorToken: "text",
|
|
23077
|
-
padding: "none",
|
|
23078
|
-
borderRadius: "none",
|
|
23079
|
-
effects: { hover: [{
|
|
23080
|
-
effectId: "nav-underline",
|
|
23081
|
-
options: { style: "grow" }
|
|
23082
|
-
}] }
|
|
23083
|
-
},
|
|
23084
|
-
/**
|
|
23085
|
-
* Capsule - pill-shaped background on hover
|
|
23086
|
-
*/
|
|
23087
|
-
capsule: {
|
|
23088
|
-
name: "Capsule",
|
|
23089
|
-
typography: "body",
|
|
23090
|
-
fontWeight: "medium",
|
|
23091
|
-
textTransform: "none",
|
|
23092
|
-
italic: false,
|
|
23093
|
-
colorToken: "text",
|
|
23094
|
-
padding: "compact",
|
|
23095
|
-
borderRadius: "full",
|
|
23096
|
-
effects: {
|
|
23097
|
-
hover: [{
|
|
23098
|
-
effectId: "background-on-hover-alpha",
|
|
23099
|
-
options: {
|
|
23100
|
-
colorToken: "primary",
|
|
23101
|
-
opacity: 10
|
|
23102
|
-
}
|
|
23103
|
-
}],
|
|
23104
|
-
active: [{
|
|
23105
|
-
effectId: "background-on-hover-alpha",
|
|
23106
|
-
options: {
|
|
23107
|
-
colorToken: "primary",
|
|
23108
|
-
opacity: 15
|
|
23109
|
-
}
|
|
23110
|
-
}]
|
|
23111
|
-
}
|
|
23112
|
-
},
|
|
23113
|
-
/**
|
|
23114
|
-
* Solid - solid background color on hover
|
|
23115
|
-
*/
|
|
23116
|
-
solid: {
|
|
23117
|
-
name: "Solid",
|
|
23118
|
-
typography: "body",
|
|
23119
|
-
fontWeight: "medium",
|
|
23120
|
-
textTransform: "none",
|
|
23121
|
-
italic: false,
|
|
23122
|
-
colorToken: "text",
|
|
23123
|
-
padding: "compact",
|
|
23124
|
-
borderRadius: "none",
|
|
23125
|
-
effects: {
|
|
23126
|
-
hover: [{
|
|
23127
|
-
effectId: "background-on-hover",
|
|
23128
|
-
options: {
|
|
23129
|
-
colorToken: "primary",
|
|
23130
|
-
textColorToken: "primaryForeground"
|
|
23131
|
-
}
|
|
23132
|
-
}],
|
|
23133
|
-
active: [{
|
|
23134
|
-
effectId: "background-on-hover",
|
|
23135
|
-
options: {
|
|
23136
|
-
colorToken: "primary",
|
|
23137
|
-
textColorToken: "primaryForeground"
|
|
23138
|
-
}
|
|
23139
|
-
}]
|
|
23140
|
-
}
|
|
23141
|
-
},
|
|
23142
|
-
/**
|
|
23143
|
-
* Scale - gentle scale-up on hover
|
|
23144
|
-
*/
|
|
23145
|
-
scale: {
|
|
23146
|
-
name: "Scale",
|
|
23147
|
-
typography: "body",
|
|
23148
|
-
fontWeight: "medium",
|
|
23149
|
-
textTransform: "none",
|
|
23150
|
-
italic: false,
|
|
23151
|
-
colorToken: "text",
|
|
23152
|
-
padding: "none",
|
|
23153
|
-
borderRadius: "none",
|
|
23154
|
-
effects: { hover: [{
|
|
23155
|
-
effectId: "scale-up",
|
|
23156
|
-
options: { scale: 1.05 }
|
|
23157
|
-
}] }
|
|
23158
|
-
},
|
|
23159
|
-
/**
|
|
23160
|
-
* Frosted - semi-transparent glass-like background
|
|
23161
|
-
*/
|
|
23162
|
-
frosted: {
|
|
23163
|
-
name: "Frosted",
|
|
23164
|
-
typography: "body",
|
|
23165
|
-
fontWeight: "medium",
|
|
23166
|
-
textTransform: "none",
|
|
23167
|
-
italic: false,
|
|
23168
|
-
colorToken: "text",
|
|
23169
|
-
padding: "compact",
|
|
23170
|
-
borderRadius: "md",
|
|
23171
|
-
effects: {
|
|
23172
|
-
base: [{ effectId: "nav-frosted-base" }],
|
|
23173
|
-
hover: [{ effectId: "nav-frosted-hover" }],
|
|
23174
|
-
active: [{ effectId: "nav-frosted-active" }]
|
|
23175
|
-
}
|
|
23176
|
-
}
|
|
23177
|
-
};
|
|
23178
|
-
/**
|
|
23179
|
-
* Get a nav link style preset by ID
|
|
23180
|
-
*/
|
|
23181
|
-
function getNavLinkPreset(presetId) {
|
|
23182
|
-
return NAV_LINK_PRESETS[presetId];
|
|
23183
|
-
}
|
|
23184
|
-
Object.keys(NAV_LINK_PRESETS);
|
|
23185
|
-
//#endregion
|
|
23186
23833
|
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
23187
23834
|
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
23188
23835
|
const navStyle = header.navStyle ?? "minimal";
|
|
@@ -23427,28 +24074,6 @@ z.object({
|
|
|
23427
24074
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
23428
24075
|
});
|
|
23429
24076
|
//#endregion
|
|
23430
|
-
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
23431
|
-
function effectiveFooterNavLinkStyle(footer) {
|
|
23432
|
-
if (!footer) return null;
|
|
23433
|
-
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
23434
|
-
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
23435
|
-
if (!basePreset) return null;
|
|
23436
|
-
return {
|
|
23437
|
-
...basePreset,
|
|
23438
|
-
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
23439
|
-
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
23440
|
-
};
|
|
23441
|
-
}
|
|
23442
|
-
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
23443
|
-
if (!footer) return {};
|
|
23444
|
-
const style = effectiveFooterNavLinkStyle(footer);
|
|
23445
|
-
return {
|
|
23446
|
-
text: footer.background?.textColor,
|
|
23447
|
-
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
23448
|
-
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
23449
|
-
};
|
|
23450
|
-
}
|
|
23451
|
-
//#endregion
|
|
23452
24077
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
23453
24078
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
23454
24079
|
//#endregion
|
|
@@ -26544,7 +27169,12 @@ function resolveRuntimeSectionSurface(value, context, options) {
|
|
|
26544
27169
|
}
|
|
26545
27170
|
function arrangementSurfaceInk(foreground, context) {
|
|
26546
27171
|
if (context.data?._lookSlots === void 0) return {};
|
|
26547
|
-
|
|
27172
|
+
return surfaceInkStyles(foreground, context.theme.palette);
|
|
27173
|
+
}
|
|
27174
|
+
/** Decoration roles already resolved by the surface owner, shared with footer arrangements. */
|
|
27175
|
+
function surfaceInkStyles(foreground, palette) {
|
|
27176
|
+
if (foreground.kind === "unknown") return {};
|
|
27177
|
+
const decorations = surfaceDecorationColors(foreground, palette);
|
|
26548
27178
|
return {
|
|
26549
27179
|
"--rb-surface-muted-color": foreground.roles.muted ?? foreground.roles.text,
|
|
26550
27180
|
...decorations ? {
|
|
@@ -27155,48 +27785,50 @@ const boxStylesTransforms = [
|
|
|
27155
27785
|
];
|
|
27156
27786
|
//#endregion
|
|
27157
27787
|
//#region ../blocks/src/system/node/fragments/responsiveTwoColumn.ts
|
|
27158
|
-
|
|
27159
|
-
|
|
27160
|
-
|
|
27161
|
-
|
|
27162
|
-
|
|
27163
|
-
|
|
27164
|
-
|
|
27165
|
-
|
|
27166
|
-
|
|
27167
|
-
|
|
27168
|
-
|
|
27169
|
-
fallback: baseClass
|
|
27170
|
-
} } };
|
|
27171
|
-
if (gapFrom) props.style = { gap: { $bind: {
|
|
27172
|
-
from: gapFrom,
|
|
27173
|
-
transforms: [{
|
|
27174
|
-
id: "boxStyles.semanticGapValue",
|
|
27175
|
-
options: { fallback: gapFallback }
|
|
27176
|
-
}],
|
|
27177
|
-
fallback: GAP_VALUE_MAP[gapFallback]
|
|
27178
|
-
} } };
|
|
27179
|
-
return el("div", props, [el("div", {
|
|
27180
|
-
className: imageWrapperClassName,
|
|
27181
|
-
style: { flexBasis: { $bind: {
|
|
27182
|
-
from: ratioFrom,
|
|
27788
|
+
/** The shared two-column shell keeps Look hooks opt-in and absent for legacy content. */
|
|
27789
|
+
function responsiveTwoColumn(config) {
|
|
27790
|
+
return el("div", twoColumnProps(config), [twoColumnWrapper(config, "image", config.image), twoColumnWrapper(config, "text", config.text)]);
|
|
27791
|
+
}
|
|
27792
|
+
function twoColumnProps(config) {
|
|
27793
|
+
const base = `${config.containerClassName ?? "rb-flex rb-flex-col rb-md-flex-row"} ${config.gapFrom ? "" : config.gapClassName ?? "rb-gap-6"}`.trim();
|
|
27794
|
+
const fallback = config.gapFallback ?? "comfortable";
|
|
27795
|
+
return {
|
|
27796
|
+
...config.lookSlots ? lookSlot("frame") : {},
|
|
27797
|
+
className: { $bind: {
|
|
27798
|
+
from: config.imagePositionFrom,
|
|
27183
27799
|
transforms: [{
|
|
27184
|
-
id: "ui.
|
|
27185
|
-
options: {
|
|
27800
|
+
id: "ui.twoColumnContainerClass",
|
|
27801
|
+
options: {
|
|
27802
|
+
base,
|
|
27803
|
+
reverseClass: "rb-md-flex-row-reverse"
|
|
27804
|
+
}
|
|
27186
27805
|
}],
|
|
27187
|
-
fallback:
|
|
27188
|
-
} }
|
|
27189
|
-
|
|
27190
|
-
|
|
27806
|
+
fallback: base
|
|
27807
|
+
} },
|
|
27808
|
+
...config.gapFrom ? { style: { gap: { $bind: {
|
|
27809
|
+
from: config.gapFrom,
|
|
27810
|
+
transforms: [{
|
|
27811
|
+
id: "boxStyles.semanticGapValue",
|
|
27812
|
+
options: { fallback }
|
|
27813
|
+
}],
|
|
27814
|
+
fallback: GAP_VALUE_MAP[fallback]
|
|
27815
|
+
} } } } : {}
|
|
27816
|
+
};
|
|
27817
|
+
}
|
|
27818
|
+
function twoColumnWrapper(config, side, child) {
|
|
27819
|
+
const className = side === "image" ? config.imageWrapperClassName ?? "rb-w-full rb-shrink-0" : config.textWrapperClassName ?? "rb-w-full rb-min-w-0 rb-flex-1";
|
|
27820
|
+
return el("div", {
|
|
27821
|
+
...config.lookSlots ? lookSlot(side === "image" ? "media" : "copy") : {},
|
|
27822
|
+
className,
|
|
27191
27823
|
style: { flexBasis: { $bind: {
|
|
27192
|
-
from: ratioFrom,
|
|
27824
|
+
from: config.ratioFrom,
|
|
27193
27825
|
transforms: [{
|
|
27194
27826
|
id: "ui.twoColumnFlexBasis",
|
|
27195
|
-
options: { side
|
|
27827
|
+
options: { side }
|
|
27196
27828
|
}],
|
|
27197
27829
|
fallback: "50%"
|
|
27198
27830
|
} } }
|
|
27199
|
-
}, [
|
|
27831
|
+
}, [child]);
|
|
27200
27832
|
}
|
|
27201
27833
|
//#endregion
|
|
27202
27834
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
@@ -27383,6 +28015,47 @@ function sectionState(opts) {
|
|
|
27383
28015
|
})]);
|
|
27384
28016
|
}
|
|
27385
28017
|
//#endregion
|
|
28018
|
+
//#region ../blocks/src/system/node/fragments/sectionHead.ts
|
|
28019
|
+
const recoverEmptyHeadingWhenActive = {
|
|
28020
|
+
kind: "recover-empty-when-active",
|
|
28021
|
+
placeholder: "Add heading"
|
|
28022
|
+
};
|
|
28023
|
+
const recoverEmptyDescriptionWhenActive = {
|
|
28024
|
+
kind: "recover-empty-when-active",
|
|
28025
|
+
placeholder: "Add description"
|
|
28026
|
+
};
|
|
28027
|
+
function sectionHeaderLayoutNodes(options = {}) {
|
|
28028
|
+
const headingNode = text({
|
|
28029
|
+
as: "h2",
|
|
28030
|
+
...lookSlot("heading")
|
|
28031
|
+
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
28032
|
+
const descriptionNode = richText({
|
|
28033
|
+
className: "rb-prose rb-max-w-none",
|
|
28034
|
+
...lookSlot("intro")
|
|
28035
|
+
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
28036
|
+
if (options.splitClassName) return [el("div", {
|
|
28037
|
+
className: options.splitClassName,
|
|
28038
|
+
...lookSlot("head")
|
|
28039
|
+
}, [headingNode, descriptionNode])];
|
|
28040
|
+
return [headingNode, descriptionNode];
|
|
28041
|
+
}
|
|
28042
|
+
/** Shared optional section copy. Existing consumers keep their description ID. */
|
|
28043
|
+
const sectionHeaderFields = (defaultHeading, introLabel = "Description") => [{
|
|
28044
|
+
id: "heading",
|
|
28045
|
+
type: "text",
|
|
28046
|
+
label: "Heading",
|
|
28047
|
+
description: "Main heading for the section",
|
|
28048
|
+
required: false,
|
|
28049
|
+
multiline: false,
|
|
28050
|
+
...defaultHeading === void 0 ? {} : { defaultValue: defaultHeading }
|
|
28051
|
+
}, {
|
|
28052
|
+
id: "description",
|
|
28053
|
+
type: "richText",
|
|
28054
|
+
label: introLabel,
|
|
28055
|
+
description: "Optional introductory text",
|
|
28056
|
+
required: false
|
|
28057
|
+
}];
|
|
28058
|
+
//#endregion
|
|
27386
28059
|
//#region ../blocks/src/system/fragments/types.ts
|
|
27387
28060
|
const FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
27388
28061
|
const FIELD_ID_PATTERN = /^[a-z][a-zA-Z0-9_-]*$/;
|
|
@@ -27715,6 +28388,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
27715
28388
|
],
|
|
27716
28389
|
layout: stack({
|
|
27717
28390
|
gap: "md",
|
|
28391
|
+
...lookSlot("copy"),
|
|
27718
28392
|
className: "body-copy-container",
|
|
27719
28393
|
align: { $bind: {
|
|
27720
28394
|
from: "content.alignment",
|
|
@@ -27723,6 +28397,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
27723
28397
|
} }
|
|
27724
28398
|
}, [text({
|
|
27725
28399
|
as: "h2",
|
|
28400
|
+
...lookSlot("heading"),
|
|
27726
28401
|
className: { $bind: {
|
|
27727
28402
|
from: "content.alignment",
|
|
27728
28403
|
transforms: [{
|
|
@@ -27731,14 +28406,22 @@ const bodyCopyFragment = defineFragment({
|
|
|
27731
28406
|
}],
|
|
27732
28407
|
fallback: "body-copy-heading"
|
|
27733
28408
|
} }
|
|
27734
|
-
}, when("content.heading"
|
|
27735
|
-
|
|
27736
|
-
|
|
27737
|
-
|
|
27738
|
-
|
|
27739
|
-
}
|
|
27740
|
-
|
|
27741
|
-
|
|
28409
|
+
}, when("content.heading", { authoringPresence: {
|
|
28410
|
+
kind: "recover-empty-when-active",
|
|
28411
|
+
placeholder: "Add heading"
|
|
28412
|
+
} }), bind("content.heading")), richText({
|
|
28413
|
+
...lookSlot("item-body"),
|
|
28414
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
28415
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
28416
|
+
className: { $bind: {
|
|
28417
|
+
from: "content.alignment",
|
|
28418
|
+
transforms: [{
|
|
28419
|
+
id: "ui.bodyClassFromAlignment",
|
|
28420
|
+
options: { base: "body-copy-body rb-prose rb-max-w-none" }
|
|
28421
|
+
}],
|
|
28422
|
+
fallback: "body-copy-body rb-prose rb-max-w-none"
|
|
28423
|
+
} }
|
|
28424
|
+
}, bind("content.body"))])
|
|
27742
28425
|
});
|
|
27743
28426
|
//#endregion
|
|
27744
28427
|
//#region ../blocks/src/system/fragments/library/heroCopy.ts
|
|
@@ -28754,8 +29437,19 @@ const formCopyFragment = defineFragment({
|
|
|
28754
29437
|
}],
|
|
28755
29438
|
layout: [text({
|
|
28756
29439
|
as: "h2",
|
|
29440
|
+
...lookSlot("heading"),
|
|
28757
29441
|
className: "form-copy-title"
|
|
28758
|
-
}, when("content.title"
|
|
29442
|
+
}, when("content.title", { authoringPresence: {
|
|
29443
|
+
kind: "recover-empty-when-active",
|
|
29444
|
+
placeholder: "Add heading"
|
|
29445
|
+
} }), bind("content.title")), richText({
|
|
29446
|
+
className: "form-copy-intro rb-prose rb-max-w-none",
|
|
29447
|
+
...lookSlot("intro"),
|
|
29448
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } }
|
|
29449
|
+
}, when("content.intro", { authoringPresence: {
|
|
29450
|
+
kind: "recover-empty-when-active",
|
|
29451
|
+
placeholder: "Add introduction"
|
|
29452
|
+
} }), bind("content.intro"))]
|
|
28759
29453
|
});
|
|
28760
29454
|
//#endregion
|
|
28761
29455
|
//#region ../blocks/src/system/helpers/api-bindings.ts
|
|
@@ -28804,6 +29498,7 @@ const formEmbedFragment = defineFragment({
|
|
|
28804
29498
|
}
|
|
28805
29499
|
],
|
|
28806
29500
|
layout: [form(withApiBindings({
|
|
29501
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
28807
29502
|
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } },
|
|
28808
29503
|
submitLabel: { $bind: { from: "submitLabel" } },
|
|
28809
29504
|
successMessage: { $bind: { from: "successMessage" } }
|
|
@@ -29057,8 +29752,18 @@ const newsletterCopyFragment = defineFragment({
|
|
|
29057
29752
|
}],
|
|
29058
29753
|
layout: [text({
|
|
29059
29754
|
as: "h2",
|
|
29060
|
-
className: "newsletter-copy-title"
|
|
29061
|
-
|
|
29755
|
+
className: "newsletter-copy-title",
|
|
29756
|
+
...lookSlot("heading")
|
|
29757
|
+
}, when("content.title", { authoringPresence: {
|
|
29758
|
+
kind: "recover-empty-when-active",
|
|
29759
|
+
placeholder: "Add heading"
|
|
29760
|
+
} }), bind("content.title")), richText({
|
|
29761
|
+
className: "newsletter-copy-subtitle rb-prose rb-max-w-none",
|
|
29762
|
+
...lookSlot("intro")
|
|
29763
|
+
}, when("content.subtitle", { authoringPresence: {
|
|
29764
|
+
kind: "recover-empty-when-active",
|
|
29765
|
+
placeholder: "Add introduction"
|
|
29766
|
+
} }), bind("content.subtitle"))]
|
|
29062
29767
|
});
|
|
29063
29768
|
//#endregion
|
|
29064
29769
|
//#region ../blocks/src/system/fragments/library/newsletterForm.ts
|
|
@@ -29126,6 +29831,7 @@ const newsletterFormFragment = defineFragment({
|
|
|
29126
29831
|
}
|
|
29127
29832
|
],
|
|
29128
29833
|
layout: [el("newsletter-form", withApiBindings({
|
|
29834
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
29129
29835
|
source: { $bind: {
|
|
29130
29836
|
from: "mailingListSource",
|
|
29131
29837
|
fallback: "block"
|
|
@@ -30618,18 +31324,11 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
30618
31324
|
//#endregion
|
|
30619
31325
|
//#region ../blocks/src/system/blocks/body-text.ts
|
|
30620
31326
|
const bodyCopyComposition = composeFragments([{ fragment: bodyCopyFragment }]);
|
|
30621
|
-
const
|
|
30622
|
-
children: stack({
|
|
30623
|
-
|
|
30624
|
-
|
|
30625
|
-
})
|
|
30626
|
-
const introLayout = styledSection({
|
|
30627
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
30628
|
-
spacing: "medium",
|
|
30629
|
-
baseClass: ""
|
|
30630
|
-
});
|
|
30631
|
-
const narrowLayout = styledSection({
|
|
30632
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
31327
|
+
const bodyTextLayout = styledSection({
|
|
31328
|
+
children: stack({
|
|
31329
|
+
className: "rb-container",
|
|
31330
|
+
...lookSlot("frame")
|
|
31331
|
+
}, bodyCopyComposition.layout),
|
|
30633
31332
|
spacing: "medium",
|
|
30634
31333
|
baseClass: ""
|
|
30635
31334
|
});
|
|
@@ -30643,11 +31342,11 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
30643
31342
|
fragment: bodyCopyFragment,
|
|
30644
31343
|
fieldPriority: 0
|
|
30645
31344
|
}],
|
|
30646
|
-
layout:
|
|
31345
|
+
layout: bodyTextLayout,
|
|
30647
31346
|
variants: {
|
|
30648
|
-
prose:
|
|
30649
|
-
intro:
|
|
30650
|
-
narrow:
|
|
31347
|
+
prose: bodyTextLayout,
|
|
31348
|
+
intro: bodyTextLayout,
|
|
31349
|
+
narrow: bodyTextLayout
|
|
30651
31350
|
},
|
|
30652
31351
|
variantMeaning: { kind: "arrangement" },
|
|
30653
31352
|
defaultVariant: "prose",
|
|
@@ -31095,6 +31794,52 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
31095
31794
|
styleTokens: { spacing: "md" }
|
|
31096
31795
|
}) };
|
|
31097
31796
|
//#endregion
|
|
31797
|
+
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
31798
|
+
const isPlainObject$1 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31799
|
+
const lookListPresentationSchemaShape = {
|
|
31800
|
+
sectionAction: z.object({
|
|
31801
|
+
label: z.string(),
|
|
31802
|
+
href: z.string()
|
|
31803
|
+
}).optional(),
|
|
31804
|
+
actionSize: z.enum([
|
|
31805
|
+
"sm",
|
|
31806
|
+
"md",
|
|
31807
|
+
"lg"
|
|
31808
|
+
]).optional(),
|
|
31809
|
+
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
31810
|
+
itemRoles: z.object({
|
|
31811
|
+
container: z.enum([
|
|
31812
|
+
"card",
|
|
31813
|
+
"statement",
|
|
31814
|
+
"highlight"
|
|
31815
|
+
]).optional(),
|
|
31816
|
+
items: z.enum([
|
|
31817
|
+
"card",
|
|
31818
|
+
"statement",
|
|
31819
|
+
"highlight"
|
|
31820
|
+
]).optional(),
|
|
31821
|
+
at: z.partialRecord(z.enum([
|
|
31822
|
+
"first",
|
|
31823
|
+
"last",
|
|
31824
|
+
"middle",
|
|
31825
|
+
"odd",
|
|
31826
|
+
"even"
|
|
31827
|
+
]), z.enum([
|
|
31828
|
+
"card",
|
|
31829
|
+
"statement",
|
|
31830
|
+
"highlight"
|
|
31831
|
+
])).optional()
|
|
31832
|
+
}).optional(),
|
|
31833
|
+
roleSurfaces: z.record(z.enum([
|
|
31834
|
+
"card",
|
|
31835
|
+
"statement",
|
|
31836
|
+
"highlight"
|
|
31837
|
+
]), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
31838
|
+
panelHeading: z.string().optional(),
|
|
31839
|
+
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
31840
|
+
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
31841
|
+
};
|
|
31842
|
+
//#endregion
|
|
31098
31843
|
//#region ../blocks/src/contracts/runtime.ts
|
|
31099
31844
|
function decodeSuccess(value) {
|
|
31100
31845
|
return {
|
|
@@ -31201,6 +31946,7 @@ const formFieldGroupSchema = z.discriminatedUnion("type", [z.object({
|
|
|
31201
31946
|
fields: z.tuple([formFieldSchema, formFieldSchema])
|
|
31202
31947
|
})]);
|
|
31203
31948
|
const formSourceSchema = z.object({
|
|
31949
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
31204
31950
|
value: formRecordSchema.optional(),
|
|
31205
31951
|
siteId: z.string().optional(),
|
|
31206
31952
|
apiBaseUrl: z.string().optional(),
|
|
@@ -31210,6 +31956,7 @@ const formSourceSchema = z.object({
|
|
|
31210
31956
|
spamProtectionEnabled: z.boolean().optional()
|
|
31211
31957
|
});
|
|
31212
31958
|
const formDisplaySchema = z.object({
|
|
31959
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
31213
31960
|
kind: z.literal("form"),
|
|
31214
31961
|
state: z.enum(["missing", "ready"]),
|
|
31215
31962
|
className: z.string().nullable(),
|
|
@@ -31230,17 +31977,30 @@ z.object({
|
|
|
31230
31977
|
});
|
|
31231
31978
|
function buildFormDisplay(source) {
|
|
31232
31979
|
const form = source.value ?? null;
|
|
31233
|
-
const fields = form
|
|
31234
|
-
const groups = Array.isArray(fields) ? groupFormFields(fields) : [];
|
|
31980
|
+
const fields = formDisplayFields(form);
|
|
31235
31981
|
return {
|
|
31236
31982
|
kind: "form",
|
|
31237
|
-
|
|
31983
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
31984
|
+
state: fields.state,
|
|
31238
31985
|
className: source.className ?? null,
|
|
31239
|
-
formId:
|
|
31986
|
+
formId: fields.formId,
|
|
31240
31987
|
submitLabel: source.submitLabel?.trim() || "Submit",
|
|
31241
31988
|
successMessage: source.successMessage ?? null,
|
|
31242
31989
|
form,
|
|
31243
|
-
groups
|
|
31990
|
+
groups: fields.groups
|
|
31991
|
+
};
|
|
31992
|
+
}
|
|
31993
|
+
function formDisplayFields(form) {
|
|
31994
|
+
if (!form) return {
|
|
31995
|
+
state: "missing",
|
|
31996
|
+
formId: null,
|
|
31997
|
+
groups: []
|
|
31998
|
+
};
|
|
31999
|
+
const fields = form.schemaJson?.fields;
|
|
32000
|
+
return {
|
|
32001
|
+
state: "ready",
|
|
32002
|
+
formId: form.id,
|
|
32003
|
+
groups: Array.isArray(fields) ? groupFormFields(fields) : []
|
|
31244
32004
|
};
|
|
31245
32005
|
}
|
|
31246
32006
|
const formBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -31263,18 +32023,27 @@ function fragmentLayoutNode$1(layout) {
|
|
|
31263
32023
|
function isNodeDefinitionArray$1(layout) {
|
|
31264
32024
|
return Array.isArray(layout);
|
|
31265
32025
|
}
|
|
31266
|
-
const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
32026
|
+
const copyLayout = props(lookSlot("head"))(fragmentLayoutNode$1(formCopyFragment.layout));
|
|
32027
|
+
const embedLayout$1 = fragmentLayoutNode$1(formEmbedFragment.layout);
|
|
31267
32028
|
const formSurface = styledContainer({
|
|
32029
|
+
rootProps: lookSlot("panel"),
|
|
31268
32030
|
bindFrom: "_containerStyles",
|
|
31269
32031
|
constrainWidth: false,
|
|
31270
32032
|
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
31271
|
-
children:
|
|
32033
|
+
children: embedLayout$1
|
|
31272
32034
|
});
|
|
31273
32035
|
function createFormLayout(variant) {
|
|
31274
32036
|
if (variant === "two-column") return styledSection({
|
|
31275
|
-
children: el("div", {
|
|
32037
|
+
children: el("div", {
|
|
32038
|
+
className: "rb-container",
|
|
32039
|
+
...lookSlot("layout")
|
|
32040
|
+
}, [el("div", {
|
|
32041
|
+
className: "rb-form-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start",
|
|
32042
|
+
...lookSlot("frame")
|
|
32043
|
+
}, [stack({
|
|
31276
32044
|
gap: "md",
|
|
31277
|
-
className: "rb-form-copy-column"
|
|
32045
|
+
className: "rb-form-copy-column",
|
|
32046
|
+
...lookSlot("copy")
|
|
31278
32047
|
}, [copyLayout]), formSurface])]),
|
|
31279
32048
|
baseClass: "",
|
|
31280
32049
|
spacing: "medium",
|
|
@@ -31302,6 +32071,15 @@ const formManifest = createBlockManifest({
|
|
|
31302
32071
|
description: "Renders a saved form definition with server-side submit.",
|
|
31303
32072
|
includeContainerStyles: true,
|
|
31304
32073
|
fragments: [{ fragment: formCopyFragment }, { fragment: formEmbedFragment }],
|
|
32074
|
+
additionalFields: [{
|
|
32075
|
+
id: "archFrame",
|
|
32076
|
+
type: "boolean",
|
|
32077
|
+
label: "Arch frame",
|
|
32078
|
+
ui: {
|
|
32079
|
+
intent: "display",
|
|
32080
|
+
hidden: true
|
|
32081
|
+
}
|
|
32082
|
+
}],
|
|
31305
32083
|
layout: formLayout,
|
|
31306
32084
|
variants: {
|
|
31307
32085
|
default: formLayout,
|
|
@@ -32057,7 +32835,7 @@ const heroTitleLengthThresholds = {
|
|
|
32057
32835
|
maxWords: 11
|
|
32058
32836
|
}
|
|
32059
32837
|
};
|
|
32060
|
-
function isPlainObject
|
|
32838
|
+
function isPlainObject(value) {
|
|
32061
32839
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
32062
32840
|
}
|
|
32063
32841
|
function readString(obj, key) {
|
|
@@ -32066,7 +32844,7 @@ function readString(obj, key) {
|
|
|
32066
32844
|
}
|
|
32067
32845
|
function resolveGeneratedHeroLayoutStyles(content) {
|
|
32068
32846
|
const raw = content._heroLayoutStyles;
|
|
32069
|
-
return isPlainObject
|
|
32847
|
+
return isPlainObject(raw) ? raw : null;
|
|
32070
32848
|
}
|
|
32071
32849
|
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
32072
32850
|
const explicitValue = readString(content, fallbackKey);
|
|
@@ -32124,7 +32902,7 @@ const heroContentWrapperClassTransform = {
|
|
|
32124
32902
|
summary: "Resolve hero content wrapper className from alignment + max width controls",
|
|
32125
32903
|
schema: z.object({ base: z.string().optional() }),
|
|
32126
32904
|
run: (value, options, context) => {
|
|
32127
|
-
const content = isPlainObject
|
|
32905
|
+
const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
|
|
32128
32906
|
const alignment = resolveHeroContentAlignment(content);
|
|
32129
32907
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
32130
32908
|
const typographyScale = resolveHeroTypographyScale(content);
|
|
@@ -32146,7 +32924,7 @@ const heroCtaJustifyTransform = {
|
|
|
32146
32924
|
kind: "string",
|
|
32147
32925
|
summary: "Map hero contentAlignment to CTA row justify value",
|
|
32148
32926
|
run: (value, _options, context) => {
|
|
32149
|
-
const alignment = resolveHeroContentAlignment(isPlainObject
|
|
32927
|
+
const alignment = resolveHeroContentAlignment(isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {});
|
|
32150
32928
|
return alignment === "left" ? "start" : alignment === "right" ? "end" : "center";
|
|
32151
32929
|
}
|
|
32152
32930
|
};
|
|
@@ -32155,7 +32933,7 @@ const heroStackJustifyFromVerticalAlignmentTransform = {
|
|
|
32155
32933
|
kind: "string",
|
|
32156
32934
|
summary: "Map hero verticalAlignment to stack justify value",
|
|
32157
32935
|
run: (value, _options, context) => {
|
|
32158
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject
|
|
32936
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {});
|
|
32159
32937
|
return vertical === "top" ? "start" : vertical === "bottom" ? "end" : "center";
|
|
32160
32938
|
}
|
|
32161
32939
|
};
|
|
@@ -32165,7 +32943,7 @@ const heroGridClassFromVerticalAlignmentTransform = {
|
|
|
32165
32943
|
summary: "Append align-items class for hero split layouts based on verticalAlignment",
|
|
32166
32944
|
schema: z.object({ base: z.string() }),
|
|
32167
32945
|
run: (value, options, context) => {
|
|
32168
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject
|
|
32946
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {});
|
|
32169
32947
|
const itemsClass = vertical === "top" ? "rb-items-start" : vertical === "bottom" ? "rb-items-end" : "rb-items-center";
|
|
32170
32948
|
return joinClasses$1([options.base, itemsClass]);
|
|
32171
32949
|
}
|
|
@@ -32453,6 +33231,25 @@ function heroHeadlineText(content, policy) {
|
|
|
32453
33231
|
return policy === "look" ? inlineTextToPlainText(coerceInlineTextWithFallback(content.headlineInline, plain)).trim() : plain?.trim() ?? "";
|
|
32454
33232
|
}
|
|
32455
33233
|
//#endregion
|
|
33234
|
+
//#region ../blocks/src/system/transforms/registry/footerArrangement.ts
|
|
33235
|
+
const footerBrandArrangementTransform = {
|
|
33236
|
+
id: "layout.footerBrandArrangement",
|
|
33237
|
+
kind: "string",
|
|
33238
|
+
run: (value) => {
|
|
33239
|
+
const module = asPartialObject(value);
|
|
33240
|
+
return module?.kind === "brand" ? module.slots ? "centred" : "row" : void 0;
|
|
33241
|
+
}
|
|
33242
|
+
};
|
|
33243
|
+
const footerModuleInkStyleTransform = {
|
|
33244
|
+
id: "layout.footerModuleInkStyle",
|
|
33245
|
+
kind: "formatter",
|
|
33246
|
+
run: (value, options) => value === "centred" ? void 0 : textColorStyle(asPartialObject(options)?.opacity === 70 ? "text/70" : "text/80")
|
|
33247
|
+
};
|
|
33248
|
+
/** A centred base without authored bar paint inherits its measured surface line. */
|
|
33249
|
+
function footerBottomBarBorderColorStyle(footer) {
|
|
33250
|
+
return footer?.variant === "centred" && !footer.bottomBar ? { borderColor: "var(--rb-surface-line-color)" } : borderColorStyle(footer?.bottomBar?.borderTop?.colorToken ?? "border");
|
|
33251
|
+
}
|
|
33252
|
+
//#endregion
|
|
32456
33253
|
//#region ../blocks/src/system/runtime/header/runtimeContract.ts
|
|
32457
33254
|
const headerScrollRuntimeSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("none") }), z.object({ kind: z.literal("threshold") })]);
|
|
32458
33255
|
z.object({ scroll: headerScrollRuntimeSchema });
|
|
@@ -32684,6 +33481,7 @@ const footerRootStyleTransform = {
|
|
|
32684
33481
|
}
|
|
32685
33482
|
}
|
|
32686
33483
|
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
33484
|
+
if (footer?.variant === "centred") styleParts.push(surfaceInkStyles(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate), context.theme.palette));
|
|
32687
33485
|
styleParts.push(borderColorStyle("border"));
|
|
32688
33486
|
return mergeStyles(...styleParts);
|
|
32689
33487
|
}
|
|
@@ -32745,7 +33543,7 @@ const footerBottomBarStyleTransform = {
|
|
|
32745
33543
|
run: (value, _options, context) => {
|
|
32746
33544
|
const footer = asPartialObject(value);
|
|
32747
33545
|
const bottomBar = footer?.bottomBar;
|
|
32748
|
-
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0,
|
|
33546
|
+
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0, footerBottomBarBorderColorStyle(footer), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette));
|
|
32749
33547
|
}
|
|
32750
33548
|
};
|
|
32751
33549
|
function footerBottomBarForegroundStyle(footer, palette) {
|
|
@@ -32767,62 +33565,15 @@ function measuredFooterBackdrop(footer, palette) {
|
|
|
32767
33565
|
const foreground = resolveFooterRootForeground(footer, palette);
|
|
32768
33566
|
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
32769
33567
|
}
|
|
32770
|
-
const footerSplitMainClassTransform = {
|
|
32771
|
-
id: "layout.footerSplitMainClass",
|
|
32772
|
-
kind: "string",
|
|
32773
|
-
summary: "Compose split-footer main row classes from footer logo placement",
|
|
32774
|
-
schema: z.object({
|
|
32775
|
-
base: z.string().optional(),
|
|
32776
|
-
reverseClass: z.string().optional()
|
|
32777
|
-
}),
|
|
32778
|
-
run: (value, options) => {
|
|
32779
|
-
const placement = asPartialObject(value)?.placement ?? "right";
|
|
32780
|
-
const shouldPlaceLogoFirst = placement === "left" || placement === "above";
|
|
32781
|
-
const baseClass = shouldPlaceLogoFirst ? "rb-flex rb-w-full rb-flex-col rb-items-start rb-justify-end rb-gap-8 rb-md-flex-row rb-md-items-end" : "rb-flex rb-w-full rb-flex-col rb-items-start rb-justify-between rb-gap-8 rb-md-flex-row rb-md-items-end";
|
|
32782
|
-
return joinClasses([options.base ?? baseClass, shouldPlaceLogoFirst ? options.reverseClass ?? "rb-md-flex-row-reverse" : null]);
|
|
32783
|
-
}
|
|
32784
|
-
};
|
|
32785
33568
|
const footerLogoClassTransform = {
|
|
32786
33569
|
id: "layout.footerLogoClass",
|
|
32787
33570
|
kind: "string",
|
|
32788
33571
|
summary: "Compose split-footer logo wrapper classes from footer.logo controls",
|
|
32789
|
-
schema: z.object({
|
|
32790
|
-
base: z.string().optional(),
|
|
32791
|
-
requireExplicitShow: z.boolean().optional()
|
|
32792
|
-
}),
|
|
33572
|
+
schema: z.object({ base: z.string().optional() }),
|
|
32793
33573
|
run: (value, options) => {
|
|
32794
|
-
const
|
|
32795
|
-
const align = logo?.align ?? "end";
|
|
32796
|
-
const hiddenClass = options.requireExplicitShow ? logo?.showLogo === true ? null : "rb-hidden" : logo?.showLogo === false ? "rb-hidden" : null;
|
|
33574
|
+
const align = asPartialObject(value)?.align ?? "end";
|
|
32797
33575
|
const selfAlignClass = align === "start" ? "rb-self-start rb-text-left" : align === "center" ? "rb-self-center rb-text-center" : "rb-self-end rb-text-right";
|
|
32798
|
-
return joinClasses([
|
|
32799
|
-
options.base ?? "footer-logo rb-inline-flex rb-items-center rb-justify-end rb-gap-3 rb-no-underline rb-transition-opacity rb-hover-opacity-80",
|
|
32800
|
-
selfAlignClass,
|
|
32801
|
-
hiddenClass
|
|
32802
|
-
]);
|
|
32803
|
-
}
|
|
32804
|
-
};
|
|
32805
|
-
const footerLogoMediaClassTransform = {
|
|
32806
|
-
id: "layout.footerLogoMediaClass",
|
|
32807
|
-
kind: "string",
|
|
32808
|
-
summary: "Compose footer logo image classes from size controls",
|
|
32809
|
-
schema: z.object({ base: z.string().optional() }),
|
|
32810
|
-
run: (_value, options) => {
|
|
32811
|
-
return joinClasses([options.base ?? "rb-w-auto"]);
|
|
32812
|
-
}
|
|
32813
|
-
};
|
|
32814
|
-
function shouldShowFooterLogoText(footer) {
|
|
32815
|
-
if (!footer) return false;
|
|
32816
|
-
const explicit = footer.logo?.showLogoText;
|
|
32817
|
-
const legacy = footer.showLogoText === true;
|
|
32818
|
-
return explicit === true || explicit === void 0 && legacy;
|
|
32819
|
-
}
|
|
32820
|
-
const footerLogoTextVisibleTransform = {
|
|
32821
|
-
id: "layout.footerLogoTextVisible",
|
|
32822
|
-
kind: "formatter",
|
|
32823
|
-
summary: "Return whether footer logo text should render",
|
|
32824
|
-
run: (value) => {
|
|
32825
|
-
return shouldShowFooterLogoText(asPartialObject(value));
|
|
33576
|
+
return joinClasses([options.base ?? "footer-logo rb-inline-flex rb-items-center rb-justify-end rb-gap-3 rb-no-underline rb-transition-opacity rb-hover-opacity-80", selfAlignClass]);
|
|
32826
33577
|
}
|
|
32827
33578
|
};
|
|
32828
33579
|
function extractBackgroundColorToken(background, fallback) {
|
|
@@ -32841,13 +33592,12 @@ const layoutTransforms = [
|
|
|
32841
33592
|
headerRootStyleTransform,
|
|
32842
33593
|
headerSectionBackgroundTransform,
|
|
32843
33594
|
footerRootStyleTransform,
|
|
33595
|
+
footerModuleInkStyleTransform,
|
|
33596
|
+
footerBrandArrangementTransform,
|
|
32844
33597
|
footerBottomBarClassTransform,
|
|
32845
33598
|
footerBottomBarContainerClassTransform,
|
|
32846
33599
|
footerBottomBarStyleTransform,
|
|
32847
|
-
|
|
32848
|
-
footerLogoClassTransform,
|
|
32849
|
-
footerLogoMediaClassTransform,
|
|
32850
|
-
footerLogoTextVisibleTransform
|
|
33600
|
+
footerLogoClassTransform
|
|
32851
33601
|
];
|
|
32852
33602
|
//#endregion
|
|
32853
33603
|
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
@@ -33343,7 +34093,14 @@ const footerNavGroupsLayout = stack({
|
|
|
33343
34093
|
}, [text({
|
|
33344
34094
|
as: "h3",
|
|
33345
34095
|
className: "rb-label",
|
|
33346
|
-
|
|
34096
|
+
"data-slot": { $bind: { from: "content.footerRuntime.slots.group-label" } },
|
|
34097
|
+
style: { $bind: {
|
|
34098
|
+
from: "content.footerRuntime.arrangement",
|
|
34099
|
+
transforms: [{
|
|
34100
|
+
id: "layout.footerModuleInkStyle",
|
|
34101
|
+
options: { opacity: 70 }
|
|
34102
|
+
}]
|
|
34103
|
+
} }
|
|
33347
34104
|
}, when("group.label"), bind("group.label")), stack({
|
|
33348
34105
|
gap: "sm",
|
|
33349
34106
|
align: "start",
|
|
@@ -33373,6 +34130,14 @@ const footerMailingListBindings = {
|
|
|
33373
34130
|
targeting: { $bind: { from: "module.engagement.runtime.targeting" } }
|
|
33374
34131
|
};
|
|
33375
34132
|
const footerSpamProtectionBinding = { spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } } };
|
|
34133
|
+
const brandMedia = media({ className: "rb-h-10 rb-w-auto" }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
34134
|
+
id: "layout.chromeLogo",
|
|
34135
|
+
options: { surface: "footer-root" }
|
|
34136
|
+
}] }));
|
|
34137
|
+
const brandTitle = text({
|
|
34138
|
+
as: "strong",
|
|
34139
|
+
className: "footer-logo-text rb-nav-text"
|
|
34140
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }));
|
|
33376
34141
|
const brandLogo = link({
|
|
33377
34142
|
href: "/",
|
|
33378
34143
|
className: { $bind: {
|
|
@@ -33383,20 +34148,39 @@ const brandLogo = link({
|
|
|
33383
34148
|
}],
|
|
33384
34149
|
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
33385
34150
|
} }
|
|
33386
|
-
}, [
|
|
33387
|
-
|
|
33388
|
-
|
|
33389
|
-
|
|
33390
|
-
|
|
33391
|
-
|
|
33392
|
-
|
|
33393
|
-
|
|
33394
|
-
|
|
33395
|
-
|
|
33396
|
-
|
|
33397
|
-
|
|
33398
|
-
|
|
33399
|
-
},
|
|
34151
|
+
}, [brandMedia, brandTitle], (node) => ({
|
|
34152
|
+
...node,
|
|
34153
|
+
$when: {
|
|
34154
|
+
when: {
|
|
34155
|
+
from: "module",
|
|
34156
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
34157
|
+
},
|
|
34158
|
+
equals: "row"
|
|
34159
|
+
}
|
|
34160
|
+
}));
|
|
34161
|
+
const centredBrand = stack({
|
|
34162
|
+
gap: "md",
|
|
34163
|
+
align: "center"
|
|
34164
|
+
}, [link({
|
|
34165
|
+
href: "/",
|
|
34166
|
+
"data-slot": { $bind: { from: "module.slots.media" } },
|
|
34167
|
+
className: "footer-logo rb-inline-flex rb-items-center rb-no-underline"
|
|
34168
|
+
}, [brandMedia], when("module.slots.media")), {
|
|
34169
|
+
...brandTitle,
|
|
34170
|
+
props: {
|
|
34171
|
+
...brandTitle.props,
|
|
34172
|
+
"data-slot": { $bind: { from: "module.slots.heading" } }
|
|
34173
|
+
}
|
|
34174
|
+
}], (node) => ({
|
|
34175
|
+
...node,
|
|
34176
|
+
$when: {
|
|
34177
|
+
when: {
|
|
34178
|
+
from: "module",
|
|
34179
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
34180
|
+
},
|
|
34181
|
+
equals: "centred"
|
|
34182
|
+
}
|
|
34183
|
+
}));
|
|
33400
34184
|
const navigation = stack({
|
|
33401
34185
|
gap: "md",
|
|
33402
34186
|
className: "rb-w-full"
|
|
@@ -33421,14 +34205,18 @@ const address = text({
|
|
|
33421
34205
|
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
33422
34206
|
const contact = stack({
|
|
33423
34207
|
gap: "sm",
|
|
33424
|
-
className:
|
|
34208
|
+
className: { $bind: {
|
|
34209
|
+
from: "module.contactClassName",
|
|
34210
|
+
fallback: "rb-items-start"
|
|
34211
|
+
} }
|
|
33425
34212
|
}, [link({
|
|
33426
34213
|
href: { $bind: { from: "contactLink.href" } },
|
|
33427
34214
|
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
33428
34215
|
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
33429
34216
|
const hours = stack({
|
|
33430
34217
|
gap: "sm",
|
|
33431
|
-
className: "rb-w-full"
|
|
34218
|
+
className: "rb-w-full",
|
|
34219
|
+
"data-slot": { $bind: { from: "module.slots.schedule" } }
|
|
33432
34220
|
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
33433
34221
|
as: "span",
|
|
33434
34222
|
className: "rb-label"
|
|
@@ -33439,7 +34227,10 @@ const hours = stack({
|
|
|
33439
34227
|
as: "p",
|
|
33440
34228
|
className: "rb-caption rb-opacity-70"
|
|
33441
34229
|
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
33442
|
-
const socials = inline({
|
|
34230
|
+
const socials = inline({
|
|
34231
|
+
className: "rb-footer-socials",
|
|
34232
|
+
"data-slot": { $bind: { from: "module.slots.social" } }
|
|
34233
|
+
}, [link({
|
|
33443
34234
|
href: { $bind: { from: "social.href" } },
|
|
33444
34235
|
target: "_blank",
|
|
33445
34236
|
rel: "noreferrer noopener",
|
|
@@ -33448,7 +34239,14 @@ const socials = inline({ className: "rb-footer-socials" }, [link({
|
|
|
33448
34239
|
}, [icon({ className: "rb-footer-social-icon" }, bind("social.icon"), when("social.icon")), text({ as: "span" }, bind("social.label"), when("social.icon", { equals: null }))], repeat("module.socialLinks", "social"))], when("module.kind", { equals: "social-links" }));
|
|
33449
34240
|
const authoredCopy = richText({
|
|
33450
34241
|
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
33451
|
-
|
|
34242
|
+
"data-slot": { $bind: { from: "module.slots.copy" } },
|
|
34243
|
+
style: { $bind: {
|
|
34244
|
+
from: "content.footerRuntime.arrangement",
|
|
34245
|
+
transforms: [{
|
|
34246
|
+
id: "layout.footerModuleInkStyle",
|
|
34247
|
+
options: { opacity: 80 }
|
|
34248
|
+
}]
|
|
34249
|
+
} }
|
|
33452
34250
|
}, when("module.content"), bind("module.content", { transforms: [{
|
|
33453
34251
|
id: "content.interpolateRichTextTokens",
|
|
33454
34252
|
options: { tokens: ["year", "site_name"] }
|
|
@@ -33486,27 +34284,44 @@ const platformAttribution = el("div", {
|
|
|
33486
34284
|
], when("module.kind", { equals: "attribution" }));
|
|
33487
34285
|
const footerGroup = stack({
|
|
33488
34286
|
gap: "md",
|
|
33489
|
-
align:
|
|
34287
|
+
align: { $bind: {
|
|
34288
|
+
from: "group.align",
|
|
34289
|
+
fallback: "stretch"
|
|
34290
|
+
} },
|
|
33490
34291
|
className: { $bind: {
|
|
33491
34292
|
from: "group.className",
|
|
33492
34293
|
fallback: "rb-min-w-0"
|
|
33493
34294
|
} },
|
|
34295
|
+
"data-slot": { $bind: { from: "group.slot" } },
|
|
33494
34296
|
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
33495
34297
|
}, [stack({
|
|
33496
34298
|
gap: "md",
|
|
33497
|
-
align:
|
|
34299
|
+
align: { $bind: {
|
|
34300
|
+
from: "module.align",
|
|
34301
|
+
fallback: "start"
|
|
34302
|
+
} },
|
|
34303
|
+
className: { $bind: { from: "module.className" } },
|
|
33498
34304
|
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
33499
34305
|
}, [
|
|
33500
34306
|
text({
|
|
33501
34307
|
as: "h2",
|
|
33502
34308
|
className: "rb-label",
|
|
33503
|
-
|
|
34309
|
+
"data-slot": { $bind: { from: "module.slots.group-label" } },
|
|
34310
|
+
style: { $bind: {
|
|
34311
|
+
from: "content.footerRuntime.arrangement",
|
|
34312
|
+
transforms: [{
|
|
34313
|
+
id: "layout.footerModuleInkStyle",
|
|
34314
|
+
options: { opacity: 70 }
|
|
34315
|
+
}]
|
|
34316
|
+
} }
|
|
33504
34317
|
}, bind("module.heading"), when("module.heading")),
|
|
33505
34318
|
brandLogo,
|
|
34319
|
+
centredBrand,
|
|
33506
34320
|
navigation,
|
|
33507
34321
|
stack({
|
|
33508
34322
|
gap: "sm",
|
|
33509
|
-
className: "rb-w-full"
|
|
34323
|
+
className: "rb-w-full",
|
|
34324
|
+
"data-slot": { $bind: { from: "module.slots.navigation" } }
|
|
33510
34325
|
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
33511
34326
|
address,
|
|
33512
34327
|
contact,
|
|
@@ -33519,10 +34334,12 @@ const footerGroup = stack({
|
|
|
33519
34334
|
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
33520
34335
|
const footerMainRegion = stack({
|
|
33521
34336
|
className: { $bind: { from: "region.className" } },
|
|
34337
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
33522
34338
|
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
33523
34339
|
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
33524
34340
|
const footerEngagementRegion = stack({
|
|
33525
34341
|
className: { $bind: { from: "region.className" } },
|
|
34342
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
33526
34343
|
"data-footer-region": "engagement-row"
|
|
33527
34344
|
}, [footerGroup], when("region.kind", { equals: "engagement-row" }), repeat("content.footerRuntime.regions", "region"));
|
|
33528
34345
|
const footerBottomRegion = stack({ className: { $bind: {
|
|
@@ -33539,6 +34356,7 @@ const footerBottomRegion = stack({ className: { $bind: {
|
|
|
33539
34356
|
from: "$root.theme.footer",
|
|
33540
34357
|
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
33541
34358
|
} },
|
|
34359
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
33542
34360
|
"data-footer-region": "bottom"
|
|
33543
34361
|
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
33544
34362
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
@@ -33560,6 +34378,7 @@ const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
|
33560
34378
|
transforms: [{ id: "layout.footerRootStyle" }],
|
|
33561
34379
|
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
33562
34380
|
} },
|
|
34381
|
+
"data-arrangement": { $bind: { from: "content.footerRuntime.arrangementHook" } },
|
|
33563
34382
|
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
33564
34383
|
}, [
|
|
33565
34384
|
footerEngagementRegion,
|
|
@@ -35161,17 +35980,30 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35161
35980
|
}],
|
|
35162
35981
|
fallback: ""
|
|
35163
35982
|
} };
|
|
35164
|
-
const copyHeading = el("div", {
|
|
35983
|
+
const copyHeading = el("div", {
|
|
35984
|
+
className: titleClassNameFromAlignment,
|
|
35985
|
+
...lookSlot("head")
|
|
35986
|
+
}, [text({
|
|
35165
35987
|
as: "p",
|
|
35166
|
-
className: eyebrowClassName("rb-eyebrow heading-eyebrow")
|
|
35167
|
-
|
|
35168
|
-
|
|
35169
|
-
|
|
35170
|
-
|
|
35171
|
-
|
|
35172
|
-
|
|
35173
|
-
|
|
35988
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
35989
|
+
...lookSlot("eyebrow")
|
|
35990
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
35991
|
+
as: "h2",
|
|
35992
|
+
...lookSlot("heading")
|
|
35993
|
+
}, bind("content.title"))], when("content.title"));
|
|
35994
|
+
const textContentNodes = (className) => {
|
|
35995
|
+
const props = {
|
|
35996
|
+
className,
|
|
35997
|
+
...lookSlot("intro"),
|
|
35998
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
35999
|
+
lookSlots: { $bind: { from: "content._lookSlots" } }
|
|
36000
|
+
};
|
|
36001
|
+
return [styledCard([richText(props, bind("content.text"))], mediaTextCardOptions, when("content.wrapTextInCard")), richText(props, when("content.wrapTextInCard", { not: true }), bind("content.text"))];
|
|
36002
|
+
};
|
|
36003
|
+
const defaultTextColumn = el("div", {}, textContentNodes("rb-prose rb-max-w-none"));
|
|
36004
|
+
const bioTextColumn = el("div", { className: "rb-flex rb-h-full rb-w-full rb-max-w-prose rb-flex-col rb-justify-center rb-gap-5" }, [copyHeading, ...textContentNodes(bodyClassNameFromAlignment)]);
|
|
35174
36005
|
const defaultImageCommonProps = {
|
|
36006
|
+
...lookSlot("photo"),
|
|
35175
36007
|
className: { $bind: {
|
|
35176
36008
|
from: "content.imageShape",
|
|
35177
36009
|
transforms: [{
|
|
@@ -35211,6 +36043,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35211
36043
|
slidesToShow: 1
|
|
35212
36044
|
}, [media(defaultImageCommonProps, bind("item.image"), repeat("content.images", "item"))]);
|
|
35213
36045
|
const defaultImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
36046
|
+
lookSlots: true,
|
|
35214
36047
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
35215
36048
|
text: defaultTextColumn,
|
|
35216
36049
|
ratioFrom: "content.ratio",
|
|
@@ -35222,6 +36055,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35222
36055
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1"
|
|
35223
36056
|
})], whenImagesLength(0, { not: true }));
|
|
35224
36057
|
const bioImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
36058
|
+
lookSlots: true,
|
|
35225
36059
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
35226
36060
|
text: bioTextColumn,
|
|
35227
36061
|
ratioFrom: "content.ratio",
|
|
@@ -35232,15 +36066,15 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35232
36066
|
imageWrapperClassName: "rb-w-full rb-shrink-0",
|
|
35233
36067
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1 rb-self-stretch"
|
|
35234
36068
|
})], whenImagesLength(0, { not: true }));
|
|
35235
|
-
const defaultTextOnlyLayout = el("div",
|
|
35236
|
-
const bioTextOnlyLayout = el("div", {
|
|
35237
|
-
|
|
35238
|
-
|
|
35239
|
-
|
|
35240
|
-
|
|
35241
|
-
|
|
35242
|
-
|
|
35243
|
-
], whenImagesLength(0));
|
|
36069
|
+
const defaultTextOnlyLayout = el("div", lookSlot("copy"), textContentNodes("rb-prose rb-max-w-none"), whenImagesLength(0));
|
|
36070
|
+
const bioTextOnlyLayout = el("div", {
|
|
36071
|
+
className: "rb-flex rb-w-full rb-max-w-prose rb-flex-col rb-gap-5",
|
|
36072
|
+
...lookSlot("copy")
|
|
36073
|
+
}, [text({
|
|
36074
|
+
as: "h2",
|
|
36075
|
+
className: titleClassNameFromAlignment,
|
|
36076
|
+
...lookSlot("heading")
|
|
36077
|
+
}, when("content.title"), bind("content.title")), ...textContentNodes(bodyClassNameFromAlignment)], whenImagesLength(0));
|
|
35244
36078
|
const defaultInner = el("div", {}, [defaultImagesLayout, defaultTextOnlyLayout]);
|
|
35245
36079
|
const bioInner = el("div", {}, [bioImagesLayout, bioTextOnlyLayout]);
|
|
35246
36080
|
const defaultLayout = styledSection({
|
|
@@ -35264,9 +36098,31 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35264
36098
|
}),
|
|
35265
36099
|
baseClass: "",
|
|
35266
36100
|
spacing: "medium"
|
|
36101
|
+
}),
|
|
36102
|
+
"circle-beside": styledSection({
|
|
36103
|
+
baseClass: "",
|
|
36104
|
+
spacing: "medium",
|
|
36105
|
+
children: styledContainer({ children: el("div", lookSlot("frame"), [el("div", lookSlot("media"), [
|
|
36106
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(1)),
|
|
36107
|
+
el("div", {}, [el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))], whenImagesLength(0, { not: true })),
|
|
36108
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(0))
|
|
36109
|
+
]), el("div", lookSlot("copy"), [el("div", lookSlot("head"), [text({
|
|
36110
|
+
as: "p",
|
|
36111
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
36112
|
+
...lookSlot("eyebrow")
|
|
36113
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
36114
|
+
as: "h2",
|
|
36115
|
+
...lookSlot("heading")
|
|
36116
|
+
}, bind("content.title"), when("content.title", { authoringPresence: {
|
|
36117
|
+
kind: "recover-empty-when-active",
|
|
36118
|
+
placeholder: "Add heading"
|
|
36119
|
+
} }))]), defaultTextColumn])]) })
|
|
35267
36120
|
})
|
|
35268
36121
|
},
|
|
35269
|
-
variantMeaning: {
|
|
36122
|
+
variantMeaning: {
|
|
36123
|
+
kind: "arrangement",
|
|
36124
|
+
lookOnlyKeys: ["circle-beside"]
|
|
36125
|
+
},
|
|
35270
36126
|
defaultVariant: "default",
|
|
35271
36127
|
variantOptions: {
|
|
35272
36128
|
default: { label: "Default" },
|
|
@@ -36362,24 +37218,6 @@ const emptyStateField = {
|
|
|
36362
37218
|
ui: { intent: "display" }
|
|
36363
37219
|
};
|
|
36364
37220
|
/**
|
|
36365
|
-
* Section heading and description fields
|
|
36366
|
-
*/
|
|
36367
|
-
const sectionHeaderFields = (defaultHeading) => [{
|
|
36368
|
-
id: "heading",
|
|
36369
|
-
type: "text",
|
|
36370
|
-
label: "Heading",
|
|
36371
|
-
description: "Main heading for the events section",
|
|
36372
|
-
required: false,
|
|
36373
|
-
multiline: false,
|
|
36374
|
-
defaultValue: defaultHeading
|
|
36375
|
-
}, {
|
|
36376
|
-
id: "description",
|
|
36377
|
-
type: "richText",
|
|
36378
|
-
label: "Description",
|
|
36379
|
-
description: "Optional introductory text",
|
|
36380
|
-
required: false
|
|
36381
|
-
}];
|
|
36382
|
-
/**
|
|
36383
37221
|
* Layout selection field with grid/stack options
|
|
36384
37222
|
*/
|
|
36385
37223
|
const layoutField = {
|
|
@@ -36492,31 +37330,6 @@ function normalizeEventStaffMemberId(value) {
|
|
|
36492
37330
|
return trimmed ? trimmed : null;
|
|
36493
37331
|
}
|
|
36494
37332
|
//#endregion
|
|
36495
|
-
//#region ../blocks/src/system/blocks/events/shared/layout.ts
|
|
36496
|
-
const recoverEmptyHeadingWhenActive = {
|
|
36497
|
-
kind: "recover-empty-when-active",
|
|
36498
|
-
placeholder: "Add heading"
|
|
36499
|
-
};
|
|
36500
|
-
const recoverEmptyDescriptionWhenActive = {
|
|
36501
|
-
kind: "recover-empty-when-active",
|
|
36502
|
-
placeholder: "Add description"
|
|
36503
|
-
};
|
|
36504
|
-
function eventSectionHeaderLayoutNodes(options = {}) {
|
|
36505
|
-
const headingNode = text({
|
|
36506
|
-
as: "h2",
|
|
36507
|
-
...lookSlot("heading")
|
|
36508
|
-
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
36509
|
-
const descriptionNode = richText({
|
|
36510
|
-
className: "rb-prose rb-max-w-none",
|
|
36511
|
-
...lookSlot("intro")
|
|
36512
|
-
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
36513
|
-
if (options.splitClassName) return [el("div", {
|
|
36514
|
-
className: options.splitClassName,
|
|
36515
|
-
...lookSlot("head")
|
|
36516
|
-
}, [headingNode, descriptionNode])];
|
|
36517
|
-
return [headingNode, descriptionNode];
|
|
36518
|
-
}
|
|
36519
|
-
//#endregion
|
|
36520
37333
|
//#region ../blocks/src/system/blocks/shop.shared.ts
|
|
36521
37334
|
/**
|
|
36522
37335
|
* Public pass product for shop display
|
|
@@ -36941,19 +37754,14 @@ function buildCalendarViewport(input) {
|
|
|
36941
37754
|
*
|
|
36942
37755
|
* Sites don't store a locale, and every public word around a date is English,
|
|
36943
37756
|
* so the only open question is which English conventions to follow: day or
|
|
36944
|
-
* month first
|
|
37757
|
+
* month first. The site's time zone is the one
|
|
36945
37758
|
* fact every site carries about where it is. It is the site's, never an
|
|
36946
37759
|
* event's: a venue left at UTC must not turn a UK site's dates American.
|
|
36947
37760
|
* Anywhere this can't place (UTC, the Americas, Asia) keeps US English, which
|
|
36948
37761
|
* is what these helpers wrote before sites were placed at all.
|
|
36949
37762
|
*/
|
|
36950
37763
|
function eventDateLocale(siteTimeZone) {
|
|
36951
|
-
|
|
36952
|
-
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
36953
|
-
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
36954
|
-
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
36955
|
-
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
36956
|
-
return "en-US";
|
|
37764
|
+
return inferSiteDateLocale(siteTimeZone);
|
|
36957
37765
|
}
|
|
36958
37766
|
function formatEventCompactDateRail(isoTimestamp, options, letterCase = "capitals") {
|
|
36959
37767
|
const locale = options?.locale ?? "en-US";
|
|
@@ -38661,7 +39469,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
38661
39469
|
],
|
|
38662
39470
|
icon: "Star",
|
|
38663
39471
|
layout: [styledSection({
|
|
38664
|
-
children: sectionContainer([...
|
|
39472
|
+
children: sectionContainer([...sectionHeaderLayoutNodes(), el("event-spotlight", {
|
|
38665
39473
|
events: { $bind: { from: "data.events" } },
|
|
38666
39474
|
layout: { $bind: {
|
|
38667
39475
|
from: "content.layout",
|
|
@@ -38717,52 +39525,6 @@ const eventSpotlightBlockDefinition = {
|
|
|
38717
39525
|
} }
|
|
38718
39526
|
};
|
|
38719
39527
|
//#endregion
|
|
38720
|
-
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
38721
|
-
const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
38722
|
-
const lookListPresentationSchemaShape = {
|
|
38723
|
-
sectionAction: z.object({
|
|
38724
|
-
label: z.string(),
|
|
38725
|
-
href: z.string()
|
|
38726
|
-
}).optional(),
|
|
38727
|
-
actionSize: z.enum([
|
|
38728
|
-
"sm",
|
|
38729
|
-
"md",
|
|
38730
|
-
"lg"
|
|
38731
|
-
]).optional(),
|
|
38732
|
-
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
38733
|
-
itemRoles: z.object({
|
|
38734
|
-
container: z.enum([
|
|
38735
|
-
"card",
|
|
38736
|
-
"statement",
|
|
38737
|
-
"highlight"
|
|
38738
|
-
]).optional(),
|
|
38739
|
-
items: z.enum([
|
|
38740
|
-
"card",
|
|
38741
|
-
"statement",
|
|
38742
|
-
"highlight"
|
|
38743
|
-
]).optional(),
|
|
38744
|
-
at: z.partialRecord(z.enum([
|
|
38745
|
-
"first",
|
|
38746
|
-
"last",
|
|
38747
|
-
"middle",
|
|
38748
|
-
"odd",
|
|
38749
|
-
"even"
|
|
38750
|
-
]), z.enum([
|
|
38751
|
-
"card",
|
|
38752
|
-
"statement",
|
|
38753
|
-
"highlight"
|
|
38754
|
-
])).optional()
|
|
38755
|
-
}).optional(),
|
|
38756
|
-
roleSurfaces: z.record(z.enum([
|
|
38757
|
-
"card",
|
|
38758
|
-
"statement",
|
|
38759
|
-
"highlight"
|
|
38760
|
-
]), z.custom((value) => isPlainObject(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
38761
|
-
panelHeading: z.string().optional(),
|
|
38762
|
-
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
38763
|
-
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
38764
|
-
};
|
|
38765
|
-
//#endregion
|
|
38766
39528
|
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
38767
39529
|
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
38768
39530
|
function resolveEventSelection(mode, value) {
|
|
@@ -39537,7 +40299,7 @@ const eventListingBlockDefinition = {
|
|
|
39537
40299
|
children: styledContainer({
|
|
39538
40300
|
rootType: "stack",
|
|
39539
40301
|
rootProps: { gap: "lg" },
|
|
39540
|
-
children: [...
|
|
40302
|
+
children: [...sectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
39541
40303
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
39542
40304
|
events: { $bind: { from: "data.events" } },
|
|
39543
40305
|
stage: { $bind: {
|
|
@@ -39977,7 +40739,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
39977
40739
|
gap: "lg",
|
|
39978
40740
|
...lookSlot("layout")
|
|
39979
40741
|
},
|
|
39980
|
-
children: [...
|
|
40742
|
+
children: [...sectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
39981
40743
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
39982
40744
|
events: { $bind: { from: "data.events" } },
|
|
39983
40745
|
effectiveListArrangementKey: { $bind: { from: "$root.effectiveListArrangementKey" } },
|
|
@@ -41933,6 +42695,511 @@ const embedBlockDefinition = {
|
|
|
41933
42695
|
} }
|
|
41934
42696
|
};
|
|
41935
42697
|
//#endregion
|
|
42698
|
+
//#region ../blocks/src/system/blocks/image-gallery/fields.ts
|
|
42699
|
+
const imageGalleryFields = parseFieldDefinitions([
|
|
42700
|
+
...sectionHeaderFields(void 0, "Intro"),
|
|
42701
|
+
{
|
|
42702
|
+
id: "images",
|
|
42703
|
+
type: "repeater",
|
|
42704
|
+
label: "Images",
|
|
42705
|
+
itemLabel: "Image",
|
|
42706
|
+
minItems: 0,
|
|
42707
|
+
maxItems: 24,
|
|
42708
|
+
ui: {
|
|
42709
|
+
repeaterPreset: "thumbnailGrid",
|
|
42710
|
+
thumbnailField: "image",
|
|
42711
|
+
thumbnailAltField: "caption",
|
|
42712
|
+
thumbnailLabelField: "caption",
|
|
42713
|
+
thumbnailCardDensity: "compact"
|
|
42714
|
+
},
|
|
42715
|
+
schema: { fields: [{
|
|
42716
|
+
id: "image",
|
|
42717
|
+
type: "media",
|
|
42718
|
+
label: "Image",
|
|
42719
|
+
required: true,
|
|
42720
|
+
mediaKinds: ["image"]
|
|
42721
|
+
}, {
|
|
42722
|
+
id: "caption",
|
|
42723
|
+
type: "text",
|
|
42724
|
+
label: "Caption",
|
|
42725
|
+
description: "Optional caption displayed below the image and used as the editor card label",
|
|
42726
|
+
maxLength: 200
|
|
42727
|
+
}] }
|
|
42728
|
+
},
|
|
42729
|
+
{
|
|
42730
|
+
id: "fullBleed",
|
|
42731
|
+
type: "boolean",
|
|
42732
|
+
label: "Full bleed",
|
|
42733
|
+
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
42734
|
+
defaultValue: false,
|
|
42735
|
+
ui: {
|
|
42736
|
+
intent: "display",
|
|
42737
|
+
visibleWhen: {
|
|
42738
|
+
field: "variant",
|
|
42739
|
+
notIn: ["marquee"]
|
|
42740
|
+
}
|
|
42741
|
+
}
|
|
42742
|
+
},
|
|
42743
|
+
{
|
|
42744
|
+
id: "aspectRatio",
|
|
42745
|
+
type: "select",
|
|
42746
|
+
label: "Aspect ratio",
|
|
42747
|
+
description: "Crop images to a consistent aspect ratio.",
|
|
42748
|
+
defaultValue: "1/1",
|
|
42749
|
+
options: [
|
|
42750
|
+
{
|
|
42751
|
+
value: "auto",
|
|
42752
|
+
label: "Original"
|
|
42753
|
+
},
|
|
42754
|
+
{
|
|
42755
|
+
value: "1/1",
|
|
42756
|
+
label: "1:1 (Square)"
|
|
42757
|
+
},
|
|
42758
|
+
{
|
|
42759
|
+
value: "4/3",
|
|
42760
|
+
label: "4:3 (Standard)"
|
|
42761
|
+
},
|
|
42762
|
+
{
|
|
42763
|
+
value: "16/9",
|
|
42764
|
+
label: "16:9 (Widescreen)"
|
|
42765
|
+
},
|
|
42766
|
+
{
|
|
42767
|
+
value: "3/2",
|
|
42768
|
+
label: "3:2 (Classic)"
|
|
42769
|
+
},
|
|
42770
|
+
{
|
|
42771
|
+
value: "3/4",
|
|
42772
|
+
label: "3:4 (Portrait)"
|
|
42773
|
+
}
|
|
42774
|
+
],
|
|
42775
|
+
ui: {
|
|
42776
|
+
intent: "display",
|
|
42777
|
+
visibleWhen: {
|
|
42778
|
+
field: "variant",
|
|
42779
|
+
notIn: ["masonry", "marquee"]
|
|
42780
|
+
}
|
|
42781
|
+
}
|
|
42782
|
+
},
|
|
42783
|
+
{
|
|
42784
|
+
id: "slidesToShow",
|
|
42785
|
+
type: "select",
|
|
42786
|
+
label: "Images per view (mobile)",
|
|
42787
|
+
description: "Number of images visible at once on small screens.",
|
|
42788
|
+
defaultValue: "1",
|
|
42789
|
+
options: [
|
|
42790
|
+
{
|
|
42791
|
+
value: "1",
|
|
42792
|
+
label: "One at a time"
|
|
42793
|
+
},
|
|
42794
|
+
{
|
|
42795
|
+
value: "2",
|
|
42796
|
+
label: "Two at a time"
|
|
42797
|
+
},
|
|
42798
|
+
{
|
|
42799
|
+
value: "3",
|
|
42800
|
+
label: "Three at a time"
|
|
42801
|
+
}
|
|
42802
|
+
],
|
|
42803
|
+
ui: {
|
|
42804
|
+
intent: "display",
|
|
42805
|
+
visibleWhen: {
|
|
42806
|
+
field: "variant",
|
|
42807
|
+
equals: "carousel"
|
|
42808
|
+
}
|
|
42809
|
+
}
|
|
42810
|
+
},
|
|
42811
|
+
{
|
|
42812
|
+
id: "slidesToShowTablet",
|
|
42813
|
+
type: "select",
|
|
42814
|
+
label: "Images per view (tablet)",
|
|
42815
|
+
description: "Number of images visible on medium screens.",
|
|
42816
|
+
options: [
|
|
42817
|
+
{
|
|
42818
|
+
value: "",
|
|
42819
|
+
label: "Same as mobile"
|
|
42820
|
+
},
|
|
42821
|
+
{
|
|
42822
|
+
value: "1",
|
|
42823
|
+
label: "One at a time"
|
|
42824
|
+
},
|
|
42825
|
+
{
|
|
42826
|
+
value: "2",
|
|
42827
|
+
label: "Two at a time"
|
|
42828
|
+
},
|
|
42829
|
+
{
|
|
42830
|
+
value: "3",
|
|
42831
|
+
label: "Three at a time"
|
|
42832
|
+
}
|
|
42833
|
+
],
|
|
42834
|
+
ui: {
|
|
42835
|
+
intent: "display",
|
|
42836
|
+
visibleWhen: {
|
|
42837
|
+
field: "variant",
|
|
42838
|
+
equals: "carousel"
|
|
42839
|
+
}
|
|
42840
|
+
}
|
|
42841
|
+
},
|
|
42842
|
+
{
|
|
42843
|
+
id: "slidesToShowDesktop",
|
|
42844
|
+
type: "select",
|
|
42845
|
+
label: "Images per view (desktop)",
|
|
42846
|
+
description: "Number of images visible on large screens.",
|
|
42847
|
+
options: [
|
|
42848
|
+
{
|
|
42849
|
+
value: "",
|
|
42850
|
+
label: "Same as tablet"
|
|
42851
|
+
},
|
|
42852
|
+
{
|
|
42853
|
+
value: "1",
|
|
42854
|
+
label: "One at a time"
|
|
42855
|
+
},
|
|
42856
|
+
{
|
|
42857
|
+
value: "2",
|
|
42858
|
+
label: "Two at a time"
|
|
42859
|
+
},
|
|
42860
|
+
{
|
|
42861
|
+
value: "3",
|
|
42862
|
+
label: "Three at a time"
|
|
42863
|
+
}
|
|
42864
|
+
],
|
|
42865
|
+
ui: {
|
|
42866
|
+
intent: "display",
|
|
42867
|
+
visibleWhen: {
|
|
42868
|
+
field: "variant",
|
|
42869
|
+
equals: "carousel"
|
|
42870
|
+
}
|
|
42871
|
+
}
|
|
42872
|
+
},
|
|
42873
|
+
{
|
|
42874
|
+
id: "transition",
|
|
42875
|
+
type: "select",
|
|
42876
|
+
label: "Transition",
|
|
42877
|
+
description: "Animation style between slides.",
|
|
42878
|
+
defaultValue: "slide",
|
|
42879
|
+
options: [{
|
|
42880
|
+
value: "slide",
|
|
42881
|
+
label: "Slide"
|
|
42882
|
+
}, {
|
|
42883
|
+
value: "fade",
|
|
42884
|
+
label: "Fade"
|
|
42885
|
+
}],
|
|
42886
|
+
ui: {
|
|
42887
|
+
intent: "display",
|
|
42888
|
+
visibleWhen: {
|
|
42889
|
+
field: "variant",
|
|
42890
|
+
equals: "carousel"
|
|
42891
|
+
}
|
|
42892
|
+
}
|
|
42893
|
+
},
|
|
42894
|
+
{
|
|
42895
|
+
id: "showControls",
|
|
42896
|
+
type: "boolean",
|
|
42897
|
+
label: "Show arrows",
|
|
42898
|
+
defaultValue: true,
|
|
42899
|
+
ui: {
|
|
42900
|
+
intent: "behavior",
|
|
42901
|
+
visibleWhen: {
|
|
42902
|
+
field: "variant",
|
|
42903
|
+
equals: "carousel"
|
|
42904
|
+
}
|
|
42905
|
+
}
|
|
42906
|
+
},
|
|
42907
|
+
{
|
|
42908
|
+
id: "showDots",
|
|
42909
|
+
type: "boolean",
|
|
42910
|
+
label: "Show dots",
|
|
42911
|
+
defaultValue: false,
|
|
42912
|
+
ui: {
|
|
42913
|
+
intent: "behavior",
|
|
42914
|
+
visibleWhen: {
|
|
42915
|
+
field: "variant",
|
|
42916
|
+
equals: "carousel"
|
|
42917
|
+
}
|
|
42918
|
+
}
|
|
42919
|
+
},
|
|
42920
|
+
{
|
|
42921
|
+
id: "autoplay",
|
|
42922
|
+
type: "boolean",
|
|
42923
|
+
label: "Autoplay",
|
|
42924
|
+
defaultValue: false,
|
|
42925
|
+
ui: {
|
|
42926
|
+
intent: "behavior",
|
|
42927
|
+
visibleWhen: {
|
|
42928
|
+
field: "variant",
|
|
42929
|
+
equals: "carousel"
|
|
42930
|
+
}
|
|
42931
|
+
}
|
|
42932
|
+
},
|
|
42933
|
+
{
|
|
42934
|
+
id: "autoplayDelay",
|
|
42935
|
+
type: "select",
|
|
42936
|
+
label: "Autoplay delay",
|
|
42937
|
+
defaultValue: "5000",
|
|
42938
|
+
options: [
|
|
42939
|
+
{
|
|
42940
|
+
value: "3000",
|
|
42941
|
+
label: "3 seconds"
|
|
42942
|
+
},
|
|
42943
|
+
{
|
|
42944
|
+
value: "5000",
|
|
42945
|
+
label: "5 seconds"
|
|
42946
|
+
},
|
|
42947
|
+
{
|
|
42948
|
+
value: "7000",
|
|
42949
|
+
label: "7 seconds"
|
|
42950
|
+
},
|
|
42951
|
+
{
|
|
42952
|
+
value: "10000",
|
|
42953
|
+
label: "10 seconds"
|
|
42954
|
+
}
|
|
42955
|
+
],
|
|
42956
|
+
ui: {
|
|
42957
|
+
intent: "behavior",
|
|
42958
|
+
visibleWhen: {
|
|
42959
|
+
field: "variant",
|
|
42960
|
+
equals: "carousel"
|
|
42961
|
+
}
|
|
42962
|
+
}
|
|
42963
|
+
},
|
|
42964
|
+
{
|
|
42965
|
+
id: "arrowVisibility",
|
|
42966
|
+
type: "select",
|
|
42967
|
+
label: "Arrow visibility",
|
|
42968
|
+
defaultValue: "always",
|
|
42969
|
+
options: [{
|
|
42970
|
+
value: "always",
|
|
42971
|
+
label: "Always visible"
|
|
42972
|
+
}, {
|
|
42973
|
+
value: "hover",
|
|
42974
|
+
label: "Show on hover"
|
|
42975
|
+
}],
|
|
42976
|
+
ui: {
|
|
42977
|
+
intent: "behavior",
|
|
42978
|
+
visibleWhen: {
|
|
42979
|
+
field: "variant",
|
|
42980
|
+
equals: "carousel"
|
|
42981
|
+
}
|
|
42982
|
+
}
|
|
42983
|
+
},
|
|
42984
|
+
{
|
|
42985
|
+
id: "loop",
|
|
42986
|
+
type: "boolean",
|
|
42987
|
+
label: "Loop slides",
|
|
42988
|
+
defaultValue: true,
|
|
42989
|
+
ui: {
|
|
42990
|
+
intent: "behavior",
|
|
42991
|
+
visibleWhen: {
|
|
42992
|
+
field: "variant",
|
|
42993
|
+
equals: "carousel"
|
|
42994
|
+
}
|
|
42995
|
+
}
|
|
42996
|
+
},
|
|
42997
|
+
{
|
|
42998
|
+
id: "marqueeDirection",
|
|
42999
|
+
type: "select",
|
|
43000
|
+
label: "Scroll direction",
|
|
43001
|
+
options: [{
|
|
43002
|
+
value: "left",
|
|
43003
|
+
label: "Left"
|
|
43004
|
+
}, {
|
|
43005
|
+
value: "right",
|
|
43006
|
+
label: "Right"
|
|
43007
|
+
}],
|
|
43008
|
+
defaultValue: "left",
|
|
43009
|
+
ui: {
|
|
43010
|
+
intent: "display",
|
|
43011
|
+
visibleWhen: {
|
|
43012
|
+
field: "variant",
|
|
43013
|
+
equals: "marquee"
|
|
43014
|
+
}
|
|
43015
|
+
}
|
|
43016
|
+
},
|
|
43017
|
+
{
|
|
43018
|
+
id: "marqueeSpeed",
|
|
43019
|
+
type: "select",
|
|
43020
|
+
label: "Scroll speed",
|
|
43021
|
+
options: [
|
|
43022
|
+
{
|
|
43023
|
+
value: "slow",
|
|
43024
|
+
label: "Slow (60s)"
|
|
43025
|
+
},
|
|
43026
|
+
{
|
|
43027
|
+
value: "medium",
|
|
43028
|
+
label: "Medium (40s)"
|
|
43029
|
+
},
|
|
43030
|
+
{
|
|
43031
|
+
value: "fast",
|
|
43032
|
+
label: "Fast (20s)"
|
|
43033
|
+
}
|
|
43034
|
+
],
|
|
43035
|
+
defaultValue: "medium",
|
|
43036
|
+
ui: {
|
|
43037
|
+
intent: "display",
|
|
43038
|
+
visibleWhen: {
|
|
43039
|
+
field: "variant",
|
|
43040
|
+
equals: "marquee"
|
|
43041
|
+
}
|
|
43042
|
+
}
|
|
43043
|
+
},
|
|
43044
|
+
{
|
|
43045
|
+
id: "marqueePauseOnHover",
|
|
43046
|
+
type: "boolean",
|
|
43047
|
+
label: "Pause on hover",
|
|
43048
|
+
defaultValue: true,
|
|
43049
|
+
ui: {
|
|
43050
|
+
intent: "behavior",
|
|
43051
|
+
visibleWhen: {
|
|
43052
|
+
field: "variant",
|
|
43053
|
+
equals: "marquee"
|
|
43054
|
+
}
|
|
43055
|
+
}
|
|
43056
|
+
},
|
|
43057
|
+
{
|
|
43058
|
+
id: "marqueeImageSize",
|
|
43059
|
+
type: "select",
|
|
43060
|
+
label: "Image size",
|
|
43061
|
+
options: [
|
|
43062
|
+
{
|
|
43063
|
+
value: "sm",
|
|
43064
|
+
label: "Small (200px)"
|
|
43065
|
+
},
|
|
43066
|
+
{
|
|
43067
|
+
value: "md",
|
|
43068
|
+
label: "Medium (256px)"
|
|
43069
|
+
},
|
|
43070
|
+
{
|
|
43071
|
+
value: "lg",
|
|
43072
|
+
label: "Large (320px)"
|
|
43073
|
+
},
|
|
43074
|
+
{
|
|
43075
|
+
value: "xl",
|
|
43076
|
+
label: "Extra large (400px)"
|
|
43077
|
+
}
|
|
43078
|
+
],
|
|
43079
|
+
defaultValue: "md",
|
|
43080
|
+
ui: {
|
|
43081
|
+
intent: "display",
|
|
43082
|
+
visibleWhen: {
|
|
43083
|
+
field: "variant",
|
|
43084
|
+
equals: "marquee"
|
|
43085
|
+
}
|
|
43086
|
+
}
|
|
43087
|
+
},
|
|
43088
|
+
{
|
|
43089
|
+
id: "imageFilter",
|
|
43090
|
+
type: "select",
|
|
43091
|
+
label: "Image filter",
|
|
43092
|
+
options: [
|
|
43093
|
+
{
|
|
43094
|
+
value: "none",
|
|
43095
|
+
label: "None"
|
|
43096
|
+
},
|
|
43097
|
+
{
|
|
43098
|
+
value: "grayscale",
|
|
43099
|
+
label: "Grayscale"
|
|
43100
|
+
},
|
|
43101
|
+
{
|
|
43102
|
+
value: "grayscale-hover-reveal",
|
|
43103
|
+
label: "Grayscale (color on hover)"
|
|
43104
|
+
},
|
|
43105
|
+
{
|
|
43106
|
+
value: "sepia",
|
|
43107
|
+
label: "Sepia"
|
|
43108
|
+
}
|
|
43109
|
+
],
|
|
43110
|
+
defaultValue: "grayscale-hover-reveal",
|
|
43111
|
+
ui: { intent: "style" }
|
|
43112
|
+
},
|
|
43113
|
+
{
|
|
43114
|
+
id: "imageBorder",
|
|
43115
|
+
type: "group",
|
|
43116
|
+
label: "Image border",
|
|
43117
|
+
schema: { fields: [
|
|
43118
|
+
{
|
|
43119
|
+
id: "enabled",
|
|
43120
|
+
type: "boolean",
|
|
43121
|
+
label: "Show border",
|
|
43122
|
+
defaultValue: true
|
|
43123
|
+
},
|
|
43124
|
+
{
|
|
43125
|
+
id: "colorToken",
|
|
43126
|
+
type: "text",
|
|
43127
|
+
label: "Border color",
|
|
43128
|
+
defaultValue: "accent",
|
|
43129
|
+
ui: { widget: "backgroundColor" }
|
|
43130
|
+
},
|
|
43131
|
+
{
|
|
43132
|
+
id: "opacity",
|
|
43133
|
+
type: "number",
|
|
43134
|
+
label: "Border opacity",
|
|
43135
|
+
defaultValue: 30,
|
|
43136
|
+
ui: {
|
|
43137
|
+
min: 0,
|
|
43138
|
+
max: 100
|
|
43139
|
+
}
|
|
43140
|
+
},
|
|
43141
|
+
{
|
|
43142
|
+
id: "width",
|
|
43143
|
+
type: "select",
|
|
43144
|
+
label: "Border width",
|
|
43145
|
+
options: [
|
|
43146
|
+
{
|
|
43147
|
+
value: "1",
|
|
43148
|
+
label: "Thin (1px)"
|
|
43149
|
+
},
|
|
43150
|
+
{
|
|
43151
|
+
value: "2",
|
|
43152
|
+
label: "Medium (2px)"
|
|
43153
|
+
},
|
|
43154
|
+
{
|
|
43155
|
+
value: "3",
|
|
43156
|
+
label: "Thick (3px)"
|
|
43157
|
+
}
|
|
43158
|
+
],
|
|
43159
|
+
defaultValue: "2"
|
|
43160
|
+
}
|
|
43161
|
+
] },
|
|
43162
|
+
ui: { intent: "style" }
|
|
43163
|
+
},
|
|
43164
|
+
{
|
|
43165
|
+
id: "imageCorners",
|
|
43166
|
+
type: "select",
|
|
43167
|
+
label: "Image corners",
|
|
43168
|
+
options: [
|
|
43169
|
+
{
|
|
43170
|
+
value: "none",
|
|
43171
|
+
label: "Square"
|
|
43172
|
+
},
|
|
43173
|
+
{
|
|
43174
|
+
value: "sm",
|
|
43175
|
+
label: "Slightly rounded"
|
|
43176
|
+
},
|
|
43177
|
+
{
|
|
43178
|
+
value: "md",
|
|
43179
|
+
label: "Rounded"
|
|
43180
|
+
},
|
|
43181
|
+
{
|
|
43182
|
+
value: "lg",
|
|
43183
|
+
label: "More rounded"
|
|
43184
|
+
},
|
|
43185
|
+
{
|
|
43186
|
+
value: "xl",
|
|
43187
|
+
label: "Very rounded"
|
|
43188
|
+
},
|
|
43189
|
+
{
|
|
43190
|
+
value: "2xl",
|
|
43191
|
+
label: "Extra rounded"
|
|
43192
|
+
},
|
|
43193
|
+
{
|
|
43194
|
+
value: "3xl",
|
|
43195
|
+
label: "Maximum rounded"
|
|
43196
|
+
}
|
|
43197
|
+
],
|
|
43198
|
+
defaultValue: "3xl",
|
|
43199
|
+
ui: { intent: "style" }
|
|
43200
|
+
}
|
|
43201
|
+
]);
|
|
43202
|
+
//#endregion
|
|
41936
43203
|
//#region ../blocks/src/system/blocks/image-gallery.ts
|
|
41937
43204
|
const grid$1 = (props, children, ...mods) => el("grid", props ?? void 0, children ?? void 0, ...mods);
|
|
41938
43205
|
const galleryContainer = (children, opts) => {
|
|
@@ -42147,7 +43414,11 @@ const emptyState$1 = {
|
|
|
42147
43414
|
}
|
|
42148
43415
|
};
|
|
42149
43416
|
const wrapVariant$1 = (layout, opts) => styledSection({
|
|
42150
|
-
children: galleryContainer([
|
|
43417
|
+
children: galleryContainer([
|
|
43418
|
+
...sectionHeaderLayoutNodes(),
|
|
43419
|
+
layout,
|
|
43420
|
+
emptyState$1
|
|
43421
|
+
], {
|
|
42151
43422
|
gap: "md",
|
|
42152
43423
|
fullWidth: opts?.fullWidth,
|
|
42153
43424
|
className: opts?.className
|
|
@@ -42156,6 +43427,28 @@ const wrapVariant$1 = (layout, opts) => styledSection({
|
|
|
42156
43427
|
spacing: "medium",
|
|
42157
43428
|
background: "background"
|
|
42158
43429
|
});
|
|
43430
|
+
const lookGalleryTile = (imageFrom, captionFrom, ...mods) => el("li", lookSlot("item"), [el("figure", lookSlot("figure"), [el("div", lookSlot("media"), [media(lookSlot("photo"), bind(imageFrom), when(imageFrom))]), text({
|
|
43431
|
+
as: "figcaption",
|
|
43432
|
+
...lookSlot("caption")
|
|
43433
|
+
}, bind(captionFrom), when(captionFrom))])], ...mods);
|
|
43434
|
+
const tilesLayout = styledSection({
|
|
43435
|
+
children: el("div", {
|
|
43436
|
+
className: "rb-container",
|
|
43437
|
+
...lookSlot("layout")
|
|
43438
|
+
}, [...sectionHeaderLayoutNodes({ splitClassName: "rb-grid" }), el("ol", lookSlot("items"), [lookGalleryTile("item.image", "item.caption", repeat("content.images", "item")), lookGalleryTile("content.images.0.image", "content.images.0.caption", (node) => ({
|
|
43439
|
+
...node,
|
|
43440
|
+
$when: {
|
|
43441
|
+
when: {
|
|
43442
|
+
from: "content.images",
|
|
43443
|
+
transforms: [{ id: "array.length" }]
|
|
43444
|
+
},
|
|
43445
|
+
equals: 0
|
|
43446
|
+
}
|
|
43447
|
+
}))])]),
|
|
43448
|
+
baseClass: "",
|
|
43449
|
+
spacing: "medium",
|
|
43450
|
+
background: "background"
|
|
43451
|
+
});
|
|
42159
43452
|
const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
42160
43453
|
id: "block.image-gallery",
|
|
42161
43454
|
title: "Image Gallery",
|
|
@@ -42168,510 +43461,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
42168
43461
|
"marqueeSpeed",
|
|
42169
43462
|
"marqueePauseOnHover"
|
|
42170
43463
|
] },
|
|
42171
|
-
additionalFields:
|
|
42172
|
-
{
|
|
42173
|
-
id: "images",
|
|
42174
|
-
type: "repeater",
|
|
42175
|
-
label: "Images",
|
|
42176
|
-
itemLabel: "Image",
|
|
42177
|
-
minItems: 0,
|
|
42178
|
-
maxItems: 24,
|
|
42179
|
-
ui: {
|
|
42180
|
-
repeaterPreset: "thumbnailGrid",
|
|
42181
|
-
thumbnailField: "image",
|
|
42182
|
-
thumbnailAltField: "caption",
|
|
42183
|
-
thumbnailLabelField: "caption",
|
|
42184
|
-
thumbnailCardDensity: "compact"
|
|
42185
|
-
},
|
|
42186
|
-
schema: { fields: [{
|
|
42187
|
-
id: "image",
|
|
42188
|
-
type: "media",
|
|
42189
|
-
label: "Image",
|
|
42190
|
-
required: true,
|
|
42191
|
-
mediaKinds: ["image"]
|
|
42192
|
-
}, {
|
|
42193
|
-
id: "caption",
|
|
42194
|
-
type: "text",
|
|
42195
|
-
label: "Caption",
|
|
42196
|
-
description: "Optional caption displayed below the image and used as the editor card label",
|
|
42197
|
-
maxLength: 200
|
|
42198
|
-
}] }
|
|
42199
|
-
},
|
|
42200
|
-
{
|
|
42201
|
-
id: "fullBleed",
|
|
42202
|
-
type: "boolean",
|
|
42203
|
-
label: "Full bleed",
|
|
42204
|
-
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
42205
|
-
defaultValue: false,
|
|
42206
|
-
ui: {
|
|
42207
|
-
intent: "display",
|
|
42208
|
-
visibleWhen: {
|
|
42209
|
-
field: "variant",
|
|
42210
|
-
notIn: ["marquee"]
|
|
42211
|
-
}
|
|
42212
|
-
}
|
|
42213
|
-
},
|
|
42214
|
-
{
|
|
42215
|
-
id: "aspectRatio",
|
|
42216
|
-
type: "select",
|
|
42217
|
-
label: "Aspect ratio",
|
|
42218
|
-
description: "Crop images to a consistent aspect ratio.",
|
|
42219
|
-
defaultValue: "1/1",
|
|
42220
|
-
options: [
|
|
42221
|
-
{
|
|
42222
|
-
value: "auto",
|
|
42223
|
-
label: "Original"
|
|
42224
|
-
},
|
|
42225
|
-
{
|
|
42226
|
-
value: "1/1",
|
|
42227
|
-
label: "1:1 (Square)"
|
|
42228
|
-
},
|
|
42229
|
-
{
|
|
42230
|
-
value: "4/3",
|
|
42231
|
-
label: "4:3 (Standard)"
|
|
42232
|
-
},
|
|
42233
|
-
{
|
|
42234
|
-
value: "16/9",
|
|
42235
|
-
label: "16:9 (Widescreen)"
|
|
42236
|
-
},
|
|
42237
|
-
{
|
|
42238
|
-
value: "3/2",
|
|
42239
|
-
label: "3:2 (Classic)"
|
|
42240
|
-
},
|
|
42241
|
-
{
|
|
42242
|
-
value: "3/4",
|
|
42243
|
-
label: "3:4 (Portrait)"
|
|
42244
|
-
}
|
|
42245
|
-
],
|
|
42246
|
-
ui: {
|
|
42247
|
-
intent: "display",
|
|
42248
|
-
visibleWhen: {
|
|
42249
|
-
field: "variant",
|
|
42250
|
-
notIn: ["masonry", "marquee"]
|
|
42251
|
-
}
|
|
42252
|
-
}
|
|
42253
|
-
},
|
|
42254
|
-
{
|
|
42255
|
-
id: "slidesToShow",
|
|
42256
|
-
type: "select",
|
|
42257
|
-
label: "Images per view (mobile)",
|
|
42258
|
-
description: "Number of images visible at once on small screens.",
|
|
42259
|
-
defaultValue: "1",
|
|
42260
|
-
options: [
|
|
42261
|
-
{
|
|
42262
|
-
value: "1",
|
|
42263
|
-
label: "One at a time"
|
|
42264
|
-
},
|
|
42265
|
-
{
|
|
42266
|
-
value: "2",
|
|
42267
|
-
label: "Two at a time"
|
|
42268
|
-
},
|
|
42269
|
-
{
|
|
42270
|
-
value: "3",
|
|
42271
|
-
label: "Three at a time"
|
|
42272
|
-
}
|
|
42273
|
-
],
|
|
42274
|
-
ui: {
|
|
42275
|
-
intent: "display",
|
|
42276
|
-
visibleWhen: {
|
|
42277
|
-
field: "variant",
|
|
42278
|
-
equals: "carousel"
|
|
42279
|
-
}
|
|
42280
|
-
}
|
|
42281
|
-
},
|
|
42282
|
-
{
|
|
42283
|
-
id: "slidesToShowTablet",
|
|
42284
|
-
type: "select",
|
|
42285
|
-
label: "Images per view (tablet)",
|
|
42286
|
-
description: "Number of images visible on medium screens.",
|
|
42287
|
-
options: [
|
|
42288
|
-
{
|
|
42289
|
-
value: "",
|
|
42290
|
-
label: "Same as mobile"
|
|
42291
|
-
},
|
|
42292
|
-
{
|
|
42293
|
-
value: "1",
|
|
42294
|
-
label: "One at a time"
|
|
42295
|
-
},
|
|
42296
|
-
{
|
|
42297
|
-
value: "2",
|
|
42298
|
-
label: "Two at a time"
|
|
42299
|
-
},
|
|
42300
|
-
{
|
|
42301
|
-
value: "3",
|
|
42302
|
-
label: "Three at a time"
|
|
42303
|
-
}
|
|
42304
|
-
],
|
|
42305
|
-
ui: {
|
|
42306
|
-
intent: "display",
|
|
42307
|
-
visibleWhen: {
|
|
42308
|
-
field: "variant",
|
|
42309
|
-
equals: "carousel"
|
|
42310
|
-
}
|
|
42311
|
-
}
|
|
42312
|
-
},
|
|
42313
|
-
{
|
|
42314
|
-
id: "slidesToShowDesktop",
|
|
42315
|
-
type: "select",
|
|
42316
|
-
label: "Images per view (desktop)",
|
|
42317
|
-
description: "Number of images visible on large screens.",
|
|
42318
|
-
options: [
|
|
42319
|
-
{
|
|
42320
|
-
value: "",
|
|
42321
|
-
label: "Same as tablet"
|
|
42322
|
-
},
|
|
42323
|
-
{
|
|
42324
|
-
value: "1",
|
|
42325
|
-
label: "One at a time"
|
|
42326
|
-
},
|
|
42327
|
-
{
|
|
42328
|
-
value: "2",
|
|
42329
|
-
label: "Two at a time"
|
|
42330
|
-
},
|
|
42331
|
-
{
|
|
42332
|
-
value: "3",
|
|
42333
|
-
label: "Three at a time"
|
|
42334
|
-
}
|
|
42335
|
-
],
|
|
42336
|
-
ui: {
|
|
42337
|
-
intent: "display",
|
|
42338
|
-
visibleWhen: {
|
|
42339
|
-
field: "variant",
|
|
42340
|
-
equals: "carousel"
|
|
42341
|
-
}
|
|
42342
|
-
}
|
|
42343
|
-
},
|
|
42344
|
-
{
|
|
42345
|
-
id: "transition",
|
|
42346
|
-
type: "select",
|
|
42347
|
-
label: "Transition",
|
|
42348
|
-
description: "Animation style between slides.",
|
|
42349
|
-
defaultValue: "slide",
|
|
42350
|
-
options: [{
|
|
42351
|
-
value: "slide",
|
|
42352
|
-
label: "Slide"
|
|
42353
|
-
}, {
|
|
42354
|
-
value: "fade",
|
|
42355
|
-
label: "Fade"
|
|
42356
|
-
}],
|
|
42357
|
-
ui: {
|
|
42358
|
-
intent: "display",
|
|
42359
|
-
visibleWhen: {
|
|
42360
|
-
field: "variant",
|
|
42361
|
-
equals: "carousel"
|
|
42362
|
-
}
|
|
42363
|
-
}
|
|
42364
|
-
},
|
|
42365
|
-
{
|
|
42366
|
-
id: "showControls",
|
|
42367
|
-
type: "boolean",
|
|
42368
|
-
label: "Show arrows",
|
|
42369
|
-
defaultValue: true,
|
|
42370
|
-
ui: {
|
|
42371
|
-
intent: "behavior",
|
|
42372
|
-
visibleWhen: {
|
|
42373
|
-
field: "variant",
|
|
42374
|
-
equals: "carousel"
|
|
42375
|
-
}
|
|
42376
|
-
}
|
|
42377
|
-
},
|
|
42378
|
-
{
|
|
42379
|
-
id: "showDots",
|
|
42380
|
-
type: "boolean",
|
|
42381
|
-
label: "Show dots",
|
|
42382
|
-
defaultValue: false,
|
|
42383
|
-
ui: {
|
|
42384
|
-
intent: "behavior",
|
|
42385
|
-
visibleWhen: {
|
|
42386
|
-
field: "variant",
|
|
42387
|
-
equals: "carousel"
|
|
42388
|
-
}
|
|
42389
|
-
}
|
|
42390
|
-
},
|
|
42391
|
-
{
|
|
42392
|
-
id: "autoplay",
|
|
42393
|
-
type: "boolean",
|
|
42394
|
-
label: "Autoplay",
|
|
42395
|
-
defaultValue: false,
|
|
42396
|
-
ui: {
|
|
42397
|
-
intent: "behavior",
|
|
42398
|
-
visibleWhen: {
|
|
42399
|
-
field: "variant",
|
|
42400
|
-
equals: "carousel"
|
|
42401
|
-
}
|
|
42402
|
-
}
|
|
42403
|
-
},
|
|
42404
|
-
{
|
|
42405
|
-
id: "autoplayDelay",
|
|
42406
|
-
type: "select",
|
|
42407
|
-
label: "Autoplay delay",
|
|
42408
|
-
defaultValue: "5000",
|
|
42409
|
-
options: [
|
|
42410
|
-
{
|
|
42411
|
-
value: "3000",
|
|
42412
|
-
label: "3 seconds"
|
|
42413
|
-
},
|
|
42414
|
-
{
|
|
42415
|
-
value: "5000",
|
|
42416
|
-
label: "5 seconds"
|
|
42417
|
-
},
|
|
42418
|
-
{
|
|
42419
|
-
value: "7000",
|
|
42420
|
-
label: "7 seconds"
|
|
42421
|
-
},
|
|
42422
|
-
{
|
|
42423
|
-
value: "10000",
|
|
42424
|
-
label: "10 seconds"
|
|
42425
|
-
}
|
|
42426
|
-
],
|
|
42427
|
-
ui: {
|
|
42428
|
-
intent: "behavior",
|
|
42429
|
-
visibleWhen: {
|
|
42430
|
-
field: "variant",
|
|
42431
|
-
equals: "carousel"
|
|
42432
|
-
}
|
|
42433
|
-
}
|
|
42434
|
-
},
|
|
42435
|
-
{
|
|
42436
|
-
id: "arrowVisibility",
|
|
42437
|
-
type: "select",
|
|
42438
|
-
label: "Arrow visibility",
|
|
42439
|
-
defaultValue: "always",
|
|
42440
|
-
options: [{
|
|
42441
|
-
value: "always",
|
|
42442
|
-
label: "Always visible"
|
|
42443
|
-
}, {
|
|
42444
|
-
value: "hover",
|
|
42445
|
-
label: "Show on hover"
|
|
42446
|
-
}],
|
|
42447
|
-
ui: {
|
|
42448
|
-
intent: "behavior",
|
|
42449
|
-
visibleWhen: {
|
|
42450
|
-
field: "variant",
|
|
42451
|
-
equals: "carousel"
|
|
42452
|
-
}
|
|
42453
|
-
}
|
|
42454
|
-
},
|
|
42455
|
-
{
|
|
42456
|
-
id: "loop",
|
|
42457
|
-
type: "boolean",
|
|
42458
|
-
label: "Loop slides",
|
|
42459
|
-
defaultValue: true,
|
|
42460
|
-
ui: {
|
|
42461
|
-
intent: "behavior",
|
|
42462
|
-
visibleWhen: {
|
|
42463
|
-
field: "variant",
|
|
42464
|
-
equals: "carousel"
|
|
42465
|
-
}
|
|
42466
|
-
}
|
|
42467
|
-
},
|
|
42468
|
-
{
|
|
42469
|
-
id: "marqueeDirection",
|
|
42470
|
-
type: "select",
|
|
42471
|
-
label: "Scroll direction",
|
|
42472
|
-
options: [{
|
|
42473
|
-
value: "left",
|
|
42474
|
-
label: "Left"
|
|
42475
|
-
}, {
|
|
42476
|
-
value: "right",
|
|
42477
|
-
label: "Right"
|
|
42478
|
-
}],
|
|
42479
|
-
defaultValue: "left",
|
|
42480
|
-
ui: {
|
|
42481
|
-
intent: "display",
|
|
42482
|
-
visibleWhen: {
|
|
42483
|
-
field: "variant",
|
|
42484
|
-
equals: "marquee"
|
|
42485
|
-
}
|
|
42486
|
-
}
|
|
42487
|
-
},
|
|
42488
|
-
{
|
|
42489
|
-
id: "marqueeSpeed",
|
|
42490
|
-
type: "select",
|
|
42491
|
-
label: "Scroll speed",
|
|
42492
|
-
options: [
|
|
42493
|
-
{
|
|
42494
|
-
value: "slow",
|
|
42495
|
-
label: "Slow (60s)"
|
|
42496
|
-
},
|
|
42497
|
-
{
|
|
42498
|
-
value: "medium",
|
|
42499
|
-
label: "Medium (40s)"
|
|
42500
|
-
},
|
|
42501
|
-
{
|
|
42502
|
-
value: "fast",
|
|
42503
|
-
label: "Fast (20s)"
|
|
42504
|
-
}
|
|
42505
|
-
],
|
|
42506
|
-
defaultValue: "medium",
|
|
42507
|
-
ui: {
|
|
42508
|
-
intent: "display",
|
|
42509
|
-
visibleWhen: {
|
|
42510
|
-
field: "variant",
|
|
42511
|
-
equals: "marquee"
|
|
42512
|
-
}
|
|
42513
|
-
}
|
|
42514
|
-
},
|
|
42515
|
-
{
|
|
42516
|
-
id: "marqueePauseOnHover",
|
|
42517
|
-
type: "boolean",
|
|
42518
|
-
label: "Pause on hover",
|
|
42519
|
-
defaultValue: true,
|
|
42520
|
-
ui: {
|
|
42521
|
-
intent: "behavior",
|
|
42522
|
-
visibleWhen: {
|
|
42523
|
-
field: "variant",
|
|
42524
|
-
equals: "marquee"
|
|
42525
|
-
}
|
|
42526
|
-
}
|
|
42527
|
-
},
|
|
42528
|
-
{
|
|
42529
|
-
id: "marqueeImageSize",
|
|
42530
|
-
type: "select",
|
|
42531
|
-
label: "Image size",
|
|
42532
|
-
options: [
|
|
42533
|
-
{
|
|
42534
|
-
value: "sm",
|
|
42535
|
-
label: "Small (200px)"
|
|
42536
|
-
},
|
|
42537
|
-
{
|
|
42538
|
-
value: "md",
|
|
42539
|
-
label: "Medium (256px)"
|
|
42540
|
-
},
|
|
42541
|
-
{
|
|
42542
|
-
value: "lg",
|
|
42543
|
-
label: "Large (320px)"
|
|
42544
|
-
},
|
|
42545
|
-
{
|
|
42546
|
-
value: "xl",
|
|
42547
|
-
label: "Extra large (400px)"
|
|
42548
|
-
}
|
|
42549
|
-
],
|
|
42550
|
-
defaultValue: "md",
|
|
42551
|
-
ui: {
|
|
42552
|
-
intent: "display",
|
|
42553
|
-
visibleWhen: {
|
|
42554
|
-
field: "variant",
|
|
42555
|
-
equals: "marquee"
|
|
42556
|
-
}
|
|
42557
|
-
}
|
|
42558
|
-
},
|
|
42559
|
-
{
|
|
42560
|
-
id: "imageFilter",
|
|
42561
|
-
type: "select",
|
|
42562
|
-
label: "Image filter",
|
|
42563
|
-
options: [
|
|
42564
|
-
{
|
|
42565
|
-
value: "none",
|
|
42566
|
-
label: "None"
|
|
42567
|
-
},
|
|
42568
|
-
{
|
|
42569
|
-
value: "grayscale",
|
|
42570
|
-
label: "Grayscale"
|
|
42571
|
-
},
|
|
42572
|
-
{
|
|
42573
|
-
value: "grayscale-hover-reveal",
|
|
42574
|
-
label: "Grayscale (color on hover)"
|
|
42575
|
-
},
|
|
42576
|
-
{
|
|
42577
|
-
value: "sepia",
|
|
42578
|
-
label: "Sepia"
|
|
42579
|
-
}
|
|
42580
|
-
],
|
|
42581
|
-
defaultValue: "grayscale-hover-reveal",
|
|
42582
|
-
ui: { intent: "style" }
|
|
42583
|
-
},
|
|
42584
|
-
{
|
|
42585
|
-
id: "imageBorder",
|
|
42586
|
-
type: "group",
|
|
42587
|
-
label: "Image border",
|
|
42588
|
-
schema: { fields: [
|
|
42589
|
-
{
|
|
42590
|
-
id: "enabled",
|
|
42591
|
-
type: "boolean",
|
|
42592
|
-
label: "Show border",
|
|
42593
|
-
defaultValue: true
|
|
42594
|
-
},
|
|
42595
|
-
{
|
|
42596
|
-
id: "colorToken",
|
|
42597
|
-
type: "text",
|
|
42598
|
-
label: "Border color",
|
|
42599
|
-
defaultValue: "accent",
|
|
42600
|
-
ui: { widget: "backgroundColor" }
|
|
42601
|
-
},
|
|
42602
|
-
{
|
|
42603
|
-
id: "opacity",
|
|
42604
|
-
type: "number",
|
|
42605
|
-
label: "Border opacity",
|
|
42606
|
-
defaultValue: 30,
|
|
42607
|
-
ui: {
|
|
42608
|
-
min: 0,
|
|
42609
|
-
max: 100
|
|
42610
|
-
}
|
|
42611
|
-
},
|
|
42612
|
-
{
|
|
42613
|
-
id: "width",
|
|
42614
|
-
type: "select",
|
|
42615
|
-
label: "Border width",
|
|
42616
|
-
options: [
|
|
42617
|
-
{
|
|
42618
|
-
value: "1",
|
|
42619
|
-
label: "Thin (1px)"
|
|
42620
|
-
},
|
|
42621
|
-
{
|
|
42622
|
-
value: "2",
|
|
42623
|
-
label: "Medium (2px)"
|
|
42624
|
-
},
|
|
42625
|
-
{
|
|
42626
|
-
value: "3",
|
|
42627
|
-
label: "Thick (3px)"
|
|
42628
|
-
}
|
|
42629
|
-
],
|
|
42630
|
-
defaultValue: "2"
|
|
42631
|
-
}
|
|
42632
|
-
] },
|
|
42633
|
-
ui: { intent: "style" }
|
|
42634
|
-
},
|
|
42635
|
-
{
|
|
42636
|
-
id: "imageCorners",
|
|
42637
|
-
type: "select",
|
|
42638
|
-
label: "Image corners",
|
|
42639
|
-
options: [
|
|
42640
|
-
{
|
|
42641
|
-
value: "none",
|
|
42642
|
-
label: "Square"
|
|
42643
|
-
},
|
|
42644
|
-
{
|
|
42645
|
-
value: "sm",
|
|
42646
|
-
label: "Slightly rounded"
|
|
42647
|
-
},
|
|
42648
|
-
{
|
|
42649
|
-
value: "md",
|
|
42650
|
-
label: "Rounded"
|
|
42651
|
-
},
|
|
42652
|
-
{
|
|
42653
|
-
value: "lg",
|
|
42654
|
-
label: "More rounded"
|
|
42655
|
-
},
|
|
42656
|
-
{
|
|
42657
|
-
value: "xl",
|
|
42658
|
-
label: "Very rounded"
|
|
42659
|
-
},
|
|
42660
|
-
{
|
|
42661
|
-
value: "2xl",
|
|
42662
|
-
label: "Extra rounded"
|
|
42663
|
-
},
|
|
42664
|
-
{
|
|
42665
|
-
value: "3xl",
|
|
42666
|
-
label: "Maximum rounded"
|
|
42667
|
-
}
|
|
42668
|
-
],
|
|
42669
|
-
defaultValue: "3xl",
|
|
42670
|
-
ui: { intent: "style" }
|
|
42671
|
-
}
|
|
42672
|
-
]),
|
|
43464
|
+
additionalFields: imageGalleryFields,
|
|
42673
43465
|
layout: wrapVariant$1(gridLayout),
|
|
42674
43466
|
variants: {
|
|
43467
|
+
tiles: tilesLayout,
|
|
42675
43468
|
grid: wrapVariant$1(gridLayout),
|
|
42676
43469
|
carousel: wrapVariant$1(carouselLayout),
|
|
42677
43470
|
masonry: wrapVariant$1(masonryLayout),
|
|
@@ -42680,7 +43473,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
42680
43473
|
className: "rb-image-gallery-marquee-container"
|
|
42681
43474
|
})
|
|
42682
43475
|
},
|
|
42683
|
-
variantMeaning: {
|
|
43476
|
+
variantMeaning: {
|
|
43477
|
+
kind: "arrangement",
|
|
43478
|
+
lookOnlyKeys: ["tiles"]
|
|
43479
|
+
},
|
|
42684
43480
|
defaultVariant: "grid",
|
|
42685
43481
|
variantOptions: {
|
|
42686
43482
|
grid: {
|
|
@@ -44900,76 +45696,74 @@ const giftingBlockDefinition = {
|
|
|
44900
45696
|
/**
|
|
44901
45697
|
* Get form fields based on preset configuration.
|
|
44902
45698
|
*/
|
|
44903
|
-
function getGlobalFormFields(form) {
|
|
44904
|
-
const
|
|
44905
|
-
|
|
44906
|
-
|
|
44907
|
-
|
|
44908
|
-
|
|
44909
|
-
|
|
44910
|
-
|
|
44911
|
-
|
|
44912
|
-
|
|
44913
|
-
case "
|
|
44914
|
-
|
|
44915
|
-
|
|
44916
|
-
|
|
44917
|
-
|
|
44918
|
-
|
|
44919
|
-
|
|
45699
|
+
function getGlobalFormFields(form, presentation = {}) {
|
|
45700
|
+
const fields = withOptionalPhone(newsletterPresetFields(form.fields), form.includeOptionalPhone);
|
|
45701
|
+
return presentation.lookSlots ? fields.map((field) => ({
|
|
45702
|
+
...field,
|
|
45703
|
+
label: lookFieldLabel(field)
|
|
45704
|
+
})) : fields;
|
|
45705
|
+
}
|
|
45706
|
+
function lookFieldLabel(field) {
|
|
45707
|
+
switch (field.id) {
|
|
45708
|
+
case "firstName": return "First name";
|
|
45709
|
+
case "lastName": return "Last name";
|
|
45710
|
+
default: return field.label;
|
|
45711
|
+
}
|
|
45712
|
+
}
|
|
45713
|
+
const emailField = {
|
|
45714
|
+
id: "email",
|
|
45715
|
+
type: "email",
|
|
45716
|
+
label: "Email",
|
|
45717
|
+
required: true,
|
|
45718
|
+
placeholder: "your@email.com"
|
|
45719
|
+
};
|
|
45720
|
+
const firstNameField = (required) => ({
|
|
45721
|
+
id: "firstName",
|
|
45722
|
+
type: "text",
|
|
45723
|
+
label: "First Name",
|
|
45724
|
+
required,
|
|
45725
|
+
placeholder: "First name"
|
|
45726
|
+
});
|
|
45727
|
+
function newsletterPresetFields(fields) {
|
|
45728
|
+
switch (fields.preset) {
|
|
45729
|
+
case "emailOnly": return [emailField];
|
|
45730
|
+
case "emailName": return [emailField, {
|
|
44920
45731
|
id: "name",
|
|
44921
45732
|
type: "text",
|
|
44922
45733
|
label: "Name",
|
|
44923
|
-
required:
|
|
45734
|
+
required: fields.name === "required",
|
|
44924
45735
|
placeholder: "Your name"
|
|
44925
|
-
}]
|
|
44926
|
-
case "
|
|
44927
|
-
|
|
44928
|
-
|
|
44929
|
-
|
|
44930
|
-
label: "Email",
|
|
44931
|
-
required: true,
|
|
44932
|
-
placeholder: "your@email.com"
|
|
44933
|
-
},
|
|
44934
|
-
{
|
|
44935
|
-
id: "firstName",
|
|
44936
|
-
type: "text",
|
|
44937
|
-
label: "First Name",
|
|
44938
|
-
required: form.fields.firstName === "required",
|
|
44939
|
-
placeholder: "First name"
|
|
44940
|
-
},
|
|
45736
|
+
}];
|
|
45737
|
+
case "emailFirstName": return [emailField, firstNameField(fields.firstName === "required")];
|
|
45738
|
+
case "emailFirstLast": return [
|
|
45739
|
+
emailField,
|
|
45740
|
+
firstNameField(fields.firstName === "required"),
|
|
44941
45741
|
{
|
|
44942
45742
|
id: "lastName",
|
|
44943
45743
|
type: "text",
|
|
44944
45744
|
label: "Last Name",
|
|
44945
|
-
required:
|
|
45745
|
+
required: fields.lastName === "required",
|
|
44946
45746
|
placeholder: "Last name"
|
|
44947
45747
|
}
|
|
44948
|
-
]
|
|
44949
|
-
case "emailNameCompany": return
|
|
44950
|
-
|
|
44951
|
-
id: "email",
|
|
44952
|
-
type: "email",
|
|
44953
|
-
label: "Email",
|
|
44954
|
-
required: true,
|
|
44955
|
-
placeholder: "your@email.com"
|
|
44956
|
-
},
|
|
45748
|
+
];
|
|
45749
|
+
case "emailNameCompany": return [
|
|
45750
|
+
emailField,
|
|
44957
45751
|
{
|
|
44958
45752
|
id: "name",
|
|
44959
45753
|
type: "text",
|
|
44960
45754
|
label: "Name",
|
|
44961
|
-
required:
|
|
45755
|
+
required: fields.name === "required",
|
|
44962
45756
|
placeholder: "Your name"
|
|
44963
45757
|
},
|
|
44964
45758
|
{
|
|
44965
45759
|
id: "company",
|
|
44966
45760
|
type: "text",
|
|
44967
45761
|
label: "Company",
|
|
44968
|
-
required:
|
|
45762
|
+
required: fields.company === "required",
|
|
44969
45763
|
placeholder: "Company name"
|
|
44970
45764
|
}
|
|
44971
|
-
]
|
|
44972
|
-
default:
|
|
45765
|
+
];
|
|
45766
|
+
default: return assertNever$2(fields);
|
|
44973
45767
|
}
|
|
44974
45768
|
}
|
|
44975
45769
|
function withOptionalPhone(fields, includePhone) {
|
|
@@ -45031,6 +45825,7 @@ const mailingListSignupBlockSourceRefSchema = z.object({
|
|
|
45031
45825
|
});
|
|
45032
45826
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
45033
45827
|
const newsletterSourceCommonSchema = z.object({
|
|
45828
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
45034
45829
|
siteId: z.string().optional(),
|
|
45035
45830
|
apiBaseUrl: z.string().optional(),
|
|
45036
45831
|
mailingList: mailingListContextSchema.optional(),
|
|
@@ -45063,6 +45858,7 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
45063
45858
|
newsletterSourceCommonSchema.extend({ source: z.literal("preview") })
|
|
45064
45859
|
]);
|
|
45065
45860
|
const newsletterDisplaySchema = z.object({
|
|
45861
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
45066
45862
|
kind: z.literal("newsletter-form"),
|
|
45067
45863
|
availability: z.enum(["ready", "unavailable"]),
|
|
45068
45864
|
className: z.string().nullable(),
|
|
@@ -45129,13 +45925,14 @@ function buildNewsletterDisplay(source) {
|
|
|
45129
45925
|
const choices = resolveRuntimeChoices(assessment);
|
|
45130
45926
|
return {
|
|
45131
45927
|
kind: "newsletter-form",
|
|
45928
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
45132
45929
|
availability: assessment.tag === "available" ? "ready" : "unavailable",
|
|
45133
45930
|
className: source.className ?? null,
|
|
45134
45931
|
buttonLabel: form.buttonLabel,
|
|
45135
45932
|
successMessage: form.successMessage,
|
|
45136
45933
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
45137
45934
|
privacyNote: form.privacyNote,
|
|
45138
|
-
fields: getGlobalFormFields(form),
|
|
45935
|
+
fields: getGlobalFormFields(form, source),
|
|
45139
45936
|
choices
|
|
45140
45937
|
};
|
|
45141
45938
|
}
|
|
@@ -45207,32 +46004,50 @@ function parseRequiredMailingListSignedSourceToken(value) {
|
|
|
45207
46004
|
//#region ../blocks/src/system/blocks/newsletter-signup.ts
|
|
45208
46005
|
const stackedComposition = composeFragments([{ fragment: newsletterCopyFragment }, { fragment: newsletterFormFragment }]);
|
|
45209
46006
|
const stackedLayout = styledSection({
|
|
45210
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
46007
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
45211
46008
|
gap: "md",
|
|
45212
46009
|
className: "rb-text-center newsletter-stacked"
|
|
45213
|
-
}),
|
|
46010
|
+
})),
|
|
45214
46011
|
baseClass: "",
|
|
45215
46012
|
spacing: "medium",
|
|
45216
46013
|
background: "surface"
|
|
45217
46014
|
});
|
|
45218
46015
|
const inlineLayout = styledSection({
|
|
45219
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
46016
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
45220
46017
|
gap: "md",
|
|
45221
46018
|
className: "newsletter-inline"
|
|
45222
|
-
}),
|
|
46019
|
+
})),
|
|
45223
46020
|
baseClass: "",
|
|
45224
46021
|
spacing: "medium",
|
|
45225
46022
|
background: "surface"
|
|
45226
46023
|
});
|
|
45227
46024
|
const editorialSplitLayout = styledSection({
|
|
45228
|
-
children:
|
|
46025
|
+
children: props(lookSlot("layout"))(sectionContainer([el("div", {
|
|
46026
|
+
className: "newsletter-editorial-split-copy",
|
|
46027
|
+
...lookSlot("head")
|
|
46028
|
+
}, newsletterCopyFragment.layout), el("div", {
|
|
46029
|
+
className: "newsletter-editorial-split-form",
|
|
46030
|
+
...lookSlot("panel")
|
|
46031
|
+
}, newsletterFormFragment.layout)], {
|
|
45229
46032
|
gap: "lg",
|
|
45230
46033
|
className: "newsletter-editorial-split"
|
|
45231
|
-
}),
|
|
46034
|
+
})),
|
|
45232
46035
|
baseClass: "",
|
|
45233
46036
|
spacing: "comfortable",
|
|
45234
46037
|
background: "surface"
|
|
45235
46038
|
});
|
|
46039
|
+
const archLayout = styledSection({
|
|
46040
|
+
children: el("div", {
|
|
46041
|
+
className: "rb-container",
|
|
46042
|
+
...lookSlot("layout")
|
|
46043
|
+
}, [el("div", lookSlot("frame"), [el("div", {
|
|
46044
|
+
className: "rb-grid",
|
|
46045
|
+
...lookSlot("head")
|
|
46046
|
+
}, newsletterCopyFragment.layout), ...newsletterFormFragment.layout])]),
|
|
46047
|
+
baseClass: "",
|
|
46048
|
+
spacing: "medium",
|
|
46049
|
+
background: "surface"
|
|
46050
|
+
});
|
|
45236
46051
|
const newsletterSignupManifest = createBlockManifest({
|
|
45237
46052
|
id: "block.newsletter-signup",
|
|
45238
46053
|
title: "Newsletter Signup",
|
|
@@ -45247,13 +46062,26 @@ const newsletterSignupManifest = createBlockManifest({
|
|
|
45247
46062
|
fragment: newsletterFormFragment,
|
|
45248
46063
|
fieldPriority: 1
|
|
45249
46064
|
}],
|
|
46065
|
+
additionalFields: [{
|
|
46066
|
+
id: "archFrame",
|
|
46067
|
+
type: "boolean",
|
|
46068
|
+
label: "Arch frame",
|
|
46069
|
+
ui: {
|
|
46070
|
+
intent: "display",
|
|
46071
|
+
hidden: true
|
|
46072
|
+
}
|
|
46073
|
+
}],
|
|
45250
46074
|
layout: stackedLayout,
|
|
45251
46075
|
variants: {
|
|
46076
|
+
arch: archLayout,
|
|
45252
46077
|
stacked: stackedLayout,
|
|
45253
46078
|
inline: inlineLayout,
|
|
45254
46079
|
"editorial-split": editorialSplitLayout
|
|
45255
46080
|
},
|
|
45256
|
-
variantMeaning: {
|
|
46081
|
+
variantMeaning: {
|
|
46082
|
+
kind: "arrangement",
|
|
46083
|
+
lookOnlyKeys: ["arch"]
|
|
46084
|
+
},
|
|
45257
46085
|
defaultVariant: "stacked",
|
|
45258
46086
|
variantOptions: {
|
|
45259
46087
|
stacked: {
|
|
@@ -46340,7 +47168,7 @@ const systemBlockDefinitions = [
|
|
|
46340
47168
|
})
|
|
46341
47169
|
]
|
|
46342
47170
|
})),
|
|
46343
|
-
withDesignCapability("block.body-text", bodyTextBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47171
|
+
withDesignCapability("block.body-text", bodyTextBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
46344
47172
|
flow: bodyFlow,
|
|
46345
47173
|
layoutProfiles: [
|
|
46346
47174
|
layoutProfile({
|
|
@@ -46715,7 +47543,7 @@ const systemBlockDefinitions = [
|
|
|
46715
47543
|
weight: "quiet"
|
|
46716
47544
|
})]
|
|
46717
47545
|
})),
|
|
46718
|
-
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47546
|
+
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
46719
47547
|
flow: mediaFlow,
|
|
46720
47548
|
layoutProfiles: [
|
|
46721
47549
|
layoutProfile({
|
|
@@ -46804,7 +47632,7 @@ const systemBlockDefinitions = [
|
|
|
46804
47632
|
weight: "standard"
|
|
46805
47633
|
})]
|
|
46806
47634
|
})),
|
|
46807
|
-
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47635
|
+
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
46808
47636
|
flow: conversionFlow,
|
|
46809
47637
|
layoutProfiles: [
|
|
46810
47638
|
layoutProfile({
|