@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
package/dist/server/config.mjs
CHANGED
|
@@ -53,6 +53,19 @@ const footerModeSchema = z.enum([
|
|
|
53
53
|
"default+blocks",
|
|
54
54
|
"none"
|
|
55
55
|
]);
|
|
56
|
+
z.object({
|
|
57
|
+
variant: z.enum([
|
|
58
|
+
"simple",
|
|
59
|
+
"columns",
|
|
60
|
+
"split",
|
|
61
|
+
"centred"
|
|
62
|
+
]),
|
|
63
|
+
showLogoText: z.boolean().optional(),
|
|
64
|
+
logo: z.object({
|
|
65
|
+
showLogo: z.boolean().optional(),
|
|
66
|
+
showLogoText: z.boolean().optional()
|
|
67
|
+
}).optional()
|
|
68
|
+
});
|
|
56
69
|
//#endregion
|
|
57
70
|
//#region ../api/src/defineEndpointDefinitions.ts
|
|
58
71
|
/**
|
|
@@ -2126,6 +2139,25 @@ function validateBookingPaymentOptionKinds(kinds) {
|
|
|
2126
2139
|
return ok(void 0);
|
|
2127
2140
|
}
|
|
2128
2141
|
//#endregion
|
|
2142
|
+
//#region ../core/src/date-time-formatter.ts
|
|
2143
|
+
/** Shared Intl engine, internal to core's date presentation owners. */
|
|
2144
|
+
const FORMATTER_CACHE_LIMIT = 100;
|
|
2145
|
+
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
2146
|
+
function getDateTimeFormatter(locale, timeZone, format) {
|
|
2147
|
+
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
2148
|
+
const cached = dateTimeFormatterCache.get(key);
|
|
2149
|
+
if (cached !== void 0) return cached;
|
|
2150
|
+
if (typeof locale !== "string" || Intl.DateTimeFormat.supportedLocalesOf([locale]).length === 0) throw new RangeError("An explicit supported locale is required");
|
|
2151
|
+
if (typeof timeZone !== "string" || timeZone.length === 0) throw new RangeError("An explicit time zone is required");
|
|
2152
|
+
const formatter = new Intl.DateTimeFormat(locale, {
|
|
2153
|
+
...format,
|
|
2154
|
+
timeZone
|
|
2155
|
+
});
|
|
2156
|
+
if (dateTimeFormatterCache.size >= FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
2157
|
+
dateTimeFormatterCache.set(key, formatter);
|
|
2158
|
+
return formatter;
|
|
2159
|
+
}
|
|
2160
|
+
//#endregion
|
|
2129
2161
|
//#region ../core/src/booking-time-zone.ts
|
|
2130
2162
|
const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
|
|
2131
2163
|
const timeZoneValidityCache = /* @__PURE__ */ new Map();
|
|
@@ -2162,8 +2194,6 @@ const START_OF_DAY = {
|
|
|
2162
2194
|
second: 0
|
|
2163
2195
|
};
|
|
2164
2196
|
const LOCAL_DATE_PATTERN = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
2165
|
-
const DATE_TIME_FORMATTER_CACHE_LIMIT = 100;
|
|
2166
|
-
const dateTimeFormatterCache = /* @__PURE__ */ new Map();
|
|
2167
2197
|
function getSafeTimeZone(timeZone) {
|
|
2168
2198
|
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
2169
2199
|
return normalized.length > 0 && isValidBookingTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
@@ -2180,19 +2210,7 @@ function formatParseError(error) {
|
|
|
2180
2210
|
}
|
|
2181
2211
|
}
|
|
2182
2212
|
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
2183
|
-
return new Map(
|
|
2184
|
-
}
|
|
2185
|
-
function getCachedDateTimeFormatter(locale, timeZone, format) {
|
|
2186
|
-
const key = `${locale}\u0000${timeZone}\u0000${JSON.stringify(Object.entries(format).sort(([left], [right]) => left.localeCompare(right)))}`;
|
|
2187
|
-
const cached = dateTimeFormatterCache.get(key);
|
|
2188
|
-
if (cached !== void 0) return cached;
|
|
2189
|
-
const formatter = new Intl.DateTimeFormat(locale, {
|
|
2190
|
-
...format,
|
|
2191
|
-
timeZone
|
|
2192
|
-
});
|
|
2193
|
-
if (dateTimeFormatterCache.size >= DATE_TIME_FORMATTER_CACHE_LIMIT) dateTimeFormatterCache.clear();
|
|
2194
|
-
dateTimeFormatterCache.set(key, formatter);
|
|
2195
|
-
return formatter;
|
|
2213
|
+
return new Map(getDateTimeFormatter(locale, timeZone, format).formatToParts(date).map((part) => [part.type, part.value]));
|
|
2196
2214
|
}
|
|
2197
2215
|
function getZonedDateTimeParts(date, timeZone) {
|
|
2198
2216
|
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
@@ -2280,7 +2298,7 @@ function toScheduledBookingDateTime(input) {
|
|
|
2280
2298
|
function formatBookingInstant(isoString, options) {
|
|
2281
2299
|
const date = new Date(isoString);
|
|
2282
2300
|
if (Number.isNaN(date.getTime())) return isoString;
|
|
2283
|
-
return
|
|
2301
|
+
return getDateTimeFormatter(options.locale ?? DEFAULT_LOCALE, getSafeTimeZone(options.timeZone), options.format).format(date);
|
|
2284
2302
|
}
|
|
2285
2303
|
function formatBookingDate(input, format = {
|
|
2286
2304
|
weekday: "long",
|
|
@@ -2405,6 +2423,17 @@ function localScheduleDateTimeToUtcDate(localDate, localTime, timeZone) {
|
|
|
2405
2423
|
return new Date(guess);
|
|
2406
2424
|
}
|
|
2407
2425
|
//#endregion
|
|
2426
|
+
//#region ../core/src/date-display.ts
|
|
2427
|
+
/** Site-language policy, shared by customer emails and public event adapters. */
|
|
2428
|
+
function inferSiteDateLocale(siteTimeZone) {
|
|
2429
|
+
if (siteTimeZone === null || siteTimeZone === void 0 || siteTimeZone === "") return "en-US";
|
|
2430
|
+
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
2431
|
+
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
2432
|
+
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
2433
|
+
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
2434
|
+
return "en-US";
|
|
2435
|
+
}
|
|
2436
|
+
//#endregion
|
|
2408
2437
|
//#region ../core/src/location.ts
|
|
2409
2438
|
function normalizeLocationAddressText(value) {
|
|
2410
2439
|
if (typeof value !== "string") return null;
|
|
@@ -2554,6 +2583,10 @@ function parseGlobalFields(value) {
|
|
|
2554
2583
|
preset: "emailName",
|
|
2555
2584
|
name: value.name
|
|
2556
2585
|
} : null;
|
|
2586
|
+
case "emailFirstName": return isRequirement(value.firstName) ? {
|
|
2587
|
+
preset: "emailFirstName",
|
|
2588
|
+
firstName: value.firstName
|
|
2589
|
+
} : null;
|
|
2557
2590
|
case "emailFirstLast": return isRequirement(value.firstName) && isRequirement(value.lastName) ? {
|
|
2558
2591
|
preset: "emailFirstLast",
|
|
2559
2592
|
firstName: value.firstName,
|
|
@@ -4290,6 +4323,129 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
4290
4323
|
tags: ["billing"],
|
|
4291
4324
|
auth: "user",
|
|
4292
4325
|
responseKind: "json"
|
|
4326
|
+
},
|
|
4327
|
+
stripeConnectSetupStart: {
|
|
4328
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
4329
|
+
method: "POST",
|
|
4330
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4331
|
+
auth: "user",
|
|
4332
|
+
responseKind: "json",
|
|
4333
|
+
errors: [
|
|
4334
|
+
"validation:invalid_input",
|
|
4335
|
+
"auth:forbidden",
|
|
4336
|
+
"resource:conflict",
|
|
4337
|
+
"server:internal_error"
|
|
4338
|
+
]
|
|
4339
|
+
},
|
|
4340
|
+
stripeConnectSetupDiscard: {
|
|
4341
|
+
path: "/sites/{siteId}/billing/connect/setup",
|
|
4342
|
+
method: "DELETE",
|
|
4343
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4344
|
+
auth: "user",
|
|
4345
|
+
responseKind: "json",
|
|
4346
|
+
errors: [
|
|
4347
|
+
"validation:invalid_input",
|
|
4348
|
+
"auth:forbidden",
|
|
4349
|
+
"resource:conflict",
|
|
4350
|
+
"server:internal_error"
|
|
4351
|
+
]
|
|
4352
|
+
},
|
|
4353
|
+
stripeConnectSetupSave: {
|
|
4354
|
+
path: "/sites/{siteId}/billing/connect/setup/save",
|
|
4355
|
+
method: "POST",
|
|
4356
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4357
|
+
auth: "user",
|
|
4358
|
+
responseKind: "json",
|
|
4359
|
+
errors: [
|
|
4360
|
+
"validation:invalid_input",
|
|
4361
|
+
"auth:forbidden",
|
|
4362
|
+
"resource:conflict",
|
|
4363
|
+
"server:internal_error"
|
|
4364
|
+
]
|
|
4365
|
+
},
|
|
4366
|
+
stripeConnectAccountSession: {
|
|
4367
|
+
path: "/sites/{siteId}/billing/connect/session",
|
|
4368
|
+
method: "POST",
|
|
4369
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4370
|
+
auth: "user",
|
|
4371
|
+
responseKind: "json",
|
|
4372
|
+
errors: [
|
|
4373
|
+
"validation:invalid_input",
|
|
4374
|
+
"auth:forbidden",
|
|
4375
|
+
"resource:conflict",
|
|
4376
|
+
"server:internal_error"
|
|
4377
|
+
]
|
|
4378
|
+
},
|
|
4379
|
+
stripeConnectStart: {
|
|
4380
|
+
path: "/sites/{siteId}/billing/connect/start",
|
|
4381
|
+
method: "POST",
|
|
4382
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4383
|
+
auth: "user",
|
|
4384
|
+
responseKind: "json",
|
|
4385
|
+
errors: [
|
|
4386
|
+
"validation:invalid_input",
|
|
4387
|
+
"auth:forbidden",
|
|
4388
|
+
"resource:conflict",
|
|
4389
|
+
"server:internal_error"
|
|
4390
|
+
]
|
|
4391
|
+
},
|
|
4392
|
+
stripeConnectStatus: {
|
|
4393
|
+
path: "/sites/{siteId}/billing/connect/status",
|
|
4394
|
+
method: "GET",
|
|
4395
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4396
|
+
auth: "user",
|
|
4397
|
+
responseKind: "json",
|
|
4398
|
+
errors: [
|
|
4399
|
+
"validation:invalid_input",
|
|
4400
|
+
"auth:forbidden",
|
|
4401
|
+
"resource:conflict",
|
|
4402
|
+
"server:internal_error"
|
|
4403
|
+
]
|
|
4404
|
+
},
|
|
4405
|
+
stripeAutomaticTaxUpdate: {
|
|
4406
|
+
path: "/sites/{siteId}/billing/automatic-tax",
|
|
4407
|
+
method: "POST",
|
|
4408
|
+
tags: [
|
|
4409
|
+
"site-{siteId}",
|
|
4410
|
+
"billing",
|
|
4411
|
+
"stripe-tax"
|
|
4412
|
+
],
|
|
4413
|
+
auth: "user",
|
|
4414
|
+
responseKind: "json",
|
|
4415
|
+
errors: [
|
|
4416
|
+
"validation:invalid_input",
|
|
4417
|
+
"auth:forbidden",
|
|
4418
|
+
"resource:not_found",
|
|
4419
|
+
"server:unavailable",
|
|
4420
|
+
"server:internal_error"
|
|
4421
|
+
]
|
|
4422
|
+
},
|
|
4423
|
+
stripeConnectDisconnect: {
|
|
4424
|
+
path: "/sites/{siteId}/billing/connect/disconnect",
|
|
4425
|
+
method: "DELETE",
|
|
4426
|
+
tags: ["site-{siteId}", "stripe-connect"],
|
|
4427
|
+
auth: "user",
|
|
4428
|
+
responseKind: "json",
|
|
4429
|
+
errors: [
|
|
4430
|
+
"validation:invalid_input",
|
|
4431
|
+
"auth:forbidden",
|
|
4432
|
+
"resource:conflict",
|
|
4433
|
+
"server:internal_error"
|
|
4434
|
+
]
|
|
4435
|
+
},
|
|
4436
|
+
billingConnectReturn: {
|
|
4437
|
+
path: "/billing/connect/return",
|
|
4438
|
+
method: "GET",
|
|
4439
|
+
auth: "user",
|
|
4440
|
+
responseKind: "void",
|
|
4441
|
+
errors: []
|
|
4442
|
+
},
|
|
4443
|
+
billingConnectRefresh: {
|
|
4444
|
+
path: "/billing/connect/refresh",
|
|
4445
|
+
method: "GET",
|
|
4446
|
+
auth: "user",
|
|
4447
|
+
responseKind: "void",
|
|
4448
|
+
errors: []
|
|
4293
4449
|
}
|
|
4294
4450
|
});
|
|
4295
4451
|
//#endregion
|
|
@@ -4454,6 +4610,14 @@ const PAGE_SURFACE_EDITOR_ENDPOINT_DEFINITIONS = {
|
|
|
4454
4610
|
* person when nothing is attached to them.
|
|
4455
4611
|
*/
|
|
4456
4612
|
const BOOKING_PEOPLE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
4613
|
+
getBookingPerson: {
|
|
4614
|
+
path: "/sites/{siteId}/bookings/people/{personId}",
|
|
4615
|
+
method: "GET",
|
|
4616
|
+
tags: ["site-{siteId}", "customers-{siteId}"],
|
|
4617
|
+
auth: "user",
|
|
4618
|
+
responseKind: "json",
|
|
4619
|
+
errors: ["resource:not_found", "server:internal_error"]
|
|
4620
|
+
},
|
|
4457
4621
|
listPeople: {
|
|
4458
4622
|
path: "/sites/{siteId}/bookings/people",
|
|
4459
4623
|
method: "GET",
|
|
@@ -8251,6 +8415,29 @@ const paletteSchema = z.object({
|
|
|
8251
8415
|
};
|
|
8252
8416
|
});
|
|
8253
8417
|
//#endregion
|
|
8418
|
+
//#region ../theme-core/src/buttons/typography.ts
|
|
8419
|
+
const textTransformSchema = z.enum([
|
|
8420
|
+
"none",
|
|
8421
|
+
"uppercase",
|
|
8422
|
+
"lowercase",
|
|
8423
|
+
"capitalize"
|
|
8424
|
+
]);
|
|
8425
|
+
const fontWeightSchema = z.union([
|
|
8426
|
+
z.literal(400),
|
|
8427
|
+
z.literal(500),
|
|
8428
|
+
z.literal(600),
|
|
8429
|
+
z.literal(700),
|
|
8430
|
+
z.literal(800)
|
|
8431
|
+
]);
|
|
8432
|
+
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
8433
|
+
const letterSpacingSchema = z.enum([
|
|
8434
|
+
"tight",
|
|
8435
|
+
"normal",
|
|
8436
|
+
"slight",
|
|
8437
|
+
"loose",
|
|
8438
|
+
"wide"
|
|
8439
|
+
]);
|
|
8440
|
+
//#endregion
|
|
8254
8441
|
//#region ../theme-core/src/buttons/types.ts
|
|
8255
8442
|
/**
|
|
8256
8443
|
* Standard semantic variant roles a theme exposes.
|
|
@@ -8366,6 +8553,7 @@ const buttonEffectApplicationSchema = z.discriminatedUnion("effectId", [
|
|
|
8366
8553
|
z.strictObject({
|
|
8367
8554
|
effectId: z.literal("lift"),
|
|
8368
8555
|
options: z.strictObject({ amount: z.enum([
|
|
8556
|
+
"0.125",
|
|
8369
8557
|
"0.25",
|
|
8370
8558
|
"0.5",
|
|
8371
8559
|
"1"
|
|
@@ -8412,24 +8600,6 @@ const shadowSizeSchema = z.enum([
|
|
|
8412
8600
|
"medium",
|
|
8413
8601
|
"high"
|
|
8414
8602
|
]);
|
|
8415
|
-
const textTransformSchema = z.enum([
|
|
8416
|
-
"none",
|
|
8417
|
-
"uppercase",
|
|
8418
|
-
"lowercase",
|
|
8419
|
-
"capitalize"
|
|
8420
|
-
]);
|
|
8421
|
-
const fontWeightSchema = z.union([
|
|
8422
|
-
z.literal(500),
|
|
8423
|
-
z.literal(600),
|
|
8424
|
-
z.literal(700),
|
|
8425
|
-
z.literal(800)
|
|
8426
|
-
]);
|
|
8427
|
-
const buttonTypographySchema = z.enum(["body", "heading"]);
|
|
8428
|
-
const letterSpacingSchema = z.enum([
|
|
8429
|
-
"tight",
|
|
8430
|
-
"normal",
|
|
8431
|
-
"loose"
|
|
8432
|
-
]);
|
|
8433
8603
|
const hoverTransformSchema = z.enum([
|
|
8434
8604
|
"none",
|
|
8435
8605
|
"lift",
|
|
@@ -8501,7 +8671,8 @@ const paddingShorthandSchema = z.string().refine((value) => {
|
|
|
8501
8671
|
}, { message: "Padding must be two space-separated CSS length tokens (e.g. \"0.5rem 1rem\"). Use `0` for zero." });
|
|
8502
8672
|
const buttonSizeConfigSchema = z.object({
|
|
8503
8673
|
padding: paddingShorthandSchema,
|
|
8504
|
-
fontSize: z.string().optional()
|
|
8674
|
+
fontSize: z.string().optional(),
|
|
8675
|
+
borderRadius: z.string().optional()
|
|
8505
8676
|
});
|
|
8506
8677
|
/**
|
|
8507
8678
|
* `xl` is optional on the wire so themes persisted before the `xl` size was
|
|
@@ -8624,12 +8795,20 @@ const buttonVisualAppearanceSchema = z.strictObject({
|
|
|
8624
8795
|
textTransform: textTransformSchema
|
|
8625
8796
|
}),
|
|
8626
8797
|
effects: z.array(buttonEffectApplicationSchema),
|
|
8798
|
+
transform: z.literal("none").optional(),
|
|
8627
8799
|
contextualHover: contextualButtonHoverSchema.optional()
|
|
8628
8800
|
});
|
|
8629
8801
|
const buttonVisualStatesSchema = z.strictObject({
|
|
8630
8802
|
base: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
8631
8803
|
hover: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
8632
|
-
focus: buttonVisualAppearanceSchema.extend({
|
|
8804
|
+
focus: buttonVisualAppearanceSchema.extend({
|
|
8805
|
+
shadow: z.literal("focus-indicator"),
|
|
8806
|
+
indicator: z.strictObject({
|
|
8807
|
+
kind: z.literal("surface-ink"),
|
|
8808
|
+
width: z.union([z.literal(2), z.literal(3)]),
|
|
8809
|
+
offset: z.union([z.literal(3), z.literal(4)])
|
|
8810
|
+
}).optional()
|
|
8811
|
+
}),
|
|
8633
8812
|
active: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema }),
|
|
8634
8813
|
disabled: buttonVisualAppearanceSchema.extend({ shadow: variantShadowSchema })
|
|
8635
8814
|
});
|
|
@@ -9096,6 +9275,10 @@ function validateButtonTextContrast(input) {
|
|
|
9096
9275
|
}
|
|
9097
9276
|
};
|
|
9098
9277
|
}
|
|
9278
|
+
/** A text-token slab inverts the palette's text/background pair, including text shades. */
|
|
9279
|
+
function solidForegroundToken(backgroundToken) {
|
|
9280
|
+
return /^text(?:-\d+)?$/.test(backgroundToken) ? "background" : onColorTokenName(backgroundToken);
|
|
9281
|
+
}
|
|
9099
9282
|
//#endregion
|
|
9100
9283
|
//#region ../theme-core/src/buttons/contextualHover.ts
|
|
9101
9284
|
function resolveContextualHoverPreference(input) {
|
|
@@ -9193,7 +9376,7 @@ function candidate(family, shade, currentShade, direction, seedHex, palette) {
|
|
|
9193
9376
|
}
|
|
9194
9377
|
function hasSafeTextContrast(token, palette) {
|
|
9195
9378
|
const background = palette[token];
|
|
9196
|
-
const foreground = palette[
|
|
9379
|
+
const foreground = palette[solidForegroundToken(token)];
|
|
9197
9380
|
return typeof background === "string" && typeof foreground === "string" && contrastRatio(background, foreground) >= BUTTON_CONTRAST_POLICY.textMinimumRatio;
|
|
9198
9381
|
}
|
|
9199
9382
|
function isSafeCandidate(token, palette, surface) {
|
|
@@ -9288,6 +9471,13 @@ function compileDeclaredVisualStates(input, states) {
|
|
|
9288
9471
|
const colours = collectStateColours(mapVisualStates((state) => compileDeclaredVisualState(input, states, state, state === "hover" ? hover.treatment : states[state].background)));
|
|
9289
9472
|
return colours.ok ? {
|
|
9290
9473
|
...colours,
|
|
9474
|
+
focusIndicator: states.focus.indicator ? {
|
|
9475
|
+
kind: "surface-role",
|
|
9476
|
+
colorCss: input.surface?.foregroundCss ?? surfaceForegroundValue("text"),
|
|
9477
|
+
width: states.focus.indicator.width,
|
|
9478
|
+
offset: states.focus.indicator.offset,
|
|
9479
|
+
minimumSurfaceContrast: BUTTON_CONTRAST_POLICY.nonTextMinimumRatio
|
|
9480
|
+
} : colours.focusIndicator,
|
|
9291
9481
|
contextualHoverRepair: hover.repair
|
|
9292
9482
|
} : colours;
|
|
9293
9483
|
}
|
|
@@ -9425,7 +9615,7 @@ function resolveFocusIndicator(colour) {
|
|
|
9425
9615
|
function resolveSolid(input, backgroundToken, edge) {
|
|
9426
9616
|
const backgroundHex = paletteHex(input, backgroundToken);
|
|
9427
9617
|
if (!backgroundHex.ok) return backgroundHex;
|
|
9428
|
-
const foregroundToken = unsafeAsOpaqueButtonColourToken(
|
|
9618
|
+
const foregroundToken = unsafeAsOpaqueButtonColourToken(solidForegroundToken(backgroundToken));
|
|
9429
9619
|
const foregroundHex = input.palette[foregroundToken];
|
|
9430
9620
|
if (typeof foregroundHex !== "string") return {
|
|
9431
9621
|
ok: false,
|
|
@@ -10599,6 +10789,287 @@ function normalizeAppearance(appearance) {
|
|
|
10599
10789
|
};
|
|
10600
10790
|
}
|
|
10601
10791
|
//#endregion
|
|
10792
|
+
//#region ../theme-core/src/buttons/styles/recipes/lanternRecipes.ts
|
|
10793
|
+
const flatShadow = {
|
|
10794
|
+
elevation: "none",
|
|
10795
|
+
softness: null,
|
|
10796
|
+
position: "bottom"
|
|
10797
|
+
};
|
|
10798
|
+
const lift$1 = {
|
|
10799
|
+
effectId: "lift",
|
|
10800
|
+
options: { amount: "0.125" }
|
|
10801
|
+
};
|
|
10802
|
+
const tags = {
|
|
10803
|
+
tone: "classic",
|
|
10804
|
+
energy: "calm",
|
|
10805
|
+
motion: "subtle",
|
|
10806
|
+
era: "editorial"
|
|
10807
|
+
};
|
|
10808
|
+
/** Each role supplies complete states, including a flat surface-ink focus ring. */
|
|
10809
|
+
function states(base, hover, offset = 4, width = 2) {
|
|
10810
|
+
return {
|
|
10811
|
+
base,
|
|
10812
|
+
hover,
|
|
10813
|
+
focus: {
|
|
10814
|
+
...base,
|
|
10815
|
+
shadow: "focus-indicator",
|
|
10816
|
+
indicator: {
|
|
10817
|
+
kind: "surface-ink",
|
|
10818
|
+
width,
|
|
10819
|
+
offset
|
|
10820
|
+
}
|
|
10821
|
+
},
|
|
10822
|
+
active: {
|
|
10823
|
+
...base,
|
|
10824
|
+
transform: "none"
|
|
10825
|
+
},
|
|
10826
|
+
disabled: {
|
|
10827
|
+
...base,
|
|
10828
|
+
effects: []
|
|
10829
|
+
}
|
|
10830
|
+
};
|
|
10831
|
+
}
|
|
10832
|
+
const gilt = {
|
|
10833
|
+
text: "treatment",
|
|
10834
|
+
border: "none",
|
|
10835
|
+
borderRadius: "rounded-10px",
|
|
10836
|
+
shadow: flatShadow,
|
|
10837
|
+
sizes: {
|
|
10838
|
+
sm: {
|
|
10839
|
+
padding: "10px 20px",
|
|
10840
|
+
fontSize: "text-base",
|
|
10841
|
+
borderRadius: "rounded-lg"
|
|
10842
|
+
},
|
|
10843
|
+
md: {
|
|
10844
|
+
padding: "18px 36px",
|
|
10845
|
+
fontSize: "text-19px"
|
|
10846
|
+
},
|
|
10847
|
+
lg: {
|
|
10848
|
+
padding: "18px 36px",
|
|
10849
|
+
fontSize: "text-19px"
|
|
10850
|
+
},
|
|
10851
|
+
xl: {
|
|
10852
|
+
padding: "18px 36px",
|
|
10853
|
+
fontSize: "text-19px"
|
|
10854
|
+
}
|
|
10855
|
+
},
|
|
10856
|
+
typography: {
|
|
10857
|
+
fontWeight: 400,
|
|
10858
|
+
typography: "heading",
|
|
10859
|
+
fontSize: "text-19px",
|
|
10860
|
+
letterSpacing: "slight",
|
|
10861
|
+
italic: false,
|
|
10862
|
+
textTransform: "none"
|
|
10863
|
+
},
|
|
10864
|
+
effects: []
|
|
10865
|
+
};
|
|
10866
|
+
const giltPrimary = {
|
|
10867
|
+
...gilt,
|
|
10868
|
+
background: {
|
|
10869
|
+
type: "gradient",
|
|
10870
|
+
stops: ["accent", "primary"],
|
|
10871
|
+
direction: "to-br",
|
|
10872
|
+
foregroundToken: "onAccent"
|
|
10873
|
+
}
|
|
10874
|
+
};
|
|
10875
|
+
const giltPrimaryHover = {
|
|
10876
|
+
...giltPrimary,
|
|
10877
|
+
background: {
|
|
10878
|
+
...giltPrimary.background,
|
|
10879
|
+
stops: ["accent-400", "primary-400"],
|
|
10880
|
+
foregroundToken: "secondary-950"
|
|
10881
|
+
},
|
|
10882
|
+
effects: [lift$1]
|
|
10883
|
+
};
|
|
10884
|
+
const giltSecondary = {
|
|
10885
|
+
...gilt,
|
|
10886
|
+
background: {
|
|
10887
|
+
type: "solid",
|
|
10888
|
+
colorToken: "text"
|
|
10889
|
+
}
|
|
10890
|
+
};
|
|
10891
|
+
const giltSecondaryHover = {
|
|
10892
|
+
...giltSecondary,
|
|
10893
|
+
effects: [lift$1],
|
|
10894
|
+
contextualHover: {
|
|
10895
|
+
kind: "shade-shift",
|
|
10896
|
+
seedToken: unsafeAsOpaqueButtonColourToken("text"),
|
|
10897
|
+
fallbackDirection: "lighter"
|
|
10898
|
+
}
|
|
10899
|
+
};
|
|
10900
|
+
const giltPrimaryStates = states(giltPrimary, giltPrimaryHover);
|
|
10901
|
+
const giltSecondaryStates = states(giltSecondary, giltSecondaryHover);
|
|
10902
|
+
const giltSlabRecipe = defineStaticButtonStyleRecipe({
|
|
10903
|
+
id: "gilt-slab",
|
|
10904
|
+
accessibilityLabel: "Gilt slab",
|
|
10905
|
+
tags,
|
|
10906
|
+
system: { roles: {
|
|
10907
|
+
primary: { states: giltPrimaryStates },
|
|
10908
|
+
secondary: { states: giltSecondaryStates },
|
|
10909
|
+
outline: { states: giltSecondaryStates },
|
|
10910
|
+
ghost: { states: giltSecondaryStates },
|
|
10911
|
+
accent: { states: giltPrimaryStates }
|
|
10912
|
+
} }
|
|
10913
|
+
});
|
|
10914
|
+
const hairline = {
|
|
10915
|
+
text: "treatment",
|
|
10916
|
+
borderRadius: "rounded-3px",
|
|
10917
|
+
shadow: flatShadow,
|
|
10918
|
+
sizes: {
|
|
10919
|
+
sm: {
|
|
10920
|
+
padding: "9px 16px",
|
|
10921
|
+
fontSize: "text-xs"
|
|
10922
|
+
},
|
|
10923
|
+
md: {
|
|
10924
|
+
padding: "15px 28px",
|
|
10925
|
+
fontSize: "text-13px"
|
|
10926
|
+
},
|
|
10927
|
+
lg: {
|
|
10928
|
+
padding: "15px 28px",
|
|
10929
|
+
fontSize: "text-13px"
|
|
10930
|
+
},
|
|
10931
|
+
xl: {
|
|
10932
|
+
padding: "15px 28px",
|
|
10933
|
+
fontSize: "text-13px"
|
|
10934
|
+
}
|
|
10935
|
+
},
|
|
10936
|
+
typography: {
|
|
10937
|
+
fontWeight: 700,
|
|
10938
|
+
typography: "body",
|
|
10939
|
+
fontSize: "text-13px",
|
|
10940
|
+
letterSpacing: "wide",
|
|
10941
|
+
italic: false,
|
|
10942
|
+
textTransform: "uppercase"
|
|
10943
|
+
},
|
|
10944
|
+
effects: []
|
|
10945
|
+
};
|
|
10946
|
+
const hairlinePrimary = {
|
|
10947
|
+
...hairline,
|
|
10948
|
+
background: {
|
|
10949
|
+
type: "solid",
|
|
10950
|
+
colorToken: "primary"
|
|
10951
|
+
},
|
|
10952
|
+
border: {
|
|
10953
|
+
widthClass: "border",
|
|
10954
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
10955
|
+
}
|
|
10956
|
+
};
|
|
10957
|
+
const hairlineOutline = {
|
|
10958
|
+
...hairline,
|
|
10959
|
+
background: {
|
|
10960
|
+
type: "surface",
|
|
10961
|
+
role: "link"
|
|
10962
|
+
},
|
|
10963
|
+
border: {
|
|
10964
|
+
widthClass: "border",
|
|
10965
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
10966
|
+
}
|
|
10967
|
+
};
|
|
10968
|
+
const hairlineSecondary = {
|
|
10969
|
+
...hairlineOutline,
|
|
10970
|
+
border: {
|
|
10971
|
+
widthClass: "border",
|
|
10972
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
10973
|
+
}
|
|
10974
|
+
};
|
|
10975
|
+
const hairlineFilled = {
|
|
10976
|
+
...hairlineSecondary,
|
|
10977
|
+
background: {
|
|
10978
|
+
type: "solid",
|
|
10979
|
+
colorToken: "accent"
|
|
10980
|
+
}
|
|
10981
|
+
};
|
|
10982
|
+
const hairlinePrimaryStates = states(hairlinePrimary, hairlineOutline, 3);
|
|
10983
|
+
const hairlineSecondaryStates = states(hairlineSecondary, hairlineFilled, 3);
|
|
10984
|
+
const hairlineTabRecipe = defineStaticButtonStyleRecipe({
|
|
10985
|
+
id: "hairline-tab",
|
|
10986
|
+
accessibilityLabel: "Hairline tab",
|
|
10987
|
+
tags,
|
|
10988
|
+
system: { roles: {
|
|
10989
|
+
primary: { states: hairlinePrimaryStates },
|
|
10990
|
+
secondary: { states: hairlineSecondaryStates },
|
|
10991
|
+
outline: { states: hairlineSecondaryStates },
|
|
10992
|
+
ghost: { states: hairlineSecondaryStates },
|
|
10993
|
+
accent: { states: states(hairlineFilled, hairlineSecondary, 3) }
|
|
10994
|
+
} }
|
|
10995
|
+
});
|
|
10996
|
+
const marqueeAccent = {
|
|
10997
|
+
text: "treatment",
|
|
10998
|
+
borderRadius: "rounded-none",
|
|
10999
|
+
shadow: flatShadow,
|
|
11000
|
+
sizes: {
|
|
11001
|
+
sm: {
|
|
11002
|
+
padding: "8px 17px",
|
|
11003
|
+
fontSize: "text-15px"
|
|
11004
|
+
},
|
|
11005
|
+
md: {
|
|
11006
|
+
padding: "14px 25px",
|
|
11007
|
+
fontSize: "text-17px"
|
|
11008
|
+
},
|
|
11009
|
+
lg: {
|
|
11010
|
+
padding: "14px 25px",
|
|
11011
|
+
fontSize: "text-17px"
|
|
11012
|
+
},
|
|
11013
|
+
xl: {
|
|
11014
|
+
padding: "14px 25px",
|
|
11015
|
+
fontSize: "text-17px"
|
|
11016
|
+
}
|
|
11017
|
+
},
|
|
11018
|
+
typography: {
|
|
11019
|
+
fontWeight: 800,
|
|
11020
|
+
typography: "body",
|
|
11021
|
+
fontSize: "text-17px",
|
|
11022
|
+
letterSpacing: "loose",
|
|
11023
|
+
italic: false,
|
|
11024
|
+
textTransform: "uppercase"
|
|
11025
|
+
},
|
|
11026
|
+
effects: [],
|
|
11027
|
+
background: {
|
|
11028
|
+
type: "solid",
|
|
11029
|
+
colorToken: "accent"
|
|
11030
|
+
},
|
|
11031
|
+
border: {
|
|
11032
|
+
widthClass: "border-2",
|
|
11033
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("accent")
|
|
11034
|
+
}
|
|
11035
|
+
};
|
|
11036
|
+
const marqueePrimary = {
|
|
11037
|
+
...marqueeAccent,
|
|
11038
|
+
background: {
|
|
11039
|
+
type: "solid",
|
|
11040
|
+
colorToken: "primary"
|
|
11041
|
+
},
|
|
11042
|
+
border: {
|
|
11043
|
+
widthClass: "border-2",
|
|
11044
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("primary")
|
|
11045
|
+
}
|
|
11046
|
+
};
|
|
11047
|
+
const marqueeSecondary = {
|
|
11048
|
+
...marqueeAccent,
|
|
11049
|
+
background: {
|
|
11050
|
+
type: "solid",
|
|
11051
|
+
colorToken: "text"
|
|
11052
|
+
},
|
|
11053
|
+
border: {
|
|
11054
|
+
widthClass: "border-2",
|
|
11055
|
+
boundaryInk: unsafeAsOpaqueButtonColourToken("text")
|
|
11056
|
+
}
|
|
11057
|
+
};
|
|
11058
|
+
const marqueePrimaryStates = states(marqueeAccent, marqueePrimary, 4, 3);
|
|
11059
|
+
const marqueeSecondaryStates = states(marqueeSecondary, marqueeAccent, 4, 3);
|
|
11060
|
+
const marqueeRecipe = defineStaticButtonStyleRecipe({
|
|
11061
|
+
id: "marquee",
|
|
11062
|
+
accessibilityLabel: "Marquee",
|
|
11063
|
+
tags,
|
|
11064
|
+
system: { roles: {
|
|
11065
|
+
primary: { states: marqueePrimaryStates },
|
|
11066
|
+
secondary: { states: marqueeSecondaryStates },
|
|
11067
|
+
outline: { states: marqueeSecondaryStates },
|
|
11068
|
+
ghost: { states: marqueeSecondaryStates },
|
|
11069
|
+
accent: { states: marqueePrimaryStates }
|
|
11070
|
+
} }
|
|
11071
|
+
});
|
|
11072
|
+
//#endregion
|
|
10602
11073
|
//#region ../theme-core/src/buttons/styles/recipes/fulcrumRecipe.ts
|
|
10603
11074
|
const fulcrumSizes = {
|
|
10604
11075
|
sm: {
|
|
@@ -11340,7 +11811,10 @@ const BUTTON_STYLE_IDS = [
|
|
|
11340
11811
|
"offset-block",
|
|
11341
11812
|
"ringed-pill",
|
|
11342
11813
|
"square-outline",
|
|
11343
|
-
"fulcrum"
|
|
11814
|
+
"fulcrum",
|
|
11815
|
+
"gilt-slab",
|
|
11816
|
+
"hairline-tab",
|
|
11817
|
+
"marquee"
|
|
11344
11818
|
];
|
|
11345
11819
|
const quietArrowParametersSchema = z.object({ secondaryTreatment: z.enum(["outlined", "solid-accent"]) }).strict();
|
|
11346
11820
|
const flatInkHoverTreatmentSchema = z.enum([
|
|
@@ -11377,7 +11851,10 @@ const buttonStyleSelectionSchema = z.discriminatedUnion("styleId", [
|
|
|
11377
11851
|
selectionBranch("offset-block", emptyParametersSchema),
|
|
11378
11852
|
selectionBranch("ringed-pill", emptyParametersSchema),
|
|
11379
11853
|
selectionBranch("square-outline", emptyParametersSchema),
|
|
11380
|
-
selectionBranch("fulcrum", emptyParametersSchema)
|
|
11854
|
+
selectionBranch("fulcrum", emptyParametersSchema),
|
|
11855
|
+
selectionBranch("gilt-slab", emptyParametersSchema),
|
|
11856
|
+
selectionBranch("hairline-tab", emptyParametersSchema),
|
|
11857
|
+
selectionBranch("marquee", emptyParametersSchema)
|
|
11381
11858
|
]);
|
|
11382
11859
|
//#endregion
|
|
11383
11860
|
//#region ../theme-core/src/buttons/styles/recipes/quietArrow.ts
|
|
@@ -14893,7 +15370,10 @@ const buttonStyleRecipes = [
|
|
|
14893
15370
|
offsetBlockRecipe,
|
|
14894
15371
|
ringedPillRecipe,
|
|
14895
15372
|
squareOutlineRecipe,
|
|
14896
|
-
fulcrumRecipe
|
|
15373
|
+
fulcrumRecipe,
|
|
15374
|
+
giltSlabRecipe,
|
|
15375
|
+
hairlineTabRecipe,
|
|
15376
|
+
marqueeRecipe
|
|
14897
15377
|
];
|
|
14898
15378
|
const recipesById = new Map(buttonStyleRecipes.map((recipe) => [recipe.id, recipe]));
|
|
14899
15379
|
function findButtonStyleRecipe(id) {
|
|
@@ -14909,6 +15389,9 @@ function resolveButtonStyleSelection(selection) {
|
|
|
14909
15389
|
case "editorial-link": return resolveButtonStyleRecipe(editorialLinkRecipe, selection.parameters);
|
|
14910
15390
|
case "pebble": return resolveButtonStyleRecipe(pebbleRecipe, selection.parameters);
|
|
14911
15391
|
case "ink-stamp": return resolveButtonStyleRecipe(inkStampRecipe, selection.parameters);
|
|
15392
|
+
case "gilt-slab": return resolveButtonStyleRecipe(giltSlabRecipe, selection.parameters);
|
|
15393
|
+
case "hairline-tab": return resolveButtonStyleRecipe(hairlineTabRecipe, selection.parameters);
|
|
15394
|
+
case "marquee": return resolveButtonStyleRecipe(marqueeRecipe, selection.parameters);
|
|
14912
15395
|
case "fulcrum": return resolveButtonStyleRecipe(fulcrumRecipe, selection.parameters);
|
|
14913
15396
|
case "flat-ink": return resolveButtonStyleRecipe(flatInkRecipe, selection.parameters);
|
|
14914
15397
|
case "brushed-wash": return resolveButtonStyleRecipe(brushedWashRecipe, selection.parameters);
|
|
@@ -17140,20 +17623,15 @@ const headerSchema = z.object({
|
|
|
17140
17623
|
const footerVariant = z.enum([
|
|
17141
17624
|
"simple",
|
|
17142
17625
|
"columns",
|
|
17143
|
-
"split"
|
|
17144
|
-
|
|
17626
|
+
"split",
|
|
17627
|
+
"centred"
|
|
17628
|
+
]).transform((value) => value === "columns" ? "simple" : value);
|
|
17145
17629
|
const footerMaxWidth = z.enum(["container", "full"]);
|
|
17146
17630
|
const footerNavLayoutMode = z.enum([
|
|
17147
17631
|
"stack",
|
|
17148
17632
|
"inline",
|
|
17149
17633
|
"inline-wrap"
|
|
17150
17634
|
]);
|
|
17151
|
-
const footerNavLayoutAlign = z.enum([
|
|
17152
|
-
"start",
|
|
17153
|
-
"center",
|
|
17154
|
-
"end",
|
|
17155
|
-
"space-between"
|
|
17156
|
-
]);
|
|
17157
17635
|
const footerSpacing = z.enum([
|
|
17158
17636
|
"none",
|
|
17159
17637
|
"tight",
|
|
@@ -17162,12 +17640,6 @@ const footerSpacing = z.enum([
|
|
|
17162
17640
|
"relaxed",
|
|
17163
17641
|
"spacious"
|
|
17164
17642
|
]);
|
|
17165
|
-
const footerLogoPlacement = z.enum([
|
|
17166
|
-
"left",
|
|
17167
|
-
"right",
|
|
17168
|
-
"above",
|
|
17169
|
-
"below"
|
|
17170
|
-
]);
|
|
17171
17643
|
const footerLogoSize = z.enum([
|
|
17172
17644
|
"sm",
|
|
17173
17645
|
"md",
|
|
@@ -17208,17 +17680,8 @@ const footerBottomBarSchema = z.object({
|
|
|
17208
17680
|
]).optional()
|
|
17209
17681
|
}).optional()
|
|
17210
17682
|
});
|
|
17211
|
-
const footerNavLayoutSchema = z.object({
|
|
17212
|
-
layout: footerNavLayoutMode.optional(),
|
|
17213
|
-
align: footerNavLayoutAlign.optional(),
|
|
17214
|
-
gapX: footerSpacing.optional(),
|
|
17215
|
-
gapY: footerSpacing.optional(),
|
|
17216
|
-
columns: z.number().int().min(1).max(6).optional()
|
|
17217
|
-
});
|
|
17683
|
+
const footerNavLayoutSchema = z.object({ layout: footerNavLayoutMode.optional() });
|
|
17218
17684
|
const footerLogoSchema = z.object({
|
|
17219
|
-
showLogo: z.boolean().default(true),
|
|
17220
|
-
showLogoText: z.boolean().optional(),
|
|
17221
|
-
placement: footerLogoPlacement.optional(),
|
|
17222
17685
|
size: footerLogoSize.optional(),
|
|
17223
17686
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
17224
17687
|
align: z.enum([
|
|
@@ -17228,15 +17691,8 @@ const footerLogoSchema = z.object({
|
|
|
17228
17691
|
]).optional()
|
|
17229
17692
|
});
|
|
17230
17693
|
const footerSchema = z.object({
|
|
17231
|
-
/**
|
|
17232
|
-
* SDK-only footer rendering mode.
|
|
17233
|
-
*
|
|
17234
|
-
* Historical persisted field; SDK rendering mode now lives in layout.footerMode.
|
|
17235
|
-
*/
|
|
17236
|
-
mode: footerModeSchema.optional(),
|
|
17237
17694
|
variant: footerVariant,
|
|
17238
17695
|
maxWidth: footerMaxWidth,
|
|
17239
|
-
showLogoText: z.boolean().optional(),
|
|
17240
17696
|
background: headerBackgroundSchema.default({
|
|
17241
17697
|
type: "color",
|
|
17242
17698
|
color: "surface"
|
|
@@ -17419,7 +17875,9 @@ const cardListKnobBlocks = [...cardListFamilyBlocks, "block.event-calendar"];
|
|
|
17419
17875
|
const lookKnobBlocks = {
|
|
17420
17876
|
actionStyle: cardListKnobBlocks,
|
|
17421
17877
|
titleSize: "block.hero",
|
|
17422
|
-
imagePosition: "block.hero",
|
|
17878
|
+
imagePosition: ["block.hero", "block.media-text"],
|
|
17879
|
+
imageShape: "block.media-text",
|
|
17880
|
+
aspectRatio: "block.media-text",
|
|
17423
17881
|
stickerLine: "block.hero",
|
|
17424
17882
|
smallCaption: "block.hero",
|
|
17425
17883
|
candleGlow: "block.hero",
|
|
@@ -17429,7 +17887,11 @@ const lookKnobBlocks = {
|
|
|
17429
17887
|
dates: "block.offerings-preview",
|
|
17430
17888
|
showCapacity: "block.event-calendar",
|
|
17431
17889
|
quoteCount: "block.testimonials",
|
|
17432
|
-
archFrame:
|
|
17890
|
+
archFrame: [
|
|
17891
|
+
"block.testimonials",
|
|
17892
|
+
"block.newsletter-signup",
|
|
17893
|
+
"block.form"
|
|
17894
|
+
],
|
|
17433
17895
|
tilt: "block.testimonials"
|
|
17434
17896
|
};
|
|
17435
17897
|
function isArrangementAppearancePreset(preset) {
|
|
@@ -17456,13 +17918,25 @@ function cardListKnobDefaults(block, arrangement, knobs, defaults) {
|
|
|
17456
17918
|
}
|
|
17457
17919
|
};
|
|
17458
17920
|
}
|
|
17921
|
+
const arrangementLookTargets = {
|
|
17922
|
+
hero: "hero",
|
|
17923
|
+
"feature-cards": "feature-cards",
|
|
17924
|
+
"event-calendar": "events",
|
|
17925
|
+
testimonials: "testimonials",
|
|
17926
|
+
"event-details": "events",
|
|
17927
|
+
"media-text": "media-text",
|
|
17928
|
+
"image-gallery": "image-gallery",
|
|
17929
|
+
"newsletter-signup": "newsletter",
|
|
17930
|
+
form: "contact-form",
|
|
17931
|
+
"body-text": "body-text"
|
|
17932
|
+
};
|
|
17459
17933
|
function defineArrangementLook(id, block, name, arrangement, knobs, input = {}) {
|
|
17460
17934
|
const mode = block === "event-calendar" ? "list" : null;
|
|
17461
17935
|
return {
|
|
17462
17936
|
id: asAppearancePresetId(id),
|
|
17463
17937
|
blockKinds: [`block.${block}`],
|
|
17464
17938
|
label: name,
|
|
17465
|
-
target: block
|
|
17939
|
+
target: arrangementLookTargets[block],
|
|
17466
17940
|
structure: {
|
|
17467
17941
|
kind: "arrangement",
|
|
17468
17942
|
byMode: { [mode ?? "default"]: arrangement },
|
|
@@ -18282,6 +18756,15 @@ const appearancePresets = [
|
|
|
18282
18756
|
eyebrowTreatment: "accent"
|
|
18283
18757
|
}
|
|
18284
18758
|
}),
|
|
18759
|
+
defineArrangementLook("body-text-reading-column", "body-text", "Reading column", "prose", []),
|
|
18760
|
+
defineArrangementLook("form-beside-introduction-arched-panel", "form", "Introduction beside an arched form", "two-column", [], { slotRoles: { panel: "card" } }),
|
|
18761
|
+
defineArrangementLook("newsletter-signup-in-arch", "newsletter-signup", "Signup in an arch", "arch", []),
|
|
18762
|
+
defineArrangementLook("image-gallery-square-tiles", "image-gallery", "Square tiles", "tiles", []),
|
|
18763
|
+
defineArrangementLook("image-gallery-arched-captions", "image-gallery", "Arched photos with captions", "tiles", [], { styleFallback: [id$1("image-gallery-square-tiles")] }),
|
|
18764
|
+
defineArrangementLook("media-text-circle-beside-text", "media-text", "Circle beside the text", "circle-beside", ["imagePosition"], { forcedKnobs: {
|
|
18765
|
+
imageShape: "circle",
|
|
18766
|
+
aspectRatio: "1/1"
|
|
18767
|
+
} }),
|
|
18285
18768
|
defineArrangementLook("hero-photo-beside-text", "hero", "Photo beside the text", "split", heroKnobs, { slotRoles: { sticker: "highlight" } }),
|
|
18286
18769
|
defineArrangementLook("hero-headline-row", "hero", "Big headline, then text and photo", "headline-row", heroKnobs, {
|
|
18287
18770
|
slotRoles: { sticker: "highlight" },
|
|
@@ -18867,6 +19350,49 @@ function requireThemeColorToken$1(value) {
|
|
|
18867
19350
|
return token;
|
|
18868
19351
|
}
|
|
18869
19352
|
//#endregion
|
|
19353
|
+
//#region ../theme-core/src/header/rootPaint.ts
|
|
19354
|
+
/** The nav container takes precedence when a floating header also has one. */
|
|
19355
|
+
function headerRootPaint(header) {
|
|
19356
|
+
const navContainerType = header?.navContainer?.type ?? "none";
|
|
19357
|
+
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
19358
|
+
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
19359
|
+
}
|
|
19360
|
+
//#endregion
|
|
19361
|
+
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
19362
|
+
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
19363
|
+
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
19364
|
+
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
19365
|
+
function parseSiteChromeBackgroundColorToken(value) {
|
|
19366
|
+
const token = parseBackgroundAppearanceColorToken(value);
|
|
19367
|
+
return token ? token : null;
|
|
19368
|
+
}
|
|
19369
|
+
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
19370
|
+
return tokenNames.flatMap((name) => {
|
|
19371
|
+
const token = parseSiteChromeBackgroundColorToken(name);
|
|
19372
|
+
return token ? [token] : [];
|
|
19373
|
+
});
|
|
19374
|
+
}
|
|
19375
|
+
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
19376
|
+
const token = parseSiteChromeBackgroundColorToken(value);
|
|
19377
|
+
if (token === null) {
|
|
19378
|
+
ctx.addIssue({
|
|
19379
|
+
code: "custom",
|
|
19380
|
+
message: "Unknown site chrome background colour token"
|
|
19381
|
+
});
|
|
19382
|
+
return z.NEVER;
|
|
19383
|
+
}
|
|
19384
|
+
return token;
|
|
19385
|
+
});
|
|
19386
|
+
const siteChromeBackgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
19387
|
+
kind: z.literal("color"),
|
|
19388
|
+
token: backgroundColorTokenSchema
|
|
19389
|
+
}).strict()]);
|
|
19390
|
+
z.object({
|
|
19391
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
19392
|
+
navigationLayout: z.enum(["inline-wrap", "stack"])
|
|
19393
|
+
}).strict();
|
|
19394
|
+
z.object({ background: siteChromeBackgroundOverrideSchema }).strict();
|
|
19395
|
+
//#endregion
|
|
18870
19396
|
//#region ../theme-core/src/site-styles/compilationPlan.ts
|
|
18871
19397
|
const defaultHeaderBrandPreferences = {
|
|
18872
19398
|
brandDisplay: "auto",
|
|
@@ -19027,6 +19553,9 @@ function fallbackEndsAtOffer(entry, mode, style, catalogue, visited) {
|
|
|
19027
19553
|
appearancePresets.filter(isArrangementAppearancePreset);
|
|
19028
19554
|
/** Closed structural hooks shared by block arrangements and bounded skins. */
|
|
19029
19555
|
const arrangementSlotNames = [
|
|
19556
|
+
"contact",
|
|
19557
|
+
"social",
|
|
19558
|
+
"base",
|
|
19030
19559
|
"section",
|
|
19031
19560
|
"stack",
|
|
19032
19561
|
"inline",
|
|
@@ -19113,6 +19642,238 @@ function validateOfferKnobs(style, catalogue) {
|
|
|
19113
19642
|
});
|
|
19114
19643
|
}
|
|
19115
19644
|
//#endregion
|
|
19645
|
+
//#region ../theme-core/src/site-styles/footerLookDefaults.ts
|
|
19646
|
+
const defaultFooterLookRecipes = {
|
|
19647
|
+
"footer-centred-name": {
|
|
19648
|
+
arrangement: "centred",
|
|
19649
|
+
ground: {
|
|
19650
|
+
kind: "token",
|
|
19651
|
+
token: "surface"
|
|
19652
|
+
},
|
|
19653
|
+
nav: {
|
|
19654
|
+
weight: "regular",
|
|
19655
|
+
colorToken: "text",
|
|
19656
|
+
hoverColorToken: "primary",
|
|
19657
|
+
typography: "body"
|
|
19658
|
+
},
|
|
19659
|
+
legal: {
|
|
19660
|
+
kind: "separate",
|
|
19661
|
+
bar: null
|
|
19662
|
+
},
|
|
19663
|
+
brandAlign: "center"
|
|
19664
|
+
},
|
|
19665
|
+
"footer-links-row": {
|
|
19666
|
+
arrangement: "simple",
|
|
19667
|
+
ground: {
|
|
19668
|
+
kind: "token",
|
|
19669
|
+
token: "surface"
|
|
19670
|
+
},
|
|
19671
|
+
nav: {
|
|
19672
|
+
weight: "regular",
|
|
19673
|
+
colorToken: "text",
|
|
19674
|
+
hoverColorToken: "primary",
|
|
19675
|
+
typography: "body"
|
|
19676
|
+
},
|
|
19677
|
+
legal: { kind: "integrated" },
|
|
19678
|
+
brandAlign: "start"
|
|
19679
|
+
}
|
|
19680
|
+
};
|
|
19681
|
+
/** A whole authored recipe replaces the default; facets are never deep-merged. */
|
|
19682
|
+
function resolveFooterLookRecipe(style, id) {
|
|
19683
|
+
return style?.footerLookRecipes?.[id] ?? defaultFooterLookRecipes[id];
|
|
19684
|
+
}
|
|
19685
|
+
//#endregion
|
|
19686
|
+
//#region ../theme-core/src/navigation/presets.ts
|
|
19687
|
+
/**
|
|
19688
|
+
* Built-in nav link style presets
|
|
19689
|
+
*
|
|
19690
|
+
* Each preset uses composable effects to achieve its look.
|
|
19691
|
+
*/
|
|
19692
|
+
const NAV_LINK_PRESETS = {
|
|
19693
|
+
/**
|
|
19694
|
+
* Minimal - subtle color change on hover
|
|
19695
|
+
*/
|
|
19696
|
+
minimal: {
|
|
19697
|
+
name: "Minimal",
|
|
19698
|
+
typography: "body",
|
|
19699
|
+
fontWeight: "medium",
|
|
19700
|
+
textTransform: "none",
|
|
19701
|
+
italic: false,
|
|
19702
|
+
colorToken: "text",
|
|
19703
|
+
hoverColorToken: "primary",
|
|
19704
|
+
padding: "none",
|
|
19705
|
+
borderRadius: "none",
|
|
19706
|
+
effects: { hover: [{
|
|
19707
|
+
effectId: "text-color-change",
|
|
19708
|
+
options: { hoverColorToken: "primary" }
|
|
19709
|
+
}] }
|
|
19710
|
+
},
|
|
19711
|
+
/**
|
|
19712
|
+
* Underline - static underline appears on hover
|
|
19713
|
+
*/
|
|
19714
|
+
underline: {
|
|
19715
|
+
name: "Underline",
|
|
19716
|
+
typography: "body",
|
|
19717
|
+
fontWeight: "medium",
|
|
19718
|
+
textTransform: "none",
|
|
19719
|
+
italic: false,
|
|
19720
|
+
colorToken: "text",
|
|
19721
|
+
padding: "none",
|
|
19722
|
+
borderRadius: "none",
|
|
19723
|
+
effects: { hover: [{
|
|
19724
|
+
effectId: "nav-underline",
|
|
19725
|
+
options: { style: "static" }
|
|
19726
|
+
}] }
|
|
19727
|
+
},
|
|
19728
|
+
/**
|
|
19729
|
+
* Underline Grow - animated underline grows from center on hover
|
|
19730
|
+
*/
|
|
19731
|
+
"underline-grow": {
|
|
19732
|
+
name: "Underline Grow",
|
|
19733
|
+
typography: "body",
|
|
19734
|
+
fontWeight: "medium",
|
|
19735
|
+
textTransform: "none",
|
|
19736
|
+
italic: false,
|
|
19737
|
+
colorToken: "text",
|
|
19738
|
+
padding: "none",
|
|
19739
|
+
borderRadius: "none",
|
|
19740
|
+
effects: { hover: [{
|
|
19741
|
+
effectId: "nav-underline",
|
|
19742
|
+
options: { style: "grow" }
|
|
19743
|
+
}] }
|
|
19744
|
+
},
|
|
19745
|
+
/**
|
|
19746
|
+
* Capsule - pill-shaped background on hover
|
|
19747
|
+
*/
|
|
19748
|
+
capsule: {
|
|
19749
|
+
name: "Capsule",
|
|
19750
|
+
typography: "body",
|
|
19751
|
+
fontWeight: "medium",
|
|
19752
|
+
textTransform: "none",
|
|
19753
|
+
italic: false,
|
|
19754
|
+
colorToken: "text",
|
|
19755
|
+
padding: "compact",
|
|
19756
|
+
borderRadius: "full",
|
|
19757
|
+
effects: {
|
|
19758
|
+
hover: [{
|
|
19759
|
+
effectId: "background-on-hover-alpha",
|
|
19760
|
+
options: {
|
|
19761
|
+
colorToken: "primary",
|
|
19762
|
+
opacity: 10
|
|
19763
|
+
}
|
|
19764
|
+
}],
|
|
19765
|
+
active: [{
|
|
19766
|
+
effectId: "background-on-hover-alpha",
|
|
19767
|
+
options: {
|
|
19768
|
+
colorToken: "primary",
|
|
19769
|
+
opacity: 15
|
|
19770
|
+
}
|
|
19771
|
+
}]
|
|
19772
|
+
}
|
|
19773
|
+
},
|
|
19774
|
+
/**
|
|
19775
|
+
* Solid - solid background color on hover
|
|
19776
|
+
*/
|
|
19777
|
+
solid: {
|
|
19778
|
+
name: "Solid",
|
|
19779
|
+
typography: "body",
|
|
19780
|
+
fontWeight: "medium",
|
|
19781
|
+
textTransform: "none",
|
|
19782
|
+
italic: false,
|
|
19783
|
+
colorToken: "text",
|
|
19784
|
+
padding: "compact",
|
|
19785
|
+
borderRadius: "none",
|
|
19786
|
+
effects: {
|
|
19787
|
+
hover: [{
|
|
19788
|
+
effectId: "background-on-hover",
|
|
19789
|
+
options: {
|
|
19790
|
+
colorToken: "primary",
|
|
19791
|
+
textColorToken: "primaryForeground"
|
|
19792
|
+
}
|
|
19793
|
+
}],
|
|
19794
|
+
active: [{
|
|
19795
|
+
effectId: "background-on-hover",
|
|
19796
|
+
options: {
|
|
19797
|
+
colorToken: "primary",
|
|
19798
|
+
textColorToken: "primaryForeground"
|
|
19799
|
+
}
|
|
19800
|
+
}]
|
|
19801
|
+
}
|
|
19802
|
+
},
|
|
19803
|
+
/**
|
|
19804
|
+
* Scale - gentle scale-up on hover
|
|
19805
|
+
*/
|
|
19806
|
+
scale: {
|
|
19807
|
+
name: "Scale",
|
|
19808
|
+
typography: "body",
|
|
19809
|
+
fontWeight: "medium",
|
|
19810
|
+
textTransform: "none",
|
|
19811
|
+
italic: false,
|
|
19812
|
+
colorToken: "text",
|
|
19813
|
+
padding: "none",
|
|
19814
|
+
borderRadius: "none",
|
|
19815
|
+
effects: { hover: [{
|
|
19816
|
+
effectId: "scale-up",
|
|
19817
|
+
options: { scale: 1.05 }
|
|
19818
|
+
}] }
|
|
19819
|
+
},
|
|
19820
|
+
/**
|
|
19821
|
+
* Frosted - semi-transparent glass-like background
|
|
19822
|
+
*/
|
|
19823
|
+
frosted: {
|
|
19824
|
+
name: "Frosted",
|
|
19825
|
+
typography: "body",
|
|
19826
|
+
fontWeight: "medium",
|
|
19827
|
+
textTransform: "none",
|
|
19828
|
+
italic: false,
|
|
19829
|
+
colorToken: "text",
|
|
19830
|
+
padding: "compact",
|
|
19831
|
+
borderRadius: "md",
|
|
19832
|
+
effects: {
|
|
19833
|
+
base: [{ effectId: "nav-frosted-base" }],
|
|
19834
|
+
hover: [{ effectId: "nav-frosted-hover" }],
|
|
19835
|
+
active: [{ effectId: "nav-frosted-active" }]
|
|
19836
|
+
}
|
|
19837
|
+
}
|
|
19838
|
+
};
|
|
19839
|
+
/**
|
|
19840
|
+
* Get a nav link style preset by ID
|
|
19841
|
+
*/
|
|
19842
|
+
function getNavLinkPreset(presetId) {
|
|
19843
|
+
return NAV_LINK_PRESETS[presetId];
|
|
19844
|
+
}
|
|
19845
|
+
Object.keys(NAV_LINK_PRESETS);
|
|
19846
|
+
//#endregion
|
|
19847
|
+
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
19848
|
+
function effectiveFooterNavLinkStyle(footer) {
|
|
19849
|
+
if (!footer) return null;
|
|
19850
|
+
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
19851
|
+
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
19852
|
+
if (!basePreset) return null;
|
|
19853
|
+
return {
|
|
19854
|
+
...basePreset,
|
|
19855
|
+
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
19856
|
+
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
19857
|
+
};
|
|
19858
|
+
}
|
|
19859
|
+
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
19860
|
+
if (!footer) return {};
|
|
19861
|
+
const style = effectiveFooterNavLinkStyle(footer);
|
|
19862
|
+
return {
|
|
19863
|
+
text: footer.background?.textColor ?? (footer.variant === "centred" ? "text" : void 0),
|
|
19864
|
+
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
19865
|
+
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
19866
|
+
};
|
|
19867
|
+
}
|
|
19868
|
+
//#endregion
|
|
19869
|
+
//#region ../theme-core/src/site-styles/footerLookRecipe.ts
|
|
19870
|
+
/** Reject undeclared references when the curated catalogue is loaded, before rendering. */
|
|
19871
|
+
function validateFooterRecipeSurfaces(style, recipe) {
|
|
19872
|
+
[recipe.ground, ...recipe.legal.kind === "separate" && recipe.legal.bar ? [recipe.legal.bar.background] : []].forEach((ground) => {
|
|
19873
|
+
if (ground.kind === "style-surface" && (style.looks.kind !== "offers" || !style.looks.surfaces[ground.surface])) throw new Error(`Undeclared footer surface: ${ground.surface}`);
|
|
19874
|
+
});
|
|
19875
|
+
}
|
|
19876
|
+
//#endregion
|
|
19116
19877
|
//#region ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
19117
19878
|
/**
|
|
19118
19879
|
* Reusable accordion "looks" for curated site styles.
|
|
@@ -19840,52 +20601,14 @@ defineLookOptionGroup({
|
|
|
19840
20601
|
function asFooterLookId(value) {
|
|
19841
20602
|
return value;
|
|
19842
20603
|
}
|
|
19843
|
-
function quietFooterLinks(theme) {
|
|
19844
|
-
return {
|
|
19845
|
-
...theme.footer,
|
|
19846
|
-
navStyle: "minimal",
|
|
19847
|
-
navWeight: "regular",
|
|
19848
|
-
navColor: "text",
|
|
19849
|
-
navLinkStyle: {
|
|
19850
|
-
typography: "body",
|
|
19851
|
-
fontWeight: "regular",
|
|
19852
|
-
textTransform: "none",
|
|
19853
|
-
italic: false,
|
|
19854
|
-
colorToken: "text",
|
|
19855
|
-
hoverColorToken: "primary",
|
|
19856
|
-
padding: "none",
|
|
19857
|
-
borderRadius: "none"
|
|
19858
|
-
}
|
|
19859
|
-
};
|
|
19860
|
-
}
|
|
19861
|
-
function emphasizedFooterLinks(theme) {
|
|
19862
|
-
return {
|
|
19863
|
-
...theme.footer,
|
|
19864
|
-
navStyle: "minimal",
|
|
19865
|
-
navWeight: "medium",
|
|
19866
|
-
navColor: "text",
|
|
19867
|
-
navLinkStyle: {
|
|
19868
|
-
typography: "body",
|
|
19869
|
-
fontWeight: "medium",
|
|
19870
|
-
textTransform: "none",
|
|
19871
|
-
italic: false,
|
|
19872
|
-
colorToken: "text",
|
|
19873
|
-
hoverColorToken: "primary",
|
|
19874
|
-
padding: "none",
|
|
19875
|
-
borderRadius: "none"
|
|
19876
|
-
}
|
|
19877
|
-
};
|
|
19878
|
-
}
|
|
19879
20604
|
const footerLookCatalog = defineExactCatalog()([{
|
|
19880
|
-
id: asFooterLookId("footer-links-
|
|
19881
|
-
label: "
|
|
19882
|
-
description: "
|
|
19883
|
-
compile: quietFooterLinks
|
|
20605
|
+
id: asFooterLookId("footer-links-row"),
|
|
20606
|
+
label: "Links in a row",
|
|
20607
|
+
description: "Your links in a row, with the other footer sections in columns beside them."
|
|
19884
20608
|
}, {
|
|
19885
|
-
id: asFooterLookId("footer-
|
|
19886
|
-
label: "
|
|
19887
|
-
description: "
|
|
19888
|
-
compile: emphasizedFooterLinks
|
|
20609
|
+
id: asFooterLookId("footer-centred-name"),
|
|
20610
|
+
label: "Centred name, links beneath",
|
|
20611
|
+
description: "Your site name centred, with your links, contact details and social links beneath it."
|
|
19889
20612
|
}]);
|
|
19890
20613
|
new Map(footerLookCatalog.map((look) => [look.id, look]));
|
|
19891
20614
|
//#endregion
|
|
@@ -21302,6 +22025,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
21302
22025
|
recommendedAppearancePresetIds
|
|
21303
22026
|
},
|
|
21304
22027
|
headerCuration: headerCurationBySiteStyle[input.id],
|
|
22028
|
+
footerLookRecipes: input.footerLookRecipes,
|
|
21305
22029
|
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
|
|
21306
22030
|
buttonStyleChoices: input.buttonStyleChoices,
|
|
21307
22031
|
paletteRecommendations: input.paletteRecommendations,
|
|
@@ -21787,7 +22511,11 @@ const lanternLooks = {
|
|
|
21787
22511
|
margin: "40px"
|
|
21788
22512
|
},
|
|
21789
22513
|
fontLoading: {
|
|
21790
|
-
extraBodyFontWeights: [
|
|
22514
|
+
extraBodyFontWeights: [
|
|
22515
|
+
500,
|
|
22516
|
+
700,
|
|
22517
|
+
800
|
|
22518
|
+
],
|
|
21791
22519
|
italicBodyFontWeights: [400]
|
|
21792
22520
|
},
|
|
21793
22521
|
surfaces: {
|
|
@@ -21837,6 +22565,38 @@ const lanternLooks = {
|
|
|
21837
22565
|
]
|
|
21838
22566
|
},
|
|
21839
22567
|
offers: [
|
|
22568
|
+
{
|
|
22569
|
+
id: id("body-text-reading-column"),
|
|
22570
|
+
treatment: "reading-column",
|
|
22571
|
+
roleMap: lanternRoles
|
|
22572
|
+
},
|
|
22573
|
+
{
|
|
22574
|
+
id: id("form-beside-introduction-arched-panel"),
|
|
22575
|
+
treatment: "arched-panel",
|
|
22576
|
+
addKnobs: ["archFrame"],
|
|
22577
|
+
roleMap: lanternRoles
|
|
22578
|
+
},
|
|
22579
|
+
{
|
|
22580
|
+
id: id("newsletter-signup-in-arch"),
|
|
22581
|
+
treatment: "signup-arch",
|
|
22582
|
+
addKnobs: ["archFrame"],
|
|
22583
|
+
roleMap: lanternRoles
|
|
22584
|
+
},
|
|
22585
|
+
{
|
|
22586
|
+
id: id("image-gallery-square-tiles"),
|
|
22587
|
+
treatment: "square-tiles",
|
|
22588
|
+
roleMap: lanternRoles
|
|
22589
|
+
},
|
|
22590
|
+
{
|
|
22591
|
+
id: id("image-gallery-arched-captions"),
|
|
22592
|
+
treatment: "arched-captions",
|
|
22593
|
+
roleMap: lanternRoles
|
|
22594
|
+
},
|
|
22595
|
+
{
|
|
22596
|
+
id: id("media-text-circle-beside-text"),
|
|
22597
|
+
treatment: "circle-beside",
|
|
22598
|
+
roleMap: lanternRoles
|
|
22599
|
+
},
|
|
21840
22600
|
{
|
|
21841
22601
|
id: id("event-details-panel"),
|
|
21842
22602
|
treatment: "quiet",
|
|
@@ -22275,7 +23035,7 @@ const curatedSiteStyles = [
|
|
|
22275
23035
|
"faq-contained-help",
|
|
22276
23036
|
"contact-form-panel"
|
|
22277
23037
|
],
|
|
22278
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23038
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22279
23039
|
buttonStyleChoices: [
|
|
22280
23040
|
buttonChoice("soft-pill"),
|
|
22281
23041
|
buttonChoice("pebble"),
|
|
@@ -22394,7 +23154,7 @@ const curatedSiteStyles = [
|
|
|
22394
23154
|
"testimonials-non-carded",
|
|
22395
23155
|
"contact-form-panel"
|
|
22396
23156
|
],
|
|
22397
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23157
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22398
23158
|
buttonStyleChoices: [
|
|
22399
23159
|
buttonChoice("earth-pill"),
|
|
22400
23160
|
buttonChoice("soft-pill"),
|
|
@@ -22449,7 +23209,41 @@ const curatedSiteStyles = [
|
|
|
22449
23209
|
"testimonials-brand-statement-cards",
|
|
22450
23210
|
"contact-form-panel"
|
|
22451
23211
|
],
|
|
22452
|
-
|
|
23212
|
+
footerLookRecipes: { "footer-links-row": {
|
|
23213
|
+
arrangement: "split",
|
|
23214
|
+
ground: {
|
|
23215
|
+
kind: "token",
|
|
23216
|
+
token: "primary-800"
|
|
23217
|
+
},
|
|
23218
|
+
nav: {
|
|
23219
|
+
weight: "medium",
|
|
23220
|
+
colorToken: "primaryForeground",
|
|
23221
|
+
hoverColorToken: "secondary",
|
|
23222
|
+
typography: "body"
|
|
23223
|
+
},
|
|
23224
|
+
legal: {
|
|
23225
|
+
kind: "separate",
|
|
23226
|
+
bar: {
|
|
23227
|
+
fullBleed: true,
|
|
23228
|
+
background: {
|
|
23229
|
+
kind: "token",
|
|
23230
|
+
token: "primary-900"
|
|
23231
|
+
},
|
|
23232
|
+
textColor: "primaryForeground",
|
|
23233
|
+
textAlign: "center",
|
|
23234
|
+
paddingY: "compact",
|
|
23235
|
+
paddingX: "default",
|
|
23236
|
+
borderTop: { width: "none" }
|
|
23237
|
+
},
|
|
23238
|
+
linkStyle: {
|
|
23239
|
+
colorToken: "secondary",
|
|
23240
|
+
decorationColorToken: "secondary"
|
|
23241
|
+
}
|
|
23242
|
+
},
|
|
23243
|
+
brandAlign: "start",
|
|
23244
|
+
brandLogoSize: "sm"
|
|
23245
|
+
} },
|
|
23246
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22453
23247
|
buttonStyleChoices: [
|
|
22454
23248
|
buttonChoice("showtime-pill"),
|
|
22455
23249
|
buttonChoice("confident-chip"),
|
|
@@ -22520,7 +23314,7 @@ const curatedSiteStyles = [
|
|
|
22520
23314
|
"testimonials-statement-cards",
|
|
22521
23315
|
"contact-form-panel"
|
|
22522
23316
|
],
|
|
22523
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23317
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22524
23318
|
buttonStyleChoices: [
|
|
22525
23319
|
buttonChoice("ornate-ritual"),
|
|
22526
23320
|
buttonChoice("joy-stamp"),
|
|
@@ -22567,7 +23361,22 @@ const curatedSiteStyles = [
|
|
|
22567
23361
|
} }
|
|
22568
23362
|
},
|
|
22569
23363
|
recommendedAppearancePresetIds: ["feature-cards-bold-colors", "testimonials-statement-cards"],
|
|
22570
|
-
|
|
23364
|
+
footerLookRecipes: { "footer-links-row": {
|
|
23365
|
+
arrangement: "simple",
|
|
23366
|
+
ground: {
|
|
23367
|
+
kind: "token",
|
|
23368
|
+
token: "surface"
|
|
23369
|
+
},
|
|
23370
|
+
nav: {
|
|
23371
|
+
weight: "medium",
|
|
23372
|
+
colorToken: "text",
|
|
23373
|
+
hoverColorToken: "primary",
|
|
23374
|
+
typography: "body"
|
|
23375
|
+
},
|
|
23376
|
+
legal: { kind: "integrated" },
|
|
23377
|
+
brandAlign: "start"
|
|
23378
|
+
} },
|
|
23379
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22571
23380
|
buttonStyleChoices: [
|
|
22572
23381
|
buttonChoice("joy-stamp"),
|
|
22573
23382
|
buttonChoice("ink-stamp"),
|
|
@@ -22619,7 +23428,7 @@ const curatedSiteStyles = [
|
|
|
22619
23428
|
},
|
|
22620
23429
|
testimonialQuote: serifDisplayQuote
|
|
22621
23430
|
},
|
|
22622
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23431
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22623
23432
|
buttonStyleChoices: [
|
|
22624
23433
|
buttonChoice("fulcrum"),
|
|
22625
23434
|
buttonChoice("editorial-link"),
|
|
@@ -22696,7 +23505,7 @@ const curatedSiteStyles = [
|
|
|
22696
23505
|
"faq-base-accordion",
|
|
22697
23506
|
"booking-brand-band"
|
|
22698
23507
|
],
|
|
22699
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23508
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22700
23509
|
buttonStyleChoices: [
|
|
22701
23510
|
buttonChoice("quiet-arrow", void 0, { secondaryTreatment: "solid-accent" }),
|
|
22702
23511
|
buttonChoice("flat-ink"),
|
|
@@ -22734,7 +23543,22 @@ const curatedSiteStyles = [
|
|
|
22734
23543
|
accordions: boldBorderedAccordionSystem,
|
|
22735
23544
|
testimonialQuote: accentGlyphQuote
|
|
22736
23545
|
},
|
|
22737
|
-
|
|
23546
|
+
footerLookRecipes: { "footer-links-row": {
|
|
23547
|
+
arrangement: "simple",
|
|
23548
|
+
ground: {
|
|
23549
|
+
kind: "token",
|
|
23550
|
+
token: "surface"
|
|
23551
|
+
},
|
|
23552
|
+
nav: {
|
|
23553
|
+
weight: "medium",
|
|
23554
|
+
colorToken: "text",
|
|
23555
|
+
hoverColorToken: "primary",
|
|
23556
|
+
typography: "body"
|
|
23557
|
+
},
|
|
23558
|
+
legal: { kind: "integrated" },
|
|
23559
|
+
brandAlign: "start"
|
|
23560
|
+
} },
|
|
23561
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22738
23562
|
buttonStyleChoices: [
|
|
22739
23563
|
buttonChoice("offset-block"),
|
|
22740
23564
|
buttonChoice("ink-stamp"),
|
|
@@ -22773,8 +23597,29 @@ const curatedSiteStyles = [
|
|
|
22773
23597
|
accordions: warmInsetAccordionSystem,
|
|
22774
23598
|
testimonialQuote: serifDisplayQuote
|
|
22775
23599
|
},
|
|
22776
|
-
|
|
23600
|
+
footerLookRecipes: { "footer-centred-name": {
|
|
23601
|
+
arrangement: "centred",
|
|
23602
|
+
ground: {
|
|
23603
|
+
kind: "style-surface",
|
|
23604
|
+
surface: "deep"
|
|
23605
|
+
},
|
|
23606
|
+
nav: {
|
|
23607
|
+
weight: "regular",
|
|
23608
|
+
colorToken: "text",
|
|
23609
|
+
hoverColorToken: "primary",
|
|
23610
|
+
typography: "heading"
|
|
23611
|
+
},
|
|
23612
|
+
legal: {
|
|
23613
|
+
kind: "separate",
|
|
23614
|
+
bar: null
|
|
23615
|
+
},
|
|
23616
|
+
brandAlign: "center"
|
|
23617
|
+
} },
|
|
23618
|
+
recommendedFooterLookIds: ["footer-centred-name", "footer-links-row"],
|
|
22777
23619
|
buttonStyleChoices: [
|
|
23620
|
+
buttonChoice("gilt-slab"),
|
|
23621
|
+
buttonChoice("hairline-tab"),
|
|
23622
|
+
buttonChoice("marquee"),
|
|
22778
23623
|
buttonChoice("ringed-pill"),
|
|
22779
23624
|
buttonChoice("earth-pill"),
|
|
22780
23625
|
buttonChoice("editorial-link")
|
|
@@ -22809,7 +23654,7 @@ const curatedSiteStyles = [
|
|
|
22809
23654
|
accordions: editorialDividedAccordionSystem,
|
|
22810
23655
|
testimonialQuote: serifDisplayQuote
|
|
22811
23656
|
},
|
|
22812
|
-
recommendedFooterLookIds: ["footer-links-
|
|
23657
|
+
recommendedFooterLookIds: ["footer-links-row"],
|
|
22813
23658
|
buttonStyleChoices: [
|
|
22814
23659
|
buttonChoice("flat-ink", void 0, { corners: "square" }),
|
|
22815
23660
|
buttonChoice("editorial-link"),
|
|
@@ -22837,6 +23682,7 @@ function curatedStyleTemplate(input) {
|
|
|
22837
23682
|
}
|
|
22838
23683
|
curatedSiteStyles.forEach((style) => {
|
|
22839
23684
|
if (style.looks.kind === "offers") validateLookFallbacks(style.looks);
|
|
23685
|
+
(/* @__PURE__ */ new Set([...Object.values(style.footerLookRecipes ?? {}), ...style.recommendedFooterLookIds.map((id) => resolveFooterLookRecipe(style, id))])).forEach((recipe) => validateFooterRecipeSurfaces(style, recipe));
|
|
22840
23686
|
});
|
|
22841
23687
|
//#endregion
|
|
22842
23688
|
//#region ../theme-core/src/site-styles/effectiveArrangement.ts
|
|
@@ -22912,29 +23758,6 @@ const blockDesignFallback = {
|
|
|
22912
23758
|
};
|
|
22913
23759
|
blockDesignFallback.sectionSurface, blockDesignFallback.contentFrame, blockDesignFallback.sectionHeight, blockDesignFallback.heroLegibility, blockDesignFallback.imageSurfaceTreatment, blockDesignFallback.imageSurfaceMotion, blockDesignFallback.tileTreatment, blockDesignFallback.eventListTreatment, blockDesignFallback.eyebrowTreatment, blockDesignFallback.accordionIconTreatment, blockDesignFallback.composition;
|
|
22914
23760
|
//#endregion
|
|
22915
|
-
//#region ../theme-core/src/header/rootPaint.ts
|
|
22916
|
-
/** The nav container takes precedence when a floating header also has one. */
|
|
22917
|
-
function headerRootPaint(header) {
|
|
22918
|
-
const navContainerType = header?.navContainer?.type ?? "none";
|
|
22919
|
-
if (navContainerType === "glass" || navContainerType === "pill") return "contained-nav";
|
|
22920
|
-
return header?.variant === "floating" ? "overlay" : "own-surface";
|
|
22921
|
-
}
|
|
22922
|
-
//#endregion
|
|
22923
|
-
//#region ../theme-core/src/site-styles/siteChromeBackgrounds.ts
|
|
22924
|
-
const siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
|
|
22925
|
-
const quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
|
|
22926
|
-
siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
|
|
22927
|
-
function parseSiteChromeBackgroundColorToken(value) {
|
|
22928
|
-
const token = parseBackgroundAppearanceColorToken(value);
|
|
22929
|
-
return token ? token : null;
|
|
22930
|
-
}
|
|
22931
|
-
function toSiteChromeBackgroundColorTokens(tokenNames) {
|
|
22932
|
-
return tokenNames.flatMap((name) => {
|
|
22933
|
-
const token = parseSiteChromeBackgroundColorToken(name);
|
|
22934
|
-
return token ? [token] : [];
|
|
22935
|
-
});
|
|
22936
|
-
}
|
|
22937
|
-
//#endregion
|
|
22938
23761
|
//#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
|
|
22939
23762
|
const headerNavTypographyPreferenceValues = [
|
|
22940
23763
|
"inherit",
|
|
@@ -23050,21 +23873,6 @@ z.object({
|
|
|
23050
23873
|
}).strict();
|
|
23051
23874
|
//#endregion
|
|
23052
23875
|
//#region ../theme-core/src/site-styles/headerPreferencesPersistence.ts
|
|
23053
|
-
const backgroundColorTokenSchema = z.unknown().transform((value, ctx) => {
|
|
23054
|
-
const token = parseSiteChromeBackgroundColorToken(value);
|
|
23055
|
-
if (token === null) {
|
|
23056
|
-
ctx.addIssue({
|
|
23057
|
-
code: "custom",
|
|
23058
|
-
message: "Unknown site chrome background colour token"
|
|
23059
|
-
});
|
|
23060
|
-
return z.NEVER;
|
|
23061
|
-
}
|
|
23062
|
-
return token;
|
|
23063
|
-
});
|
|
23064
|
-
const backgroundOverrideSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("default") }).strict(), z.object({
|
|
23065
|
-
kind: z.literal("color"),
|
|
23066
|
-
token: backgroundColorTokenSchema
|
|
23067
|
-
}).strict()]);
|
|
23068
23876
|
const logoTextIntentSchema = z.object({
|
|
23069
23877
|
mobileMaxWidth: z.enum([
|
|
23070
23878
|
"xs",
|
|
@@ -23090,7 +23898,7 @@ const headerPreferencesShape = {
|
|
|
23090
23898
|
navFontRole: z.enum(headerNavTypographyPreferenceValues),
|
|
23091
23899
|
navTextSize: z.enum(headerNavFontSizePreferenceValues),
|
|
23092
23900
|
interactionPalette: z.union([z.literal("recommended"), z.enum(headerInteractionPaletteValues)]),
|
|
23093
|
-
background:
|
|
23901
|
+
background: siteChromeBackgroundOverrideSchema,
|
|
23094
23902
|
structure: structureSchema
|
|
23095
23903
|
};
|
|
23096
23904
|
z.object(headerPreferencesShape).strict();
|
|
@@ -23099,167 +23907,6 @@ z.object(headerPreferencesShape).omit({
|
|
|
23099
23907
|
structure: true
|
|
23100
23908
|
}).strict();
|
|
23101
23909
|
//#endregion
|
|
23102
|
-
//#region ../theme-core/src/navigation/presets.ts
|
|
23103
|
-
/**
|
|
23104
|
-
* Built-in nav link style presets
|
|
23105
|
-
*
|
|
23106
|
-
* Each preset uses composable effects to achieve its look.
|
|
23107
|
-
*/
|
|
23108
|
-
const NAV_LINK_PRESETS = {
|
|
23109
|
-
/**
|
|
23110
|
-
* Minimal - subtle color change on hover
|
|
23111
|
-
*/
|
|
23112
|
-
minimal: {
|
|
23113
|
-
name: "Minimal",
|
|
23114
|
-
typography: "body",
|
|
23115
|
-
fontWeight: "medium",
|
|
23116
|
-
textTransform: "none",
|
|
23117
|
-
italic: false,
|
|
23118
|
-
colorToken: "text",
|
|
23119
|
-
hoverColorToken: "primary",
|
|
23120
|
-
padding: "none",
|
|
23121
|
-
borderRadius: "none",
|
|
23122
|
-
effects: { hover: [{
|
|
23123
|
-
effectId: "text-color-change",
|
|
23124
|
-
options: { hoverColorToken: "primary" }
|
|
23125
|
-
}] }
|
|
23126
|
-
},
|
|
23127
|
-
/**
|
|
23128
|
-
* Underline - static underline appears on hover
|
|
23129
|
-
*/
|
|
23130
|
-
underline: {
|
|
23131
|
-
name: "Underline",
|
|
23132
|
-
typography: "body",
|
|
23133
|
-
fontWeight: "medium",
|
|
23134
|
-
textTransform: "none",
|
|
23135
|
-
italic: false,
|
|
23136
|
-
colorToken: "text",
|
|
23137
|
-
padding: "none",
|
|
23138
|
-
borderRadius: "none",
|
|
23139
|
-
effects: { hover: [{
|
|
23140
|
-
effectId: "nav-underline",
|
|
23141
|
-
options: { style: "static" }
|
|
23142
|
-
}] }
|
|
23143
|
-
},
|
|
23144
|
-
/**
|
|
23145
|
-
* Underline Grow - animated underline grows from center on hover
|
|
23146
|
-
*/
|
|
23147
|
-
"underline-grow": {
|
|
23148
|
-
name: "Underline Grow",
|
|
23149
|
-
typography: "body",
|
|
23150
|
-
fontWeight: "medium",
|
|
23151
|
-
textTransform: "none",
|
|
23152
|
-
italic: false,
|
|
23153
|
-
colorToken: "text",
|
|
23154
|
-
padding: "none",
|
|
23155
|
-
borderRadius: "none",
|
|
23156
|
-
effects: { hover: [{
|
|
23157
|
-
effectId: "nav-underline",
|
|
23158
|
-
options: { style: "grow" }
|
|
23159
|
-
}] }
|
|
23160
|
-
},
|
|
23161
|
-
/**
|
|
23162
|
-
* Capsule - pill-shaped background on hover
|
|
23163
|
-
*/
|
|
23164
|
-
capsule: {
|
|
23165
|
-
name: "Capsule",
|
|
23166
|
-
typography: "body",
|
|
23167
|
-
fontWeight: "medium",
|
|
23168
|
-
textTransform: "none",
|
|
23169
|
-
italic: false,
|
|
23170
|
-
colorToken: "text",
|
|
23171
|
-
padding: "compact",
|
|
23172
|
-
borderRadius: "full",
|
|
23173
|
-
effects: {
|
|
23174
|
-
hover: [{
|
|
23175
|
-
effectId: "background-on-hover-alpha",
|
|
23176
|
-
options: {
|
|
23177
|
-
colorToken: "primary",
|
|
23178
|
-
opacity: 10
|
|
23179
|
-
}
|
|
23180
|
-
}],
|
|
23181
|
-
active: [{
|
|
23182
|
-
effectId: "background-on-hover-alpha",
|
|
23183
|
-
options: {
|
|
23184
|
-
colorToken: "primary",
|
|
23185
|
-
opacity: 15
|
|
23186
|
-
}
|
|
23187
|
-
}]
|
|
23188
|
-
}
|
|
23189
|
-
},
|
|
23190
|
-
/**
|
|
23191
|
-
* Solid - solid background color on hover
|
|
23192
|
-
*/
|
|
23193
|
-
solid: {
|
|
23194
|
-
name: "Solid",
|
|
23195
|
-
typography: "body",
|
|
23196
|
-
fontWeight: "medium",
|
|
23197
|
-
textTransform: "none",
|
|
23198
|
-
italic: false,
|
|
23199
|
-
colorToken: "text",
|
|
23200
|
-
padding: "compact",
|
|
23201
|
-
borderRadius: "none",
|
|
23202
|
-
effects: {
|
|
23203
|
-
hover: [{
|
|
23204
|
-
effectId: "background-on-hover",
|
|
23205
|
-
options: {
|
|
23206
|
-
colorToken: "primary",
|
|
23207
|
-
textColorToken: "primaryForeground"
|
|
23208
|
-
}
|
|
23209
|
-
}],
|
|
23210
|
-
active: [{
|
|
23211
|
-
effectId: "background-on-hover",
|
|
23212
|
-
options: {
|
|
23213
|
-
colorToken: "primary",
|
|
23214
|
-
textColorToken: "primaryForeground"
|
|
23215
|
-
}
|
|
23216
|
-
}]
|
|
23217
|
-
}
|
|
23218
|
-
},
|
|
23219
|
-
/**
|
|
23220
|
-
* Scale - gentle scale-up on hover
|
|
23221
|
-
*/
|
|
23222
|
-
scale: {
|
|
23223
|
-
name: "Scale",
|
|
23224
|
-
typography: "body",
|
|
23225
|
-
fontWeight: "medium",
|
|
23226
|
-
textTransform: "none",
|
|
23227
|
-
italic: false,
|
|
23228
|
-
colorToken: "text",
|
|
23229
|
-
padding: "none",
|
|
23230
|
-
borderRadius: "none",
|
|
23231
|
-
effects: { hover: [{
|
|
23232
|
-
effectId: "scale-up",
|
|
23233
|
-
options: { scale: 1.05 }
|
|
23234
|
-
}] }
|
|
23235
|
-
},
|
|
23236
|
-
/**
|
|
23237
|
-
* Frosted - semi-transparent glass-like background
|
|
23238
|
-
*/
|
|
23239
|
-
frosted: {
|
|
23240
|
-
name: "Frosted",
|
|
23241
|
-
typography: "body",
|
|
23242
|
-
fontWeight: "medium",
|
|
23243
|
-
textTransform: "none",
|
|
23244
|
-
italic: false,
|
|
23245
|
-
colorToken: "text",
|
|
23246
|
-
padding: "compact",
|
|
23247
|
-
borderRadius: "md",
|
|
23248
|
-
effects: {
|
|
23249
|
-
base: [{ effectId: "nav-frosted-base" }],
|
|
23250
|
-
hover: [{ effectId: "nav-frosted-hover" }],
|
|
23251
|
-
active: [{ effectId: "nav-frosted-active" }]
|
|
23252
|
-
}
|
|
23253
|
-
}
|
|
23254
|
-
};
|
|
23255
|
-
/**
|
|
23256
|
-
* Get a nav link style preset by ID
|
|
23257
|
-
*/
|
|
23258
|
-
function getNavLinkPreset(presetId) {
|
|
23259
|
-
return NAV_LINK_PRESETS[presetId];
|
|
23260
|
-
}
|
|
23261
|
-
Object.keys(NAV_LINK_PRESETS);
|
|
23262
|
-
//#endregion
|
|
23263
23910
|
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
23264
23911
|
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
23265
23912
|
const navStyle = header.navStyle ?? "minimal";
|
|
@@ -23504,28 +24151,6 @@ z.object({
|
|
|
23504
24151
|
motion: z.enum(themeTokenRecipeOptions.motion)
|
|
23505
24152
|
});
|
|
23506
24153
|
//#endregion
|
|
23507
|
-
//#region ../theme-core/src/footer/effectiveNavLinkStyle.ts
|
|
23508
|
-
function effectiveFooterNavLinkStyle(footer) {
|
|
23509
|
-
if (!footer) return null;
|
|
23510
|
-
if (footer.navLinkStyle) return footer.navLinkStyle;
|
|
23511
|
-
const basePreset = getNavLinkPreset(footer.navStyle ?? "minimal");
|
|
23512
|
-
if (!basePreset) return null;
|
|
23513
|
-
return {
|
|
23514
|
-
...basePreset,
|
|
23515
|
-
fontWeight: footer.navWeight ?? basePreset.fontWeight,
|
|
23516
|
-
colorToken: footer.navColor?.trim() || basePreset.colorToken
|
|
23517
|
-
};
|
|
23518
|
-
}
|
|
23519
|
-
function footerForegroundCandidates(footer, proseHoverCandidate) {
|
|
23520
|
-
if (!footer) return {};
|
|
23521
|
-
const style = effectiveFooterNavLinkStyle(footer);
|
|
23522
|
-
return {
|
|
23523
|
-
text: footer.background?.textColor,
|
|
23524
|
-
link: style?.colorToken ?? footer.navColor ?? footer.background?.textColor,
|
|
23525
|
-
linkHover: navLinkOwnsHoverForeground(style) ? proseHoverCandidate : navLinkHoverColorCandidate(style)
|
|
23526
|
-
};
|
|
23527
|
-
}
|
|
23528
|
-
//#endregion
|
|
23529
24154
|
//#region ../theme-core/src/siteChromeOverlayClearance.ts
|
|
23530
24155
|
const SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
23531
24156
|
//#endregion
|
|
@@ -26621,7 +27246,12 @@ function resolveRuntimeSectionSurface(value, context, options) {
|
|
|
26621
27246
|
}
|
|
26622
27247
|
function arrangementSurfaceInk(foreground, context) {
|
|
26623
27248
|
if (context.data?._lookSlots === void 0) return {};
|
|
26624
|
-
|
|
27249
|
+
return surfaceInkStyles(foreground, context.theme.palette);
|
|
27250
|
+
}
|
|
27251
|
+
/** Decoration roles already resolved by the surface owner, shared with footer arrangements. */
|
|
27252
|
+
function surfaceInkStyles(foreground, palette) {
|
|
27253
|
+
if (foreground.kind === "unknown") return {};
|
|
27254
|
+
const decorations = surfaceDecorationColors(foreground, palette);
|
|
26625
27255
|
return {
|
|
26626
27256
|
"--rb-surface-muted-color": foreground.roles.muted ?? foreground.roles.text,
|
|
26627
27257
|
...decorations ? {
|
|
@@ -27232,48 +27862,50 @@ const boxStylesTransforms = [
|
|
|
27232
27862
|
];
|
|
27233
27863
|
//#endregion
|
|
27234
27864
|
//#region ../blocks/src/system/node/fragments/responsiveTwoColumn.ts
|
|
27235
|
-
|
|
27236
|
-
|
|
27237
|
-
|
|
27238
|
-
|
|
27239
|
-
|
|
27240
|
-
|
|
27241
|
-
|
|
27242
|
-
|
|
27243
|
-
|
|
27244
|
-
|
|
27245
|
-
|
|
27246
|
-
fallback: baseClass
|
|
27247
|
-
} } };
|
|
27248
|
-
if (gapFrom) props.style = { gap: { $bind: {
|
|
27249
|
-
from: gapFrom,
|
|
27250
|
-
transforms: [{
|
|
27251
|
-
id: "boxStyles.semanticGapValue",
|
|
27252
|
-
options: { fallback: gapFallback }
|
|
27253
|
-
}],
|
|
27254
|
-
fallback: GAP_VALUE_MAP[gapFallback]
|
|
27255
|
-
} } };
|
|
27256
|
-
return el("div", props, [el("div", {
|
|
27257
|
-
className: imageWrapperClassName,
|
|
27258
|
-
style: { flexBasis: { $bind: {
|
|
27259
|
-
from: ratioFrom,
|
|
27865
|
+
/** The shared two-column shell keeps Look hooks opt-in and absent for legacy content. */
|
|
27866
|
+
function responsiveTwoColumn(config) {
|
|
27867
|
+
return el("div", twoColumnProps(config), [twoColumnWrapper(config, "image", config.image), twoColumnWrapper(config, "text", config.text)]);
|
|
27868
|
+
}
|
|
27869
|
+
function twoColumnProps(config) {
|
|
27870
|
+
const base = `${config.containerClassName ?? "rb-flex rb-flex-col rb-md-flex-row"} ${config.gapFrom ? "" : config.gapClassName ?? "rb-gap-6"}`.trim();
|
|
27871
|
+
const fallback = config.gapFallback ?? "comfortable";
|
|
27872
|
+
return {
|
|
27873
|
+
...config.lookSlots ? lookSlot("frame") : {},
|
|
27874
|
+
className: { $bind: {
|
|
27875
|
+
from: config.imagePositionFrom,
|
|
27260
27876
|
transforms: [{
|
|
27261
|
-
id: "ui.
|
|
27262
|
-
options: {
|
|
27877
|
+
id: "ui.twoColumnContainerClass",
|
|
27878
|
+
options: {
|
|
27879
|
+
base,
|
|
27880
|
+
reverseClass: "rb-md-flex-row-reverse"
|
|
27881
|
+
}
|
|
27263
27882
|
}],
|
|
27264
|
-
fallback:
|
|
27265
|
-
} }
|
|
27266
|
-
|
|
27267
|
-
|
|
27883
|
+
fallback: base
|
|
27884
|
+
} },
|
|
27885
|
+
...config.gapFrom ? { style: { gap: { $bind: {
|
|
27886
|
+
from: config.gapFrom,
|
|
27887
|
+
transforms: [{
|
|
27888
|
+
id: "boxStyles.semanticGapValue",
|
|
27889
|
+
options: { fallback }
|
|
27890
|
+
}],
|
|
27891
|
+
fallback: GAP_VALUE_MAP[fallback]
|
|
27892
|
+
} } } } : {}
|
|
27893
|
+
};
|
|
27894
|
+
}
|
|
27895
|
+
function twoColumnWrapper(config, side, child) {
|
|
27896
|
+
const className = side === "image" ? config.imageWrapperClassName ?? "rb-w-full rb-shrink-0" : config.textWrapperClassName ?? "rb-w-full rb-min-w-0 rb-flex-1";
|
|
27897
|
+
return el("div", {
|
|
27898
|
+
...config.lookSlots ? lookSlot(side === "image" ? "media" : "copy") : {},
|
|
27899
|
+
className,
|
|
27268
27900
|
style: { flexBasis: { $bind: {
|
|
27269
|
-
from: ratioFrom,
|
|
27901
|
+
from: config.ratioFrom,
|
|
27270
27902
|
transforms: [{
|
|
27271
27903
|
id: "ui.twoColumnFlexBasis",
|
|
27272
|
-
options: { side
|
|
27904
|
+
options: { side }
|
|
27273
27905
|
}],
|
|
27274
27906
|
fallback: "50%"
|
|
27275
27907
|
} } }
|
|
27276
|
-
}, [
|
|
27908
|
+
}, [child]);
|
|
27277
27909
|
}
|
|
27278
27910
|
//#endregion
|
|
27279
27911
|
//#region ../blocks/src/system/node/fragments/styledCard.ts
|
|
@@ -27460,6 +28092,47 @@ function sectionState(opts) {
|
|
|
27460
28092
|
})]);
|
|
27461
28093
|
}
|
|
27462
28094
|
//#endregion
|
|
28095
|
+
//#region ../blocks/src/system/node/fragments/sectionHead.ts
|
|
28096
|
+
const recoverEmptyHeadingWhenActive = {
|
|
28097
|
+
kind: "recover-empty-when-active",
|
|
28098
|
+
placeholder: "Add heading"
|
|
28099
|
+
};
|
|
28100
|
+
const recoverEmptyDescriptionWhenActive = {
|
|
28101
|
+
kind: "recover-empty-when-active",
|
|
28102
|
+
placeholder: "Add description"
|
|
28103
|
+
};
|
|
28104
|
+
function sectionHeaderLayoutNodes(options = {}) {
|
|
28105
|
+
const headingNode = text({
|
|
28106
|
+
as: "h2",
|
|
28107
|
+
...lookSlot("heading")
|
|
28108
|
+
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
28109
|
+
const descriptionNode = richText({
|
|
28110
|
+
className: "rb-prose rb-max-w-none",
|
|
28111
|
+
...lookSlot("intro")
|
|
28112
|
+
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
28113
|
+
if (options.splitClassName) return [el("div", {
|
|
28114
|
+
className: options.splitClassName,
|
|
28115
|
+
...lookSlot("head")
|
|
28116
|
+
}, [headingNode, descriptionNode])];
|
|
28117
|
+
return [headingNode, descriptionNode];
|
|
28118
|
+
}
|
|
28119
|
+
/** Shared optional section copy. Existing consumers keep their description ID. */
|
|
28120
|
+
const sectionHeaderFields = (defaultHeading, introLabel = "Description") => [{
|
|
28121
|
+
id: "heading",
|
|
28122
|
+
type: "text",
|
|
28123
|
+
label: "Heading",
|
|
28124
|
+
description: "Main heading for the section",
|
|
28125
|
+
required: false,
|
|
28126
|
+
multiline: false,
|
|
28127
|
+
...defaultHeading === void 0 ? {} : { defaultValue: defaultHeading }
|
|
28128
|
+
}, {
|
|
28129
|
+
id: "description",
|
|
28130
|
+
type: "richText",
|
|
28131
|
+
label: introLabel,
|
|
28132
|
+
description: "Optional introductory text",
|
|
28133
|
+
required: false
|
|
28134
|
+
}];
|
|
28135
|
+
//#endregion
|
|
27463
28136
|
//#region ../blocks/src/system/fragments/types.ts
|
|
27464
28137
|
const FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
27465
28138
|
const FIELD_ID_PATTERN = /^[a-z][a-zA-Z0-9_-]*$/;
|
|
@@ -27792,6 +28465,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
27792
28465
|
],
|
|
27793
28466
|
layout: stack({
|
|
27794
28467
|
gap: "md",
|
|
28468
|
+
...lookSlot("copy"),
|
|
27795
28469
|
className: "body-copy-container",
|
|
27796
28470
|
align: { $bind: {
|
|
27797
28471
|
from: "content.alignment",
|
|
@@ -27800,6 +28474,7 @@ const bodyCopyFragment = defineFragment({
|
|
|
27800
28474
|
} }
|
|
27801
28475
|
}, [text({
|
|
27802
28476
|
as: "h2",
|
|
28477
|
+
...lookSlot("heading"),
|
|
27803
28478
|
className: { $bind: {
|
|
27804
28479
|
from: "content.alignment",
|
|
27805
28480
|
transforms: [{
|
|
@@ -27808,14 +28483,22 @@ const bodyCopyFragment = defineFragment({
|
|
|
27808
28483
|
}],
|
|
27809
28484
|
fallback: "body-copy-heading"
|
|
27810
28485
|
} }
|
|
27811
|
-
}, when("content.heading"
|
|
27812
|
-
|
|
27813
|
-
|
|
27814
|
-
|
|
27815
|
-
|
|
27816
|
-
}
|
|
27817
|
-
|
|
27818
|
-
|
|
28486
|
+
}, when("content.heading", { authoringPresence: {
|
|
28487
|
+
kind: "recover-empty-when-active",
|
|
28488
|
+
placeholder: "Add heading"
|
|
28489
|
+
} }), bind("content.heading")), richText({
|
|
28490
|
+
...lookSlot("item-body"),
|
|
28491
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
28492
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
28493
|
+
className: { $bind: {
|
|
28494
|
+
from: "content.alignment",
|
|
28495
|
+
transforms: [{
|
|
28496
|
+
id: "ui.bodyClassFromAlignment",
|
|
28497
|
+
options: { base: "body-copy-body rb-prose rb-max-w-none" }
|
|
28498
|
+
}],
|
|
28499
|
+
fallback: "body-copy-body rb-prose rb-max-w-none"
|
|
28500
|
+
} }
|
|
28501
|
+
}, bind("content.body"))])
|
|
27819
28502
|
});
|
|
27820
28503
|
//#endregion
|
|
27821
28504
|
//#region ../blocks/src/system/fragments/library/heroCopy.ts
|
|
@@ -28831,8 +29514,19 @@ const formCopyFragment = defineFragment({
|
|
|
28831
29514
|
}],
|
|
28832
29515
|
layout: [text({
|
|
28833
29516
|
as: "h2",
|
|
29517
|
+
...lookSlot("heading"),
|
|
28834
29518
|
className: "form-copy-title"
|
|
28835
|
-
}, when("content.title"
|
|
29519
|
+
}, when("content.title", { authoringPresence: {
|
|
29520
|
+
kind: "recover-empty-when-active",
|
|
29521
|
+
placeholder: "Add heading"
|
|
29522
|
+
} }), bind("content.title")), richText({
|
|
29523
|
+
className: "form-copy-intro rb-prose rb-max-w-none",
|
|
29524
|
+
...lookSlot("intro"),
|
|
29525
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } }
|
|
29526
|
+
}, when("content.intro", { authoringPresence: {
|
|
29527
|
+
kind: "recover-empty-when-active",
|
|
29528
|
+
placeholder: "Add introduction"
|
|
29529
|
+
} }), bind("content.intro"))]
|
|
28836
29530
|
});
|
|
28837
29531
|
//#endregion
|
|
28838
29532
|
//#region ../blocks/src/system/helpers/api-bindings.ts
|
|
@@ -28881,6 +29575,7 @@ const formEmbedFragment = defineFragment({
|
|
|
28881
29575
|
}
|
|
28882
29576
|
],
|
|
28883
29577
|
layout: [form(withApiBindings({
|
|
29578
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
28884
29579
|
spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } },
|
|
28885
29580
|
submitLabel: { $bind: { from: "submitLabel" } },
|
|
28886
29581
|
successMessage: { $bind: { from: "successMessage" } }
|
|
@@ -29134,8 +29829,18 @@ const newsletterCopyFragment = defineFragment({
|
|
|
29134
29829
|
}],
|
|
29135
29830
|
layout: [text({
|
|
29136
29831
|
as: "h2",
|
|
29137
|
-
className: "newsletter-copy-title"
|
|
29138
|
-
|
|
29832
|
+
className: "newsletter-copy-title",
|
|
29833
|
+
...lookSlot("heading")
|
|
29834
|
+
}, when("content.title", { authoringPresence: {
|
|
29835
|
+
kind: "recover-empty-when-active",
|
|
29836
|
+
placeholder: "Add heading"
|
|
29837
|
+
} }), bind("content.title")), richText({
|
|
29838
|
+
className: "newsletter-copy-subtitle rb-prose rb-max-w-none",
|
|
29839
|
+
...lookSlot("intro")
|
|
29840
|
+
}, when("content.subtitle", { authoringPresence: {
|
|
29841
|
+
kind: "recover-empty-when-active",
|
|
29842
|
+
placeholder: "Add introduction"
|
|
29843
|
+
} }), bind("content.subtitle"))]
|
|
29139
29844
|
});
|
|
29140
29845
|
//#endregion
|
|
29141
29846
|
//#region ../blocks/src/system/fragments/library/newsletterForm.ts
|
|
@@ -29203,6 +29908,7 @@ const newsletterFormFragment = defineFragment({
|
|
|
29203
29908
|
}
|
|
29204
29909
|
],
|
|
29205
29910
|
layout: [el("newsletter-form", withApiBindings({
|
|
29911
|
+
lookSlots: { $bind: { from: "content._lookSlots" } },
|
|
29206
29912
|
source: { $bind: {
|
|
29207
29913
|
from: "mailingListSource",
|
|
29208
29914
|
fallback: "block"
|
|
@@ -30695,18 +31401,11 @@ const introBlockDefinition = { manifest: createBlockManifest({
|
|
|
30695
31401
|
//#endregion
|
|
30696
31402
|
//#region ../blocks/src/system/blocks/body-text.ts
|
|
30697
31403
|
const bodyCopyComposition = composeFragments([{ fragment: bodyCopyFragment }]);
|
|
30698
|
-
const
|
|
30699
|
-
children: stack({
|
|
30700
|
-
|
|
30701
|
-
|
|
30702
|
-
})
|
|
30703
|
-
const introLayout = styledSection({
|
|
30704
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
30705
|
-
spacing: "medium",
|
|
30706
|
-
baseClass: ""
|
|
30707
|
-
});
|
|
30708
|
-
const narrowLayout = styledSection({
|
|
30709
|
-
children: stack({ className: "rb-container" }, bodyCopyComposition.layout),
|
|
31404
|
+
const bodyTextLayout = styledSection({
|
|
31405
|
+
children: stack({
|
|
31406
|
+
className: "rb-container",
|
|
31407
|
+
...lookSlot("frame")
|
|
31408
|
+
}, bodyCopyComposition.layout),
|
|
30710
31409
|
spacing: "medium",
|
|
30711
31410
|
baseClass: ""
|
|
30712
31411
|
});
|
|
@@ -30720,11 +31419,11 @@ const bodyTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
30720
31419
|
fragment: bodyCopyFragment,
|
|
30721
31420
|
fieldPriority: 0
|
|
30722
31421
|
}],
|
|
30723
|
-
layout:
|
|
31422
|
+
layout: bodyTextLayout,
|
|
30724
31423
|
variants: {
|
|
30725
|
-
prose:
|
|
30726
|
-
intro:
|
|
30727
|
-
narrow:
|
|
31424
|
+
prose: bodyTextLayout,
|
|
31425
|
+
intro: bodyTextLayout,
|
|
31426
|
+
narrow: bodyTextLayout
|
|
30728
31427
|
},
|
|
30729
31428
|
variantMeaning: { kind: "arrangement" },
|
|
30730
31429
|
defaultVariant: "prose",
|
|
@@ -31172,6 +31871,52 @@ const singleButtonBlockDefinition = { manifest: createBlockManifest({
|
|
|
31172
31871
|
styleTokens: { spacing: "md" }
|
|
31173
31872
|
}) };
|
|
31174
31873
|
//#endregion
|
|
31874
|
+
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
31875
|
+
const isPlainObject$1 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31876
|
+
const lookListPresentationSchemaShape = {
|
|
31877
|
+
sectionAction: z.object({
|
|
31878
|
+
label: z.string(),
|
|
31879
|
+
href: z.string()
|
|
31880
|
+
}).optional(),
|
|
31881
|
+
actionSize: z.enum([
|
|
31882
|
+
"sm",
|
|
31883
|
+
"md",
|
|
31884
|
+
"lg"
|
|
31885
|
+
]).optional(),
|
|
31886
|
+
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
31887
|
+
itemRoles: z.object({
|
|
31888
|
+
container: z.enum([
|
|
31889
|
+
"card",
|
|
31890
|
+
"statement",
|
|
31891
|
+
"highlight"
|
|
31892
|
+
]).optional(),
|
|
31893
|
+
items: z.enum([
|
|
31894
|
+
"card",
|
|
31895
|
+
"statement",
|
|
31896
|
+
"highlight"
|
|
31897
|
+
]).optional(),
|
|
31898
|
+
at: z.partialRecord(z.enum([
|
|
31899
|
+
"first",
|
|
31900
|
+
"last",
|
|
31901
|
+
"middle",
|
|
31902
|
+
"odd",
|
|
31903
|
+
"even"
|
|
31904
|
+
]), z.enum([
|
|
31905
|
+
"card",
|
|
31906
|
+
"statement",
|
|
31907
|
+
"highlight"
|
|
31908
|
+
])).optional()
|
|
31909
|
+
}).optional(),
|
|
31910
|
+
roleSurfaces: z.record(z.enum([
|
|
31911
|
+
"card",
|
|
31912
|
+
"statement",
|
|
31913
|
+
"highlight"
|
|
31914
|
+
]), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
31915
|
+
panelHeading: z.string().optional(),
|
|
31916
|
+
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
31917
|
+
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject$1(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
31918
|
+
};
|
|
31919
|
+
//#endregion
|
|
31175
31920
|
//#region ../blocks/src/contracts/runtime.ts
|
|
31176
31921
|
function decodeSuccess(value) {
|
|
31177
31922
|
return {
|
|
@@ -31278,6 +32023,7 @@ const formFieldGroupSchema = z.discriminatedUnion("type", [z.object({
|
|
|
31278
32023
|
fields: z.tuple([formFieldSchema, formFieldSchema])
|
|
31279
32024
|
})]);
|
|
31280
32025
|
const formSourceSchema = z.object({
|
|
32026
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
31281
32027
|
value: formRecordSchema.optional(),
|
|
31282
32028
|
siteId: z.string().optional(),
|
|
31283
32029
|
apiBaseUrl: z.string().optional(),
|
|
@@ -31287,6 +32033,7 @@ const formSourceSchema = z.object({
|
|
|
31287
32033
|
spamProtectionEnabled: z.boolean().optional()
|
|
31288
32034
|
});
|
|
31289
32035
|
const formDisplaySchema = z.object({
|
|
32036
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
31290
32037
|
kind: z.literal("form"),
|
|
31291
32038
|
state: z.enum(["missing", "ready"]),
|
|
31292
32039
|
className: z.string().nullable(),
|
|
@@ -31307,17 +32054,30 @@ z.object({
|
|
|
31307
32054
|
});
|
|
31308
32055
|
function buildFormDisplay(source) {
|
|
31309
32056
|
const form = source.value ?? null;
|
|
31310
|
-
const fields = form
|
|
31311
|
-
const groups = Array.isArray(fields) ? groupFormFields(fields) : [];
|
|
32057
|
+
const fields = formDisplayFields(form);
|
|
31312
32058
|
return {
|
|
31313
32059
|
kind: "form",
|
|
31314
|
-
|
|
32060
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
32061
|
+
state: fields.state,
|
|
31315
32062
|
className: source.className ?? null,
|
|
31316
|
-
formId:
|
|
32063
|
+
formId: fields.formId,
|
|
31317
32064
|
submitLabel: source.submitLabel?.trim() || "Submit",
|
|
31318
32065
|
successMessage: source.successMessage ?? null,
|
|
31319
32066
|
form,
|
|
31320
|
-
groups
|
|
32067
|
+
groups: fields.groups
|
|
32068
|
+
};
|
|
32069
|
+
}
|
|
32070
|
+
function formDisplayFields(form) {
|
|
32071
|
+
if (!form) return {
|
|
32072
|
+
state: "missing",
|
|
32073
|
+
formId: null,
|
|
32074
|
+
groups: []
|
|
32075
|
+
};
|
|
32076
|
+
const fields = form.schemaJson?.fields;
|
|
32077
|
+
return {
|
|
32078
|
+
state: "ready",
|
|
32079
|
+
formId: form.id,
|
|
32080
|
+
groups: Array.isArray(fields) ? groupFormFields(fields) : []
|
|
31321
32081
|
};
|
|
31322
32082
|
}
|
|
31323
32083
|
const formBlockRuntime = defineProgressiveBlockRuntime({
|
|
@@ -31340,18 +32100,27 @@ function fragmentLayoutNode$1(layout) {
|
|
|
31340
32100
|
function isNodeDefinitionArray$1(layout) {
|
|
31341
32101
|
return Array.isArray(layout);
|
|
31342
32102
|
}
|
|
31343
|
-
const copyLayout = fragmentLayoutNode$1(formCopyFragment.layout);
|
|
32103
|
+
const copyLayout = props(lookSlot("head"))(fragmentLayoutNode$1(formCopyFragment.layout));
|
|
32104
|
+
const embedLayout$1 = fragmentLayoutNode$1(formEmbedFragment.layout);
|
|
31344
32105
|
const formSurface = styledContainer({
|
|
32106
|
+
rootProps: lookSlot("panel"),
|
|
31345
32107
|
bindFrom: "_containerStyles",
|
|
31346
32108
|
constrainWidth: false,
|
|
31347
32109
|
baseClassName: "rb-form-surface rb-relative rb-isolate rb-overflow-visible",
|
|
31348
|
-
children:
|
|
32110
|
+
children: embedLayout$1
|
|
31349
32111
|
});
|
|
31350
32112
|
function createFormLayout(variant) {
|
|
31351
32113
|
if (variant === "two-column") return styledSection({
|
|
31352
|
-
children: el("div", {
|
|
32114
|
+
children: el("div", {
|
|
32115
|
+
className: "rb-container",
|
|
32116
|
+
...lookSlot("layout")
|
|
32117
|
+
}, [el("div", {
|
|
32118
|
+
className: "rb-form-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start",
|
|
32119
|
+
...lookSlot("frame")
|
|
32120
|
+
}, [stack({
|
|
31353
32121
|
gap: "md",
|
|
31354
|
-
className: "rb-form-copy-column"
|
|
32122
|
+
className: "rb-form-copy-column",
|
|
32123
|
+
...lookSlot("copy")
|
|
31355
32124
|
}, [copyLayout]), formSurface])]),
|
|
31356
32125
|
baseClass: "",
|
|
31357
32126
|
spacing: "medium",
|
|
@@ -31379,6 +32148,15 @@ const formManifest = createBlockManifest({
|
|
|
31379
32148
|
description: "Renders a saved form definition with server-side submit.",
|
|
31380
32149
|
includeContainerStyles: true,
|
|
31381
32150
|
fragments: [{ fragment: formCopyFragment }, { fragment: formEmbedFragment }],
|
|
32151
|
+
additionalFields: [{
|
|
32152
|
+
id: "archFrame",
|
|
32153
|
+
type: "boolean",
|
|
32154
|
+
label: "Arch frame",
|
|
32155
|
+
ui: {
|
|
32156
|
+
intent: "display",
|
|
32157
|
+
hidden: true
|
|
32158
|
+
}
|
|
32159
|
+
}],
|
|
31382
32160
|
layout: formLayout,
|
|
31383
32161
|
variants: {
|
|
31384
32162
|
default: formLayout,
|
|
@@ -32134,7 +32912,7 @@ const heroTitleLengthThresholds = {
|
|
|
32134
32912
|
maxWords: 11
|
|
32135
32913
|
}
|
|
32136
32914
|
};
|
|
32137
|
-
function isPlainObject
|
|
32915
|
+
function isPlainObject(value) {
|
|
32138
32916
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
32139
32917
|
}
|
|
32140
32918
|
function readString(obj, key) {
|
|
@@ -32143,7 +32921,7 @@ function readString(obj, key) {
|
|
|
32143
32921
|
}
|
|
32144
32922
|
function resolveGeneratedHeroLayoutStyles(content) {
|
|
32145
32923
|
const raw = content._heroLayoutStyles;
|
|
32146
|
-
return isPlainObject
|
|
32924
|
+
return isPlainObject(raw) ? raw : null;
|
|
32147
32925
|
}
|
|
32148
32926
|
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
32149
32927
|
const explicitValue = readString(content, fallbackKey);
|
|
@@ -32201,7 +32979,7 @@ const heroContentWrapperClassTransform = {
|
|
|
32201
32979
|
summary: "Resolve hero content wrapper className from alignment + max width controls",
|
|
32202
32980
|
schema: z.object({ base: z.string().optional() }),
|
|
32203
32981
|
run: (value, options, context) => {
|
|
32204
|
-
const content = isPlainObject
|
|
32982
|
+
const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
|
|
32205
32983
|
const alignment = resolveHeroContentAlignment(content);
|
|
32206
32984
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
32207
32985
|
const typographyScale = resolveHeroTypographyScale(content);
|
|
@@ -32223,7 +33001,7 @@ const heroCtaJustifyTransform = {
|
|
|
32223
33001
|
kind: "string",
|
|
32224
33002
|
summary: "Map hero contentAlignment to CTA row justify value",
|
|
32225
33003
|
run: (value, _options, context) => {
|
|
32226
|
-
const alignment = resolveHeroContentAlignment(isPlainObject
|
|
33004
|
+
const alignment = resolveHeroContentAlignment(isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {});
|
|
32227
33005
|
return alignment === "left" ? "start" : alignment === "right" ? "end" : "center";
|
|
32228
33006
|
}
|
|
32229
33007
|
};
|
|
@@ -32232,7 +33010,7 @@ const heroStackJustifyFromVerticalAlignmentTransform = {
|
|
|
32232
33010
|
kind: "string",
|
|
32233
33011
|
summary: "Map hero verticalAlignment to stack justify value",
|
|
32234
33012
|
run: (value, _options, context) => {
|
|
32235
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject
|
|
33013
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {});
|
|
32236
33014
|
return vertical === "top" ? "start" : vertical === "bottom" ? "end" : "center";
|
|
32237
33015
|
}
|
|
32238
33016
|
};
|
|
@@ -32242,7 +33020,7 @@ const heroGridClassFromVerticalAlignmentTransform = {
|
|
|
32242
33020
|
summary: "Append align-items class for hero split layouts based on verticalAlignment",
|
|
32243
33021
|
schema: z.object({ base: z.string() }),
|
|
32244
33022
|
run: (value, options, context) => {
|
|
32245
|
-
const vertical = resolveHeroVerticalAlignment(isPlainObject
|
|
33023
|
+
const vertical = resolveHeroVerticalAlignment(isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {});
|
|
32246
33024
|
const itemsClass = vertical === "top" ? "rb-items-start" : vertical === "bottom" ? "rb-items-end" : "rb-items-center";
|
|
32247
33025
|
return joinClasses$1([options.base, itemsClass]);
|
|
32248
33026
|
}
|
|
@@ -32530,6 +33308,25 @@ function heroHeadlineText(content, policy) {
|
|
|
32530
33308
|
return policy === "look" ? inlineTextToPlainText(coerceInlineTextWithFallback(content.headlineInline, plain)).trim() : plain?.trim() ?? "";
|
|
32531
33309
|
}
|
|
32532
33310
|
//#endregion
|
|
33311
|
+
//#region ../blocks/src/system/transforms/registry/footerArrangement.ts
|
|
33312
|
+
const footerBrandArrangementTransform = {
|
|
33313
|
+
id: "layout.footerBrandArrangement",
|
|
33314
|
+
kind: "string",
|
|
33315
|
+
run: (value) => {
|
|
33316
|
+
const module = asPartialObject(value);
|
|
33317
|
+
return module?.kind === "brand" ? module.slots ? "centred" : "row" : void 0;
|
|
33318
|
+
}
|
|
33319
|
+
};
|
|
33320
|
+
const footerModuleInkStyleTransform = {
|
|
33321
|
+
id: "layout.footerModuleInkStyle",
|
|
33322
|
+
kind: "formatter",
|
|
33323
|
+
run: (value, options) => value === "centred" ? void 0 : textColorStyle(asPartialObject(options)?.opacity === 70 ? "text/70" : "text/80")
|
|
33324
|
+
};
|
|
33325
|
+
/** A centred base without authored bar paint inherits its measured surface line. */
|
|
33326
|
+
function footerBottomBarBorderColorStyle(footer) {
|
|
33327
|
+
return footer?.variant === "centred" && !footer.bottomBar ? { borderColor: "var(--rb-surface-line-color)" } : borderColorStyle(footer?.bottomBar?.borderTop?.colorToken ?? "border");
|
|
33328
|
+
}
|
|
33329
|
+
//#endregion
|
|
32533
33330
|
//#region ../blocks/src/system/runtime/header/runtimeContract.ts
|
|
32534
33331
|
const headerScrollRuntimeSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("none") }), z.object({ kind: z.literal("threshold") })]);
|
|
32535
33332
|
z.object({ scroll: headerScrollRuntimeSchema });
|
|
@@ -32761,6 +33558,7 @@ const footerRootStyleTransform = {
|
|
|
32761
33558
|
}
|
|
32762
33559
|
}
|
|
32763
33560
|
styleParts.push(resolvedForegroundStyle(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate)));
|
|
33561
|
+
if (footer?.variant === "centred") styleParts.push(surfaceInkStyles(resolveFooterRootForeground(footer, context.theme.palette, context.proseHoverCandidate), context.theme.palette));
|
|
32764
33562
|
styleParts.push(borderColorStyle("border"));
|
|
32765
33563
|
return mergeStyles(...styleParts);
|
|
32766
33564
|
}
|
|
@@ -32822,7 +33620,7 @@ const footerBottomBarStyleTransform = {
|
|
|
32822
33620
|
run: (value, _options, context) => {
|
|
32823
33621
|
const footer = asPartialObject(value);
|
|
32824
33622
|
const bottomBar = footer?.bottomBar;
|
|
32825
|
-
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0,
|
|
33623
|
+
return mergeStyles(bottomBar?.background?.type === "color" ? backgroundColorStyle(bottomBar.background.color ?? "surface") : void 0, footerBottomBarBorderColorStyle(footer), footerBottomBarBorderWidthStyle(bottomBar?.borderTop?.width), footerBottomBarForegroundStyle(footer, context.theme.palette));
|
|
32826
33624
|
}
|
|
32827
33625
|
};
|
|
32828
33626
|
function footerBottomBarForegroundStyle(footer, palette) {
|
|
@@ -32844,62 +33642,15 @@ function measuredFooterBackdrop(footer, palette) {
|
|
|
32844
33642
|
const foreground = resolveFooterRootForeground(footer, palette);
|
|
32845
33643
|
return foreground.kind === "known" && foreground.provenance.kind === "measured" ? foreground.provenance.backdropHex : null;
|
|
32846
33644
|
}
|
|
32847
|
-
const footerSplitMainClassTransform = {
|
|
32848
|
-
id: "layout.footerSplitMainClass",
|
|
32849
|
-
kind: "string",
|
|
32850
|
-
summary: "Compose split-footer main row classes from footer logo placement",
|
|
32851
|
-
schema: z.object({
|
|
32852
|
-
base: z.string().optional(),
|
|
32853
|
-
reverseClass: z.string().optional()
|
|
32854
|
-
}),
|
|
32855
|
-
run: (value, options) => {
|
|
32856
|
-
const placement = asPartialObject(value)?.placement ?? "right";
|
|
32857
|
-
const shouldPlaceLogoFirst = placement === "left" || placement === "above";
|
|
32858
|
-
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";
|
|
32859
|
-
return joinClasses([options.base ?? baseClass, shouldPlaceLogoFirst ? options.reverseClass ?? "rb-md-flex-row-reverse" : null]);
|
|
32860
|
-
}
|
|
32861
|
-
};
|
|
32862
33645
|
const footerLogoClassTransform = {
|
|
32863
33646
|
id: "layout.footerLogoClass",
|
|
32864
33647
|
kind: "string",
|
|
32865
33648
|
summary: "Compose split-footer logo wrapper classes from footer.logo controls",
|
|
32866
|
-
schema: z.object({
|
|
32867
|
-
base: z.string().optional(),
|
|
32868
|
-
requireExplicitShow: z.boolean().optional()
|
|
32869
|
-
}),
|
|
33649
|
+
schema: z.object({ base: z.string().optional() }),
|
|
32870
33650
|
run: (value, options) => {
|
|
32871
|
-
const
|
|
32872
|
-
const align = logo?.align ?? "end";
|
|
32873
|
-
const hiddenClass = options.requireExplicitShow ? logo?.showLogo === true ? null : "rb-hidden" : logo?.showLogo === false ? "rb-hidden" : null;
|
|
33651
|
+
const align = asPartialObject(value)?.align ?? "end";
|
|
32874
33652
|
const selfAlignClass = align === "start" ? "rb-self-start rb-text-left" : align === "center" ? "rb-self-center rb-text-center" : "rb-self-end rb-text-right";
|
|
32875
|
-
return joinClasses([
|
|
32876
|
-
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",
|
|
32877
|
-
selfAlignClass,
|
|
32878
|
-
hiddenClass
|
|
32879
|
-
]);
|
|
32880
|
-
}
|
|
32881
|
-
};
|
|
32882
|
-
const footerLogoMediaClassTransform = {
|
|
32883
|
-
id: "layout.footerLogoMediaClass",
|
|
32884
|
-
kind: "string",
|
|
32885
|
-
summary: "Compose footer logo image classes from size controls",
|
|
32886
|
-
schema: z.object({ base: z.string().optional() }),
|
|
32887
|
-
run: (_value, options) => {
|
|
32888
|
-
return joinClasses([options.base ?? "rb-w-auto"]);
|
|
32889
|
-
}
|
|
32890
|
-
};
|
|
32891
|
-
function shouldShowFooterLogoText(footer) {
|
|
32892
|
-
if (!footer) return false;
|
|
32893
|
-
const explicit = footer.logo?.showLogoText;
|
|
32894
|
-
const legacy = footer.showLogoText === true;
|
|
32895
|
-
return explicit === true || explicit === void 0 && legacy;
|
|
32896
|
-
}
|
|
32897
|
-
const footerLogoTextVisibleTransform = {
|
|
32898
|
-
id: "layout.footerLogoTextVisible",
|
|
32899
|
-
kind: "formatter",
|
|
32900
|
-
summary: "Return whether footer logo text should render",
|
|
32901
|
-
run: (value) => {
|
|
32902
|
-
return shouldShowFooterLogoText(asPartialObject(value));
|
|
33653
|
+
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]);
|
|
32903
33654
|
}
|
|
32904
33655
|
};
|
|
32905
33656
|
function extractBackgroundColorToken(background, fallback) {
|
|
@@ -32918,13 +33669,12 @@ const layoutTransforms = [
|
|
|
32918
33669
|
headerRootStyleTransform,
|
|
32919
33670
|
headerSectionBackgroundTransform,
|
|
32920
33671
|
footerRootStyleTransform,
|
|
33672
|
+
footerModuleInkStyleTransform,
|
|
33673
|
+
footerBrandArrangementTransform,
|
|
32921
33674
|
footerBottomBarClassTransform,
|
|
32922
33675
|
footerBottomBarContainerClassTransform,
|
|
32923
33676
|
footerBottomBarStyleTransform,
|
|
32924
|
-
|
|
32925
|
-
footerLogoClassTransform,
|
|
32926
|
-
footerLogoMediaClassTransform,
|
|
32927
|
-
footerLogoTextVisibleTransform
|
|
33677
|
+
footerLogoClassTransform
|
|
32928
33678
|
];
|
|
32929
33679
|
//#endregion
|
|
32930
33680
|
//#region ../blocks/src/system/transforms/registry/chromeLogo.ts
|
|
@@ -33420,7 +34170,14 @@ const footerNavGroupsLayout = stack({
|
|
|
33420
34170
|
}, [text({
|
|
33421
34171
|
as: "h3",
|
|
33422
34172
|
className: "rb-label",
|
|
33423
|
-
|
|
34173
|
+
"data-slot": { $bind: { from: "content.footerRuntime.slots.group-label" } },
|
|
34174
|
+
style: { $bind: {
|
|
34175
|
+
from: "content.footerRuntime.arrangement",
|
|
34176
|
+
transforms: [{
|
|
34177
|
+
id: "layout.footerModuleInkStyle",
|
|
34178
|
+
options: { opacity: 70 }
|
|
34179
|
+
}]
|
|
34180
|
+
} }
|
|
33424
34181
|
}, when("group.label"), bind("group.label")), stack({
|
|
33425
34182
|
gap: "sm",
|
|
33426
34183
|
align: "start",
|
|
@@ -33450,6 +34207,14 @@ const footerMailingListBindings = {
|
|
|
33450
34207
|
targeting: { $bind: { from: "module.engagement.runtime.targeting" } }
|
|
33451
34208
|
};
|
|
33452
34209
|
const footerSpamProtectionBinding = { spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } } };
|
|
34210
|
+
const brandMedia = media({ className: "rb-h-10 rb-w-auto" }, when("module.showLogo", { equals: true }), when("content.logo"), bind("content", { transforms: [{
|
|
34211
|
+
id: "layout.chromeLogo",
|
|
34212
|
+
options: { surface: "footer-root" }
|
|
34213
|
+
}] }));
|
|
34214
|
+
const brandTitle = text({
|
|
34215
|
+
as: "strong",
|
|
34216
|
+
className: "footer-logo-text rb-nav-text"
|
|
34217
|
+
}, when("module.showTitle", { equals: true }), bind("site.title", { fallback: "Your Site" }));
|
|
33453
34218
|
const brandLogo = link({
|
|
33454
34219
|
href: "/",
|
|
33455
34220
|
className: { $bind: {
|
|
@@ -33460,20 +34225,39 @@ const brandLogo = link({
|
|
|
33460
34225
|
}],
|
|
33461
34226
|
fallback: "footer-logo rb-inline-flex rb-items-center rb-gap-3 rb-no-underline"
|
|
33462
34227
|
} }
|
|
33463
|
-
}, [
|
|
33464
|
-
|
|
33465
|
-
|
|
33466
|
-
|
|
33467
|
-
|
|
33468
|
-
|
|
33469
|
-
|
|
33470
|
-
|
|
33471
|
-
|
|
33472
|
-
|
|
33473
|
-
|
|
33474
|
-
|
|
33475
|
-
|
|
33476
|
-
},
|
|
34228
|
+
}, [brandMedia, brandTitle], (node) => ({
|
|
34229
|
+
...node,
|
|
34230
|
+
$when: {
|
|
34231
|
+
when: {
|
|
34232
|
+
from: "module",
|
|
34233
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
34234
|
+
},
|
|
34235
|
+
equals: "row"
|
|
34236
|
+
}
|
|
34237
|
+
}));
|
|
34238
|
+
const centredBrand = stack({
|
|
34239
|
+
gap: "md",
|
|
34240
|
+
align: "center"
|
|
34241
|
+
}, [link({
|
|
34242
|
+
href: "/",
|
|
34243
|
+
"data-slot": { $bind: { from: "module.slots.media" } },
|
|
34244
|
+
className: "footer-logo rb-inline-flex rb-items-center rb-no-underline"
|
|
34245
|
+
}, [brandMedia], when("module.slots.media")), {
|
|
34246
|
+
...brandTitle,
|
|
34247
|
+
props: {
|
|
34248
|
+
...brandTitle.props,
|
|
34249
|
+
"data-slot": { $bind: { from: "module.slots.heading" } }
|
|
34250
|
+
}
|
|
34251
|
+
}], (node) => ({
|
|
34252
|
+
...node,
|
|
34253
|
+
$when: {
|
|
34254
|
+
when: {
|
|
34255
|
+
from: "module",
|
|
34256
|
+
transforms: [{ id: "layout.footerBrandArrangement" }]
|
|
34257
|
+
},
|
|
34258
|
+
equals: "centred"
|
|
34259
|
+
}
|
|
34260
|
+
}));
|
|
33477
34261
|
const navigation = stack({
|
|
33478
34262
|
gap: "md",
|
|
33479
34263
|
className: "rb-w-full"
|
|
@@ -33498,14 +34282,18 @@ const address = text({
|
|
|
33498
34282
|
}, when("module.kind", { equals: "business-address" }), bind("module.address"));
|
|
33499
34283
|
const contact = stack({
|
|
33500
34284
|
gap: "sm",
|
|
33501
|
-
className:
|
|
34285
|
+
className: { $bind: {
|
|
34286
|
+
from: "module.contactClassName",
|
|
34287
|
+
fallback: "rb-items-start"
|
|
34288
|
+
} }
|
|
33502
34289
|
}, [link({
|
|
33503
34290
|
href: { $bind: { from: "contactLink.href" } },
|
|
33504
34291
|
className: "rb-nav-text rb-break-words transition-theme-standard"
|
|
33505
34292
|
}, [text({ as: "span" }, bind("contactLink.label"))], repeat("module.contactLinks", "contactLink"))], when("module.kind", { equals: "contact" }));
|
|
33506
34293
|
const hours = stack({
|
|
33507
34294
|
gap: "sm",
|
|
33508
|
-
className: "rb-w-full"
|
|
34295
|
+
className: "rb-w-full",
|
|
34296
|
+
"data-slot": { $bind: { from: "module.slots.schedule" } }
|
|
33509
34297
|
}, [inline({ className: "rb-flex rb-w-full rb-justify-between rb-gap-4" }, [text({
|
|
33510
34298
|
as: "span",
|
|
33511
34299
|
className: "rb-label"
|
|
@@ -33516,7 +34304,10 @@ const hours = stack({
|
|
|
33516
34304
|
as: "p",
|
|
33517
34305
|
className: "rb-caption rb-opacity-70"
|
|
33518
34306
|
}, bind("module.timeZone"), when("module.timeZone"))], when("module.kind", { equals: "opening-hours" }));
|
|
33519
|
-
const socials = inline({
|
|
34307
|
+
const socials = inline({
|
|
34308
|
+
className: "rb-footer-socials",
|
|
34309
|
+
"data-slot": { $bind: { from: "module.slots.social" } }
|
|
34310
|
+
}, [link({
|
|
33520
34311
|
href: { $bind: { from: "social.href" } },
|
|
33521
34312
|
target: "_blank",
|
|
33522
34313
|
rel: "noreferrer noopener",
|
|
@@ -33525,7 +34316,14 @@ const socials = inline({ className: "rb-footer-socials" }, [link({
|
|
|
33525
34316
|
}, [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" }));
|
|
33526
34317
|
const authoredCopy = richText({
|
|
33527
34318
|
className: "rb-prose rb-prose-sm rb-max-w-none",
|
|
33528
|
-
|
|
34319
|
+
"data-slot": { $bind: { from: "module.slots.copy" } },
|
|
34320
|
+
style: { $bind: {
|
|
34321
|
+
from: "content.footerRuntime.arrangement",
|
|
34322
|
+
transforms: [{
|
|
34323
|
+
id: "layout.footerModuleInkStyle",
|
|
34324
|
+
options: { opacity: 80 }
|
|
34325
|
+
}]
|
|
34326
|
+
} }
|
|
33529
34327
|
}, when("module.content"), bind("module.content", { transforms: [{
|
|
33530
34328
|
id: "content.interpolateRichTextTokens",
|
|
33531
34329
|
options: { tokens: ["year", "site_name"] }
|
|
@@ -33563,27 +34361,44 @@ const platformAttribution = el("div", {
|
|
|
33563
34361
|
], when("module.kind", { equals: "attribution" }));
|
|
33564
34362
|
const footerGroup = stack({
|
|
33565
34363
|
gap: "md",
|
|
33566
|
-
align:
|
|
34364
|
+
align: { $bind: {
|
|
34365
|
+
from: "group.align",
|
|
34366
|
+
fallback: "stretch"
|
|
34367
|
+
} },
|
|
33567
34368
|
className: { $bind: {
|
|
33568
34369
|
from: "group.className",
|
|
33569
34370
|
fallback: "rb-min-w-0"
|
|
33570
34371
|
} },
|
|
34372
|
+
"data-slot": { $bind: { from: "group.slot" } },
|
|
33571
34373
|
"data-footer-group": { $bind: { from: "group.kind" } }
|
|
33572
34374
|
}, [stack({
|
|
33573
34375
|
gap: "md",
|
|
33574
|
-
align:
|
|
34376
|
+
align: { $bind: {
|
|
34377
|
+
from: "module.align",
|
|
34378
|
+
fallback: "start"
|
|
34379
|
+
} },
|
|
34380
|
+
className: { $bind: { from: "module.className" } },
|
|
33575
34381
|
"data-preview-footer-module-id": { $bind: { from: "module.id" } }
|
|
33576
34382
|
}, [
|
|
33577
34383
|
text({
|
|
33578
34384
|
as: "h2",
|
|
33579
34385
|
className: "rb-label",
|
|
33580
|
-
|
|
34386
|
+
"data-slot": { $bind: { from: "module.slots.group-label" } },
|
|
34387
|
+
style: { $bind: {
|
|
34388
|
+
from: "content.footerRuntime.arrangement",
|
|
34389
|
+
transforms: [{
|
|
34390
|
+
id: "layout.footerModuleInkStyle",
|
|
34391
|
+
options: { opacity: 70 }
|
|
34392
|
+
}]
|
|
34393
|
+
} }
|
|
33581
34394
|
}, bind("module.heading"), when("module.heading")),
|
|
33582
34395
|
brandLogo,
|
|
34396
|
+
centredBrand,
|
|
33583
34397
|
navigation,
|
|
33584
34398
|
stack({
|
|
33585
34399
|
gap: "sm",
|
|
33586
|
-
className: "rb-w-full"
|
|
34400
|
+
className: "rb-w-full",
|
|
34401
|
+
"data-slot": { $bind: { from: "module.slots.navigation" } }
|
|
33587
34402
|
}, [legalNavigation], when("module.kind", { equals: "legal-navigation" })),
|
|
33588
34403
|
address,
|
|
33589
34404
|
contact,
|
|
@@ -33596,10 +34411,12 @@ const footerGroup = stack({
|
|
|
33596
34411
|
], repeat("group.modules", "module"))], repeat("region.groups", "group"));
|
|
33597
34412
|
const footerMainRegion = stack({
|
|
33598
34413
|
className: { $bind: { from: "region.className" } },
|
|
34414
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
33599
34415
|
"data-footer-region": { $bind: { from: "region.kind" } }
|
|
33600
34416
|
}, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
|
|
33601
34417
|
const footerEngagementRegion = stack({
|
|
33602
34418
|
className: { $bind: { from: "region.className" } },
|
|
34419
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
33603
34420
|
"data-footer-region": "engagement-row"
|
|
33604
34421
|
}, [footerGroup], when("region.kind", { equals: "engagement-row" }), repeat("content.footerRuntime.regions", "region"));
|
|
33605
34422
|
const footerBottomRegion = stack({ className: { $bind: {
|
|
@@ -33616,6 +34433,7 @@ const footerBottomRegion = stack({ className: { $bind: {
|
|
|
33616
34433
|
from: "$root.theme.footer",
|
|
33617
34434
|
transforms: [{ id: "layout.footerBottomBarStyle" }]
|
|
33618
34435
|
} },
|
|
34436
|
+
"data-slot": { $bind: { from: "region.slot" } },
|
|
33619
34437
|
"data-footer-region": "bottom"
|
|
33620
34438
|
}, [footerGroup])], when("region.kind", { equals: "bottom" }), repeat("content.footerRuntime.regions", "region"));
|
|
33621
34439
|
const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
@@ -33637,6 +34455,7 @@ const siteFooterBlockDefinition = { manifest: createBlockManifest({
|
|
|
33637
34455
|
transforms: [{ id: "layout.footerRootStyle" }],
|
|
33638
34456
|
fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
|
|
33639
34457
|
} },
|
|
34458
|
+
"data-arrangement": { $bind: { from: "content.footerRuntime.arrangementHook" } },
|
|
33640
34459
|
"data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
|
|
33641
34460
|
}, [
|
|
33642
34461
|
footerEngagementRegion,
|
|
@@ -35238,17 +36057,30 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35238
36057
|
}],
|
|
35239
36058
|
fallback: ""
|
|
35240
36059
|
} };
|
|
35241
|
-
const copyHeading = el("div", {
|
|
36060
|
+
const copyHeading = el("div", {
|
|
36061
|
+
className: titleClassNameFromAlignment,
|
|
36062
|
+
...lookSlot("head")
|
|
36063
|
+
}, [text({
|
|
35242
36064
|
as: "p",
|
|
35243
|
-
className: eyebrowClassName("rb-eyebrow heading-eyebrow")
|
|
35244
|
-
|
|
35245
|
-
|
|
35246
|
-
|
|
35247
|
-
|
|
35248
|
-
|
|
35249
|
-
|
|
35250
|
-
|
|
36065
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
36066
|
+
...lookSlot("eyebrow")
|
|
36067
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
36068
|
+
as: "h2",
|
|
36069
|
+
...lookSlot("heading")
|
|
36070
|
+
}, bind("content.title"))], when("content.title"));
|
|
36071
|
+
const textContentNodes = (className) => {
|
|
36072
|
+
const props = {
|
|
36073
|
+
className,
|
|
36074
|
+
...lookSlot("intro"),
|
|
36075
|
+
leadParagraphSlot: { $bind: { from: "content._lookSlots.lede" } },
|
|
36076
|
+
lookSlots: { $bind: { from: "content._lookSlots" } }
|
|
36077
|
+
};
|
|
36078
|
+
return [styledCard([richText(props, bind("content.text"))], mediaTextCardOptions, when("content.wrapTextInCard")), richText(props, when("content.wrapTextInCard", { not: true }), bind("content.text"))];
|
|
36079
|
+
};
|
|
36080
|
+
const defaultTextColumn = el("div", {}, textContentNodes("rb-prose rb-max-w-none"));
|
|
36081
|
+
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)]);
|
|
35251
36082
|
const defaultImageCommonProps = {
|
|
36083
|
+
...lookSlot("photo"),
|
|
35252
36084
|
className: { $bind: {
|
|
35253
36085
|
from: "content.imageShape",
|
|
35254
36086
|
transforms: [{
|
|
@@ -35288,6 +36120,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35288
36120
|
slidesToShow: 1
|
|
35289
36121
|
}, [media(defaultImageCommonProps, bind("item.image"), repeat("content.images", "item"))]);
|
|
35290
36122
|
const defaultImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
36123
|
+
lookSlots: true,
|
|
35291
36124
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
35292
36125
|
text: defaultTextColumn,
|
|
35293
36126
|
ratioFrom: "content.ratio",
|
|
@@ -35299,6 +36132,7 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35299
36132
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1"
|
|
35300
36133
|
})], whenImagesLength(0, { not: true }));
|
|
35301
36134
|
const bioImagesLayout = el("div", {}, [responsiveTwoColumn({
|
|
36135
|
+
lookSlots: true,
|
|
35302
36136
|
image: el("div", {}, [el("div", {}, [defaultSingleImage], whenImagesLength(1)), el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))]),
|
|
35303
36137
|
text: bioTextColumn,
|
|
35304
36138
|
ratioFrom: "content.ratio",
|
|
@@ -35309,15 +36143,15 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35309
36143
|
imageWrapperClassName: "rb-w-full rb-shrink-0",
|
|
35310
36144
|
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1 rb-self-stretch"
|
|
35311
36145
|
})], whenImagesLength(0, { not: true }));
|
|
35312
|
-
const defaultTextOnlyLayout = el("div",
|
|
35313
|
-
const bioTextOnlyLayout = el("div", {
|
|
35314
|
-
|
|
35315
|
-
|
|
35316
|
-
|
|
35317
|
-
|
|
35318
|
-
|
|
35319
|
-
|
|
35320
|
-
], whenImagesLength(0));
|
|
36146
|
+
const defaultTextOnlyLayout = el("div", lookSlot("copy"), textContentNodes("rb-prose rb-max-w-none"), whenImagesLength(0));
|
|
36147
|
+
const bioTextOnlyLayout = el("div", {
|
|
36148
|
+
className: "rb-flex rb-w-full rb-max-w-prose rb-flex-col rb-gap-5",
|
|
36149
|
+
...lookSlot("copy")
|
|
36150
|
+
}, [text({
|
|
36151
|
+
as: "h2",
|
|
36152
|
+
className: titleClassNameFromAlignment,
|
|
36153
|
+
...lookSlot("heading")
|
|
36154
|
+
}, when("content.title"), bind("content.title")), ...textContentNodes(bodyClassNameFromAlignment)], whenImagesLength(0));
|
|
35321
36155
|
const defaultInner = el("div", {}, [defaultImagesLayout, defaultTextOnlyLayout]);
|
|
35322
36156
|
const bioInner = el("div", {}, [bioImagesLayout, bioTextOnlyLayout]);
|
|
35323
36157
|
const defaultLayout = styledSection({
|
|
@@ -35341,9 +36175,31 @@ const mediaTextBlockDefinition = { manifest: createBlockManifest({
|
|
|
35341
36175
|
}),
|
|
35342
36176
|
baseClass: "",
|
|
35343
36177
|
spacing: "medium"
|
|
36178
|
+
}),
|
|
36179
|
+
"circle-beside": styledSection({
|
|
36180
|
+
baseClass: "",
|
|
36181
|
+
spacing: "medium",
|
|
36182
|
+
children: styledContainer({ children: el("div", lookSlot("frame"), [el("div", lookSlot("media"), [
|
|
36183
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(1)),
|
|
36184
|
+
el("div", {}, [el("div", {}, [defaultCarouselImages], whenImagesLength(1, { not: true }))], whenImagesLength(0, { not: true })),
|
|
36185
|
+
el("div", {}, [when("content.images[0].image")(defaultSingleImage)], whenImagesLength(0))
|
|
36186
|
+
]), el("div", lookSlot("copy"), [el("div", lookSlot("head"), [text({
|
|
36187
|
+
as: "p",
|
|
36188
|
+
className: eyebrowClassName("rb-eyebrow heading-eyebrow"),
|
|
36189
|
+
...lookSlot("eyebrow")
|
|
36190
|
+
}, when("content.eyebrow"), bind("content.eyebrow")), text({
|
|
36191
|
+
as: "h2",
|
|
36192
|
+
...lookSlot("heading")
|
|
36193
|
+
}, bind("content.title"), when("content.title", { authoringPresence: {
|
|
36194
|
+
kind: "recover-empty-when-active",
|
|
36195
|
+
placeholder: "Add heading"
|
|
36196
|
+
} }))]), defaultTextColumn])]) })
|
|
35344
36197
|
})
|
|
35345
36198
|
},
|
|
35346
|
-
variantMeaning: {
|
|
36199
|
+
variantMeaning: {
|
|
36200
|
+
kind: "arrangement",
|
|
36201
|
+
lookOnlyKeys: ["circle-beside"]
|
|
36202
|
+
},
|
|
35347
36203
|
defaultVariant: "default",
|
|
35348
36204
|
variantOptions: {
|
|
35349
36205
|
default: { label: "Default" },
|
|
@@ -36439,24 +37295,6 @@ const emptyStateField = {
|
|
|
36439
37295
|
ui: { intent: "display" }
|
|
36440
37296
|
};
|
|
36441
37297
|
/**
|
|
36442
|
-
* Section heading and description fields
|
|
36443
|
-
*/
|
|
36444
|
-
const sectionHeaderFields = (defaultHeading) => [{
|
|
36445
|
-
id: "heading",
|
|
36446
|
-
type: "text",
|
|
36447
|
-
label: "Heading",
|
|
36448
|
-
description: "Main heading for the events section",
|
|
36449
|
-
required: false,
|
|
36450
|
-
multiline: false,
|
|
36451
|
-
defaultValue: defaultHeading
|
|
36452
|
-
}, {
|
|
36453
|
-
id: "description",
|
|
36454
|
-
type: "richText",
|
|
36455
|
-
label: "Description",
|
|
36456
|
-
description: "Optional introductory text",
|
|
36457
|
-
required: false
|
|
36458
|
-
}];
|
|
36459
|
-
/**
|
|
36460
37298
|
* Layout selection field with grid/stack options
|
|
36461
37299
|
*/
|
|
36462
37300
|
const layoutField = {
|
|
@@ -36569,31 +37407,6 @@ function normalizeEventStaffMemberId(value) {
|
|
|
36569
37407
|
return trimmed ? trimmed : null;
|
|
36570
37408
|
}
|
|
36571
37409
|
//#endregion
|
|
36572
|
-
//#region ../blocks/src/system/blocks/events/shared/layout.ts
|
|
36573
|
-
const recoverEmptyHeadingWhenActive = {
|
|
36574
|
-
kind: "recover-empty-when-active",
|
|
36575
|
-
placeholder: "Add heading"
|
|
36576
|
-
};
|
|
36577
|
-
const recoverEmptyDescriptionWhenActive = {
|
|
36578
|
-
kind: "recover-empty-when-active",
|
|
36579
|
-
placeholder: "Add description"
|
|
36580
|
-
};
|
|
36581
|
-
function eventSectionHeaderLayoutNodes(options = {}) {
|
|
36582
|
-
const headingNode = text({
|
|
36583
|
-
as: "h2",
|
|
36584
|
-
...lookSlot("heading")
|
|
36585
|
-
}, bind("content.heading"), when("content.heading", { authoringPresence: recoverEmptyHeadingWhenActive }));
|
|
36586
|
-
const descriptionNode = richText({
|
|
36587
|
-
className: "rb-prose rb-max-w-none",
|
|
36588
|
-
...lookSlot("intro")
|
|
36589
|
-
}, bind("content.description"), when("content.description", { authoringPresence: recoverEmptyDescriptionWhenActive }));
|
|
36590
|
-
if (options.splitClassName) return [el("div", {
|
|
36591
|
-
className: options.splitClassName,
|
|
36592
|
-
...lookSlot("head")
|
|
36593
|
-
}, [headingNode, descriptionNode])];
|
|
36594
|
-
return [headingNode, descriptionNode];
|
|
36595
|
-
}
|
|
36596
|
-
//#endregion
|
|
36597
37410
|
//#region ../blocks/src/system/blocks/shop.shared.ts
|
|
36598
37411
|
/**
|
|
36599
37412
|
* Public pass product for shop display
|
|
@@ -37018,19 +37831,14 @@ function buildCalendarViewport(input) {
|
|
|
37018
37831
|
*
|
|
37019
37832
|
* Sites don't store a locale, and every public word around a date is English,
|
|
37020
37833
|
* so the only open question is which English conventions to follow: day or
|
|
37021
|
-
* month first
|
|
37834
|
+
* month first. The site's time zone is the one
|
|
37022
37835
|
* fact every site carries about where it is. It is the site's, never an
|
|
37023
37836
|
* event's: a venue left at UTC must not turn a UK site's dates American.
|
|
37024
37837
|
* Anywhere this can't place (UTC, the Americas, Asia) keeps US English, which
|
|
37025
37838
|
* is what these helpers wrote before sites were placed at all.
|
|
37026
37839
|
*/
|
|
37027
37840
|
function eventDateLocale(siteTimeZone) {
|
|
37028
|
-
|
|
37029
|
-
if (siteTimeZone === "Europe/Dublin") return "en-IE";
|
|
37030
|
-
if (siteTimeZone.startsWith("Europe/")) return "en-GB";
|
|
37031
|
-
if (siteTimeZone.startsWith("Australia/")) return "en-AU";
|
|
37032
|
-
if (siteTimeZone === "Pacific/Auckland" || siteTimeZone === "Pacific/Chatham") return "en-NZ";
|
|
37033
|
-
return "en-US";
|
|
37841
|
+
return inferSiteDateLocale(siteTimeZone);
|
|
37034
37842
|
}
|
|
37035
37843
|
function formatEventCompactDateRail(isoTimestamp, options, letterCase = "capitals") {
|
|
37036
37844
|
const locale = options?.locale ?? "en-US";
|
|
@@ -38738,7 +39546,7 @@ const eventSpotlightBlockDefinition = {
|
|
|
38738
39546
|
],
|
|
38739
39547
|
icon: "Star",
|
|
38740
39548
|
layout: [styledSection({
|
|
38741
|
-
children: sectionContainer([...
|
|
39549
|
+
children: sectionContainer([...sectionHeaderLayoutNodes(), el("event-spotlight", {
|
|
38742
39550
|
events: { $bind: { from: "data.events" } },
|
|
38743
39551
|
layout: { $bind: {
|
|
38744
39552
|
from: "content.layout",
|
|
@@ -38794,52 +39602,6 @@ const eventSpotlightBlockDefinition = {
|
|
|
38794
39602
|
} }
|
|
38795
39603
|
};
|
|
38796
39604
|
//#endregion
|
|
38797
|
-
//#region ../blocks/src/system/runtime/lookSurfaces.ts
|
|
38798
|
-
const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
38799
|
-
const lookListPresentationSchemaShape = {
|
|
38800
|
-
sectionAction: z.object({
|
|
38801
|
-
label: z.string(),
|
|
38802
|
-
href: z.string()
|
|
38803
|
-
}).optional(),
|
|
38804
|
-
actionSize: z.enum([
|
|
38805
|
-
"sm",
|
|
38806
|
-
"md",
|
|
38807
|
-
"lg"
|
|
38808
|
-
]).optional(),
|
|
38809
|
-
itemActionStyle: z.enum(["button", "link"]).optional(),
|
|
38810
|
-
itemRoles: z.object({
|
|
38811
|
-
container: z.enum([
|
|
38812
|
-
"card",
|
|
38813
|
-
"statement",
|
|
38814
|
-
"highlight"
|
|
38815
|
-
]).optional(),
|
|
38816
|
-
items: z.enum([
|
|
38817
|
-
"card",
|
|
38818
|
-
"statement",
|
|
38819
|
-
"highlight"
|
|
38820
|
-
]).optional(),
|
|
38821
|
-
at: z.partialRecord(z.enum([
|
|
38822
|
-
"first",
|
|
38823
|
-
"last",
|
|
38824
|
-
"middle",
|
|
38825
|
-
"odd",
|
|
38826
|
-
"even"
|
|
38827
|
-
]), z.enum([
|
|
38828
|
-
"card",
|
|
38829
|
-
"statement",
|
|
38830
|
-
"highlight"
|
|
38831
|
-
])).optional()
|
|
38832
|
-
}).optional(),
|
|
38833
|
-
roleSurfaces: z.record(z.enum([
|
|
38834
|
-
"card",
|
|
38835
|
-
"statement",
|
|
38836
|
-
"highlight"
|
|
38837
|
-
]), z.custom((value) => isPlainObject(value) && (value.kind === "inherit" || value.kind === "owned"))).optional(),
|
|
38838
|
-
panelHeading: z.string().optional(),
|
|
38839
|
-
lookSlots: z.partialRecord(z.enum(arrangementSlotNames), z.enum(arrangementSlotNames)).optional(),
|
|
38840
|
-
itemSurfaces: z.record(z.string(), z.custom((value) => isPlainObject(value) && (value.kind === "inherit" || value.kind === "owned"))).optional()
|
|
38841
|
-
};
|
|
38842
|
-
//#endregion
|
|
38843
39605
|
//#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
|
|
38844
39606
|
/** Invalid saved selections fail closed rather than widening discovery. */
|
|
38845
39607
|
function resolveEventSelection(mode, value) {
|
|
@@ -39614,7 +40376,7 @@ const eventListingBlockDefinition = {
|
|
|
39614
40376
|
children: styledContainer({
|
|
39615
40377
|
rootType: "stack",
|
|
39616
40378
|
rootProps: { gap: "lg" },
|
|
39617
|
-
children: [...
|
|
40379
|
+
children: [...sectionHeaderLayoutNodes(), el("event-listing", withApiBindings({
|
|
39618
40380
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
39619
40381
|
events: { $bind: { from: "data.events" } },
|
|
39620
40382
|
stage: { $bind: {
|
|
@@ -40054,7 +40816,7 @@ const eventCalendarLayout = [styledSection({
|
|
|
40054
40816
|
gap: "lg",
|
|
40055
40817
|
...lookSlot("layout")
|
|
40056
40818
|
},
|
|
40057
|
-
children: [...
|
|
40819
|
+
children: [...sectionHeaderLayoutNodes({ splitClassName: "event-section-head event-section-head--split" }), el("event-calendar", withApiBindings({
|
|
40058
40820
|
readAuthority: { $bind: { from: "$root.readAuthority" } },
|
|
40059
40821
|
events: { $bind: { from: "data.events" } },
|
|
40060
40822
|
effectiveListArrangementKey: { $bind: { from: "$root.effectiveListArrangementKey" } },
|
|
@@ -42010,6 +42772,511 @@ const embedBlockDefinition = {
|
|
|
42010
42772
|
} }
|
|
42011
42773
|
};
|
|
42012
42774
|
//#endregion
|
|
42775
|
+
//#region ../blocks/src/system/blocks/image-gallery/fields.ts
|
|
42776
|
+
const imageGalleryFields = parseFieldDefinitions([
|
|
42777
|
+
...sectionHeaderFields(void 0, "Intro"),
|
|
42778
|
+
{
|
|
42779
|
+
id: "images",
|
|
42780
|
+
type: "repeater",
|
|
42781
|
+
label: "Images",
|
|
42782
|
+
itemLabel: "Image",
|
|
42783
|
+
minItems: 0,
|
|
42784
|
+
maxItems: 24,
|
|
42785
|
+
ui: {
|
|
42786
|
+
repeaterPreset: "thumbnailGrid",
|
|
42787
|
+
thumbnailField: "image",
|
|
42788
|
+
thumbnailAltField: "caption",
|
|
42789
|
+
thumbnailLabelField: "caption",
|
|
42790
|
+
thumbnailCardDensity: "compact"
|
|
42791
|
+
},
|
|
42792
|
+
schema: { fields: [{
|
|
42793
|
+
id: "image",
|
|
42794
|
+
type: "media",
|
|
42795
|
+
label: "Image",
|
|
42796
|
+
required: true,
|
|
42797
|
+
mediaKinds: ["image"]
|
|
42798
|
+
}, {
|
|
42799
|
+
id: "caption",
|
|
42800
|
+
type: "text",
|
|
42801
|
+
label: "Caption",
|
|
42802
|
+
description: "Optional caption displayed below the image and used as the editor card label",
|
|
42803
|
+
maxLength: 200
|
|
42804
|
+
}] }
|
|
42805
|
+
},
|
|
42806
|
+
{
|
|
42807
|
+
id: "fullBleed",
|
|
42808
|
+
type: "boolean",
|
|
42809
|
+
label: "Full bleed",
|
|
42810
|
+
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
42811
|
+
defaultValue: false,
|
|
42812
|
+
ui: {
|
|
42813
|
+
intent: "display",
|
|
42814
|
+
visibleWhen: {
|
|
42815
|
+
field: "variant",
|
|
42816
|
+
notIn: ["marquee"]
|
|
42817
|
+
}
|
|
42818
|
+
}
|
|
42819
|
+
},
|
|
42820
|
+
{
|
|
42821
|
+
id: "aspectRatio",
|
|
42822
|
+
type: "select",
|
|
42823
|
+
label: "Aspect ratio",
|
|
42824
|
+
description: "Crop images to a consistent aspect ratio.",
|
|
42825
|
+
defaultValue: "1/1",
|
|
42826
|
+
options: [
|
|
42827
|
+
{
|
|
42828
|
+
value: "auto",
|
|
42829
|
+
label: "Original"
|
|
42830
|
+
},
|
|
42831
|
+
{
|
|
42832
|
+
value: "1/1",
|
|
42833
|
+
label: "1:1 (Square)"
|
|
42834
|
+
},
|
|
42835
|
+
{
|
|
42836
|
+
value: "4/3",
|
|
42837
|
+
label: "4:3 (Standard)"
|
|
42838
|
+
},
|
|
42839
|
+
{
|
|
42840
|
+
value: "16/9",
|
|
42841
|
+
label: "16:9 (Widescreen)"
|
|
42842
|
+
},
|
|
42843
|
+
{
|
|
42844
|
+
value: "3/2",
|
|
42845
|
+
label: "3:2 (Classic)"
|
|
42846
|
+
},
|
|
42847
|
+
{
|
|
42848
|
+
value: "3/4",
|
|
42849
|
+
label: "3:4 (Portrait)"
|
|
42850
|
+
}
|
|
42851
|
+
],
|
|
42852
|
+
ui: {
|
|
42853
|
+
intent: "display",
|
|
42854
|
+
visibleWhen: {
|
|
42855
|
+
field: "variant",
|
|
42856
|
+
notIn: ["masonry", "marquee"]
|
|
42857
|
+
}
|
|
42858
|
+
}
|
|
42859
|
+
},
|
|
42860
|
+
{
|
|
42861
|
+
id: "slidesToShow",
|
|
42862
|
+
type: "select",
|
|
42863
|
+
label: "Images per view (mobile)",
|
|
42864
|
+
description: "Number of images visible at once on small screens.",
|
|
42865
|
+
defaultValue: "1",
|
|
42866
|
+
options: [
|
|
42867
|
+
{
|
|
42868
|
+
value: "1",
|
|
42869
|
+
label: "One at a time"
|
|
42870
|
+
},
|
|
42871
|
+
{
|
|
42872
|
+
value: "2",
|
|
42873
|
+
label: "Two at a time"
|
|
42874
|
+
},
|
|
42875
|
+
{
|
|
42876
|
+
value: "3",
|
|
42877
|
+
label: "Three at a time"
|
|
42878
|
+
}
|
|
42879
|
+
],
|
|
42880
|
+
ui: {
|
|
42881
|
+
intent: "display",
|
|
42882
|
+
visibleWhen: {
|
|
42883
|
+
field: "variant",
|
|
42884
|
+
equals: "carousel"
|
|
42885
|
+
}
|
|
42886
|
+
}
|
|
42887
|
+
},
|
|
42888
|
+
{
|
|
42889
|
+
id: "slidesToShowTablet",
|
|
42890
|
+
type: "select",
|
|
42891
|
+
label: "Images per view (tablet)",
|
|
42892
|
+
description: "Number of images visible on medium screens.",
|
|
42893
|
+
options: [
|
|
42894
|
+
{
|
|
42895
|
+
value: "",
|
|
42896
|
+
label: "Same as mobile"
|
|
42897
|
+
},
|
|
42898
|
+
{
|
|
42899
|
+
value: "1",
|
|
42900
|
+
label: "One at a time"
|
|
42901
|
+
},
|
|
42902
|
+
{
|
|
42903
|
+
value: "2",
|
|
42904
|
+
label: "Two at a time"
|
|
42905
|
+
},
|
|
42906
|
+
{
|
|
42907
|
+
value: "3",
|
|
42908
|
+
label: "Three at a time"
|
|
42909
|
+
}
|
|
42910
|
+
],
|
|
42911
|
+
ui: {
|
|
42912
|
+
intent: "display",
|
|
42913
|
+
visibleWhen: {
|
|
42914
|
+
field: "variant",
|
|
42915
|
+
equals: "carousel"
|
|
42916
|
+
}
|
|
42917
|
+
}
|
|
42918
|
+
},
|
|
42919
|
+
{
|
|
42920
|
+
id: "slidesToShowDesktop",
|
|
42921
|
+
type: "select",
|
|
42922
|
+
label: "Images per view (desktop)",
|
|
42923
|
+
description: "Number of images visible on large screens.",
|
|
42924
|
+
options: [
|
|
42925
|
+
{
|
|
42926
|
+
value: "",
|
|
42927
|
+
label: "Same as tablet"
|
|
42928
|
+
},
|
|
42929
|
+
{
|
|
42930
|
+
value: "1",
|
|
42931
|
+
label: "One at a time"
|
|
42932
|
+
},
|
|
42933
|
+
{
|
|
42934
|
+
value: "2",
|
|
42935
|
+
label: "Two at a time"
|
|
42936
|
+
},
|
|
42937
|
+
{
|
|
42938
|
+
value: "3",
|
|
42939
|
+
label: "Three at a time"
|
|
42940
|
+
}
|
|
42941
|
+
],
|
|
42942
|
+
ui: {
|
|
42943
|
+
intent: "display",
|
|
42944
|
+
visibleWhen: {
|
|
42945
|
+
field: "variant",
|
|
42946
|
+
equals: "carousel"
|
|
42947
|
+
}
|
|
42948
|
+
}
|
|
42949
|
+
},
|
|
42950
|
+
{
|
|
42951
|
+
id: "transition",
|
|
42952
|
+
type: "select",
|
|
42953
|
+
label: "Transition",
|
|
42954
|
+
description: "Animation style between slides.",
|
|
42955
|
+
defaultValue: "slide",
|
|
42956
|
+
options: [{
|
|
42957
|
+
value: "slide",
|
|
42958
|
+
label: "Slide"
|
|
42959
|
+
}, {
|
|
42960
|
+
value: "fade",
|
|
42961
|
+
label: "Fade"
|
|
42962
|
+
}],
|
|
42963
|
+
ui: {
|
|
42964
|
+
intent: "display",
|
|
42965
|
+
visibleWhen: {
|
|
42966
|
+
field: "variant",
|
|
42967
|
+
equals: "carousel"
|
|
42968
|
+
}
|
|
42969
|
+
}
|
|
42970
|
+
},
|
|
42971
|
+
{
|
|
42972
|
+
id: "showControls",
|
|
42973
|
+
type: "boolean",
|
|
42974
|
+
label: "Show arrows",
|
|
42975
|
+
defaultValue: true,
|
|
42976
|
+
ui: {
|
|
42977
|
+
intent: "behavior",
|
|
42978
|
+
visibleWhen: {
|
|
42979
|
+
field: "variant",
|
|
42980
|
+
equals: "carousel"
|
|
42981
|
+
}
|
|
42982
|
+
}
|
|
42983
|
+
},
|
|
42984
|
+
{
|
|
42985
|
+
id: "showDots",
|
|
42986
|
+
type: "boolean",
|
|
42987
|
+
label: "Show dots",
|
|
42988
|
+
defaultValue: false,
|
|
42989
|
+
ui: {
|
|
42990
|
+
intent: "behavior",
|
|
42991
|
+
visibleWhen: {
|
|
42992
|
+
field: "variant",
|
|
42993
|
+
equals: "carousel"
|
|
42994
|
+
}
|
|
42995
|
+
}
|
|
42996
|
+
},
|
|
42997
|
+
{
|
|
42998
|
+
id: "autoplay",
|
|
42999
|
+
type: "boolean",
|
|
43000
|
+
label: "Autoplay",
|
|
43001
|
+
defaultValue: false,
|
|
43002
|
+
ui: {
|
|
43003
|
+
intent: "behavior",
|
|
43004
|
+
visibleWhen: {
|
|
43005
|
+
field: "variant",
|
|
43006
|
+
equals: "carousel"
|
|
43007
|
+
}
|
|
43008
|
+
}
|
|
43009
|
+
},
|
|
43010
|
+
{
|
|
43011
|
+
id: "autoplayDelay",
|
|
43012
|
+
type: "select",
|
|
43013
|
+
label: "Autoplay delay",
|
|
43014
|
+
defaultValue: "5000",
|
|
43015
|
+
options: [
|
|
43016
|
+
{
|
|
43017
|
+
value: "3000",
|
|
43018
|
+
label: "3 seconds"
|
|
43019
|
+
},
|
|
43020
|
+
{
|
|
43021
|
+
value: "5000",
|
|
43022
|
+
label: "5 seconds"
|
|
43023
|
+
},
|
|
43024
|
+
{
|
|
43025
|
+
value: "7000",
|
|
43026
|
+
label: "7 seconds"
|
|
43027
|
+
},
|
|
43028
|
+
{
|
|
43029
|
+
value: "10000",
|
|
43030
|
+
label: "10 seconds"
|
|
43031
|
+
}
|
|
43032
|
+
],
|
|
43033
|
+
ui: {
|
|
43034
|
+
intent: "behavior",
|
|
43035
|
+
visibleWhen: {
|
|
43036
|
+
field: "variant",
|
|
43037
|
+
equals: "carousel"
|
|
43038
|
+
}
|
|
43039
|
+
}
|
|
43040
|
+
},
|
|
43041
|
+
{
|
|
43042
|
+
id: "arrowVisibility",
|
|
43043
|
+
type: "select",
|
|
43044
|
+
label: "Arrow visibility",
|
|
43045
|
+
defaultValue: "always",
|
|
43046
|
+
options: [{
|
|
43047
|
+
value: "always",
|
|
43048
|
+
label: "Always visible"
|
|
43049
|
+
}, {
|
|
43050
|
+
value: "hover",
|
|
43051
|
+
label: "Show on hover"
|
|
43052
|
+
}],
|
|
43053
|
+
ui: {
|
|
43054
|
+
intent: "behavior",
|
|
43055
|
+
visibleWhen: {
|
|
43056
|
+
field: "variant",
|
|
43057
|
+
equals: "carousel"
|
|
43058
|
+
}
|
|
43059
|
+
}
|
|
43060
|
+
},
|
|
43061
|
+
{
|
|
43062
|
+
id: "loop",
|
|
43063
|
+
type: "boolean",
|
|
43064
|
+
label: "Loop slides",
|
|
43065
|
+
defaultValue: true,
|
|
43066
|
+
ui: {
|
|
43067
|
+
intent: "behavior",
|
|
43068
|
+
visibleWhen: {
|
|
43069
|
+
field: "variant",
|
|
43070
|
+
equals: "carousel"
|
|
43071
|
+
}
|
|
43072
|
+
}
|
|
43073
|
+
},
|
|
43074
|
+
{
|
|
43075
|
+
id: "marqueeDirection",
|
|
43076
|
+
type: "select",
|
|
43077
|
+
label: "Scroll direction",
|
|
43078
|
+
options: [{
|
|
43079
|
+
value: "left",
|
|
43080
|
+
label: "Left"
|
|
43081
|
+
}, {
|
|
43082
|
+
value: "right",
|
|
43083
|
+
label: "Right"
|
|
43084
|
+
}],
|
|
43085
|
+
defaultValue: "left",
|
|
43086
|
+
ui: {
|
|
43087
|
+
intent: "display",
|
|
43088
|
+
visibleWhen: {
|
|
43089
|
+
field: "variant",
|
|
43090
|
+
equals: "marquee"
|
|
43091
|
+
}
|
|
43092
|
+
}
|
|
43093
|
+
},
|
|
43094
|
+
{
|
|
43095
|
+
id: "marqueeSpeed",
|
|
43096
|
+
type: "select",
|
|
43097
|
+
label: "Scroll speed",
|
|
43098
|
+
options: [
|
|
43099
|
+
{
|
|
43100
|
+
value: "slow",
|
|
43101
|
+
label: "Slow (60s)"
|
|
43102
|
+
},
|
|
43103
|
+
{
|
|
43104
|
+
value: "medium",
|
|
43105
|
+
label: "Medium (40s)"
|
|
43106
|
+
},
|
|
43107
|
+
{
|
|
43108
|
+
value: "fast",
|
|
43109
|
+
label: "Fast (20s)"
|
|
43110
|
+
}
|
|
43111
|
+
],
|
|
43112
|
+
defaultValue: "medium",
|
|
43113
|
+
ui: {
|
|
43114
|
+
intent: "display",
|
|
43115
|
+
visibleWhen: {
|
|
43116
|
+
field: "variant",
|
|
43117
|
+
equals: "marquee"
|
|
43118
|
+
}
|
|
43119
|
+
}
|
|
43120
|
+
},
|
|
43121
|
+
{
|
|
43122
|
+
id: "marqueePauseOnHover",
|
|
43123
|
+
type: "boolean",
|
|
43124
|
+
label: "Pause on hover",
|
|
43125
|
+
defaultValue: true,
|
|
43126
|
+
ui: {
|
|
43127
|
+
intent: "behavior",
|
|
43128
|
+
visibleWhen: {
|
|
43129
|
+
field: "variant",
|
|
43130
|
+
equals: "marquee"
|
|
43131
|
+
}
|
|
43132
|
+
}
|
|
43133
|
+
},
|
|
43134
|
+
{
|
|
43135
|
+
id: "marqueeImageSize",
|
|
43136
|
+
type: "select",
|
|
43137
|
+
label: "Image size",
|
|
43138
|
+
options: [
|
|
43139
|
+
{
|
|
43140
|
+
value: "sm",
|
|
43141
|
+
label: "Small (200px)"
|
|
43142
|
+
},
|
|
43143
|
+
{
|
|
43144
|
+
value: "md",
|
|
43145
|
+
label: "Medium (256px)"
|
|
43146
|
+
},
|
|
43147
|
+
{
|
|
43148
|
+
value: "lg",
|
|
43149
|
+
label: "Large (320px)"
|
|
43150
|
+
},
|
|
43151
|
+
{
|
|
43152
|
+
value: "xl",
|
|
43153
|
+
label: "Extra large (400px)"
|
|
43154
|
+
}
|
|
43155
|
+
],
|
|
43156
|
+
defaultValue: "md",
|
|
43157
|
+
ui: {
|
|
43158
|
+
intent: "display",
|
|
43159
|
+
visibleWhen: {
|
|
43160
|
+
field: "variant",
|
|
43161
|
+
equals: "marquee"
|
|
43162
|
+
}
|
|
43163
|
+
}
|
|
43164
|
+
},
|
|
43165
|
+
{
|
|
43166
|
+
id: "imageFilter",
|
|
43167
|
+
type: "select",
|
|
43168
|
+
label: "Image filter",
|
|
43169
|
+
options: [
|
|
43170
|
+
{
|
|
43171
|
+
value: "none",
|
|
43172
|
+
label: "None"
|
|
43173
|
+
},
|
|
43174
|
+
{
|
|
43175
|
+
value: "grayscale",
|
|
43176
|
+
label: "Grayscale"
|
|
43177
|
+
},
|
|
43178
|
+
{
|
|
43179
|
+
value: "grayscale-hover-reveal",
|
|
43180
|
+
label: "Grayscale (color on hover)"
|
|
43181
|
+
},
|
|
43182
|
+
{
|
|
43183
|
+
value: "sepia",
|
|
43184
|
+
label: "Sepia"
|
|
43185
|
+
}
|
|
43186
|
+
],
|
|
43187
|
+
defaultValue: "grayscale-hover-reveal",
|
|
43188
|
+
ui: { intent: "style" }
|
|
43189
|
+
},
|
|
43190
|
+
{
|
|
43191
|
+
id: "imageBorder",
|
|
43192
|
+
type: "group",
|
|
43193
|
+
label: "Image border",
|
|
43194
|
+
schema: { fields: [
|
|
43195
|
+
{
|
|
43196
|
+
id: "enabled",
|
|
43197
|
+
type: "boolean",
|
|
43198
|
+
label: "Show border",
|
|
43199
|
+
defaultValue: true
|
|
43200
|
+
},
|
|
43201
|
+
{
|
|
43202
|
+
id: "colorToken",
|
|
43203
|
+
type: "text",
|
|
43204
|
+
label: "Border color",
|
|
43205
|
+
defaultValue: "accent",
|
|
43206
|
+
ui: { widget: "backgroundColor" }
|
|
43207
|
+
},
|
|
43208
|
+
{
|
|
43209
|
+
id: "opacity",
|
|
43210
|
+
type: "number",
|
|
43211
|
+
label: "Border opacity",
|
|
43212
|
+
defaultValue: 30,
|
|
43213
|
+
ui: {
|
|
43214
|
+
min: 0,
|
|
43215
|
+
max: 100
|
|
43216
|
+
}
|
|
43217
|
+
},
|
|
43218
|
+
{
|
|
43219
|
+
id: "width",
|
|
43220
|
+
type: "select",
|
|
43221
|
+
label: "Border width",
|
|
43222
|
+
options: [
|
|
43223
|
+
{
|
|
43224
|
+
value: "1",
|
|
43225
|
+
label: "Thin (1px)"
|
|
43226
|
+
},
|
|
43227
|
+
{
|
|
43228
|
+
value: "2",
|
|
43229
|
+
label: "Medium (2px)"
|
|
43230
|
+
},
|
|
43231
|
+
{
|
|
43232
|
+
value: "3",
|
|
43233
|
+
label: "Thick (3px)"
|
|
43234
|
+
}
|
|
43235
|
+
],
|
|
43236
|
+
defaultValue: "2"
|
|
43237
|
+
}
|
|
43238
|
+
] },
|
|
43239
|
+
ui: { intent: "style" }
|
|
43240
|
+
},
|
|
43241
|
+
{
|
|
43242
|
+
id: "imageCorners",
|
|
43243
|
+
type: "select",
|
|
43244
|
+
label: "Image corners",
|
|
43245
|
+
options: [
|
|
43246
|
+
{
|
|
43247
|
+
value: "none",
|
|
43248
|
+
label: "Square"
|
|
43249
|
+
},
|
|
43250
|
+
{
|
|
43251
|
+
value: "sm",
|
|
43252
|
+
label: "Slightly rounded"
|
|
43253
|
+
},
|
|
43254
|
+
{
|
|
43255
|
+
value: "md",
|
|
43256
|
+
label: "Rounded"
|
|
43257
|
+
},
|
|
43258
|
+
{
|
|
43259
|
+
value: "lg",
|
|
43260
|
+
label: "More rounded"
|
|
43261
|
+
},
|
|
43262
|
+
{
|
|
43263
|
+
value: "xl",
|
|
43264
|
+
label: "Very rounded"
|
|
43265
|
+
},
|
|
43266
|
+
{
|
|
43267
|
+
value: "2xl",
|
|
43268
|
+
label: "Extra rounded"
|
|
43269
|
+
},
|
|
43270
|
+
{
|
|
43271
|
+
value: "3xl",
|
|
43272
|
+
label: "Maximum rounded"
|
|
43273
|
+
}
|
|
43274
|
+
],
|
|
43275
|
+
defaultValue: "3xl",
|
|
43276
|
+
ui: { intent: "style" }
|
|
43277
|
+
}
|
|
43278
|
+
]);
|
|
43279
|
+
//#endregion
|
|
42013
43280
|
//#region ../blocks/src/system/blocks/image-gallery.ts
|
|
42014
43281
|
const grid$1 = (props, children, ...mods) => el("grid", props ?? void 0, children ?? void 0, ...mods);
|
|
42015
43282
|
const galleryContainer = (children, opts) => {
|
|
@@ -42224,7 +43491,11 @@ const emptyState$1 = {
|
|
|
42224
43491
|
}
|
|
42225
43492
|
};
|
|
42226
43493
|
const wrapVariant$1 = (layout, opts) => styledSection({
|
|
42227
|
-
children: galleryContainer([
|
|
43494
|
+
children: galleryContainer([
|
|
43495
|
+
...sectionHeaderLayoutNodes(),
|
|
43496
|
+
layout,
|
|
43497
|
+
emptyState$1
|
|
43498
|
+
], {
|
|
42228
43499
|
gap: "md",
|
|
42229
43500
|
fullWidth: opts?.fullWidth,
|
|
42230
43501
|
className: opts?.className
|
|
@@ -42233,6 +43504,28 @@ const wrapVariant$1 = (layout, opts) => styledSection({
|
|
|
42233
43504
|
spacing: "medium",
|
|
42234
43505
|
background: "background"
|
|
42235
43506
|
});
|
|
43507
|
+
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({
|
|
43508
|
+
as: "figcaption",
|
|
43509
|
+
...lookSlot("caption")
|
|
43510
|
+
}, bind(captionFrom), when(captionFrom))])], ...mods);
|
|
43511
|
+
const tilesLayout = styledSection({
|
|
43512
|
+
children: el("div", {
|
|
43513
|
+
className: "rb-container",
|
|
43514
|
+
...lookSlot("layout")
|
|
43515
|
+
}, [...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) => ({
|
|
43516
|
+
...node,
|
|
43517
|
+
$when: {
|
|
43518
|
+
when: {
|
|
43519
|
+
from: "content.images",
|
|
43520
|
+
transforms: [{ id: "array.length" }]
|
|
43521
|
+
},
|
|
43522
|
+
equals: 0
|
|
43523
|
+
}
|
|
43524
|
+
}))])]),
|
|
43525
|
+
baseClass: "",
|
|
43526
|
+
spacing: "medium",
|
|
43527
|
+
background: "background"
|
|
43528
|
+
});
|
|
42236
43529
|
const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
42237
43530
|
id: "block.image-gallery",
|
|
42238
43531
|
title: "Image Gallery",
|
|
@@ -42245,510 +43538,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
42245
43538
|
"marqueeSpeed",
|
|
42246
43539
|
"marqueePauseOnHover"
|
|
42247
43540
|
] },
|
|
42248
|
-
additionalFields:
|
|
42249
|
-
{
|
|
42250
|
-
id: "images",
|
|
42251
|
-
type: "repeater",
|
|
42252
|
-
label: "Images",
|
|
42253
|
-
itemLabel: "Image",
|
|
42254
|
-
minItems: 0,
|
|
42255
|
-
maxItems: 24,
|
|
42256
|
-
ui: {
|
|
42257
|
-
repeaterPreset: "thumbnailGrid",
|
|
42258
|
-
thumbnailField: "image",
|
|
42259
|
-
thumbnailAltField: "caption",
|
|
42260
|
-
thumbnailLabelField: "caption",
|
|
42261
|
-
thumbnailCardDensity: "compact"
|
|
42262
|
-
},
|
|
42263
|
-
schema: { fields: [{
|
|
42264
|
-
id: "image",
|
|
42265
|
-
type: "media",
|
|
42266
|
-
label: "Image",
|
|
42267
|
-
required: true,
|
|
42268
|
-
mediaKinds: ["image"]
|
|
42269
|
-
}, {
|
|
42270
|
-
id: "caption",
|
|
42271
|
-
type: "text",
|
|
42272
|
-
label: "Caption",
|
|
42273
|
-
description: "Optional caption displayed below the image and used as the editor card label",
|
|
42274
|
-
maxLength: 200
|
|
42275
|
-
}] }
|
|
42276
|
-
},
|
|
42277
|
-
{
|
|
42278
|
-
id: "fullBleed",
|
|
42279
|
-
type: "boolean",
|
|
42280
|
-
label: "Full bleed",
|
|
42281
|
-
description: "Extend the gallery edge-to-edge by removing section side padding and container max-width.",
|
|
42282
|
-
defaultValue: false,
|
|
42283
|
-
ui: {
|
|
42284
|
-
intent: "display",
|
|
42285
|
-
visibleWhen: {
|
|
42286
|
-
field: "variant",
|
|
42287
|
-
notIn: ["marquee"]
|
|
42288
|
-
}
|
|
42289
|
-
}
|
|
42290
|
-
},
|
|
42291
|
-
{
|
|
42292
|
-
id: "aspectRatio",
|
|
42293
|
-
type: "select",
|
|
42294
|
-
label: "Aspect ratio",
|
|
42295
|
-
description: "Crop images to a consistent aspect ratio.",
|
|
42296
|
-
defaultValue: "1/1",
|
|
42297
|
-
options: [
|
|
42298
|
-
{
|
|
42299
|
-
value: "auto",
|
|
42300
|
-
label: "Original"
|
|
42301
|
-
},
|
|
42302
|
-
{
|
|
42303
|
-
value: "1/1",
|
|
42304
|
-
label: "1:1 (Square)"
|
|
42305
|
-
},
|
|
42306
|
-
{
|
|
42307
|
-
value: "4/3",
|
|
42308
|
-
label: "4:3 (Standard)"
|
|
42309
|
-
},
|
|
42310
|
-
{
|
|
42311
|
-
value: "16/9",
|
|
42312
|
-
label: "16:9 (Widescreen)"
|
|
42313
|
-
},
|
|
42314
|
-
{
|
|
42315
|
-
value: "3/2",
|
|
42316
|
-
label: "3:2 (Classic)"
|
|
42317
|
-
},
|
|
42318
|
-
{
|
|
42319
|
-
value: "3/4",
|
|
42320
|
-
label: "3:4 (Portrait)"
|
|
42321
|
-
}
|
|
42322
|
-
],
|
|
42323
|
-
ui: {
|
|
42324
|
-
intent: "display",
|
|
42325
|
-
visibleWhen: {
|
|
42326
|
-
field: "variant",
|
|
42327
|
-
notIn: ["masonry", "marquee"]
|
|
42328
|
-
}
|
|
42329
|
-
}
|
|
42330
|
-
},
|
|
42331
|
-
{
|
|
42332
|
-
id: "slidesToShow",
|
|
42333
|
-
type: "select",
|
|
42334
|
-
label: "Images per view (mobile)",
|
|
42335
|
-
description: "Number of images visible at once on small screens.",
|
|
42336
|
-
defaultValue: "1",
|
|
42337
|
-
options: [
|
|
42338
|
-
{
|
|
42339
|
-
value: "1",
|
|
42340
|
-
label: "One at a time"
|
|
42341
|
-
},
|
|
42342
|
-
{
|
|
42343
|
-
value: "2",
|
|
42344
|
-
label: "Two at a time"
|
|
42345
|
-
},
|
|
42346
|
-
{
|
|
42347
|
-
value: "3",
|
|
42348
|
-
label: "Three at a time"
|
|
42349
|
-
}
|
|
42350
|
-
],
|
|
42351
|
-
ui: {
|
|
42352
|
-
intent: "display",
|
|
42353
|
-
visibleWhen: {
|
|
42354
|
-
field: "variant",
|
|
42355
|
-
equals: "carousel"
|
|
42356
|
-
}
|
|
42357
|
-
}
|
|
42358
|
-
},
|
|
42359
|
-
{
|
|
42360
|
-
id: "slidesToShowTablet",
|
|
42361
|
-
type: "select",
|
|
42362
|
-
label: "Images per view (tablet)",
|
|
42363
|
-
description: "Number of images visible on medium screens.",
|
|
42364
|
-
options: [
|
|
42365
|
-
{
|
|
42366
|
-
value: "",
|
|
42367
|
-
label: "Same as mobile"
|
|
42368
|
-
},
|
|
42369
|
-
{
|
|
42370
|
-
value: "1",
|
|
42371
|
-
label: "One at a time"
|
|
42372
|
-
},
|
|
42373
|
-
{
|
|
42374
|
-
value: "2",
|
|
42375
|
-
label: "Two at a time"
|
|
42376
|
-
},
|
|
42377
|
-
{
|
|
42378
|
-
value: "3",
|
|
42379
|
-
label: "Three at a time"
|
|
42380
|
-
}
|
|
42381
|
-
],
|
|
42382
|
-
ui: {
|
|
42383
|
-
intent: "display",
|
|
42384
|
-
visibleWhen: {
|
|
42385
|
-
field: "variant",
|
|
42386
|
-
equals: "carousel"
|
|
42387
|
-
}
|
|
42388
|
-
}
|
|
42389
|
-
},
|
|
42390
|
-
{
|
|
42391
|
-
id: "slidesToShowDesktop",
|
|
42392
|
-
type: "select",
|
|
42393
|
-
label: "Images per view (desktop)",
|
|
42394
|
-
description: "Number of images visible on large screens.",
|
|
42395
|
-
options: [
|
|
42396
|
-
{
|
|
42397
|
-
value: "",
|
|
42398
|
-
label: "Same as tablet"
|
|
42399
|
-
},
|
|
42400
|
-
{
|
|
42401
|
-
value: "1",
|
|
42402
|
-
label: "One at a time"
|
|
42403
|
-
},
|
|
42404
|
-
{
|
|
42405
|
-
value: "2",
|
|
42406
|
-
label: "Two at a time"
|
|
42407
|
-
},
|
|
42408
|
-
{
|
|
42409
|
-
value: "3",
|
|
42410
|
-
label: "Three at a time"
|
|
42411
|
-
}
|
|
42412
|
-
],
|
|
42413
|
-
ui: {
|
|
42414
|
-
intent: "display",
|
|
42415
|
-
visibleWhen: {
|
|
42416
|
-
field: "variant",
|
|
42417
|
-
equals: "carousel"
|
|
42418
|
-
}
|
|
42419
|
-
}
|
|
42420
|
-
},
|
|
42421
|
-
{
|
|
42422
|
-
id: "transition",
|
|
42423
|
-
type: "select",
|
|
42424
|
-
label: "Transition",
|
|
42425
|
-
description: "Animation style between slides.",
|
|
42426
|
-
defaultValue: "slide",
|
|
42427
|
-
options: [{
|
|
42428
|
-
value: "slide",
|
|
42429
|
-
label: "Slide"
|
|
42430
|
-
}, {
|
|
42431
|
-
value: "fade",
|
|
42432
|
-
label: "Fade"
|
|
42433
|
-
}],
|
|
42434
|
-
ui: {
|
|
42435
|
-
intent: "display",
|
|
42436
|
-
visibleWhen: {
|
|
42437
|
-
field: "variant",
|
|
42438
|
-
equals: "carousel"
|
|
42439
|
-
}
|
|
42440
|
-
}
|
|
42441
|
-
},
|
|
42442
|
-
{
|
|
42443
|
-
id: "showControls",
|
|
42444
|
-
type: "boolean",
|
|
42445
|
-
label: "Show arrows",
|
|
42446
|
-
defaultValue: true,
|
|
42447
|
-
ui: {
|
|
42448
|
-
intent: "behavior",
|
|
42449
|
-
visibleWhen: {
|
|
42450
|
-
field: "variant",
|
|
42451
|
-
equals: "carousel"
|
|
42452
|
-
}
|
|
42453
|
-
}
|
|
42454
|
-
},
|
|
42455
|
-
{
|
|
42456
|
-
id: "showDots",
|
|
42457
|
-
type: "boolean",
|
|
42458
|
-
label: "Show dots",
|
|
42459
|
-
defaultValue: false,
|
|
42460
|
-
ui: {
|
|
42461
|
-
intent: "behavior",
|
|
42462
|
-
visibleWhen: {
|
|
42463
|
-
field: "variant",
|
|
42464
|
-
equals: "carousel"
|
|
42465
|
-
}
|
|
42466
|
-
}
|
|
42467
|
-
},
|
|
42468
|
-
{
|
|
42469
|
-
id: "autoplay",
|
|
42470
|
-
type: "boolean",
|
|
42471
|
-
label: "Autoplay",
|
|
42472
|
-
defaultValue: false,
|
|
42473
|
-
ui: {
|
|
42474
|
-
intent: "behavior",
|
|
42475
|
-
visibleWhen: {
|
|
42476
|
-
field: "variant",
|
|
42477
|
-
equals: "carousel"
|
|
42478
|
-
}
|
|
42479
|
-
}
|
|
42480
|
-
},
|
|
42481
|
-
{
|
|
42482
|
-
id: "autoplayDelay",
|
|
42483
|
-
type: "select",
|
|
42484
|
-
label: "Autoplay delay",
|
|
42485
|
-
defaultValue: "5000",
|
|
42486
|
-
options: [
|
|
42487
|
-
{
|
|
42488
|
-
value: "3000",
|
|
42489
|
-
label: "3 seconds"
|
|
42490
|
-
},
|
|
42491
|
-
{
|
|
42492
|
-
value: "5000",
|
|
42493
|
-
label: "5 seconds"
|
|
42494
|
-
},
|
|
42495
|
-
{
|
|
42496
|
-
value: "7000",
|
|
42497
|
-
label: "7 seconds"
|
|
42498
|
-
},
|
|
42499
|
-
{
|
|
42500
|
-
value: "10000",
|
|
42501
|
-
label: "10 seconds"
|
|
42502
|
-
}
|
|
42503
|
-
],
|
|
42504
|
-
ui: {
|
|
42505
|
-
intent: "behavior",
|
|
42506
|
-
visibleWhen: {
|
|
42507
|
-
field: "variant",
|
|
42508
|
-
equals: "carousel"
|
|
42509
|
-
}
|
|
42510
|
-
}
|
|
42511
|
-
},
|
|
42512
|
-
{
|
|
42513
|
-
id: "arrowVisibility",
|
|
42514
|
-
type: "select",
|
|
42515
|
-
label: "Arrow visibility",
|
|
42516
|
-
defaultValue: "always",
|
|
42517
|
-
options: [{
|
|
42518
|
-
value: "always",
|
|
42519
|
-
label: "Always visible"
|
|
42520
|
-
}, {
|
|
42521
|
-
value: "hover",
|
|
42522
|
-
label: "Show on hover"
|
|
42523
|
-
}],
|
|
42524
|
-
ui: {
|
|
42525
|
-
intent: "behavior",
|
|
42526
|
-
visibleWhen: {
|
|
42527
|
-
field: "variant",
|
|
42528
|
-
equals: "carousel"
|
|
42529
|
-
}
|
|
42530
|
-
}
|
|
42531
|
-
},
|
|
42532
|
-
{
|
|
42533
|
-
id: "loop",
|
|
42534
|
-
type: "boolean",
|
|
42535
|
-
label: "Loop slides",
|
|
42536
|
-
defaultValue: true,
|
|
42537
|
-
ui: {
|
|
42538
|
-
intent: "behavior",
|
|
42539
|
-
visibleWhen: {
|
|
42540
|
-
field: "variant",
|
|
42541
|
-
equals: "carousel"
|
|
42542
|
-
}
|
|
42543
|
-
}
|
|
42544
|
-
},
|
|
42545
|
-
{
|
|
42546
|
-
id: "marqueeDirection",
|
|
42547
|
-
type: "select",
|
|
42548
|
-
label: "Scroll direction",
|
|
42549
|
-
options: [{
|
|
42550
|
-
value: "left",
|
|
42551
|
-
label: "Left"
|
|
42552
|
-
}, {
|
|
42553
|
-
value: "right",
|
|
42554
|
-
label: "Right"
|
|
42555
|
-
}],
|
|
42556
|
-
defaultValue: "left",
|
|
42557
|
-
ui: {
|
|
42558
|
-
intent: "display",
|
|
42559
|
-
visibleWhen: {
|
|
42560
|
-
field: "variant",
|
|
42561
|
-
equals: "marquee"
|
|
42562
|
-
}
|
|
42563
|
-
}
|
|
42564
|
-
},
|
|
42565
|
-
{
|
|
42566
|
-
id: "marqueeSpeed",
|
|
42567
|
-
type: "select",
|
|
42568
|
-
label: "Scroll speed",
|
|
42569
|
-
options: [
|
|
42570
|
-
{
|
|
42571
|
-
value: "slow",
|
|
42572
|
-
label: "Slow (60s)"
|
|
42573
|
-
},
|
|
42574
|
-
{
|
|
42575
|
-
value: "medium",
|
|
42576
|
-
label: "Medium (40s)"
|
|
42577
|
-
},
|
|
42578
|
-
{
|
|
42579
|
-
value: "fast",
|
|
42580
|
-
label: "Fast (20s)"
|
|
42581
|
-
}
|
|
42582
|
-
],
|
|
42583
|
-
defaultValue: "medium",
|
|
42584
|
-
ui: {
|
|
42585
|
-
intent: "display",
|
|
42586
|
-
visibleWhen: {
|
|
42587
|
-
field: "variant",
|
|
42588
|
-
equals: "marquee"
|
|
42589
|
-
}
|
|
42590
|
-
}
|
|
42591
|
-
},
|
|
42592
|
-
{
|
|
42593
|
-
id: "marqueePauseOnHover",
|
|
42594
|
-
type: "boolean",
|
|
42595
|
-
label: "Pause on hover",
|
|
42596
|
-
defaultValue: true,
|
|
42597
|
-
ui: {
|
|
42598
|
-
intent: "behavior",
|
|
42599
|
-
visibleWhen: {
|
|
42600
|
-
field: "variant",
|
|
42601
|
-
equals: "marquee"
|
|
42602
|
-
}
|
|
42603
|
-
}
|
|
42604
|
-
},
|
|
42605
|
-
{
|
|
42606
|
-
id: "marqueeImageSize",
|
|
42607
|
-
type: "select",
|
|
42608
|
-
label: "Image size",
|
|
42609
|
-
options: [
|
|
42610
|
-
{
|
|
42611
|
-
value: "sm",
|
|
42612
|
-
label: "Small (200px)"
|
|
42613
|
-
},
|
|
42614
|
-
{
|
|
42615
|
-
value: "md",
|
|
42616
|
-
label: "Medium (256px)"
|
|
42617
|
-
},
|
|
42618
|
-
{
|
|
42619
|
-
value: "lg",
|
|
42620
|
-
label: "Large (320px)"
|
|
42621
|
-
},
|
|
42622
|
-
{
|
|
42623
|
-
value: "xl",
|
|
42624
|
-
label: "Extra large (400px)"
|
|
42625
|
-
}
|
|
42626
|
-
],
|
|
42627
|
-
defaultValue: "md",
|
|
42628
|
-
ui: {
|
|
42629
|
-
intent: "display",
|
|
42630
|
-
visibleWhen: {
|
|
42631
|
-
field: "variant",
|
|
42632
|
-
equals: "marquee"
|
|
42633
|
-
}
|
|
42634
|
-
}
|
|
42635
|
-
},
|
|
42636
|
-
{
|
|
42637
|
-
id: "imageFilter",
|
|
42638
|
-
type: "select",
|
|
42639
|
-
label: "Image filter",
|
|
42640
|
-
options: [
|
|
42641
|
-
{
|
|
42642
|
-
value: "none",
|
|
42643
|
-
label: "None"
|
|
42644
|
-
},
|
|
42645
|
-
{
|
|
42646
|
-
value: "grayscale",
|
|
42647
|
-
label: "Grayscale"
|
|
42648
|
-
},
|
|
42649
|
-
{
|
|
42650
|
-
value: "grayscale-hover-reveal",
|
|
42651
|
-
label: "Grayscale (color on hover)"
|
|
42652
|
-
},
|
|
42653
|
-
{
|
|
42654
|
-
value: "sepia",
|
|
42655
|
-
label: "Sepia"
|
|
42656
|
-
}
|
|
42657
|
-
],
|
|
42658
|
-
defaultValue: "grayscale-hover-reveal",
|
|
42659
|
-
ui: { intent: "style" }
|
|
42660
|
-
},
|
|
42661
|
-
{
|
|
42662
|
-
id: "imageBorder",
|
|
42663
|
-
type: "group",
|
|
42664
|
-
label: "Image border",
|
|
42665
|
-
schema: { fields: [
|
|
42666
|
-
{
|
|
42667
|
-
id: "enabled",
|
|
42668
|
-
type: "boolean",
|
|
42669
|
-
label: "Show border",
|
|
42670
|
-
defaultValue: true
|
|
42671
|
-
},
|
|
42672
|
-
{
|
|
42673
|
-
id: "colorToken",
|
|
42674
|
-
type: "text",
|
|
42675
|
-
label: "Border color",
|
|
42676
|
-
defaultValue: "accent",
|
|
42677
|
-
ui: { widget: "backgroundColor" }
|
|
42678
|
-
},
|
|
42679
|
-
{
|
|
42680
|
-
id: "opacity",
|
|
42681
|
-
type: "number",
|
|
42682
|
-
label: "Border opacity",
|
|
42683
|
-
defaultValue: 30,
|
|
42684
|
-
ui: {
|
|
42685
|
-
min: 0,
|
|
42686
|
-
max: 100
|
|
42687
|
-
}
|
|
42688
|
-
},
|
|
42689
|
-
{
|
|
42690
|
-
id: "width",
|
|
42691
|
-
type: "select",
|
|
42692
|
-
label: "Border width",
|
|
42693
|
-
options: [
|
|
42694
|
-
{
|
|
42695
|
-
value: "1",
|
|
42696
|
-
label: "Thin (1px)"
|
|
42697
|
-
},
|
|
42698
|
-
{
|
|
42699
|
-
value: "2",
|
|
42700
|
-
label: "Medium (2px)"
|
|
42701
|
-
},
|
|
42702
|
-
{
|
|
42703
|
-
value: "3",
|
|
42704
|
-
label: "Thick (3px)"
|
|
42705
|
-
}
|
|
42706
|
-
],
|
|
42707
|
-
defaultValue: "2"
|
|
42708
|
-
}
|
|
42709
|
-
] },
|
|
42710
|
-
ui: { intent: "style" }
|
|
42711
|
-
},
|
|
42712
|
-
{
|
|
42713
|
-
id: "imageCorners",
|
|
42714
|
-
type: "select",
|
|
42715
|
-
label: "Image corners",
|
|
42716
|
-
options: [
|
|
42717
|
-
{
|
|
42718
|
-
value: "none",
|
|
42719
|
-
label: "Square"
|
|
42720
|
-
},
|
|
42721
|
-
{
|
|
42722
|
-
value: "sm",
|
|
42723
|
-
label: "Slightly rounded"
|
|
42724
|
-
},
|
|
42725
|
-
{
|
|
42726
|
-
value: "md",
|
|
42727
|
-
label: "Rounded"
|
|
42728
|
-
},
|
|
42729
|
-
{
|
|
42730
|
-
value: "lg",
|
|
42731
|
-
label: "More rounded"
|
|
42732
|
-
},
|
|
42733
|
-
{
|
|
42734
|
-
value: "xl",
|
|
42735
|
-
label: "Very rounded"
|
|
42736
|
-
},
|
|
42737
|
-
{
|
|
42738
|
-
value: "2xl",
|
|
42739
|
-
label: "Extra rounded"
|
|
42740
|
-
},
|
|
42741
|
-
{
|
|
42742
|
-
value: "3xl",
|
|
42743
|
-
label: "Maximum rounded"
|
|
42744
|
-
}
|
|
42745
|
-
],
|
|
42746
|
-
defaultValue: "3xl",
|
|
42747
|
-
ui: { intent: "style" }
|
|
42748
|
-
}
|
|
42749
|
-
]),
|
|
43541
|
+
additionalFields: imageGalleryFields,
|
|
42750
43542
|
layout: wrapVariant$1(gridLayout),
|
|
42751
43543
|
variants: {
|
|
43544
|
+
tiles: tilesLayout,
|
|
42752
43545
|
grid: wrapVariant$1(gridLayout),
|
|
42753
43546
|
carousel: wrapVariant$1(carouselLayout),
|
|
42754
43547
|
masonry: wrapVariant$1(masonryLayout),
|
|
@@ -42757,7 +43550,10 @@ const imageGalleryBlockDefinition = { manifest: createBlockManifest({
|
|
|
42757
43550
|
className: "rb-image-gallery-marquee-container"
|
|
42758
43551
|
})
|
|
42759
43552
|
},
|
|
42760
|
-
variantMeaning: {
|
|
43553
|
+
variantMeaning: {
|
|
43554
|
+
kind: "arrangement",
|
|
43555
|
+
lookOnlyKeys: ["tiles"]
|
|
43556
|
+
},
|
|
42761
43557
|
defaultVariant: "grid",
|
|
42762
43558
|
variantOptions: {
|
|
42763
43559
|
grid: {
|
|
@@ -44977,76 +45773,74 @@ const giftingBlockDefinition = {
|
|
|
44977
45773
|
/**
|
|
44978
45774
|
* Get form fields based on preset configuration.
|
|
44979
45775
|
*/
|
|
44980
|
-
function getGlobalFormFields(form) {
|
|
44981
|
-
const
|
|
44982
|
-
|
|
44983
|
-
|
|
44984
|
-
|
|
44985
|
-
|
|
44986
|
-
|
|
44987
|
-
|
|
44988
|
-
|
|
44989
|
-
|
|
44990
|
-
case "
|
|
44991
|
-
|
|
44992
|
-
|
|
44993
|
-
|
|
44994
|
-
|
|
44995
|
-
|
|
44996
|
-
|
|
45776
|
+
function getGlobalFormFields(form, presentation = {}) {
|
|
45777
|
+
const fields = withOptionalPhone(newsletterPresetFields(form.fields), form.includeOptionalPhone);
|
|
45778
|
+
return presentation.lookSlots ? fields.map((field) => ({
|
|
45779
|
+
...field,
|
|
45780
|
+
label: lookFieldLabel(field)
|
|
45781
|
+
})) : fields;
|
|
45782
|
+
}
|
|
45783
|
+
function lookFieldLabel(field) {
|
|
45784
|
+
switch (field.id) {
|
|
45785
|
+
case "firstName": return "First name";
|
|
45786
|
+
case "lastName": return "Last name";
|
|
45787
|
+
default: return field.label;
|
|
45788
|
+
}
|
|
45789
|
+
}
|
|
45790
|
+
const emailField = {
|
|
45791
|
+
id: "email",
|
|
45792
|
+
type: "email",
|
|
45793
|
+
label: "Email",
|
|
45794
|
+
required: true,
|
|
45795
|
+
placeholder: "your@email.com"
|
|
45796
|
+
};
|
|
45797
|
+
const firstNameField = (required) => ({
|
|
45798
|
+
id: "firstName",
|
|
45799
|
+
type: "text",
|
|
45800
|
+
label: "First Name",
|
|
45801
|
+
required,
|
|
45802
|
+
placeholder: "First name"
|
|
45803
|
+
});
|
|
45804
|
+
function newsletterPresetFields(fields) {
|
|
45805
|
+
switch (fields.preset) {
|
|
45806
|
+
case "emailOnly": return [emailField];
|
|
45807
|
+
case "emailName": return [emailField, {
|
|
44997
45808
|
id: "name",
|
|
44998
45809
|
type: "text",
|
|
44999
45810
|
label: "Name",
|
|
45000
|
-
required:
|
|
45811
|
+
required: fields.name === "required",
|
|
45001
45812
|
placeholder: "Your name"
|
|
45002
|
-
}]
|
|
45003
|
-
case "
|
|
45004
|
-
|
|
45005
|
-
|
|
45006
|
-
|
|
45007
|
-
label: "Email",
|
|
45008
|
-
required: true,
|
|
45009
|
-
placeholder: "your@email.com"
|
|
45010
|
-
},
|
|
45011
|
-
{
|
|
45012
|
-
id: "firstName",
|
|
45013
|
-
type: "text",
|
|
45014
|
-
label: "First Name",
|
|
45015
|
-
required: form.fields.firstName === "required",
|
|
45016
|
-
placeholder: "First name"
|
|
45017
|
-
},
|
|
45813
|
+
}];
|
|
45814
|
+
case "emailFirstName": return [emailField, firstNameField(fields.firstName === "required")];
|
|
45815
|
+
case "emailFirstLast": return [
|
|
45816
|
+
emailField,
|
|
45817
|
+
firstNameField(fields.firstName === "required"),
|
|
45018
45818
|
{
|
|
45019
45819
|
id: "lastName",
|
|
45020
45820
|
type: "text",
|
|
45021
45821
|
label: "Last Name",
|
|
45022
|
-
required:
|
|
45822
|
+
required: fields.lastName === "required",
|
|
45023
45823
|
placeholder: "Last name"
|
|
45024
45824
|
}
|
|
45025
|
-
]
|
|
45026
|
-
case "emailNameCompany": return
|
|
45027
|
-
|
|
45028
|
-
id: "email",
|
|
45029
|
-
type: "email",
|
|
45030
|
-
label: "Email",
|
|
45031
|
-
required: true,
|
|
45032
|
-
placeholder: "your@email.com"
|
|
45033
|
-
},
|
|
45825
|
+
];
|
|
45826
|
+
case "emailNameCompany": return [
|
|
45827
|
+
emailField,
|
|
45034
45828
|
{
|
|
45035
45829
|
id: "name",
|
|
45036
45830
|
type: "text",
|
|
45037
45831
|
label: "Name",
|
|
45038
|
-
required:
|
|
45832
|
+
required: fields.name === "required",
|
|
45039
45833
|
placeholder: "Your name"
|
|
45040
45834
|
},
|
|
45041
45835
|
{
|
|
45042
45836
|
id: "company",
|
|
45043
45837
|
type: "text",
|
|
45044
45838
|
label: "Company",
|
|
45045
|
-
required:
|
|
45839
|
+
required: fields.company === "required",
|
|
45046
45840
|
placeholder: "Company name"
|
|
45047
45841
|
}
|
|
45048
|
-
]
|
|
45049
|
-
default:
|
|
45842
|
+
];
|
|
45843
|
+
default: return assertNever$2(fields);
|
|
45050
45844
|
}
|
|
45051
45845
|
}
|
|
45052
45846
|
function withOptionalPhone(fields, includePhone) {
|
|
@@ -45108,6 +45902,7 @@ const mailingListSignupBlockSourceRefSchema = z.object({
|
|
|
45108
45902
|
});
|
|
45109
45903
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
45110
45904
|
const newsletterSourceCommonSchema = z.object({
|
|
45905
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
45111
45906
|
siteId: z.string().optional(),
|
|
45112
45907
|
apiBaseUrl: z.string().optional(),
|
|
45113
45908
|
mailingList: mailingListContextSchema.optional(),
|
|
@@ -45140,6 +45935,7 @@ const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
|
45140
45935
|
newsletterSourceCommonSchema.extend({ source: z.literal("preview") })
|
|
45141
45936
|
]);
|
|
45142
45937
|
const newsletterDisplaySchema = z.object({
|
|
45938
|
+
lookSlots: lookListPresentationSchemaShape.lookSlots,
|
|
45143
45939
|
kind: z.literal("newsletter-form"),
|
|
45144
45940
|
availability: z.enum(["ready", "unavailable"]),
|
|
45145
45941
|
className: z.string().nullable(),
|
|
@@ -45206,13 +46002,14 @@ function buildNewsletterDisplay(source) {
|
|
|
45206
46002
|
const choices = resolveRuntimeChoices(assessment);
|
|
45207
46003
|
return {
|
|
45208
46004
|
kind: "newsletter-form",
|
|
46005
|
+
...source.lookSlots ? { lookSlots: source.lookSlots } : {},
|
|
45209
46006
|
availability: assessment.tag === "available" ? "ready" : "unavailable",
|
|
45210
46007
|
className: source.className ?? null,
|
|
45211
46008
|
buttonLabel: form.buttonLabel,
|
|
45212
46009
|
successMessage: form.successMessage,
|
|
45213
46010
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
45214
46011
|
privacyNote: form.privacyNote,
|
|
45215
|
-
fields: getGlobalFormFields(form),
|
|
46012
|
+
fields: getGlobalFormFields(form, source),
|
|
45216
46013
|
choices
|
|
45217
46014
|
};
|
|
45218
46015
|
}
|
|
@@ -45284,32 +46081,50 @@ function parseRequiredMailingListSignedSourceToken(value) {
|
|
|
45284
46081
|
//#region ../blocks/src/system/blocks/newsletter-signup.ts
|
|
45285
46082
|
const stackedComposition = composeFragments([{ fragment: newsletterCopyFragment }, { fragment: newsletterFormFragment }]);
|
|
45286
46083
|
const stackedLayout = styledSection({
|
|
45287
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
46084
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
45288
46085
|
gap: "md",
|
|
45289
46086
|
className: "rb-text-center newsletter-stacked"
|
|
45290
|
-
}),
|
|
46087
|
+
})),
|
|
45291
46088
|
baseClass: "",
|
|
45292
46089
|
spacing: "medium",
|
|
45293
46090
|
background: "surface"
|
|
45294
46091
|
});
|
|
45295
46092
|
const inlineLayout = styledSection({
|
|
45296
|
-
children: sectionContainer(stackedComposition.layout, {
|
|
46093
|
+
children: props(lookSlot("layout"))(sectionContainer(stackedComposition.layout, {
|
|
45297
46094
|
gap: "md",
|
|
45298
46095
|
className: "newsletter-inline"
|
|
45299
|
-
}),
|
|
46096
|
+
})),
|
|
45300
46097
|
baseClass: "",
|
|
45301
46098
|
spacing: "medium",
|
|
45302
46099
|
background: "surface"
|
|
45303
46100
|
});
|
|
45304
46101
|
const editorialSplitLayout = styledSection({
|
|
45305
|
-
children:
|
|
46102
|
+
children: props(lookSlot("layout"))(sectionContainer([el("div", {
|
|
46103
|
+
className: "newsletter-editorial-split-copy",
|
|
46104
|
+
...lookSlot("head")
|
|
46105
|
+
}, newsletterCopyFragment.layout), el("div", {
|
|
46106
|
+
className: "newsletter-editorial-split-form",
|
|
46107
|
+
...lookSlot("panel")
|
|
46108
|
+
}, newsletterFormFragment.layout)], {
|
|
45306
46109
|
gap: "lg",
|
|
45307
46110
|
className: "newsletter-editorial-split"
|
|
45308
|
-
}),
|
|
46111
|
+
})),
|
|
45309
46112
|
baseClass: "",
|
|
45310
46113
|
spacing: "comfortable",
|
|
45311
46114
|
background: "surface"
|
|
45312
46115
|
});
|
|
46116
|
+
const archLayout = styledSection({
|
|
46117
|
+
children: el("div", {
|
|
46118
|
+
className: "rb-container",
|
|
46119
|
+
...lookSlot("layout")
|
|
46120
|
+
}, [el("div", lookSlot("frame"), [el("div", {
|
|
46121
|
+
className: "rb-grid",
|
|
46122
|
+
...lookSlot("head")
|
|
46123
|
+
}, newsletterCopyFragment.layout), ...newsletterFormFragment.layout])]),
|
|
46124
|
+
baseClass: "",
|
|
46125
|
+
spacing: "medium",
|
|
46126
|
+
background: "surface"
|
|
46127
|
+
});
|
|
45313
46128
|
const newsletterSignupManifest = createBlockManifest({
|
|
45314
46129
|
id: "block.newsletter-signup",
|
|
45315
46130
|
title: "Newsletter Signup",
|
|
@@ -45324,13 +46139,26 @@ const newsletterSignupManifest = createBlockManifest({
|
|
|
45324
46139
|
fragment: newsletterFormFragment,
|
|
45325
46140
|
fieldPriority: 1
|
|
45326
46141
|
}],
|
|
46142
|
+
additionalFields: [{
|
|
46143
|
+
id: "archFrame",
|
|
46144
|
+
type: "boolean",
|
|
46145
|
+
label: "Arch frame",
|
|
46146
|
+
ui: {
|
|
46147
|
+
intent: "display",
|
|
46148
|
+
hidden: true
|
|
46149
|
+
}
|
|
46150
|
+
}],
|
|
45327
46151
|
layout: stackedLayout,
|
|
45328
46152
|
variants: {
|
|
46153
|
+
arch: archLayout,
|
|
45329
46154
|
stacked: stackedLayout,
|
|
45330
46155
|
inline: inlineLayout,
|
|
45331
46156
|
"editorial-split": editorialSplitLayout
|
|
45332
46157
|
},
|
|
45333
|
-
variantMeaning: {
|
|
46158
|
+
variantMeaning: {
|
|
46159
|
+
kind: "arrangement",
|
|
46160
|
+
lookOnlyKeys: ["arch"]
|
|
46161
|
+
},
|
|
45334
46162
|
defaultVariant: "stacked",
|
|
45335
46163
|
variantOptions: {
|
|
45336
46164
|
stacked: {
|
|
@@ -46417,7 +47245,7 @@ const systemBlockDefinitions = [
|
|
|
46417
47245
|
})
|
|
46418
47246
|
]
|
|
46419
47247
|
})),
|
|
46420
|
-
withDesignCapability("block.body-text", bodyTextBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47248
|
+
withDesignCapability("block.body-text", bodyTextBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
46421
47249
|
flow: bodyFlow,
|
|
46422
47250
|
layoutProfiles: [
|
|
46423
47251
|
layoutProfile({
|
|
@@ -46792,7 +47620,7 @@ const systemBlockDefinitions = [
|
|
|
46792
47620
|
weight: "quiet"
|
|
46793
47621
|
})]
|
|
46794
47622
|
})),
|
|
46795
|
-
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47623
|
+
withDesignCapability("block.image-gallery", imageGalleryBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
46796
47624
|
flow: mediaFlow,
|
|
46797
47625
|
layoutProfiles: [
|
|
46798
47626
|
layoutProfile({
|
|
@@ -46881,7 +47709,7 @@ const systemBlockDefinitions = [
|
|
|
46881
47709
|
weight: "standard"
|
|
46882
47710
|
})]
|
|
46883
47711
|
})),
|
|
46884
|
-
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
47712
|
+
withDesignCapability("block.newsletter-signup", newsletterSignupBlockDefinition, withLookCapability(sectionOnly()), defineBlockDesignMetadata({
|
|
46885
47713
|
flow: conversionFlow,
|
|
46886
47714
|
layoutProfiles: [
|
|
46887
47715
|
layoutProfile({
|